GtkSharp/sample/GtkDemo/DemoApplicationWindow.cs
John Luke 39b871d786 implement most of it
svn path=/trunk/gtk-sharp/; revision=19600
2003-11-03 22:05:06 +00:00

112 lines
2.8 KiB
C#

//
// ApplicationWindow.cs, port of appwindow.c from gtk-demo
//
// Author: Daniel Kornhauser <dkor@alum.mit.edu>
//
// Copyright (C) 2003, Ximian Inc.
/* Application main window
*
* Demonstrates a typical application window, with menubar, toolbar, statusbar.
*/
// : - Is this necesary? /* Set up item factory to go away with the window */
using System;
using Gtk;
using GtkSharp;
namespace GtkDemo
{
public class DemoApplicationWindow
{
private Gtk.Window window;
// static ItemFactoryEntry items[] = { new ItemFactoryEntry ("/_File", null, 0, 0, "<Branch>" )};
public DemoApplicationWindow ()
{
window = new Gtk.Window ("Demo Application Window");
window.SetDefaultSize (400, 300);
window.DeleteEvent += new DeleteEventHandler (WindowDelete);
VBox vbox = new VBox (false, 0);
window.Add (vbox);
// Create the menubar
AccelGroup accelGroup = new AccelGroup ();
window.AddAccelGroup (accelGroup);
MenuBar menubar = CreateMenu ();
vbox.PackStart (menubar, false, false, 0);
Toolbar toolbar = CreateToolbar ();
vbox.PackStart (toolbar, false, false, 0);
TextView textview = new TextView ();
vbox.PackStart (textview, true, true, 0);
Statusbar statusbar = new Statusbar ();
statusbar.Push (1, "Cursor at row 0 column 0 - 0 chars in document");
vbox.PackStart (statusbar, false, false, 0);
//ItemFactory itemFactory = new ItemFactory (typeof (MenuBar),"<main>", accelGroup);
// static ItemFactoryEntry items[] = { new ItemFactoryEntry ("/_File", null, 0, 0, "<Branch>" )};
// Set up item factory to go away with the window
// Is this necesary ?
// create menu items
//STUCK : Didn't find any examples of ItemFactory
window.ShowAll ();
}
private MenuBar CreateMenu ()
{
MenuBar menubar = new MenuBar ();
MenuItem file = new MenuItem ("File");
menubar.Append (file);
return menubar;
}
private Toolbar CreateToolbar ()
{
Toolbar toolbar = new Toolbar ();
Button open = Button.NewFromStock (Stock.Open);
open.Clicked += new EventHandler (OnToolbarClicked);
toolbar.AppendWidget (open, "Open", "Open");
Button quit = Button.NewFromStock (Stock.Quit);
quit.Clicked += new EventHandler (OnToolbarClicked);
toolbar.AppendWidget (quit, "Quit", "Quit");
Button gtk = new Button ("Gtk#");
gtk.Clicked += new EventHandler (OnToolbarClicked);
toolbar.AppendWidget (gtk, "Gtk#", "Gtk#");
return toolbar;
}
private void OnToolbarClicked (object o, EventArgs args)
{
MessageDialog md = new MessageDialog (window, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Close, "You selected a toolbar button.");
md.Run ();
md.Hide ();
md.Dispose ();
}
private void WindowDelete (object o, DeleteEventArgs args)
{
window.Hide ();
window.Destroy ();
}
}
}