Exemple #1
0
GtkCssNode *
gtk_css_widget_node_new (GtkWidget *widget)
{
  GtkCssWidgetNode *result;

  gtk_internal_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);

  result = g_object_new (GTK_TYPE_CSS_WIDGET_NODE, NULL);
  result->widget = widget;
  gtk_css_node_set_visible (GTK_CSS_NODE (result),
                            gtk_widget_get_visible (widget));

  return GTK_CSS_NODE (result);
}
Exemple #2
0
static void
gtk_css_node_get_property (GObject    *object,
                           guint       property_id,
                           GValue     *value,
                           GParamSpec *pspec)
{
    GtkCssNode *cssnode = GTK_CSS_NODE (object);

    switch (property_id)
    {
    case PROP_CLASSES:
        g_value_take_boxed (value, gtk_css_node_get_classes (cssnode));
        break;

    case PROP_ID:
        g_value_set_string (value, gtk_css_node_get_id (cssnode));
        break;

    case PROP_STATE:
        g_value_set_flags (value, gtk_css_node_get_state (cssnode));
        break;

    case PROP_VISIBLE:
        g_value_set_boolean (value, gtk_css_node_get_visible (cssnode));
        break;

    case PROP_WIDGET_TYPE:
        g_value_set_gtype (value, gtk_css_node_get_widget_type (cssnode));
        break;

    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
    }
}
Exemple #3
0
void
gtk_css_path_node_unset_context (GtkCssPathNode *node)
{
  gtk_internal_return_if_fail (GTK_IS_CSS_PATH_NODE (node));
  gtk_internal_return_if_fail (node->context != NULL);

  node->context = NULL;

  gtk_css_node_invalidate_style_provider (GTK_CSS_NODE (node));
}
Exemple #4
0
static void
gtk_css_node_finalize (GObject *object)
{
  GtkCssNode *cssnode = GTK_CSS_NODE (object);

  if (cssnode->style)
    g_object_unref (cssnode->style);
  gtk_css_node_declaration_unref (cssnode->decl);

  G_OBJECT_CLASS (gtk_css_node_parent_class)->finalize (object);
}
Exemple #5
0
GtkCssNode *
gtk_css_path_node_new (GtkStyleContext *context)
{
  GtkCssPathNode *node;
  
  g_return_val_if_fail (context == NULL || GTK_IS_STYLE_CONTEXT (context), NULL);

  node = g_object_new (GTK_TYPE_CSS_PATH_NODE, NULL);
  node->context = context;

  return GTK_CSS_NODE (node);
}
Exemple #6
0
static void
gtk_css_node_dispose (GObject *object)
{
    GtkCssNode *cssnode = GTK_CSS_NODE (object);

    while (cssnode->first_child)
    {
        gtk_css_node_set_parent (cssnode->first_child, NULL);
    }

    gtk_css_node_set_invalid (cssnode, FALSE);

    G_OBJECT_CLASS (gtk_css_node_parent_class)->dispose (object);
}
Exemple #7
0
void
gtk_css_path_node_set_widget_path (GtkCssPathNode *node,
                                   GtkWidgetPath  *path)
{
  gtk_internal_return_if_fail (GTK_IS_CSS_PATH_NODE (node));

  if (node->path == path)
    return;

  if (node->path)
    gtk_widget_path_unref (node->path);

  if (path)
    gtk_widget_path_ref (path);

  node->path = path;

  gtk_css_node_invalidate (GTK_CSS_NODE (node), GTK_CSS_CHANGE_ANY);
}