From 960dbb8c7af8db710909dd092e9bc4c5b72590c9 Mon Sep 17 00:00:00 2001 From: Duncan Mak Date: Wed, 24 Jul 2002 14:06:07 +0000 Subject: [PATCH] New GUI. Go! Go! Go! svn path=/trunk/gtk-sharp/; revision=6135 --- sample/DbClient/Makefile | 4 +- sample/DbClient/client.cs | 211 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 213 insertions(+), 2 deletions(-) create mode 100644 sample/DbClient/client.cs diff --git a/sample/DbClient/Makefile b/sample/DbClient/Makefile index 8ca8054f3..195a18330 100644 --- a/sample/DbClient/Makefile +++ b/sample/DbClient/Makefile @@ -1,12 +1,12 @@ MCS=mcs -REFERENCES= glib-sharp gdk-sharp gtk-sharp gnome-sharp System.Data +REFERENCES= glib-sharp gdk-sharp gtk-sharp gnome-sharp System.Data System.Drawing ### REFS= $(addsuffix .dll, $(addprefix /r:, $(REFERENCES))) all: - $(MCS) $(REFS) DbClient.cs + $(MCS) $(REFS) client.cs clean: rm -f *.exe *.pdb diff --git a/sample/DbClient/client.cs b/sample/DbClient/client.cs new file mode 100644 index 000000000..96e986d84 --- /dev/null +++ b/sample/DbClient/client.cs @@ -0,0 +1,211 @@ +using System; +using System.Drawing; +using Gtk; +using GtkSharp; + +class Client { + + static Window window = null; + static Dialog dialog = null; + static Toolbar toolbar = null; + static Table tableau = null; + + static void Main () + { + Application.Init (); + window = new Window ("Database client"); + window.DeleteEvent += new DeleteEventHandler (Window_Delete); + window.DefaultSize = new Size (300, 200); + + VBox box = new VBox (false, 0); + window.Add (box); + + toolbar = new Toolbar (); + PackToolbar (); + box.PackStart (toolbar, false, false, 0); + + tableau = CreateView (); + box.PackStart (tableau, false, false, 0); + + window.ShowAll (); + Application.Run (); + } + + static void PackToolbar () + { + toolbar.AppendItem ("Insert", "Insert a row", String.Empty, + new Gtk.Image (Stock.Add, IconSize.LargeToolbar), + new SignalFunc (Db_Insert), IntPtr.Zero); + + toolbar.AppendItem ("Remove", "Remove a row", String.Empty, + new Gtk.Image (Stock.Remove, IconSize.LargeToolbar), + new SignalFunc (Db_Remove), IntPtr.Zero); + + toolbar.AppendItem ("Update", "Update the view", String.Empty, + new Gtk.Image (Stock.Refresh, IconSize.LargeToolbar), + new SignalFunc (Db_Update), IntPtr.Zero); + + toolbar.AppendSpace (); + + toolbar.InsertStock (Stock.Quit, "Quit", String.Empty, + new SignalFunc (Quit), IntPtr.Zero, -1); + + toolbar.ToolbarStyle = ToolbarStyle.BothHoriz; + } + + static void Window_Delete (object o, DeleteEventArgs args) + { + Application.Quit (); + args.RetVal = true; + } + + static Gtk.Table CreateView () + { + Table t = new Gtk.Table (0, 2, true); + DrawTitles (t); + t.ColSpacings = 10; + + return t; + } + + static void DrawTitles (Table t) + { + Label label = null; + + label = new Label (String.Empty); + label.Markup = "ID"; + label.UseMarkup = true; + + t.Attach (label, 0, 1, 0, 1, AttachOptions.Expand, AttachOptions.Expand, 1, 1); + + label = new Label (String.Empty); + label.Markup = "Name"; + label.UseMarkup = true; + t.Attach (label, 0, 2, 0, 1, AttachOptions.Expand, AttachOptions.Expand, 1, 1); + + label = new Label (String.Empty); + label.Markup = "Address"; + label.UseMarkup = true; + t.Attach (label, 0, 3, 0, 1, AttachOptions.Expand, AttachOptions.Expand, 1, 1); + } + + static void UpdateView (Record [] records) + { + + } + + static void Db_Insert () + { + dialog = new Dialog (); + dialog.Title = "Insert row"; + dialog.VBox.BorderWidth = 5; + + dialog.VBox.PackStart (DrawForm (Stock.Add), true, true, 0); + + Button button = null; + button = new Button ("_Insert"); + button.Clicked += new EventHandler (Insert_Action); + button.CanDefault = true; + dialog.ActionArea.PackStart (button, true, true, 0); + button.GrabDefault (); + + button = new Button ("_Cancel"); + button.Clicked += new EventHandler (Dialog_Cancel); + dialog.ActionArea.PackStart (button, true, true, 0); + + dialog.ShowAll (); + } + + static void Db_Remove () + { + dialog = new Dialog (); + dialog.Title = "Remove row"; + dialog.VBox.BorderWidth = 5; + + dialog.VBox.PackStart (DrawForm (Stock.Remove), true, true, 0); + + Button button = null; + button = new Button ("_Remove"); + button.Clicked += new EventHandler (Remove_Action); + button.CanDefault = true; + dialog.ActionArea.PackStart (button, true, true, 0); + button.GrabDefault (); + + button = new Button ("_Cancel"); + button.Clicked += new EventHandler (Dialog_Cancel); + dialog.ActionArea.PackStart (button, true, true, 0); + + dialog.ShowAll (); + + } + + static Widget DrawForm (string image) + { + HBox hbox = new HBox (false, 2); + hbox.PackStart (new Gtk.Image (image, IconSize.Dialog), true, true, 0); + + Table table = new Table (3, 3, false); + hbox.PackStart (table); + table.ColSpacings = 4; + table.RowSpacings = 4; + Label label = null; + Gtk.Entry entry = null; + + label = Label.NewWithMnemonic ("_ID"); + table.Attach (label, 0, 1, 0, 1); + entry = new Entry (); + table.Attach (entry, 1, 2, 0, 1); + + label = Label.NewWithMnemonic ("_Name"); + table.Attach (label, 0, 1, 1, 2); + entry = new Entry (); + table.Attach (entry, 1, 2, 1, 2); + + label = Label.NewWithMnemonic ("_Address"); + table.Attach (label, 0, 1, 2, 3); + entry = new Entry (); + table.Attach (entry, 1, 2, 2, 3); + + + return hbox ; + } + + static void Db_Update () + { + } + + static void Quit () + { + Application.Quit (); + } + + static void Insert_Action (object o, EventArgs args) + { + } + + static void Remove_Action (object o, EventArgs args) + { + } + + static void Dialog_Cancel (object o, EventArgs args) + { + dialog.Destroy (); + dialog = null; + } + + +} + +struct Record { + + public int ID; + public string Name; + public string Address; + + public Record (int i, string s, string t) + { + ID = i; + Name = s; + Address = t; + } +}