Kalle Vahlman wrote: > 2007/6/13, Yevgen Muntyan <[EMAIL PROTECTED]>: > >> Right, GtkUIManager as well as libglade hardly use non-stock >> widgets now (see above). How many glade files use GtkSourceView >> for instance? (or GtkUIManager xml description, for that matter) >> > > I would assume 0 for UIManager descriptions, since it's not possible > to make it do anything sensible. Libglade doesn't support it in any > shape or form AFAIK (as it doesn't do objects). > > >> Programmers are also not supposed to set style properties. Nevertheless >> it happens, and widget name is one of tools for that. It is a documented >> use which shouldn't break, isn't it? >> How do you draw the line between "implementation of a widget" and >> "an application" part exactly? Note that what you said makes it look >> like calling gtk_widget_set_name() by a widget implementation is >> not supposed to happen; while doing it by GtkBuilder is indeed right >> and good; is it quite logical? GtkBuilder is more a user than the widget? >> > > Yes, since GtkBuilder doesn't decide the name, the user does.
User chooses a different thing in glade. Name in glade xml is a *unique in given widget hierarchy* (and may or may not be unique in the application) identifier for a widget, as in glade_xml_get_widget(given_xml_object, name). Name used in gtk_widget_set_name() used to modify style is an identifier used to find widget style, which again may or may not be unique depending on what you want. "gtk-tooltip" is a nice example of non-unique name ("nice" as in "people do want yellow stuff and use this hack despite any reasons to avoid such a hack"); I modify cursor color on per-widget basis, so I use name like g_strdup_printf("class-name-%p", widget); > Widgets > that rely on their name will break upon setting the name whether it is > the user with set_name() or the builder setting it, so there is no > reason to avoid this in GtkBuilder. > Unless you want to use gtk_widget_set_name() to modify widget style. > If a widget breaks down when you change the name, it's a bug in the > widget right? > Not right simply because it is documented that widget name is used for widget style, and if someone changes it then he gets documented consequence - different style. It rather sucks, but what can you do? We don't have other way to modify widget style; and even for simple things API like gtk_widget_modify_bg isn't enough: "gtk-tooltips" name is the only way to get real tooltips yellow color. Two different things are mixed here - name as in glade xml and name as in gtk_rc_get_style_by_paths(). And it's not good to mix these things. I guess gtk_widget_set_name() is abused in libglade and ui manager because nobody wants to add extra pointer to every widget, and because people want gtk_widget_get_name() to return "widget name", i.e. the name from glade file (naturally, what else could "widget name" mean if glade says "name"). Did you grep only gtk sources by the way? Because it doesn't make much sense, gtk can do anything and won't break. google and different applications are better. Best regards, Yevgen _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list