[Mono-docs-list] Re: [Gtk-sharp-list] MonkeyGuide?: Hello World in GNOME.NET - Second Draft

Charles Iliya Krempeaux charles@reptile.ca
16 Feb 2003 23:25:39 -0800


Hello,

On Sun, 2003-02-16 at 21:29, Mike Kestner wrote:
> On Sun, 2003-02-16 at 13:11, Charles Iliya Krempeaux wrote:

[...]


> In the C API, GnomeProgram derives from GObject, so it can be subclassed
> in C.  I am not aware of any C-based applications that subclass
> GnomeProgram. Nautilus doesn't.  Evolution doesn't.  Gnumeric doesn't.
> These flagship GNOME applications make extensive use of the
> object-oriented paradigm through GObjects yet see no advantage to
> subclassing GnomeProgram.   

That's probably because in C, GObject subclassing is a hassle.  (And
in most people's opinions, it's more trouble than it is worth.)  But
in a language like C#, it is very easy.


> > *cough* *cough*  That's why I created that patch for 
> > "gnome/Program.custom".  That way I could "override" the Run()
> > method, and do even more polymorphism.  (It seems stupid that
> > I have to create a new method called run() to take the place
> > of Run().)
> 
> I've been mulling over whether I think it's a good idea to include
> this.  To be honest, I'm more inclined to remove the Gnome.Program.Run
> () and Quit () methods than to make them virtual.  They provide zero
> additional capability over Gtk.Application.Run and Quit and their
> presence in the Gnome.Program class has only managed to infuse confusion
> as to the purpose of the class.  It is not a mainloop management class. 
> It is a library initialization and argument parsing helper.

Why not make put the initialization in a "static constructor"???

I.e., something change Init() to:

    namespace Gtk {

    ...

       public class Application {

        ...

            static Application() {
                // The old contents of Init() go here.
            }


That way you wouldn't even have to call the Init() procedure.
It would automagically get called.


See ya

-- 
     Charles Iliya Krempeaux, BSc
     charles@reptile.ca

________________________________________________________________________
 Reptile Consulting & Services    604-REPTILE    http://www.reptile.ca/