Как применить прозрачность к тексту в виджетах GTK2?

#c #gtk2 #xfce

Вопрос:

Я играл с Xfce 4.12, который использует GTK2, и я хотел бы, чтобы кнопки на панели задач имели полупрозрачный текст, когда их соответствующие окна свернуты. Вот исходный код:

 xfce_tasklist_button_name_changed (WnckWindow *window, XfceTasklistChild *child) {  const gchar *name;  gchar *label = NULL;   panel_return_if_fail (window == NULL || child-gt;window == window);  panel_return_if_fail (WNCK_IS_WINDOW (child-gt;window));  panel_return_if_fail (XFCE_IS_TASKLIST (child-gt;tasklist));   name = wnck_window_get_name (child-gt;window);  gtk_widget_set_tooltip_text (GTK_WIDGET (child-gt;button), name);   if (!child-gt;tasklist-gt;only_minimized amp;amp; wnck_window_is_minimized (child-gt;window))  name = label = g_strdup_printf ("[%s]", name);  else if (wnck_window_is_shaded (child-gt;window))  name = label = g_strdup_printf ("=%s=", name);   gtk_label_set_text (GTK_LABEL (child-gt;label), name);   g_free (label);   if (window != NULL)  xfce_tasklist_sort (child-gt;tasklist); }  

Я перепробовал бесчисленное множество вещей, но мне не удалось найти способ применить альфа — код к тексту в виджете.

Интересно отметить, что значки рядом с текстом имеют альфа-код с использованием pixbuf, который, я думаю, не работает для текста в виджетах:

 XfceTasklist *tasklist = child-gt;tasklist;  GdkPixbuf *pixbuf = wnck_window_get_icon (window);  GdkPixbuf *lucent = lucent = exo_gdk_pixbuf_lucent (pixbuf, tasklist-gt;minimized_icon_lucency);   if (G_UNLIKELY (lucent != NULL))  pixbuf = lucent;    xfce_panel_image_set_from_pixbuf (XFCE_PANEL_IMAGE (child-gt;icon), pixbuf);  

Комментарии:

1. Почему бы не Xfce 4.14 и Gtk 3?

2. Потому что с 4.14 Xfce стал медленнее, не принося никаких преимуществ моим вариантам использования.