static const GtkWidgetPath * gtk_css_widget_node_get_widget_path (GtkCssNode *node) { GtkCssWidgetNode *widget_node = GTK_CSS_WIDGET_NODE (node); if (widget_node->widget == NULL) return NULL; return gtk_widget_get_path (widget_node->widget); }
gboolean gtk_css_widget_node_init_matcher (GtkCssNode *node, GtkCssMatcher *matcher) { GtkCssWidgetNode *widget_node = GTK_CSS_WIDGET_NODE (node); if (widget_node->widget == NULL) return FALSE; if (!widget_needs_widget_path (widget_node->widget)) return GTK_CSS_NODE_CLASS (gtk_css_widget_node_parent_class)->init_matcher (node, matcher); return _gtk_css_matcher_init (matcher, gtk_widget_get_path (widget_node->widget), gtk_css_node_get_declaration (node)); }
static void applet_change_background(MatePanelApplet* applet, MatePanelAppletBackgroundType type, GdkColor* color, cairo_pattern_t *pattern, PagerData* pager) { GtkStyleContext *new_context; gtk_widget_reset_style (GTK_WIDGET (pager->pager)); new_context = gtk_style_context_new (); gtk_style_context_set_path (new_context, gtk_widget_get_path (GTK_WIDGET (pager->pager))); g_object_unref (new_context); wnck_pager_set_shadow_type (WNCK_PAGER (pager->pager), type == PANEL_NO_BACKGROUND ? GTK_SHADOW_NONE : GTK_SHADOW_IN); #else static void applet_change_background(MatePanelApplet* applet, MatePanelAppletBackgroundType type, GdkColor* color, GdkPixmap* pixmap, PagerData* pager) { /* taken from the TrashApplet */ GtkRcStyle *rc_style; GtkStyle *style; /* reset style */ gtk_widget_set_style (GTK_WIDGET (pager->pager), NULL); rc_style = gtk_rc_style_new (); gtk_widget_modify_style (GTK_WIDGET (pager->pager), rc_style); g_object_unref (rc_style); switch (type) { case PANEL_COLOR_BACKGROUND: gtk_widget_modify_bg (GTK_WIDGET (pager->pager), GTK_STATE_NORMAL, color); break; case PANEL_PIXMAP_BACKGROUND: style = gtk_style_copy (gtk_widget_get_style (GTK_WIDGET (pager->pager))); if (style->bg_pixmap[GTK_STATE_NORMAL]) g_object_unref (style->bg_pixmap[GTK_STATE_NORMAL]); style->bg_pixmap[GTK_STATE_NORMAL] = g_object_ref(pixmap); gtk_widget_set_style (GTK_WIDGET (pager->pager), style); g_object_unref (style); break; case PANEL_NO_BACKGROUND: default: break; } #endif }
static GtkStyleContext * gd_tagged_entry_tag_get_context (GdTaggedEntryTag *tag, GdTaggedEntry *entry) { GtkWidget *widget = GTK_WIDGET (entry); GtkWidgetPath *path; gint pos; GtkStyleContext *retval; retval = gtk_style_context_new (); path = gtk_widget_path_copy (gtk_widget_get_path (widget)); pos = gtk_widget_path_append_type (path, GD_TYPE_TAGGED_ENTRY); gtk_widget_path_iter_add_class (path, pos, tag->style); gtk_style_context_set_path (retval, path); gtk_widget_path_unref (path); return retval; }