On Fri, 2005-07-29 at 17:27 +1000, Richard Cole wrote: > Well you see somewhere in glib the property "font_size" is helpfully > changed to "font-size". (The underscore turned into a dash). I guess so > that if one's code says: > > view.set_property("font-size", 10) > > Then rather than a warning about a non-existent property one will get > what one intended: a change to the font size [1]. > > However this helpfull modification to property names isn't being > performed for signal details. At least not in: glib-2.6.5 as packaged by > debian. So what happens is the property name is being changed to > font-size and the signal being emitted is "notify::font-size", but the > modification to the signal name from "notify::font_size" to > "notify::font-size" is not being performed. > > My guess is that this situation should be fixed so that underscores are > changed to hyphens in each of: property names, signal names, and signal > details. At the moment it seems to be missing on signal details. But > that is a bit of guess. Yes, this is a common problem people have when using ::notify. GTK+ considers - and _ to be equivalent in signal and property names; the reason for this is so that they can be used as identifiers both in languages that use '_' in identifiers (most languages) and languages that use '-' (scheme, lisp, mostly). The '-' is what is used internally, so when GTK+ sees a signal or property name, it converts '_' to '-'. In notify::prop-foo, the signal system doesn't actually know that "prop-foo" is a property name. It's just an arbitrary "detail" string. So, it can't do the conversion. For this reason, I would recommend *always* using '-' in both signal names and property names. > I think it would also be helpfull to put a note about signal names and > this kind of hidden conversion that goes on behind the scenes into the > description part of > > file:///usr/share/doc/libgtk2.0-doc/gobject/gobject-Signals.html > > i.e. from whereever that file is being generated. The GObject docs can be found online at: http://developer.gnome.org/doc/API/2.0/gobject/ They are built as part of the GTK+ distribution. Contributions are always appreciated. (Suggestions for the documentation go in bugzilla.) Regards, Owen
Attachment:
signature.asc
Description: This is a digitally signed message part