[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mono-patches
Subject:    [Mono-patches] r67178 - trunk/winforms/toolstrip20
From:       "Jonathan Pobst (monkey () jpobst ! com)" <mono-patches-list () lists ! ximian ! com>
Date:       2006-10-31 15:15:33
Message-ID: 20061031151533.67DEB9472C () mono-cvs ! ximian ! com
[Download RAW message or body]

Author: jpobst
Date: 2006-10-31 10:15:33 -0500 (Tue, 31 Oct 2006)
New Revision: 67178

Modified:
   trunk/winforms/toolstrip20/ToolStripDemo.cs
Log:
2006-10-30  Jonathan Pobst  <monkey@jpobst.com>

        * ToolStripDemo.cs: Update to showcase MenuStrip.

Modified: trunk/winforms/toolstrip20/ToolStripDemo.cs
===================================================================
--- trunk/winforms/toolstrip20/ToolStripDemo.cs	2006-10-31 15:11:28 UTC (rev 67177)
+++ trunk/winforms/toolstrip20/ToolStripDemo.cs	2006-10-31 15:15:33 UTC (rev 67178)
@@ -11,8 +11,8 @@
 		[STAThread]
 		static void Main ()
 		{
-			Application.EnableVisualStyles ();
-			Application.Run (new ToolStripDemo ());
+		        Application.EnableVisualStyles ();
+		        Application.Run (new ToolStripDemo ());
 		}
 
 		private ToolStrip ts;
@@ -20,46 +20,51 @@
 		private string image_path;
 		private ToolStripComboBox tscb;
 		private ToolStripComboBox font_combo;
-
-		public ToolStripDemo()
+		private MenuStrip ms;
+		
+		public ToolStripDemo ()
 		{
-			this.Text = "ToolStrip Sample";
-			this.Size = new Size(750, 450);
+			this.Text = "ToolStrip Notepad Sample";
+			this.Size = new Size (750, 450);
+			this.StartPosition = FormStartPosition.CenterScreen;
 
 			image_path = Path.Combine (Path.GetDirectoryName (Application.ExecutablePath), \
"images");  
 			rtb = new TextBox ();
 			rtb.Multiline = true;
 			rtb.Dock = DockStyle.Fill;
+			rtb.BorderStyle = BorderStyle.FixedSingle;
+			rtb.MouseUp += new MouseEventHandler (rtb_MouseUp);
 			this.Controls.Add (rtb);
-			
+
 			ts = new ToolStrip ();
-			this.Controls.Add(ts);
+			this.Controls.Add (ts);
 
 			Image image1 = Image.FromFile (Path.Combine (image_path, "document-new.png"));
-			ToolStripButton tb1 = new ToolStripButton ("New Document", image1, new \
EventHandler (New_Document_Clicked)); +			ToolStripButton tb1 = new ToolStripButton \
("&New Document", image1, new EventHandler (New_Document_Clicked));  tb1.DisplayStyle \
= ToolStripItemDisplayStyle.Image;  ts.Items.Add (tb1);
 
 			Image image2 = Image.FromFile (Path.Combine (image_path, "document-open.png"));
-			ToolStripButton tb2 = new ToolStripButton ("Open Document", image2, new \
EventHandler (Open_Document_Clicked)); +			ToolStripButton tb2 = new ToolStripButton \
("&Open Document", image2, new EventHandler (Open_Document_Clicked));  \
tb2.DisplayStyle = ToolStripItemDisplayStyle.Image;  ts.Items.Add (tb2);
 
 			Image image3 = Image.FromFile (Path.Combine (image_path, "document-save.png"));
-			ToolStripButton tb3 = new ToolStripButton ("Save Document", image3, new \
EventHandler (Save_Document_Clicked)); +			ToolStripButton tb3 = new ToolStripButton \
("&Save Document", image3, new EventHandler (Save_Document_Clicked));  \
tb3.DisplayStyle = ToolStripItemDisplayStyle.Image;  ts.Items.Add (tb3);
-			
-			ts.Items.Add(new ToolStripSeparator());
 
+			ts.Items.Add (new ToolStripSeparator ());
+
 			Image image5 = Image.FromFile (Path.Combine (image_path, "edit-cut.png"));
-			ToolStripButton tb5 = new ToolStripButton ("Cut", image5, new EventHandler \
(Cut_Clicked)); +			ToolStripButton tb5 = new ToolStripButton ("Cut", image5, new \
EventHandler (Cut_Clicked), "Cut");  tb5.DisplayStyle = \
ToolStripItemDisplayStyle.Image; +			tb5.Enabled = false;
 			ts.Items.Add (tb5);
 
 			Image image6 = Image.FromFile (Path.Combine (image_path, "edit-copy.png"));
-			ToolStripButton tb6 = new ToolStripButton ("Copy", image6, new EventHandler \
(Copy_Clicked)); +			ToolStripButton tb6 = new ToolStripButton ("Copy", image6, new \
EventHandler (Copy_Clicked), "Copy");  tb6.DisplayStyle = \
ToolStripItemDisplayStyle.Image;  ts.Items.Add (tb6);
 
@@ -102,18 +107,86 @@
 
 			ts.Items.Add (tscb);
 
-			ToolStripLabel tsl2 = new ToolStripLabel("Button Style:");
-			ts.Items.Add (tsl2);
-
 			Image image10 = Image.FromFile (Path.Combine (image_path, \
                "image-x-generic.png"));
-			ToolStripButton tb10 = new ToolStripButton ("Style", image10, new \
                EventHandler(Change_Style_Clicked));
-			tb10.DisplayStyle = ToolStripItemDisplayStyle.Image;
-			ts.Items.Add (tb10);
 
 			font_combo.SelectedIndex = font_combo.FindStringExact (rtb.Font.Name);
-			tscb.SelectedIndex = tscb.FindStringExact (rtb.Font.Size.ToString());
+			tscb.SelectedIndex = tscb.FindStringExact (rtb.Font.Size.ToString ());
+
+			ms = new MenuStrip ();
+			ms.Dock = DockStyle.Top;
+			this.Controls.Add (ms);
+
+			// Top level menu
+			ToolStripMenuItem mi = new ToolStripMenuItem ("File");
+			ToolStripMenuItem mi2 = new ToolStripMenuItem ("Edit");
+			ToolStripMenuItem mi3 = new ToolStripMenuItem ("View");
+			ToolStripMenuItem mi4 = new ToolStripMenuItem ("Tools");
+			ToolStripMenuItem mi5 = new ToolStripMenuItem ("Help");
+			ms.Items.Add (mi);
+			ms.Items.Add (mi2);
+			ms.Items.Add (mi3);
+			ms.Items.Add (mi4);
+			ms.Items.Add (mi5);
+
+			// File menu items
+			mi.DropDownItems.Add ("New", image1, new EventHandler (New_Document_Clicked));
+			mi.DropDownItems.Add ("Open", image2, new EventHandler (Open_Document_Clicked));
+			mi.DropDownItems.Add ("Save", image3, new EventHandler (Save_Document_Clicked));
+			mi.DropDownItems.Add ("-");
+			mi.DropDownItems.Add ("Exit", null, new EventHandler (Exit_Clicked));
+
+			// Edit menu items
+			mi2.DropDownItems.Add ("Undo", null, new EventHandler (Undo_Clicked));
+			mi2.DropDownItems.Add ("-");
+			mi2.DropDownItems.Add ("Cut", image5, new EventHandler (Cut_Clicked)).Name = \
"Cut"; +			mi2.DropDownItems.Add ("Copy", image6, new EventHandler \
(Copy_Clicked)).Name = "Copy"; +			mi2.DropDownItems.Add ("Paste", image7, new \
EventHandler (Paste_Clicked)); +			
+			// View menu items
+			ToolStripMenuItem WordWrapMenuItem = (ToolStripMenuItem)mi3.DropDownItems.Add \
("Word Wrap"); +			WordWrapMenuItem.CheckOnClick = true;
+			WordWrapMenuItem.CheckedChanged += new EventHandler (WordWrap_CheckStateChanged);
+			WordWrapMenuItem.Checked = true;
+
+			ToolStripMenuItem ToolStripStyleMenuItem = \
(ToolStripMenuItem)mi3.DropDownItems.Add ("ToolStrip Style", image10); +			
+			// ToolStripStyle sub menu items
+			ToolStripStyleMenuItem.DropDownItems.Add ("Image", null, new EventHandler \
(Change_Style_Clicked)); +			ToolStripStyleMenuItem.DropDownItems.Add ("Image and \
Text", null, new EventHandler (Change_Style_Clicked)); \
+			ToolStripStyleMenuItem.DropDownItems.Add ("Text", null, new EventHandler \
(Change_Style_Clicked)); +			ToolStripStyleMenuItem.DropDownItems.Add ("None", null, \
new EventHandler (Change_Style_Clicked)); +			
+			(ToolStripStyleMenuItem.DropDownItems[0] as ToolStripMenuItem).Checked = true;
+			
+			// Help menu items
+			mi5.DropDownItems.Add ("Contents", null, new EventHandler (NotImplemented));
+			mi5.DropDownItems.Add ("Search", null, new EventHandler (NotImplemented));
+			mi5.DropDownItems.Add ("-");
+			mi5.DropDownItems.Add ("About", null, new EventHandler (NotImplemented));
+			
+			rtb_MouseUp (null, null);
 		}
-		
+
+		void rtb_MouseUp (object sender, MouseEventArgs e)
+		{
+			bool enabled = rtb.SelectionLength > 0;
+
+			ts.Items["Cut"].Enabled = enabled;
+			ts.Items["Copy"].Enabled = enabled;
+			(ms.Items[1] as ToolStripMenuItem).DropDownItems["Cut"].Enabled = enabled;
+			(ms.Items[1] as ToolStripMenuItem).DropDownItems["Copy"].Enabled = enabled;
+		}
+
+		void WordWrap_CheckStateChanged (object sender, EventArgs e)
+		{
+			rtb.WordWrap = (sender as ToolStripMenuItem).Checked;
+		}
+
+		void Exit_Clicked (object sender, EventArgs e)
+		{
+			this.Close();
+		}
+
 		void font_combo_SelectedIndexChanged (object sender, EventArgs e)
 		{
 			if (font_combo.SelectedIndex >= 0)
@@ -123,23 +196,22 @@
 		void tscb_SelectedIndexChanged (object sender, EventArgs e)
 		{
 			if (tscb.SelectedIndex >= 0)
-				rtb.Font = new Font (rtb.Font.Name, float.Parse(tscb.SelectedItem.ToString()));
+				rtb.Font = new Font (rtb.Font.Name, float.Parse (tscb.SelectedItem.ToString \
()));  }
 
 		public void New_Document_Clicked (object sender, EventArgs e)
 		{
-			rtb.Clear();
-		}	
-		
+			rtb.Clear ();
+		}
+
 		public void Open_Document_Clicked (object sender, EventArgs e)
 		{
-			OpenFileDialog ofd = new OpenFileDialog();
-			
-			if (ofd.ShowDialog() == DialogResult.OK)
-			{
-				StreamReader sr = new StreamReader(ofd.OpenFile());
-				rtb.Text = sr.ReadToEnd();
-				sr.Close();
+			OpenFileDialog ofd = new OpenFileDialog ();
+
+			if (ofd.ShowDialog () == DialogResult.OK) {
+				StreamReader sr = new StreamReader (ofd.OpenFile ());
+				rtb.Text = sr.ReadToEnd ();
+				sr.Close ();
 			}
 		}
 
@@ -149,37 +221,66 @@
 
 			if (sfd.ShowDialog () == DialogResult.OK) {
 				StreamWriter sw = new StreamWriter (sfd.OpenFile ());
-				sw.Write(rtb.Text);
-				sw.Close();
+				sw.Write (rtb.Text);
+				sw.Close ();
 			}
 		}
 
+		public void Undo_Clicked (object sender, EventArgs e)
+		{
+			rtb.Undo ();
+		}
+		
 		public void Cut_Clicked (object sender, EventArgs e)
 		{
-			rtb.Cut();
+			rtb.Cut ();
 		}
 
 		public void Copy_Clicked (object sender, EventArgs e)
 		{
-			rtb.Copy();
+			rtb.Copy ();
 		}
 
 		public void Paste_Clicked (object sender, EventArgs e)
 		{
-			rtb.Paste();
+			rtb.Paste ();
 		}
 
 		public void Change_Style_Clicked (object sender, EventArgs e)
 		{
-			int style = (int)ts.Items[0].DisplayStyle + 1;
+			ToolStripMenuItem tsi = (ToolStripMenuItem)sender;
 			
-			if (style > 3)
-				style = 1;
+			foreach (ToolStripMenuItem tsi2 in (tsi.OwnerItem as \
ToolStripMenuItem).DropDownItems) +				tsi2.Checked = false;
 				
-			foreach (ToolStripItem tsi in ts.Items)
-				if (tsi is ToolStripButton)
-					tsi.DisplayStyle = (ToolStripItemDisplayStyle)style;
+			tsi.Checked = true;
+
+			ToolStripItemDisplayStyle style;
+			
+			switch (tsi.Text) {
+				case "Image":
+				default:
+					style = ToolStripItemDisplayStyle.Image;
+					break;
+				case "Image and Text":
+					style = ToolStripItemDisplayStyle.ImageAndText;
+					break;
+				case "Text":
+					style = ToolStripItemDisplayStyle.Text;
+					break;
+				case "None":
+					style = ToolStripItemDisplayStyle.None;
+					break;
+			}
+			
+			foreach (ToolStripItem tsi2 in ts.Items)
+				if (tsi2 is ToolStripButton)
+					tsi2.DisplayStyle = style;
 		}
 
+		public void NotImplemented (object sender, EventArgs e)
+		{
+			MessageBox.Show ("Nothing to see here");
+		}
 	}
 }

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic