Hello All, Writing custom widgets in Gtk2-perl is easy enough to be useful. What's missing from the distribution is a way to include such widgets in GladeXML files. Therefore I suggest a module to simplify this. To create a glade-aware widget, a statement like: package MyNewWidget; use Gtk2::Ex::GladeCustom my_new_widget => sub { __PACKAGE__->new(@_); }; should be added to the package implementing the widget. Then it can be called in several ways from the Glade file: * The constructor function can contain either: - my_new_widget The closure passed will be called. This works if the function was registered as above. - MyNewWidget::my_new_widget Fully qualified function is looked up in the perl namespace. No need to register it. - MyNewWidget A package-name. This will call MyNewWidget->new, if it exists. * The parameters can be: - The first string parameter is in parenthesis: Then it's expanded to a parameter list (using eval) and passed to the called function. - The four parameters -- string1, string2, int1 and int2 are passed. This way if the widget itself is not glade-aware, the application still can build it. Downside of this is, that once this module is used, custom widgets implemented in C can no longer be called, because the default widget-building function is not available (not even for C programs :-( ) to be used as a callback. I have a code for this module here. I'd like to hear comments to the interface and comments to it's name (Gtk2::Ex::GladeCustom, Gtk2::Ex::GladeXML::Custom, Gtk2::GladeXML::Custom, ... other ideas?). PS: Can I hope to see central distribution for Gtk2::Ex* one day? ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bulb ucw cz>
Attachment:
signature.asc
Description: Digital signature