xfdesktop icon text color
Nikolas.Arend at gmx.net
Sat May 20 22:52:12 CEST 2006
Brian J. Tarricone wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> Nikolas Arend wrote:
>> Brian J. Tarricone wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>> Nikolas Arend wrote:
>>>> I'm playing around a bit with xfdesktop and implemented code for two
>>>> options that allow for altering the icon label opacity/translucency
>>>> (alpha value) and the color of the icon text via the mcs plugin.
>>>> Changing the alpha value of the label background works fine but I'm
>>>> struggling with the icon text color. So far I only managed to modify the
>>>> text color of the whole parent window, which means the text color in
>>>> right-click menus etc will change as well.
>>>> How can I access and apply only the color attributes of the icon label
>>>> text? Is there a member in _XfdesktopIconViewPrivate, *playout maybe? I
>>>> tried to change Pango attributes for the PangoLayout, with no success.
>>>> Does anybody have a hint here (I suppose Brian knows xfdesktop's code
>>>> inside out)?
>>> Both of these features are already implemented, via gtk's theme
>>> system. I'm not interested in putting options in the MCS plugin.
>> Yes, I thought you wouldn't. But now that I've started, I'd like to
>> finish it, whether or not these options will be implemented. If you
>> could give me a hint, I'd appreciate it nonetheless. I could use a
>> patched version myself and/or provide a patch for stable releases, in
>> case people are interested (which IMO is not too unlikely). Besides, it
>> was a good exercise with gtk and xfce code.
>> Thanks again for any help,
> Well, it really depends on *how* you're implementing it. It's hard to
> help in the dark ^_^.
Yes, right. For choosing the icon text color, I put a
gtk_color_button_new_with_color(&color) in the mcs dialog:
hbox = gtk_hbox_new(FALSE, BORDER);
lbl = gtk_label_new_with_mnemonic(_("Icon text _color:"));
gtk_misc_set_alignment(GTK_MISC(lbl), 0.0, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), lbl, FALSE, FALSE, 0);
color.red = desktop_icons_text_color.red;
color.green = desktop_icons_text_color.green;
color.blue = desktop_icons_text_color.blue;
bd->text_color_box = cbtn = gtk_color_button_new_with_color(&color);
gtk_box_pack_start(GTK_BOX(hbox), cbtn, FALSE, FALSE, 0);
g_signal_connect(cbtn, "color-set", G_CALLBACK(set_color_option), bd);
This color is stored as an mcs-setting in desktop.xml (just like
color1/2 for the desktop background). It's read at startup by
behavior_settings_load() and applied by
xfce_desktop_settings_load_initial() which calls the function
xfce_desktop_set_icon_text_color(desktop, &color). The subsequently
called functions work in principle just like
in xfdesktop-icon-view.c. Well, they're supposed to, that is.
In my function xfdesktop_icon_view_modify_font_color(icon_view,
text_color) I'd like to make the appropriate changes to the icon text
color which then get applied by
gtk_widget_queue_draw(GTK_WIDGET(icon_view)). But I'm not sure what
exactly in the _XfdesktopIconViewPrivate structure I have to modify to
alter the icon text color. I tried
but that, as I said, changes the text color for the entire parent window
of course (which looks funny).
I basically tried to stick to the way your code is organized for desktop
"Behavior" settings, the function and variable structure is actually the
I could make the code available on my web site, if needed. I didn't
create any patches yet.
Does this help?
More information about the Xfce4-dev