New 'GObject' as base for GtkObject?



I've been working on a package recently (GStreamer) that uses the
GtkObject system extensively.  However, that currently ties GStreamer to
X, which isn't an option in the long run, since the objects I create have
nothing themselves to do with graphical interfaces.

What I'd like to propose is that the base GtkObject system as it stands
now be moved into glib and set up as a generic object hierarchy, upon
which GtkObject and other object hierarchies can build.  This system can
then be extended with some of the things I'm needing, such as locking,
either by subclassing or in primary implementation.  It would provide a
general-purpose C object system that can be used without depending on
anything else (like X, or win32 I suppose), and make it a lot easier for
someone trying to build a hierarchy to figure out what on earth needs to
be done (I may write up a tutorial on that someday).

This, I think, would also help another issue I'm struggling with right
now: "easily" creating Perl bindings for the objects.  From the gnome-perl
package it seems as if there is object-system support code scattered all
over the place, making it extremely difficult to figure out how on earth
to create a standalone Perl binding for an object hierarchy such as mine.
With appropriate tools, i.e. a modified form of SWIG, creating bindings
could be truly a piece of cake.

If this is deemed a useful thing (which I hope it is), I'll be glad to
help bring it about, as it would make my life a lot easier.  I think I
understand enough of the GtkObject code to be able to do the initial work
of stripping it out of Gtk and making it generic.

TTYL,
    Omega

         Erik Walthinsen <omega@cse.ogi.edu> - Staff Programmer @ OGI
        Quasar project - http://www.cse.ogi.edu/DISC/projects/quasar/
   Video4Linux Two drivers and stuff - http://www.cse.ogi.edu/~omega/v4l2/
        __
       /  \             SEUL: Simple End-User Linux - http://www.seul.org/
      |    | M E G A           Helping Linux become THE choice
      _\  /_                          for the home or office user



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]