On Thu, 2009-04-09 at 07:00 -0500, Laszlo Pandy wrote: > The documentation shows that there are five states for a widget[1]. > > For each state, the GTK theme defines different colours for > background, foreground etc. > You can see some discussion about colours on John Stowers blog[2]. He > has a good screenshot showing the different colours for each state[3], > which makes it easier to find which colour you want to change.
Hi, The code for the little tool to inspect theme colors is now available from http://gist.github.com/49799 The blog post [2] has also been updated accordingly. John > > You can directly modify the bg, fg, text, and base colours using the > widget.modify_* functions. For example: > > mywidget.modify_bg(gtk.STATE_NORMAL, mycolor) > # if you have a widget which changes appears when > # selected you might have to change the other states as well. > mywidget.modify_bg(gtk.STATE_SELECTED, mycolor) > > Here is what I found about the theme guidelines for different colours[4]: > # fg - Sets the foreground color of a widget. > # bg - Sets the background color of a widget. > # text - Sets the foreground color for widgets that have editable text. > # base - Sets the background color for widgets that have editable text. > > I only have experience changing the colours for my own custom widgets > which do not to have states like prelight or selected. Let me know if > this works. > > Laszlo > > [1] > http://www.pygtk.org/docs/pygtk/gtk-constants.html#gtk-state-type-constants > [2] > http://www.johnstowers.co.nz/blog/index.php/2008/07/31/conduit-ui-experiments/ > [3] > http://www.johnstowers.co.nz/blog/wp-content/uploads/2008/07/theme-swatch.png > [4] http://orford.org/gtk/ > > On Thu, Apr 9, 2009 at 2:16 AM, Alessandro Dentella <[email protected]> wrote: > > On Thu, Apr 09, 2009 at 10:36:18AM +1200, Tim Evans wrote: > >> Tim Evans wrote: > >> > ganesh gajare wrote: > >> >> Hello, > >> >> I have created an entry box widget using glade. > >> >> and I am doing validation on that field... > >> >> So whenever an invalid text is entered in the entry box,the text color > >> >> of entry should change dynamically.. > >> > > >> > I haven't tested this, but the method 'modify_text' should do what you > >> > need. For example, to set the text to red, use: > >> > > >> > entry.modify_text(gtk.gdk.color_parse('red')) > >> > > >> > and to set it back to the default black: > >> > > >> > entry.modify_text(None) > >> > > >> > >> Well, that's what I get for not even checking the documentation before > >> posting. I forgot the first argument to 'modify_text' should be a state > >> value. The relevant states here are: > >> > >> - gtk.STATE_NORMAL for unselected text > >> - gtk.STATE_SELECTED for selected text when the entry is focused > >> - gtk.STATE_ACTIVE for selected text when a different widget is focused > > > > > > In case you need to change the background too, i tryed to use modify_bg with > > no luck while modify_base just works. I have not understood which is the > > difference between one and the other, not I could find an explanation > > of the difference between modify_bg and modify_text. The second works to > > modify the text of an entry, the first does not. > > > > Any one can explain or pint to documentaion on the difference between > > base/bg and text/fg? > > > > In the kiwi package there is an interesting validation field that uses also > > images as background. I wanted to do the same but didn't manage missing a > > simpler example... > > > > sandro > > _______________________________________________ > > pygtk mailing list [email protected] > > http://www.daa.com.au/mailman/listinfo/pygtk > > Read the PyGTK FAQ: http://faq.pygtk.org/ > > > _______________________________________________ > pygtk mailing list [email protected] > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://faq.pygtk.org/ _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
