Inheritance: Eto.Forms.MenuItem, ISubMenuWidget
示例#1
0
        /// <summary>
        /// Gets the submenu from the collection with the specified text, optionally creating one if not found.
        /// </summary>
        /// <returns>The submenu instance if found, or a new submenu instance added at the specified order.</returns>
        /// <param name="submenuText">Text of the submenu to find or add.</param>
        /// <param name="order">Order of the submenu item to add. Not used if there is already a submenu with the specified text.</param>
        /// <param name="plaintextMatch">If set to <c>true</c>, matches excluding any mnemonic symbol idenfifiers.</param>
        /// <param name="create">If set to <c>true</c>, creates the menu if it doesn't exist in the collection, otherwise <c>false</c>.</param>
        public ButtonMenuItem GetSubmenu(string submenuText, int order = 0, bool plaintextMatch = true, bool create = true)
        {
            if (string.IsNullOrEmpty(submenuText))
            {
                throw new ArgumentOutOfRangeException(nameof(submenuText), "submenuText must be a non null, non-empty value");
            }

            // replace accelerators if plaintextMatch is true
            string convert(string s) => plaintextMatch?s?.Replace("&", "") : s;

            var matchText = convert(submenuText);

            bool match(ButtonMenuItem r) => convert(r.Text) == matchText;

            var submenu = this.OfType <ButtonMenuItem>().FirstOrDefault(match);

            if (submenu == null && create)
            {
                submenu = new ButtonMenuItem {
                    Text = submenuText, Order = order, Trim = true
                };
                Add(submenu);
            }
            return(submenu);
        }
示例#2
0
		void LogEvents(ButtonMenuItem item)
		{
			item.Click += delegate
			{
				Log.Write(item, "Click, Item: {0}", item.Text);
			};
		}
示例#3
0
		public PanelShellManager(PluginParameter data)
		{
			InitUi();

			// 注册事件
			ShellManager.GetDataTableCompletedToDo += ShellManagerGetDataTableCompletedToDo;
			ShellManager.DeleteCompletedToDo += ShellManagerDeleteCompletedToDo;
			ShellManager.InsertCompletedToDo += ShellManagerInsertCompletedToDo;
			ShellManager.UpdateCompletedToDo += ShellManagerUpdateCompletedToDo;

			// 载入shell数据
			LoadWebshellData();

			// 添加插件到右键菜单
			foreach (var plugin in PluginProvider.GetPlugins())
			{
				// IsShowInRightContext
				if (plugin.PluginSetting.LoadPath.ToLower() == "shellmanager")
				{
					string title = plugin.PluginInfo.Name;

					// 添加到Tsmi_Plugins中
					var pluginItem = new ButtonMenuItem();
					pluginItem.ID = title;
					pluginItem.Text = title;
					pluginItem.Click += pluginItem_Click;
					pluginItem.Tag = plugin;

					_rightMenuWebshell.Items.Add(pluginItem);
				}
			}
		}
示例#4
0
 public MenuConnector(ButtonAction action, ButtonMenuItem menuItem)
 {
     this.action             = action;
     this.menuItem           = menuItem;
     this.menuItem.Click    += HandleClick;
     this.menuItem.Validate += HandleValidate;
 }
示例#5
0
			public MenuConnector(ButtonAction action, ButtonMenuItem menuItem)
			{
				this.action = action;
				this.menuItem = menuItem;
				this.menuItem.Click += HandleClick;
				this.menuItem.Validate += HandleValidate;
			}
		void Init()
		{
			//_contextMenuRightMenu
			_contextMenuRightMenu = new ContextMenu();
			var addItem = new ButtonMenuItem {Text = "Add"};
			addItem.Click += addItem_Click;
			var delItem = new ButtonMenuItem {Text = "Delete"};
			delItem.Click += delItem_Click;
			_contextMenuRightMenu.Items.Add(addItem);
			_contextMenuRightMenu.Items.Add(delItem);

			//_gridViewHeader
			_gridViewHeader = new GridView
			{
				AllowMultipleSelection = false,
				BackgroundColor = Colors.White,
				Size = new Size(200, 200),
				ShowCellBorders = true
			};
			//_gridViewHeader.CellEditing += _gridViewHeader_CellEditing;
			//_gridViewHeader.CellEdited += _gridViewHeader_CellEdited;

			_gridViewHeader.Columns.Add(new GridColumn
			{
				HeaderText = "Key",
				DataCell = new TextBoxCell("Key"),
				Editable = true,
				Sortable = true,
				AutoSize = true
			});
			_gridViewHeader.Columns.Add(new GridColumn
			{
				HeaderText = "Value",
				DataCell = new TextBoxCell("Value"),
				Editable = true,
				Sortable = true,
				AutoSize = false,
				Width = 200
			});
			_gridViewHeader.ContextMenu = _contextMenuRightMenu;
			_gridViewHeader.MouseUp += (sender, e) =>
			{
				if (e.Buttons == MouseButtons.Alternate)
				{
					if (_gridViewHeader.ContextMenu != null)
						_gridViewHeader.ContextMenu.Show(this);
				}
			};

			var layout = new DynamicLayout { Padding = new Padding(20, 20), Spacing = new Size(10, 10) };
			layout.AddRow(_gridViewHeader);
			layout.Add(null);

			this.Content = layout;
		}
示例#7
0
		public DynamicMenuBar()
		{
			var count = 0;
			var menu = Application.Instance.MainForm.Menu;
			ISubmenu editMenu = menu.Items.GetSubmenu("Edit");

			// selection of which menu to add/remove
			var menuToEdit = new DropDown
			{
				DataStore = menu.Items.OfType<ISubmenu>().Union(new ISubmenu[] { menu }).ToList(),
				ItemTextBinding = Binding.Delegate((MenuItem item) => item.Text, defaultGetValue: "Main Menu")
			};
			menuToEdit.SelectedValueBinding.Bind(() => editMenu, v => editMenu = v as ISubmenu);

			// tag to identify items that we've added
			var dynamicTag = new object();

			// button to add a new item
			var addToEditMenu = new Button { Text = "Add MenuItem" };
			addToEditMenu.Click += (sender, e) =>
			{
				var itemNumber = ++count;
				var item = new ButtonMenuItem { Text = "Dynamic Menu Item " + itemNumber, Tag = dynamicTag };
				item.Click += (s, ee) => Log.Write(item, "Clicked " + itemNumber);
				editMenu.Items.Add(item);
			};

			// button to remove the item
			var removeFromEditMenu = new Button { Text = "Remove MenuItem" };
			removeFromEditMenu.Click += (sender, e) =>
			{
				var item = editMenu.Items.LastOrDefault(r => Equals(r.Tag, dynamicTag));
				if (item != null)
				{
					editMenu.Items.Remove(item);
				}
			};

			// layout of the form
			Content = new StackLayout
			{
				Spacing = 5,
				HorizontalContentAlignment = HorizontalAlignment.Center,
				Items =
				{
					null,
					new StackLayout { Orientation = Orientation.Horizontal, Spacing = 5, Items = { new Label { Text = "Submenu to add to", VerticalAlignment = VerticalAlignment.Center }, menuToEdit } },
					new StackLayout { Orientation = Orientation.Horizontal, Spacing = 5, Items = { addToEditMenu, removeFromEditMenu } },
					null
				}
			};
		}
示例#8
0
		public override MenuItem GenerateMenuItem(Generator generator)
		{
			if (command != null)
				return command.CreateMenuItem(generator);

			var mi = new ButtonMenuItem(generator);
			mi.Text = MenuText;
			mi.Shortcut = Accelerator;
			mi.Enabled = Enabled;
			if (Image != null) mi.Image = Image;
			if (!string.IsNullOrEmpty(MenuItemStyle))
				mi.Style = MenuItemStyle;
			new MenuConnector(this, mi);
			return mi;
		}
示例#9
0
文件: Ui.cs 项目: kevins1022/Altman
		private ButtonMenuItem GetSubmenu(MenuItemCollection items, string submenuText, bool create = true)
		{
			var submenu = items.OfType<ButtonMenuItem>().FirstOrDefault(r => r.ID == submenuText);
			if (submenu == null && create)
			{
				submenu = new ButtonMenuItem
				{
					ID = submenuText,
					Text = submenuText, 
					Order = 10
				};
				items.Add(submenu);
			}
			return submenu;
		}
示例#10
0
		MenuBar GenerateMenuBar()
		{
			var docs = new Actions.Docs();
            var checkUpdate = new Actions.CheckUpdate();
			var about = new Actions.About();
			var quit = new Actions.Quit();
			var setting = new Actions.Setting();

			//var file = new ButtonMenuItem {Text = AltStrRes.File, ID = "File"};
			var service = _servicesMenuItem = new ButtonMenuItem { Text = AltStrRes.Services, ID = "Services" };
			var plugin = _pluginsMenuItem = new ButtonMenuItem { Text = AltStrRes.Plugins, ID = "Plugins" };
			//var help = new ButtonMenuItem { Text = AltStrRes.Help, ID = "Help" };

			var menuBar = new MenuBar
			{
				Trim = false,
				Items =
				{
					service,
					plugin
				},
				ApplicationItems =
				{
					setting
				},
				HelpItems =
				{
					docs,
                    checkUpdate
				},
				QuitItem = quit,
				AboutItem = about,
				IncludeSystemItems = MenuBarSystemItems.None
			};
			var file = menuBar.ApplicationMenu;
			file.ID = "File";
			if (!Platform.IsMac)
			{
				file.Text = AltStrRes.File;
			}

			var help = menuBar.HelpMenu;
			help.ID = "Help";
			help.Text = AltStrRes.Help;

			return menuBar;
		}
示例#11
0
		void InitUi()
		{
			//_itemRefreshStatus
			_itemRefreshStatus = new ButtonMenuItem { Text = StrRes.GetString("StrRefreshStatus", "Refresh Status") };
			_itemRefreshStatus.Click += _itemRefreshStatus_Click;
			//_itemCopyServerCode
			_itemCopyServerCode = new ButtonMenuItem { Text = StrRes.GetString("StrCopyServerCode", "Copy ServerCode") };
			_itemCopyServerCode.Click += _itemCopyServerCode_Click;
			//_itemAdd
			_itemAdd = new ButtonMenuItem { Text =  StrRes.GetString("StrAdd","Add") };
			_itemAdd.Click += _itemAdd_Click;
			//_itemEdit
			_itemEdit = new ButtonMenuItem { Text =  StrRes.GetString("StrEdit","Edit") };
			_itemEdit.Click += _itemEdit_Click;
			//_itemDelete
			_itemDelete = new ButtonMenuItem { Text =  StrRes.GetString("StrDelete","Delete") };
			_itemDelete.Click += _itemDelete_Click;

			//rightMenu_Webshell
			_rightMenuWebshell = new ContextMenu();
			_rightMenuWebshell.Items.Add(_itemRefreshStatus);
			_rightMenuWebshell.Items.Add(_itemCopyServerCode);
			_rightMenuWebshell.Items.Add(new SeparatorMenuItem());
			_rightMenuWebshell.Items.Add(_itemAdd);
			_rightMenuWebshell.Items.Add(_itemEdit);
			_rightMenuWebshell.Items.Add(_itemDelete);
			_rightMenuWebshell.Items.Add(new SeparatorMenuItem());

			//_gridViewShell
			_gridViewShell = CreateListView();
			_gridViewShell.ContextMenu = _rightMenuWebshell;
			_gridViewShell.MouseUp += (sender, e) =>
			{
				if (e.Buttons == MouseButtons.Alternate)
				{
					_gridViewShell.ContextMenu.Show(_gridViewShell);
				}
			};
			//_gridViewShell.CellDoubleClick += _gridViewShell_CellDoubleClick;
			//_gridViewShell.ColumnHeaderClick += _gridViewShell_ColumnHeaderClick;

			var layout = new DynamicLayout { Padding = new Padding(0), Spacing = new Size(10, 10) };
			layout.Add(_gridViewShell);

			this.Content = layout;
		}
示例#12
0
        /// <summary>
        /// Gets the submenu from the collection with the specified text, optionally creating one if not found.
        /// </summary>
        /// <returns>The submenu instance if found, or a new submenu instance added at the specified order.</returns>
        /// <param name="submenuText">Text of the submenu to find or add.</param>
        /// <param name="order">Order of the submenu item to add. Not used if there is already a submenu with the specified text.</param>
        /// <param name="plaintextMatch">If set to <c>true</c>, matches excluding any mnemonic symbol idenfifiers.</param>
        /// <param name="create">If set to <c>true</c>, creates the menu if it doesn't exist in the collection, otherwise <c>false</c>.</param>
        public ButtonMenuItem GetSubmenu(string submenuText, int order = 0, bool plaintextMatch = true, bool create = true)
        {
            // replace accelerators if plaintextMatch is true
            Func <string, string> convert = s => plaintextMatch?s.Replace("&", "") : s;

            var matchText = convert(submenuText);
            var submenu   = this.OfType <ButtonMenuItem>().FirstOrDefault(r => convert(r.Text) == matchText);

            if (submenu == null && create)
            {
                submenu = new ButtonMenuItem {
                    Text = submenuText, Order = order, Trim = true
                };
                Add(submenu);
            }
            return(submenu);
        }
示例#13
0
        public override MenuItem GenerateMenuItem(Generator generator)
        {
            if (command != null)
            {
                return(command.CreateMenuItem(generator));
            }

            var mi = new ButtonMenuItem(generator);

            mi.Text     = MenuText;
            mi.Shortcut = Accelerator;
            mi.Enabled  = Enabled;
            if (Image != null)
            {
                mi.Image = Image;
            }
            if (!string.IsNullOrEmpty(MenuItemStyle))
            {
                mi.Style = MenuItemStyle;
            }
            new MenuConnector(this, mi);
            return(mi);
        }
示例#14
0
		void Init()
		{
			//_textboxUrl
			_textboxUrl = new TextBox();
            _textboxUrl.KeyDown += _textboxUrl_KeyDown;

			//_buttonDir
			_buttonDir = new Button {Text = StrRes.GetString("StrDir","Dir")};
			_buttonDir.Click += _buttonDir_Click;

			//_treeViewDirs
			_treeViewDirs = new TreeViewPlus();
			_treeViewDirs.Activated += _treeViewDirs_Activated;

            //_itemCopyNodePath
            _itemCopyNodePath = new ButtonMenuItem { Text = StrRes.GetString("StrCopyNodePath", "Copy Path") };
            _itemCopyNodePath.Click += _itemCopyNodePath_Click;

            //rightMenu_TreeViewDirs
            var rightMenuTreeViewDirs = new ContextMenu();
            rightMenuTreeViewDirs.Items.Add(_itemCopyNodePath);

            _treeViewDirs.ContextMenu = rightMenuTreeViewDirs;
            _treeViewDirs.MouseUp += (sender, e) =>
            {
                if (e.Buttons == MouseButtons.Alternate)
                {
                    _treeViewDirs.ContextMenu.Show(_treeViewDirs);
                }
            };

			_gridViewFile = new GridView
			{
				AllowMultipleSelection = false,
				BackgroundColor = Colors.White,
				ShowCellBorders = false,
				RowHeight = 21
			};
			_gridViewFile.CellEditing += _gridViewFile_CellEditing;
			_gridViewFile.CellEdited += _gridViewFile_CellEdited;
			_gridViewFile.CellDoubleClick += _gridViewFile_CellDoubleClick;
			_gridViewFile.ColumnHeaderClick += _gridViewFile_ColumnHeaderClick;

			_gridViewFile.Columns.Add(new GridColumn
			{
				ID = "Image",
				HeaderText = ">",
				//DataCell = new ImageTextCell("Image","Name"),
				DataCell = new ImageViewCell("Image"),
				Sortable = true,
				Resizable = false,
				Width = 21
			});
			_gridViewFile.Columns.Add(new GridColumn
			{
				ID = "Name",
				HeaderText = StrRes.GetString("StrName","Name"),
				DataCell = new TextBoxCell("Name"),
				Sortable = true,
				AutoSize = false,
				Editable = true,
				Width = 200
			});
			_gridViewFile.Columns.Add(new GridColumn
			{
				ID = "Time",
				HeaderText = StrRes.GetString("StrTime","Time"),
				DataCell = new TextBoxCell("FileMTime"),
				Sortable = true,
				AutoSize = false,
				Editable = true,
				Width = 150
			});
			_gridViewFile.Columns.Add(new GridColumn
			{
				ID = "Size",
				HeaderText = StrRes.GetString("StrSize","Size"),
				DataCell = new TextBoxCell("FileSize"),
				Sortable = true,
				AutoSize = false,
				Width = 100
			});
			_gridViewFile.Columns.Add(new GridColumn
			{
				ID = "Attribute",
				HeaderText = StrRes.GetString("StrAttribute","Attribute"),
				DataCell = new TextBoxCell("FileAttributes"),
				Sortable = true,
				AutoSize = false,
				Width = 70
			});

			_gridViewFile.MouseUp += (sender, e) =>
			{
				if (e.Buttons == MouseButtons.Alternate)
				{
					if (_gridViewFile.ContextMenu!=null)
						_gridViewFile.ContextMenu.Show(_gridViewFile);
				}
			};

			var layout = new DynamicLayout { Padding = new Padding(0, 0), Spacing = new Size(5, 5) };
			layout.BeginVertical();
			layout.BeginHorizontal();
			layout.AddCentered(_textboxUrl, xscale: true, horizontalCenter: false);
			layout.AddCentered(_buttonDir, horizontalCenter: false);
			layout.EndHorizontal();
			layout.EndVertical();

			layout.AddRow(new Splitter
			{
				Panel1 = _treeViewDirs,
				Panel2 = _gridViewFile,
				Orientation = SplitterOrientation.Horizontal,
				Position = 200,
			});

			Content = layout;
		}
示例#15
0
		TreeView ImagesAndMenu()
		{
			var control = new TreeView
			{
				Size = new Size(100, 150)
			};

#if DESKTOP
			var menu = new ContextMenu();
			var item = new ButtonMenuItem { Text = "Click Me!" };
			item.Click += delegate
			{
				if (control.SelectedItem != null)
					Log.Write(item, "Click, Rows: {0}", control.SelectedItem.Text);
				else
					Log.Write(item, "Click, no item selected");
			};
			menu.Items.Add(item);
			
			control.ContextMenu = menu;
#endif

			control.DataStore = CreateTreeItem(0, "Item", Image);
			LogEvents(control);
			return control;
		}
示例#16
0
		ContextMenu CreateContextMenu(GridView grid, SelectableFilterCollection<MyGridItem> filtered)
		{
			// Context menu
			var menu = new ContextMenu();
			var item = new ButtonMenuItem { Text = "Click Me!" };
			item.Click += (sender, e) =>
			{
				if (grid.SelectedRows.Any())
					Log.Write(item, "Click, Rows: {0}", SelectedRowsString(grid));
				else
					Log.Write(item, "Click, no item selected");
			};
			menu.Items.Add(item);

			// Delete menu item: deletes the item from the store, the UI updates via the binding.
			var deleteItem = new ButtonMenuItem { Text = "Delete Item" };
			deleteItem.Click += (s, e) =>
			{
				var i = grid.SelectedItems.First() as MyGridItem;
				if (i != null)
					filtered.Remove(i);
			};
			menu.Items.Add(deleteItem);

			// Insert item: inserts an item into the store, the UI updates via the binding.
			var insertItem = new ButtonMenuItem { Text = "Insert Item at the start of the list" };
			insertItem.Click += (s, e) =>
			{
				var i = grid.SelectedItems.First() as MyGridItem;
				if (i != null)
					filtered.Insert(0, new MyGridItem(new Random(), 0));
			};
			menu.Items.Add(insertItem);

			var subMenu = menu.Items.GetSubmenu("Sub Menu");
			item = new ButtonMenuItem { Text = "Item 5" };
			item.Click += (s, e) => Log.Write(item, "Clicked");
			subMenu.Items.Add(item);
			item = new ButtonMenuItem { Text = "Item 6" };
			item.Click += (s, e) => Log.Write(item, "Clicked");
			subMenu.Items.Add(item);

			return menu;
		}
示例#17
0
        private void _createMenu()
        {
            this.Menu = new MenuBar();

            var tools = ExtensionManager.GetExtensions<ICustomTool>()
                .Where(tool => tool.Active())
                .ToArray();

            if (tools.Length > 0)
            {
                var menu = new ButtonMenuItem() { Text = "Tools" };
                this.Menu.Items.Add(menu);

                foreach(var t in tools)
                {
                    var item = new ButtonMenuItem() { Text = t.Name };
                    item.Click += (o, e) => t.Launch();
                    menu.Items.Add(item);
                }
            }
        }
示例#18
0
		Control WithContextMenu()
		{
			var control = new ListBox
			{
				Size = new Size (100, 150)
			};
			LogEvents(control);

			for (int i = 0; i < 10; i++)
			{
				control.Items.Add(new ListItem { Text = "Item " + i });
			}
			
			var menu = new ContextMenu();
			var item = new ButtonMenuItem { Text = "Click Me!" };
			item.Click += delegate
			{
				if (control.SelectedValue != null)
					Log.Write(item, "Click, Item: {0}", control.SelectedValue.Text);
				else
					Log.Write(item, "Click, no item selected");
			};
			menu.Items.Add(item);
			
			control.ContextMenu = menu;
			return control;
		}
示例#19
0
		GridView WithContextMenuAndFilter()
		{
			var control = Default();
			control.AllowMultipleSelection = true;
			var items = control.DataStore as DataStoreCollection;

			// Filter
			filterText.TextChanged += (s, e) =>
			{
				var filterItems = (filterText.Text ?? "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

				// Set the filter delegate on the GridView
				control.Filter = (filterItems.Length == 0) ? (Func<object, bool>)null : o =>
				{
					var i = o as MyGridItem;
					var matches = true;

					// Every item in the split filter string should be within the Text property
					foreach (var filterItem in filterItems)
						if (i.Text.IndexOf(filterItem, StringComparison.CurrentCultureIgnoreCase) == -1)
						{
							matches = false;
							break;
						}

					return matches;
				};
			};

			// Context menu
			var menu = new ContextMenu();
			var item = new ButtonMenuItem { Text = "Click Me!" };
			item.Click += delegate
			{
				if (control.SelectedRows.Any())
					Log.Write(item, "Click, Rows: {0}", SelectedRowsString(control));
				else
					Log.Write(item, "Click, no item selected");
			};
			menu.Items.Add(item);

			// Delete menu item: deletes the item from the store, the UI updates via the binding.
			var deleteItem = new ButtonMenuItem { Text = "Delete Item" };
			deleteItem.Click += (s, e) =>
			{
				var i = control.SelectedItems.First() as MyGridItem;
				if (i != null)
					items.Remove(i);
			};
			menu.Items.Add(deleteItem);

			// Insert item: inserts an item into the store, the UI updates via the binding.
			var insertItem = new ButtonMenuItem { Text = "Insert Item at the start of the list" };
			insertItem.Click += (s, e) =>
			{
				var i = control.SelectedItems.First() as MyGridItem;
				if (i != null)
					items.Insert(0, new MyGridItem(new Random(), 0, null));
			};
			menu.Items.Add(insertItem);

			control.ContextMenu = menu;
			return control;
		}
示例#20
0
文件: MainForm.cs 项目: mhusen/Eto
		void CreateMenuToolBar()
		{
			var about = new Commands.About();
			var quit = new Commands.Quit();

			if (Platform.Supports<MenuBar>())
			{
				var fileCommand = new Command { MenuText = "File Command", Shortcut = Application.Instance.CommonModifier | Keys.F };
				fileCommand.Executed += (sender, e) => Log.Write(sender, "Executed");
				var editCommand = new Command { MenuText = "Edit Command", Shortcut = Keys.Shift | Keys.E };
				editCommand.Executed += (sender, e) => Log.Write(sender, "Executed");
				var viewCommand = new Command { MenuText = "View Command", Shortcut = Keys.Control | Keys.V };
				viewCommand.Executed += (sender, e) => Log.Write(sender, "Executed");
				var windowCommand = new Command { MenuText = "Window Command" };
				windowCommand.Executed += (sender, e) => Log.Write(sender, "Executed");

				var file = new ButtonMenuItem { Text = "&File", Items = { fileCommand } };
				var edit = new ButtonMenuItem { Text = "&Edit", Items = { editCommand } };
                var view = new ButtonMenuItem { Text = "&View", Items = { viewCommand } };
				var window = new ButtonMenuItem { Text = "&Window", Order = 1000, Items = { windowCommand } };

				if (Platform.Supports<CheckMenuItem>())
				{
					edit.Items.AddSeparator();

					var checkMenuItem1 = new CheckMenuItem { Text = "Check Menu Item", Shortcut = Keys.Shift | Keys.K };
					checkMenuItem1.Click += (sender, e) => Log.Write(checkMenuItem1, "Click, {0}, Checked: {1}", checkMenuItem1.Text, checkMenuItem1.Checked);
					checkMenuItem1.CheckedChanged += (sender, e) => Log.Write(checkMenuItem1, "CheckedChanged, {0}: {1}", checkMenuItem1.Text, checkMenuItem1.Checked);
					edit.Items.Add(checkMenuItem1);

					var checkMenuItem2 = new CheckMenuItem { Text = "Initially Checked Menu Item", Checked = true };
					checkMenuItem2.Click += (sender, e) => Log.Write(checkMenuItem2, "Click, {0}, Checked: {1}", checkMenuItem2.Text, checkMenuItem2.Checked);
					checkMenuItem2.CheckedChanged += (sender, e) => Log.Write(checkMenuItem2, "CheckedChanged, {0}: {1}", checkMenuItem2.Text, checkMenuItem2.Checked);
					edit.Items.Add(checkMenuItem2);
				}

				if (Platform.Supports<RadioMenuItem>())
				{
					edit.Items.AddSeparator();

					RadioMenuItem controller = null;
					for (int i = 0; i < 5; i++)
					{
						var radio = new RadioMenuItem(controller) { Text = "Radio Menu Item " + (i + 1) };
						radio.Click += (sender, e) => Log.Write(radio, "Click, {0}, Checked: {1}", radio.Text, radio.Checked);
						radio.CheckedChanged += (sender, e) => Log.Write(radio, "CheckedChanged, {0}: {1}", radio.Text, radio.Checked);
						edit.Items.Add(radio);

						if (controller == null)
						{
							radio.Checked = true; // check the first item initially
							controller = radio;
						}
					}

				}

				Menu = new MenuBar
				{
					Items =
					{
						// custom top-level menu items
						file, edit, view, window
					},
					ApplicationItems =
					{
						// custom menu items for the application menu (Application on OS X, File on others)
						new Command { MenuText = "Application command" },
						new ButtonMenuItem { Text = "Application menu item" }
					},
					HelpItems =
					{
						new Command { MenuText = "Help Command" }
					},
					QuitItem = quit,
					AboutItem = about
				};
			}

			if (Platform.Supports<ToolBar>())
			{
				// create and set the toolbar
				ToolBar = new ToolBar();

				ToolBar.Items.Add(about);
				if (Platform.Supports<CheckToolItem>())
				{
					ToolBar.Items.Add(new SeparatorToolItem { Type = SeparatorToolItemType.Divider });
					ToolBar.Items.Add(new CheckToolItem { Text = "Check", Image = TestIcons.TestImage });
				}
				if (Platform.Supports<RadioToolItem>())
				{
					ToolBar.Items.Add(new SeparatorToolItem { Type = SeparatorToolItemType.FlexibleSpace });
					ToolBar.Items.Add(new RadioToolItem { Text = "Radio1", Image = TestIcons.TestIcon, Checked = true });
					ToolBar.Items.Add(new RadioToolItem { Text = "Radio2", Image = TestIcons.TestImage });
				};
			}

		}
示例#21
0
		static Control TextReplacementsDropDown(TextArea text)
		{
			var control = new Button { Text = "TextReplacements" };
			control.Click += (sender, e) => {
				var replacements = text.TextReplacements;
				var supported = text.SupportedTextReplacements;
				var contextMenu = new ContextMenu();
				foreach (var val in Enum.GetValues(typeof(TextReplacements)).OfType<TextReplacements>())
				{
					if (val == TextReplacements.All || val == TextReplacements.None)
					{
						var item = new ButtonMenuItem { Text = val.ToString() };
						item.Click += (sender2, e2) => text.TextReplacements = val;
						contextMenu.Items.Add(item);
						continue;
					}
					if (!supported.HasFlag(val))
						continue;
					var checkItem = new CheckMenuItem { Text = val.ToString(), Checked = replacements.HasFlag(val) };
					checkItem.CheckedChanged += (sender2, e2) => {
						var rep = text.TextReplacements;
						if (checkItem.Checked)
							rep |= val;
						else
							rep &= ~val;
						text.TextReplacements = rep;
					};
					contextMenu.Items.Add(checkItem);
				}
				contextMenu.Show(control);
			};
			return control;
		}
示例#22
0
		Control ImagesAndMenu()
		{
			var control = new TreeGridView
			{
				Size = new Size(100, 150)
			};

			control.Columns.Add(new GridColumn { DataCell = new ImageTextCell(0, 1), HeaderText = "Image and Text", AutoSize = true, Resizable = true, Editable = true });
			control.Columns.Add(new GridColumn { DataCell = new TextBoxCell(2), HeaderText = "Text", AutoSize = true, Width = 150, Resizable = true, Editable = true });
		
#if DESKTOP
			var menu = new ContextMenu();
			var item = new ButtonMenuItem{ Text = "Click Me!" };
			item.Click += delegate
			{
				if (control.SelectedItem != null)
					Log.Write(item, "Click, Rows: {0}", control.SelectedItem);
				else
					Log.Write(item, "Click, no item selected");
			};
			menu.Items.Add(item);
			
			control.ContextMenu = menu;
#endif

			control.DataStore = CreateComplexTreeItem(0, "", Image);
			LogEvents(control);
			return control;
		}
示例#23
0
		void Init()
		{
			//_buttonConnect
			_buttonConnect = new Button { Text = StrRes.GetString("StrConnect","Connect"), Image = Icons.ConnectIcon };
			_buttonConnect.Click += ButtonConnect_Click;

			//_buttonDisconnect
			_buttonDisconnect = new Button { Text = StrRes.GetString("StrDisconnect","Disconnect"), Image = Icons.DisconnectIcon };
			_buttonDisconnect.Click += _buttonDisconnect_Click;

			//_dropDownDbs
		    _dropDownDbs = new DropDown {Width = 200};

			//_buttonRunScript
			_buttonRunScript = new Button {Text = StrRes.GetString("StrExecute","Execute"), Image = Icons.RunScripIcon};
			_buttonRunScript.Click += _buttonRunScript_Click;

			//_itemSaveAs
			_itemSaveAs = new ButtonMenuItem { Text = StrRes.GetString("StrSaveAs","SaveAs...") };
			_itemSaveAs.Click += _itemSaveAs_Click;

			//_itemViewTable
			_itemViewTable = new ButtonMenuItem { Text = StrRes.GetString("StrViewTable","ViewTable") };
			_itemViewTable.Click += _itemViewTable_Click;
			_itemViewTable.Enabled = false;

			//_itemCopyName
			_itemCopyName = new ButtonMenuItem { Text = StrRes.GetString("StrCopyName","CopyName") };
			_itemCopyName.Click += _itemCopyName_Click;

			//_menuDbView
			_menuDbView = new ContextMenu();
			_menuDbView.Items.Add(_itemCopyName);
			_menuDbView.Items.Add(_itemViewTable);

			//_menuResultView
			_menuResultView = new ContextMenu();
			_menuResultView.Items.Add(_itemSaveAs);

			//_treeViewDbs
			_treeViewDbs = new TreeView();
			_treeViewDbs.ContextMenu = _menuDbView;
			_treeViewDbs.SelectionChanged += _treeViewDbs_SelectionChanged;
			_treeViewDbs.Activated += _treeViewDbs_Activated;
			_treeViewDbs.MouseUp += (sender, e) =>
			{
				if (e.Buttons == MouseButtons.Alternate)
				{
					_treeViewDbs.ContextMenu.Show(_treeViewDbs);
				}
			};

			//_textAreaSql
			_textAreaSql = new TextArea {Font = new Font(FontFamilies.Sans, 12, FontStyle.Bold | FontStyle.Italic)};
			
			//_gridViewResult
			_gridViewResult = new GridView();
			_gridViewResult.ContextMenu = _menuResultView;
			_gridViewResult.Style = "GridViewResult";
			_gridViewResult.MouseUp += (sender, e) =>
			{
				if (e.Buttons == MouseButtons.Alternate)
				{
					_gridViewResult.ContextMenu.Show(_treeViewDbs);
				}
			};

			//topLayout
			var topLayout = new DynamicLayout();
			topLayout.BeginHorizontal();
			topLayout.AddCentered(_buttonConnect, horizontalCenter: false);
			topLayout.AddCentered(_buttonDisconnect, horizontalCenter: false);
			topLayout.AddCentered(_dropDownDbs, horizontalCenter: false);
			topLayout.AddCentered(_buttonRunScript, horizontalCenter: false);
			topLayout.Add(null);
			topLayout.EndVertical();

			//rightPanel
			var rightPanel = new Splitter
			{
				Panel1 = _textAreaSql,
				Panel2 = _gridViewResult,
				Orientation = SplitterOrientation.Vertical,
				Position = 100
			};

			//mainLayout
			var mainLayout = new Splitter
			{
				Panel1 = _treeViewDbs,
				Panel2 = rightPanel,
				Orientation = SplitterOrientation.Horizontal,
				Position = 200
			};

			//layout
			var layout = new DynamicLayout { Padding = new Padding(0, 0), Spacing = new Size(5, 5) };
			layout.AddRow(topLayout);
			layout.AddRow(mainLayout);
			Content = layout;
		}
示例#24
-1
        void RenderMenu()
        {
            CommandExport = new Command(OnCommandExport) {
                MenuText = Desktop.Properties.Resources.MenuExport,
                Image = Utilities.LoadImage("Export"),
                Shortcut = Application.Instance.CommonModifier | Keys.E,
                Enabled = false
            };

            CommandAccountUnlock = new Command(OnCommandAccountUnlock) {
                MenuText = Desktop.Properties.Resources.MenuUnlockAccount,
                Image = Utilities.LoadImage("Key")
            };

            CommandAccountChangePassphrase = new Command(OnCommandAccountChangePassphrase) {
                MenuText = Desktop.Properties.Resources.MenuChangeAccountPassphrase,
                Image = Utilities.LoadImage("Key"),
                Enabled = false
            };

            var commandAccountBackupManager = new Command(OnCommandAccountBackupManager) {
                MenuText = Desktop.Properties.Resources.MenuBackupManager,
                Image = Utilities.LoadImage("Save"),
                Enabled = false
            };

            var commandExit = new Command(OnCommandExit) {
                MenuText = Desktop.Properties.Resources.MenuExit,
                Image = Utilities.LoadImage("Exit"),
                Shortcut = Application.Instance.CommonModifier | Keys.Q
            };

            var commandShowWindowOptions = new Command(OnCommandShowWindowOptions) {
                MenuText = Desktop.Properties.Resources.MenuOptions,
                Image = Utilities.LoadImage("Options"),
                Shortcut = Application.Instance.CommonModifier | Keys.O
            };

            var commandShowWindowAbout = new Command(OnCommandShowWindowAbout) {
                MenuText = Desktop.Properties.Resources.MenuAbout,
                Image = Utilities.LoadImage("Information"),
            };

            var menuFile = new ButtonMenuItem {
                Text = Desktop.Properties.Resources.MenuFile,
                Items = {
                    commandAccountBackupManager,
                    CommandExport,
                    new SeparatorMenuItem(),
                    commandExit
                }
            };

            MenuSettings = new ButtonMenuItem {
                Text = Desktop.Properties.Resources.MenuSettings,
                Items = {
                    CommandAccountUnlock,
                    new SeparatorMenuItem(),
                    commandShowWindowOptions
                }
            };

            var menuHelp = new ButtonMenuItem {
                Text = Desktop.Properties.Resources.MenuHelp,
                Items = {
                    commandShowWindowAbout
                }
            };

            Menu = new MenuBar(
                menuFile,
                MenuSettings,
                menuHelp
            );
        }
示例#25
-1
        /// <summary>
        /// 
        /// </summary>
        private void InitializeMenu()
        {
            #region File

            var newCommand = new Command()
            {
                MenuText = "&New",
                Shortcut = Application.Instance.CommonModifier | Keys.N
            };

            newCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.NewCommand.Execute(null);
                if (_context.Invalidate != null)
                {
                    _context.Invalidate();
                }
            };

            var openCommand = new Command()
            {
                MenuText = "&Open...",
                Shortcut = Application.Instance.CommonModifier | Keys.O
            };

            openCommand.Executed +=
            (s, e) =>
            {
                var dlg = new OpenFileDialog();
                dlg.Filters.Add(new FileDialogFilter("Project", ".project"));
                dlg.Filters.Add(new FileDialogFilter("All", ".*"));

                var result = dlg.ShowDialog(this);
                if (result == DialogResult.Ok)
                {
                    _context.Open(dlg.FileName);
                    if (_context.Invalidate != null)
                    {
                        _context.Invalidate();
                    }
                }
            };

            var saveAsCommand = new Command()
            {
                MenuText = "Save &As...",
                Shortcut = Application.Instance.CommonModifier | Keys.S
            };

            saveAsCommand.Executed +=
            (s, e) =>
            {
                var dlg = new SaveFileDialog();
                dlg.Filters.Add(new FileDialogFilter("Project", ".project"));
                dlg.Filters.Add(new FileDialogFilter("All", ".*"));
                dlg.FileName = _context.Editor.Project.Name;
                var result = dlg.ShowDialog(this);
                if (result == DialogResult.Ok)
                {
                    _context.Save(dlg.FileName);
                }
            };

            var exportCommand = new Command()
            {
                MenuText = "&Export...",
                Shortcut = Application.Instance.CommonModifier | Keys.E
            };

            exportCommand.Executed +=
            (s, e) =>
            {
                var dlg = new SaveFileDialog();
                dlg.Filters.Add(new FileDialogFilter("Pdf", ".pdf"));
                dlg.Filters.Add(new FileDialogFilter("Dxf", ".dxf"));
                dlg.Filters.Add(new FileDialogFilter("All", ".*"));

                dlg.FileName = _context.Editor.Project.Name;
                var result = dlg.ShowDialog(this);
                if (result == DialogResult.Ok)
                {
                    string path = dlg.FileName;
                    int filterIndex = dlg.CurrentFilterIndex;
                    switch (filterIndex)
                    {
                        case 0:
                            _context.ExportAsPdf(path, _context.Editor.Project);
                            Process.Start(path);
                            break;
                        case 1:
                            _context.ExportAsDxf(path);
                            Process.Start(path);
                            break;
                        default:
                            break;
                    }
                }
            };

            var exitCommand = new Command()
            {
                MenuText = "E&xit",
                Shortcut = Application.Instance.AlternateModifier | Keys.F4
            };

            exitCommand.Executed +=
            (s, e) =>
            {
                Application.Instance.Quit();
            };

            #endregion

            #region Tool

            var noneTool = new Command()
            {
                MenuText = "&None",
                Shortcut = Keys.N
            };

            noneTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolNoneCommand.Execute(null);
            };

            var selectionTool = new Command()
            {
                MenuText = "&Selection",
                Shortcut = Keys.S
            };

            selectionTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolSelectionCommand.Execute(null);
            };

            var pointTool = new Command()
            {
                MenuText = "&Point",
                Shortcut = Keys.P
            };

            pointTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolPointCommand.Execute(null);
            };

            var lineTool = new Command()
            {
                MenuText = "&Line",
                Shortcut = Keys.L
            };

            lineTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolLineCommand.Execute(null);
            };

            var arcTool = new Command()
            {
                MenuText = "&Arc",
                Shortcut = Keys.A
            };

            arcTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolArcCommand.Execute(null);
            };

            var bezierTool = new Command()
            {
                MenuText = "&Bezier",
                Shortcut = Keys.B
            };

            bezierTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolBezierCommand.Execute(null);
            };

            var qbezierTool = new Command()
            {
                MenuText = "&QBezier",
                Shortcut = Keys.Q
            };

            qbezierTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolQBezierCommand.Execute(null);
            };

            var pathTool = new Command()
            {
                MenuText = "Pat&h",
                Shortcut = Keys.H
            };

            pathTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolPathCommand.Execute(null);
            };

            var rectangleTool = new Command()
            {
                MenuText = "&Rectangle",
                Shortcut = Keys.R
            };

            rectangleTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolRectangleCommand.Execute(null);
            };

            var ellipseTool = new Command()
            {
                MenuText = "&Ellipse",
                Shortcut = Keys.E
            };

            ellipseTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolEllipseCommand.Execute(null);
            };

            var textTool = new Command()
            {
                MenuText = "&Text",
                Shortcut = Keys.T
            };

            textTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolTextCommand.Execute(null);
            };

            var imageTool = new Command()
            {
                MenuText = "&Image",
                Shortcut = Keys.I
            };

            imageTool.Executed +=
            (s, e) =>
            {
                _context.Commands.ToolImageCommand.Execute(null);
            };

            #endregion

            #region Edit

            var undoCommand = new Command()
            {
                MenuText = "&Undo",
                Shortcut = Application.Instance.CommonModifier | Keys.Z
            };

            undoCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.UndoCommand.Execute(null);
            };

            var redoCommand = new Command()
            {
                MenuText = "&Redo",
                Shortcut = Application.Instance.CommonModifier | Keys.Y
            };

            redoCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.RedoCommand.Execute(null);
            };

            var cutCommand = new Command()
            {
                MenuText = "Cu&t",
                Shortcut = Application.Instance.CommonModifier | Keys.X
            };

            cutCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.CutCommand.Execute(null);
            };

            var copyCommand = new Command()
            {
                MenuText = "&Copy",
                Shortcut = Application.Instance.CommonModifier | Keys.C
            };

            copyCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.CopyCommand.Execute(null);
            };

            var pasteCommand = new Command()
            {
                MenuText = "&Paste",
                Shortcut = Application.Instance.CommonModifier | Keys.V
            };

            pasteCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.PasteCommand.Execute(null);
            };

            var deleteCommand = new Command()
            {
                MenuText = "&Delete",
                Shortcut = Keys.Delete
            };

            deleteCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.DeleteCommand.Execute(null);
            };

            var selectAllCommand = new Command()
            {
                MenuText = "Select &All",
                Shortcut = Application.Instance.CommonModifier | Keys.A
            };

            selectAllCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.SelectAllCommand.Execute(null);
            };

            var deSelectAllCommand = new Command()
            {
                MenuText = "De&select All",
                Shortcut = Keys.Escape
            };

            deSelectAllCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.DeselectAllCommand.Execute(null);
            };

            var clearAllCommand = new Command()
            {
                MenuText = "Cl&ear All"
            };

            clearAllCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.ClearAllCommand.Execute(null);
            };

            var groupCommand = new Command()
            {
                MenuText = "&Group",
                Shortcut = Application.Instance.CommonModifier | Keys.G
            };

            groupCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.GroupCommand.Execute(null);
            };

            var ungroupCommand = new Command()
            {
                MenuText = "U&ngroup",
                Shortcut = Application.Instance.CommonModifier | Keys.U
            };

            ungroupCommand.Executed +=
            (s, e) =>
            {
                _context.Commands.UngroupCommand.Execute(null);
            };

            #endregion

            #region Menu

            var fileMenu = new ButtonMenuItem()
            {
                Text = "&File",
                Items =
                {
                    newCommand,
                    new SeparatorMenuItem(),
                    openCommand,
                    new SeparatorMenuItem(),
                    saveAsCommand,
                    new SeparatorMenuItem(),
                    exportCommand
                }
            };

            var editMenu = new ButtonMenuItem()
            {
                Text = "&Edit",
                Items =
                {
                    undoCommand,
                    redoCommand,
                    new SeparatorMenuItem(),
                    cutCommand,
                    copyCommand,
                    pasteCommand,
                    deleteCommand,
                    new SeparatorMenuItem(),
                    selectAllCommand,
                    deSelectAllCommand,
                    new SeparatorMenuItem(),
                    clearAllCommand,
                    new SeparatorMenuItem(),
                    groupCommand,
                    ungroupCommand
                }
            };

            var toolMenu = new ButtonMenuItem()
            {
                Text = "&Tool",
                Items =
                {
                    noneTool,
                    new SeparatorMenuItem(),
                    selectionTool,
                    new SeparatorMenuItem(),
                    pointTool,
                    new SeparatorMenuItem(),
                    lineTool,
                    arcTool,
                    bezierTool,
                    qbezierTool,
                    new SeparatorMenuItem(),
                    pathTool,
                    new SeparatorMenuItem(),
                    rectangleTool,
                    ellipseTool,
                    new SeparatorMenuItem(),
                    textTool,
                    new SeparatorMenuItem(),
                    imageTool
                }
            };

            var aboutCommand = new Command()
            {
                MenuText = "&About..."
            };
            aboutCommand.Executed +=
            (s, e) =>
            {
                MessageBox.Show(this, Platform.ID);
            };

            Menu = new MenuBar
            {
                Items =
                {
                    fileMenu,
                    editMenu,
                    toolMenu
                },
                QuitItem = exitCommand,
                AboutItem = aboutCommand
            };

            #endregion
        }
示例#26
-1
		private ButtonMenuItem LoadPluginsInUi(IPlugin plugin, bool isRoot)
		{
			var item = new ButtonMenuItem();

			var title = plugin.PluginInfo.Name;
			item.ID = title;
			item.Text = title;
			item.Order = plugin.PluginSetting.IndexInList;

			// 如果是插件,添加Run按钮
			if (isRoot)
			{
				var pluginRun = new Command()
				{
					ID = "Show",
					MenuText = "Show " + title,
					Tag = plugin,
				};
				pluginRun.Executed += pluginRun_Click;
				item.Items.Add(pluginRun);
			}

			// 添加子插件按钮
			var childs = PluginProvider.GetChildPlugins(plugin);
			if (childs.Any())
			{
				item.Items.AddSeparator(80000 - 1);
				var pluginChild = new ButtonMenuItem()
				{
					ID = "Childs",
					Text = "Child Plugins",
					Order = 80000
				};
				foreach (var c in childs)
				{
					pluginChild.Items.Add(LoadPluginsInUi(c, false));
				}
				item.Items.Add(pluginChild);
			}
			// 添加分隔符
			item.Items.AddSeparator(90000 - 1);
			// 添加About按钮
			var pluginAbout = new Command()
			{
				ID = "About",
				MenuText = "About",
				Tag = plugin
			};
			pluginAbout.Executed += pluginAbout_Click;
			pluginAbout.Tag = plugin;
			item.Items.Add(pluginAbout, 90000);
		
			return item;
		}