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 ;)
Try to get tooltips yellow color from a theme, without using
"gtk-tooltips" name.
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.

>
>> > Furthermore, if my (admittedly quick) glance over how the object names
>> > are handled is not misguided, GtkBuilder sets the name once and never
>> > checks it again. It has an internal hash table in which it stores the
>> > id in the xml and all lookups use that instead of referring to the
>> > actual name.
>> >
>> > So even if GtkBuilder sets the initial name to what is in the xml, you
>> > should be able to change it afterwards to whatever you like without
>> > everything going bork bork.
>> >
>>
>> I said already what could be a problem. get_widget_by_name()
>> is irrelevant.
>
> 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".

Yevgen

_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to