Matthew Beckler wrote:

Hello everyone,

I have seen in various places that you can create your programs by
extending the basic Gtk.Window, but you can also just create a new
instance of a window. I am wondering which is the 'more correct' way to
do this. I have included equivalent examples for both ways.

Inheriting from Gtk.Window:

class MyWindow : Gtk.Window
{
        public MyWindow () : base ("Driver")
        {
this.Title = "This is the title of MyWindow"; this.SetDefaultSize (400, 300);
                this.DeleteEvent += new DeleteEventHandler
(OnMyWindowDelete);

                Label label = new Label("This label is the only thing
here");
                this.Add(label);
                this.ShowAll ();
        }
        
        private void OnMyWindowDelete (object o, DeleteEventArgs args)
        {
                Application.Quit ();
                args.RetVal = true;
        }
        
        [STAThread]
static void Main(string[] args) {
                Application.Init();
                new MyWindow();
                Application.Run();
        }
}

Creating a new Gtk.Window:

class MyWindow
{
        private static void OnMyWindowDelete (object o, DeleteEventArgs
args)
        {
                Application.Quit ();
                args.RetVal = true;
        }
[STAThread] static void Main(string[] args) {
                Application.Init();

                Gtk.Window win = new Window("This is the title of
MyWindow");
win.Title = "This is the title of MyWindow"; win.SetDefaultSize (400, 300);
                win.DeleteEvent += new DeleteEventHandler
(OnMyWindowDelete);

                Label label = new Label("This label is the only thing
here");
                win.Add(label);
                win.ShowAll ();
                Application.Run();
        }
}

Again, I am wondering which way I should be doing things.

Thanks in advance,

Matthew

_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list



Hello,

Personally I think the 1st is better, because you can split your code into different files, eg have a file mainwindow.cs which just takes care of the main window. This way you can separate the application into modules and manage it more efficiently. It would be much easier just to edit this file when you want to change something on the main window instead of opening a huge main.cs and crawling through all the different bits etc. So clearly model #1 is the winner for any real life application. If you're just playing with eg GTK#, i think model #2 is much better - just chuck all the functions, objects etc in one file and play with it. But generally, avoid spaghetti code.

Regards
_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to