2007/6/14, Yevgen Muntyan <[EMAIL PROTECTED]>: > Kalle Vahlman wrote: > > 2007/6/13, Yevgen Muntyan <[EMAIL PROTECTED]>: > >> Kalle Vahlman wrote: > >> > 2007/6/13, Matthias Clasen <[EMAIL PROTECTED]>: > >> >> GtkBuilder is just setting the name that was specified in the xml, so > >> >> it is not violating the principle that the widget name belongs to the > >> >> app/user, since > >> >> the xml is part of the app. > >> >> > >> > >> And widget isn't part of the app? Such separation is meaningless for > >> purpose of answering the question "should we change code of given > >> widget if we want the widget to be usable with GtkBuider?" > >> > >> So, if a widget sets its name to modify its style, then > >> it's broken? Even if the style is essential part of its functionality? > >> E.g. text cursor color is not something fancy, it's an essential part > >> of text widget and it rather sucks if cursor is invisible because of > >> wrong styles. Saying "it's broken because it is somehow > >> not a part of application" just doesn't make sense. > > > > So let's see, the things that make up a "style" in gtkrc are colors > > and style properties. Any special-casing above (or rather below) that > > is up to the theme engine and thus can't really be trusted. Colors are > > grouped by functionality into fg, bg, base and text (as well as the > > various computed colors from those). Those have clear meanings, and > > should provide enough distinct colors for most widgets. If not, you > > must rely on custom style properties and accept that it might not > > match the theme. There is no way around this (other than calculating > > the color, but that might be less than pleasing visually). > > > > If a widget goes bonkers because a style property had the default > > value, maybe the default value should be made more sensible? > > Until gtk-2.12 there was no API to set cursor color. Try a textview > with black background and black cursor and you'll see what I'm > talking about ;)
But I don't understand why this has anything to do with widget names? If you set black on black, it'll be black on black even if you widget is named "GreyOnWhite". > Try to get tooltips yellow color from a theme, without using > "gtk-tooltips" name. But GtkBuilder doesn't touch that name? So why would it break? > And of course those custom style properties won't match theme, > why would one change them otherwise? Thing is, sometimes you > do need to change those style properties, and it is *not* something > wrong or evil. Let me see if I can list the cases where this is neccessary: - You implemented your custom widget and it needs style -> match by *.class - You implemented a custom container and wish to give style to the children -> match by *.class.child_class - You implemented a custom widget with internal children and they need style -> name the internal child whatever and match by name - You need to set style to it here but not there -> name the widget you get from GtkBuilder and match by name Is there other cases, and why do they break down if GtkBuilder sets the name? > > You said that matching the widgets in gtkrc would be a problem and in > > the part that you didn't include here I told you it's not: > > > > "A quick test shows that I can indeed match my widget by the fancy name > > I gave it in the code in a gtkrc, while the lookup returns the correct > > object with the xml id." > > > > Did I miss something obvious here? Or did you? > > > > Set widget name in constructor or init(), then create this widget with > GtkBuilder. > Yeah, "semi-broken". Why is that preferrable over matching by the widget class name? -- Kalle Vahlman, [EMAIL PROTECTED] Powered by http://movial.fi Interesting stuff at http://syslog.movial.fi _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list