[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gtk-devel
Subject:    Re: Pluggable widget types and implementations
From:       Tim Janik <timj () imendio ! com>
Date:       2006-11-28 17:41:23
Message-ID: Pine.LNX.4.62.0611281831390.1944 () master ! birnet ! private
[Download RAW message or body]

On Tue, 28 Nov 2006, Murray Cumming wrote:

> On Tue, 2006-11-28 at 15:03 +0000, Ross Burton wrote:
>> On Tue, 2006-11-28 at 14:53 +0100, Tim Janik wrote:
>>> Resulting in gtk_file_selection_new() to return objects of the custom type
>>> gtkfileselector_derived_type, and gtk_printer_selection_new() to return
>>> objects of the custom type iface_implementation_type.
>>
>> How would this interact with libglade/GtkBuilder, where dialogs are
>> created at runtime?  I'm guessing that GtkBuilder uses g_object_new() to
>> construct the objects.
>
> This would also be an issue for language bindings. By convention, the
> _new() functions are considered as mere C convenience functions, and
> many language bindings (and some C applications) just use g_object_new()
> directly.

i guess that depends on whether the language binding means to provide a
function LB_create_exactly_type_foo(), which would remain to be a call
to g_object_new (TYPE_FOO, NULL); or whether it wants to provide
LB_create_compatible_with_type_foo(), which would be gtk_foo_new().

> If you want to replace implementations of GTypes, I think it would be
> simplest to change the associations inside the GType system.

this would break perfectly valid assumptions like:
   G_TYPE_FROM_INSTANCE (g_object_new (TYPE_FOO, NULL)) == TYPE_FOO.
same for classes, etc.

if at all, this would have to be a new libgobject function, like
(brainstorming some here):

   g_factory_create (TYPE_FOO, NULL); // returns TYPE_FOO object

   g_factory_appoint_type (TYPE_FOO, TYPE_BAR); // TYPE_BAR is_a TYPE_FOO

   g_factory_create (TYPE_FOO, NULL); // now returns TYPE_BAR object

> -- 
> Murray Cumming

---
ciaoTJ
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic