2006-04-12 Peter Dennis Bartok <pbartok@novell.com>
authorPeter Dennis Bartok <pbartok@mono-cvs.ximian.com>
Wed, 12 Apr 2006 23:01:45 +0000 (23:01 -0000)
committerPeter Dennis Bartok <pbartok@mono-cvs.ximian.com>
Wed, 12 Apr 2006 23:01:45 +0000 (23:01 -0000)
* TextBox.cs: Implemented context menu

svn path=/trunk/mcs/; revision=59429

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs

index 3cab333391e7cb8ea3a7658e6d20389c5a6eea47..c005e9e37736d40d80c560ceb2b60d1a303cc5f3 100644 (file)
@@ -1,3 +1,7 @@
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * TextBox.cs: Implemented context menu
+
 2006-04-12  Mike Kestner  <mkestner@novell.com>
 
        * ListView.cs: implement box selection. fixes #77838.
index fb10abc6f7a211314d3472b6aec94e98ebb3d7ad..ed9bb0bacf6bcdb52eeb854362d105eded18d781 100644 (file)
@@ -33,8 +33,19 @@ using System.Drawing;
 
 namespace System.Windows.Forms {
        public class TextBox : TextBoxBase {
+               #region Variables
+               private ContextMenu     menu;
+               private MenuItem        undo;
+               private MenuItem        cut;
+               private MenuItem        copy;
+               private MenuItem        paste;
+               private MenuItem        delete;
+               private MenuItem        select_all;
+               #endregion      // Variables
+
                #region Public Constructors
                public TextBox() {
+
                        scrollbars = RichTextBoxScrollBars.None;
                        alignment = HorizontalAlignment.Left;
                        this.LostFocus +=new EventHandler(TextBox_LostFocus);
@@ -43,6 +54,24 @@ namespace System.Windows.Forms {
 
                        SetStyle (ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, false);
                        SetStyle (ControlStyles.FixedHeight, true);
+
+                       undo = new MenuItem(Locale.GetText("&Undo"));
+                       cut = new MenuItem(Locale.GetText("Cu&t"));
+                       copy = new MenuItem(Locale.GetText("&Copy"));
+                       paste = new MenuItem(Locale.GetText("&Paste"));
+                       delete = new MenuItem(Locale.GetText("&Delete"));
+                       select_all = new MenuItem(Locale.GetText("Select &All"));
+
+                       menu = new ContextMenu(new MenuItem[] { undo, new MenuItem("-"), cut, copy, paste, delete, new MenuItem("-"), select_all});
+                       ContextMenu = menu;
+
+                       menu.Popup += new EventHandler(menu_Popup);
+                       undo.Click += new EventHandler(undo_Click);
+                       cut.Click += new EventHandler(cut_Click);
+                       copy.Click += new EventHandler(copy_Click);
+                       paste.Click += new EventHandler(paste_Click);
+                       delete.Click += new EventHandler(delete_Click);
+                       select_all.Click += new EventHandler(select_all_Click);
                }
                #endregion      // Public Constructors
 
@@ -234,5 +263,53 @@ namespace System.Windows.Forms {
                #region Events
                public event EventHandler TextAlignChanged;
                #endregion      // Events
+
+               #region Private Methods
+               private void menu_Popup(object sender, EventArgs e) {
+                       if (SelectionLength == 0) {
+                               cut.Enabled = false;
+                               copy.Enabled = false;
+                       } else {
+                               cut.Enabled = true;
+                               copy.Enabled = true;
+                       }
+
+                       if (SelectionLength == TextLength) {
+                               select_all.Enabled = false;
+                       } else {
+                               select_all.Enabled = true;
+                       }
+
+                       if (!CanUndo) {
+                               undo.Enabled = false;
+                       } else {
+                               undo.Enabled = true;
+                       }
+               }
+
+               private void undo_Click(object sender, EventArgs e) {
+                       Undo();
+               }
+
+               private void cut_Click(object sender, EventArgs e) {
+                       Cut();
+               }
+
+               private void copy_Click(object sender, EventArgs e) {
+                       Copy();
+               }
+
+               private void paste_Click(object sender, EventArgs e) {
+                       Paste();
+               }
+
+               private void delete_Click(object sender, EventArgs e) {
+                       SelectedText = "";
+               }
+
+               private void select_all_Click(object sender, EventArgs e) {
+                       SelectAll();
+               }
+               #endregion      // Private Methods
        }
 }