On Wed, 20 Dec 2006, Mark McLoughlin wrote: > Hi Tim, > Just a couple of things I'm confused about: > > - How does this work for interface types? > > e.g. I can understand how you might want to replace GtkEntry's > editable interface, but not how you'd appoint an implementation type > for GTK_TYPE_EDITABLE
you can't use it to replace the editable interface, however suppose gtk+ offered this API: GType gtk_editable_get_type (void) { [...] /* apppoint default implementation type for gtk_editable_new() */ g_factory_appoint (GTK_TYPE_EDITABLE, GTK_TYPE_ENTRY); return type; } /* create a stock gtk widget to display and edit text */ GtkWidget* gtk_editable_new (void) { /* this relies on an implementation type being appointed for GtkEditable */ return g_factory_create (GTK_TYPE_EDITABLE, NULL); } you could use gtk_editable_new() to create a widget conforming to GtkEditable to display and edit text. however, you can still appoint a type other than the stock GtkEntry widget as a platform vendor to be created by calls to gtk_editable_new(). of course, the same will be possible for gtk_entry_new(), i just meant to extend on your interface example. the above interface implementation appointing seems particularly suited for future dialog types. > - How does this work for application derived types? > > e.g. if vino derives from GtkLabel to make a label which looks like > a clickable URL, then even if it is instantiated using > g_factory_create() a gtk theme module will not be able to replace > it given the fact it does not have access to the derived gtype a theme has many other means to affect widget look or behavior. it is not meant to appoint new widget types. or - if you have a use case for this, please elaborate. > Thanks, > Mark. --- ciaoTJ _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list