On Sun, Jul 8, 2012 at 7:40 PM, Torsten Schoenfeld <kaffeeti...@gmx.de>wrote:
> On 08.07.2012 05:20, Daniel Kasak wrote: > >> One of my Gtk2 projects has some customer CellRenderers. I've done the >> basic s/Gtk2/Gtk3/ on everything ... and now my treeview code is dying >> with: >> >> GLib-GObject-CRITICAL **: Object class My__CellEditableText doesn't >> implement property 'editing-canceled' from interface 'GtkCellEditable' >> at >> /usr/lib64/perl5/vendor_perl/**5.12.4/x86_64-linux-thread-** >> multi/Glib/Object/Subclass.pm >> line 233. >> > > That's just a (strong) warning, your program will normally not exit due to > this. Also, if your gtk+ >= 2.20, you will also get this warning with Gtk2. Ah. Fair enough. I should fix the Gtk2 version too then. Yeah now I look closer, I see it's finally bailing out for another reason :/ Are there any docs on this ( ie what's required when subclassing a >> GtkCellEditable ) ... or even better ... what's changed between Gtk2 and >> Gtk3 more generally? >> > > Well, what is required to implement an interface actually depends on the > interface. There is some general documentation at < > http://developer.gnome.org/**gobject/stable/howto-**interface.html<http://developer.gnome.org/gobject/stable/howto-interface.html>>, > but much of it shows boilerplate code that Glib::Object::Subclass handles > for you already. For GtkCellEditable, it seems like nothing is really > required, the default implementations are sufficient. If you wanted to > pass such an editable to code that assumes a fully general editable, maybe > something would break, I'm not sure. > > To get rid of the property warning, you would use > > use Glib::Object::Subclass > Gtk2::TextView::, > properties => [ > Glib::ParamSpec->boolean ( > 'editing-canceled', > 'Editing canceled', > 'Editing canceled', > Glib::FALSE, > [qw/readable writable/] > ), > ], > interfaces => [ Gtk2::CellEditable:: ]; > > But that doesn't currently work correctly, at least on my machine, because > the order that the 'properties' and 'interfaces' args from above reach the > type registration machinery is currently random. The warning occurs if > 'interfaces' is processed before 'properties'. The attached patch to Glib > fixes this for me. > > Also, this warning would not occur if Glib handled interface properties > more smartly: > <http://bugzilla.gnome.org/**show_bug.cgi?id=570792<http://bugzilla.gnome.org/show_bug.cgi?id=570792> > >. > > For now, I think it's safe for you to ignore this warning. > Thankyou very much for looking into this and giving a detailed answer, Torsten. Much appreciated. Dan
_______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-perl-list