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); }
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); } }
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)); }
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); }
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); }
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); }
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); }