in reply to GTK widgets - set colors

I do gtk programming in C/C++, and generally I respect the principle that the color scheme is supposed to be determined by the user. Sometimes I do allow for a text area background to be configurable, tho.

It looks to me like you are trying to use text buffer tags to do this. I dunno how well that works, but it obviously won't create a uniform effect. You want to affect the text view which displays the buffer. From your code:

$TextView->modify_bg ('normal', $greyl);

Does this not do anything? I am sure that is where you would set a black background.

My other comment is that depending on how specific what you want to do is, a better way might be to create a gtk theme (.gtkrc) with the colors you want and then set that via "gtk-settings" (this should be part of the perl API somewhere...). That's less useful if you wanted to set values for specific buttons, however.

BTW, the ubuntu default is not carved in stone, you can set your own default scheme from the command line:

gtk-chtheme

Replies are listed 'Best First'.
Re^2: GTK widgets - set colors
by ronlewis (Initiate) on Mar 27, 2011 at 06:41 UTC

    Hi guys,

    Thanks for your answers. My script is a telnet client that displays ANSI colours. Most users are going to expect a black background for that (since it's been the default telnet colour scheme since the dawn of time). That's why, on this rare occasion, I don't want to respect the user's choice of desktop theme.

    (The test script changes the colours of several widgets - I hope it's clear that I was trying to demonstrate that ->modify_bg works for most of the widgets, but not for textview.)

    $TextView->modify_bg ('normal', $greyl);

    This really does have no effect on the textview's background colour, at least not on my Ubuntu box, even if I change it to

    $TextView->modify_bg ('normal', $redl);