public static void ShowContextMenu (Gtk.Widget parent, Gdk.EventButton evt, ContextMenu menu, Action closeHandler)
		{
			if (parent == null)
				throw new ArgumentNullException ("parent");
			if (menu == null)
				throw new ArgumentNullException ("menu");

			var nsMenu = FromMenu (menu, closeHandler);
			ShowContextMenu (parent, evt, nsMenu);
		}
		public static void ShowContextMenu (Gtk.Widget parent, int x, int y, ContextMenu menu, Action closeHandler)
		{
			if (parent == null)
				throw new ArgumentNullException ("parent");
			if (menu == null)
				throw new ArgumentNullException ("menu");

			var gtkMenu = FromMenu (menu, closeHandler);
			gtkMenu.ShowAll ();
			ShowContextMenu (parent, x, y, gtkMenu);
		}
		public static void ShowContextMenu (Gtk.Widget parent, Gdk.EventButton evt, ContextMenu menu)
		{
			if (parent == null)
				throw new ArgumentNullException ("parent");
			if (menu == null)
				throw new ArgumentNullException ("menu");

			var gtkMenu = FromMenu (menu);
			gtkMenu.ShowAll ();
			ShowContextMenu (parent, evt, gtkMenu);
		}
		public static void ShowContextMenu (Gtk.Widget parent, int x, int y, ContextMenu menu, Action closeHandler, bool selectFirstItem = false)
		{
			if (parent == null)
				throw new ArgumentNullException ("parent");
			if (menu == null)
				throw new ArgumentNullException ("menu");

			var gtkMenu = FromMenu (menu, closeHandler);
			gtkMenu.ShowAll ();
			if (selectFirstItem && gtkMenu.Children.Length > 0)
				gtkMenu.SelectItem (gtkMenu.Children[0]); 
			ShowContextMenu (parent, x, y, gtkMenu);
		}
		public DefaultPolicyOptionsDialog (Gtk.Window parentWindow)
			: base (parentWindow, new PolicySet (),
			        "/MonoDevelop/ProjectModel/Gui/DefaultPolicyPanels")
		{
			this.Title = GettextCatalog.GetString ("Custom Policies");
			editingSet = (PolicySet) DataObject;
			
			HBox topBar = new HBox ();
			topBar.Spacing = 3;
			topBar.PackStart (new Label (GettextCatalog.GetString ("Editing Policy:")), false, false, 0);
			
			policiesCombo = ComboBox.NewText ();
			topBar.PackStart (policiesCombo, false, false, 0);
			
			deleteButton = new Button (GettextCatalog.GetString ("Delete Policy"));
			topBar.PackEnd (deleteButton, false, false, 0);
			
			exportButton = new MenuButton ();
			exportButton.Label = GettextCatalog.GetString ("Export");
			exportButton.ContextMenuRequested = delegate {
				ContextMenu menu = new ContextMenu ();

				ContextMenuItem item = new ContextMenuItem (GettextCatalog.GetString ("To file..."));
				item.Clicked += HandleToFile;
				menu.Items.Add (item);

				item = new ContextMenuItem (GettextCatalog.GetString ("To project or solution..."));
				item.Clicked += HandleToProject;
				if (!IdeApp.Workspace.IsOpen) {
					item.Sensitive = false;
				}
				menu.Items.Add (item);

				return menu;
			};
			topBar.PackEnd (exportButton, false, false, 0);
			
			newButton = new MenuButton ();
			newButton.Label = GettextCatalog.GetString ("Add Policy");
			newButton.ContextMenuRequested = delegate {
				ContextMenu menu = new ContextMenu ();

				ContextMenuItem item = new ContextMenuItem (GettextCatalog.GetString ("New policy..."));
				item.Clicked += HandleNewButtonClicked;
				menu.Items.Add (item);

				item = new ContextMenuItem (GettextCatalog.GetString ("From file..."));
				item.Clicked += HandleFromFile;
				menu.Items.Add (item);

				item = new ContextMenuItem (GettextCatalog.GetString ("From project or solution..."));
				item.Clicked += HandleFromProject;
				if (!IdeApp.Workspace.IsOpen) {
					item.Sensitive = false;
				}
				menu.Items.Add (item);

				return menu;
			};
			topBar.PackEnd (newButton, false, false, 0);
			
			Alignment align = new Alignment (0f, 0f, 1f, 1f);
			align.LeftPadding = 9;
			align.TopPadding = 9;
			align.RightPadding = 9;
			align.BottomPadding = 9;
			align.Add (topBar);
			
			HeaderBox ebox = new HeaderBox ();
			ebox.GradientBackground = true;
			ebox.SetMargins (0, 1, 0, 0);
			ebox.Add (align);
			
			ebox.ShowAll ();
			
			VBox.PackStart (ebox, false, false, 0);
			VBox.BorderWidth = 0;
			Box.BoxChild c = (Box.BoxChild) VBox [ebox];
			c.Position = 0;
			
			foreach (PolicySet ps in PolicyService.GetUserPolicySets ()) {
				PolicySet copy = ps.Clone ();
				originalSets [copy] = ps;
				sets.Add (copy);
			}
			FillPolicySets ();
			
			policiesCombo.Changed += HandlePoliciesComboChanged;
			deleteButton.Clicked += HandleDeleteButtonClicked;
		}
Пример #6
0
		void ShowPopup (Gdk.EventButton evt)
		{
			TreeIter selected;

			if (!tree.Selection.GetSelected (out selected))
				return;
			var process = store.GetValue (selected, (int)Columns.Object) as ProcessInfo;
			if (process == null)
				return;//User right-clicked on thread and not process
			var session = store.GetValue (selected, (int)Columns.Session) as DebuggerSession;
			var context_menu = new ContextMenu ();
			var continueExecution = new ContextMenuItem (GettextCatalog.GetString ("Resume"));
			continueExecution.Sensitive = !session.IsRunning;
			continueExecution.Clicked += delegate {
				session.Continue ();
			};
			context_menu.Items.Add (continueExecution);
			var pauseExecution = new ContextMenuItem (GettextCatalog.GetString ("Pause"));
			pauseExecution.Sensitive = session.IsRunning;
			pauseExecution.Clicked += delegate {
				session.Stop ();
			};
			context_menu.Items.Add (pauseExecution);
			context_menu.Show (this, evt);
		}
		public static void ShowContextMenu (Gtk.Widget parent, int x, int y, ContextMenu menu, Action closeHandler)
		{
			var nsMenu = FromMenu (menu, closeHandler);
			ShowContextMenu (parent, x, y, nsMenu);
		}
		ContextMenu CreateContextMenu (FixMenuDescriptor entrySet)
		{
			var menu = new ContextMenu ();
			foreach (var item in entrySet.Items) {
				if (item == FixMenuEntry.Separator) {
					menu.Items.Add (new SeparatorContextMenuItem ());
					continue;
				}

				var menuItem = new ContextMenuItem (item.Label);
				menuItem.Context = item.Action;
				var subMenu = item as FixMenuDescriptor;
				if (subMenu != null) {
					menuItem.SubMenu = CreateContextMenu (subMenu);
					menuItem.Selected += delegate (object sender, Xwt.Rectangle e) {
						HidePreviewTooltip ();
					};
					menuItem.Deselected += delegate { HidePreviewTooltip (); };
				} else {
					menuItem.Clicked += (object sender, ContextMenuItemClickedEventArgs e) => ((System.Action)((ContextMenuItem)sender).Context) ();
					menuItem.Selected += delegate (object sender, Xwt.Rectangle e) {
						HidePreviewTooltip ();
						if (item.ShowPreviewTooltip != null) {
							item.ShowPreviewTooltip (e);
						}
					};
					menuItem.Deselected += delegate { HidePreviewTooltip (); };
				}
				menu.Items.Add (menuItem);
			}
			menu.Closed += delegate { HidePreviewTooltip (); };
			return menu;
		}
Пример #9
0
		void UpdateGlobalWarningLabel ()
		{
			KeyBindingConflict[] conflicts = currentBindings.CheckKeyBindingConflicts (IdeApp.CommandService.GetCommands ());
			if (conflicts.Length == 0) {
				globalWarningBox.Hide ();
				return;
			}
			globalWarningBox.Show ();

			conflicButton.ContextMenuRequested = delegate {
				ContextMenu menu = new ContextMenu ();
				bool first = true;

				foreach (KeyBindingConflict conf in conflicts) {
					if (first == false) {
						ContextMenuItem item = new SeparatorContextMenuItem ();
						menu.Items.Add (item);
					}

					foreach (Command cmd in conf.Commands) {
						string txt = currentBindings.GetBinding (cmd) + " - " + cmd.Text;
						ContextMenuItem item = new ContextMenuItem (txt);
						Command localCmd = cmd;

						item.Clicked += (sender, e) => SelectCommand (localCmd);

						menu.Items.Add (item);
						first = false;
					}
				}

				return menu;
			};
		}
		static Gtk.Menu FromMenu (ContextMenu menu)
		{
			var result = new Gtk.Menu ();

			foreach (var menuItem in menu.Items) {
				var item = CreateMenuItem (menuItem);
				if (item != null)
					result.Append (item);
			}

			return result;
		}
		public static void ShowContextMenu (Gtk.Widget parent, int x, int y, ContextMenu menu, Action closeHandler, bool selectFirstItem = false)
		{
			var nsMenu = FromMenu (menu, closeHandler);
			ShowContextMenu (parent, x, y, nsMenu, selectFirstItem);
		}
		static Gtk.Menu FromMenu (ContextMenu menu, Action closeHandler)
		{
			var result = new Gtk.Menu ();

			foreach (var menuItem in menu.Items) {
				var item = CreateMenuItem (menuItem);
				if (item != null)
					result.Append (item);
			}

			if (closeHandler != null) {
				result.Hidden += (sender, e) => closeHandler ();
			}
			return result;
		}
Пример #13
0
		void UpdateConflictsWarning ()
		{
			duplicates = new Dictionary<string, HashSet<Command>> ();
			foreach (var conflict in currentBindings.CheckKeyBindingConflicts (IdeApp.CommandService.GetCommands ())) {
				HashSet<Command> cmds = null;
				if (!duplicates.TryGetValue (conflict.Key, out cmds))
					duplicates [conflict.Key] = cmds = new HashSet<Command> ();
				foreach (var cmd in conflict.Commands)
					cmds.Add (cmd);
			}
			conflicts = new Dictionary<string, HashSet<Command>> ();

			foreach (var dup in duplicates) {
				foreach (var cmd in dup.Value) {
					HashSet<Command> cmdDuplicates;
					if (IdeApp.CommandService.Conflicts.TryGetValue (cmd, out cmdDuplicates)) {
						cmdDuplicates = new HashSet<Command> (cmdDuplicates.Intersect (dup.Value));
						if (cmdDuplicates.Count > 0) {
							HashSet<Command> cmdConflicts;
							if (!conflicts.TryGetValue (dup.Key, out cmdConflicts))
								conflicts [dup.Key] = cmdConflicts = new HashSet<Command> ();
							conflicts [dup.Key].UnionWith (cmdDuplicates);
						}
					}
				}
			}

			if (conflicts.Count == 0) {
				globalWarningBox.Hide ();
				return;
			}

			globalWarningBox.Show ();

			conflicButton.ContextMenuRequested = delegate {
				ContextMenu menu = new ContextMenu ();
				bool first = true;

				foreach (var conf in conflicts) {
					if (first == false) {
						ContextMenuItem item = new SeparatorContextMenuItem ();
						menu.Items.Add (item);
					}

					foreach (Command cmd in conf.Value.OrderBy (cmd => cmd.DisplayName)) {
						string txt = conf.Key + " \u2013 " + cmd.DisplayName;
						ContextMenuItem item = new ContextMenuItem (txt);
						Command localCmd = cmd;

						item.Clicked += (sender, e) => SelectCommand (localCmd);

						menu.Items.Add (item);
						first = false;
					}
				}

				return menu;
			};
		}
			public override void InformMousePress (TextEditor editor, Margin margin, MarginMouseEventArgs args)
			{
				if (!(margin is ActionMargin))
					return;

				var debugModeSet = Runtime.ProcessService.GetDebugExecutionMode ();

				var menu = new ContextMenu ();
				if (unitTest.IsFixture) {
					var menuItem = new ContextMenuItem ("_Run All");
					menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, false).Run;
					menu.Items.Add (menuItem);

					if (debugModeSet != null) {
						menuItem = new ContextMenuItem ("_Debug All");
						menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, true).Run;
						menu.Items.Add (menuItem);
					}

					menuItem = new ContextMenuItem ("_Select in Test Pad");
					menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, true).Select;
					menu.Items.Add (menuItem);
				} else {
					if (unitTest.TestCases.Count == 0) {
						var menuItem = new ContextMenuItem ("_Run");
						menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, false).Run;
						menu.Items.Add (menuItem);
						if (debugModeSet != null) {
							menuItem = new ContextMenuItem ("_Debug");
							menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, true).Run;
							menu.Items.Add (menuItem);
						}
						menuItem = new ContextMenuItem ("_Select in Test Pad");
						menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, true).Select;
						menu.Items.Add (menuItem);
					} else {
						var menuItem = new ContextMenuItem ("_Run All");
						menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, false).Run;
						menu.Items.Add (menuItem);
						if (debugModeSet != null) {
							menuItem = new ContextMenuItem ("_Debug All");
							menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier, true).Run;
							menu.Items.Add (menuItem);
						}
						menu.Items.Add (new SeparatorContextMenuItem ());
						foreach (var id in unitTest.TestCases) {
							var submenu = new ContextMenu ();
							menuItem = new ContextMenuItem ("_Run");
							menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier + id, false).Run;
							submenu.Items.Add (menuItem);
							if (debugModeSet != null) {
								menuItem = new ContextMenuItem ("_Debug");
								menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier + id, true).Run;
								submenu.Items.Add (menuItem);
							}

							var label = "Test" + id;
							string tooltip = null;
							var test = NUnitService.Instance.SearchTestById (unitTest.UnitTestIdentifier + id);
							if (test != null) {
								var result = test.GetLastResult ();
								if (result != null && result.IsFailure) {
									tooltip = result.Message;
									label += "!";
								}
							}

							menuItem = new ContextMenuItem ("_Select in Test Pad");
							menuItem.Clicked += new TestRunner (doc, unitTest.UnitTestIdentifier + id, true).Select;
							submenu.Items.Add (menuItem);

							var subMenuItem = new ContextMenuItem (label);
							//if (!string.IsNullOrEmpty (tooltip))
							//	subMenuItem.TooltipText = tooltip;

							subMenuItem.SubMenu = submenu;
							menu.Items.Add (subMenuItem);
						}
					}
				}

				menu.Show (editor, (int)(args.X + margin.XOffset), (int)args.Y);
			}
Пример #15
0
 public static void ShowContextMenu(Gtk.Widget parent, int x, int y, ContextMenu menu)
 {
     ShowContextMenu(parent, x, y, menu, null);
 }
Пример #16
0
        public static void ShowContextMenu(Gtk.Widget parent, int x, int y, ContextMenu menu, Action closeHandler, bool selectFirstItem = false)
        {
            var nsMenu = FromMenu(menu, closeHandler);

            ShowContextMenu(parent, x, y, nsMenu, selectFirstItem);
        }
Пример #17
0
 public static void ShowContextMenu(Gtk.Widget parent, Gdk.EventButton evt, ContextMenu menu)
 {
     ShowContextMenu(parent, evt, menu, null);
 }
Пример #18
0
 public ContextMenuDelegate(ContextMenu menu)
 {
     this.menu = menu;
 }
		static NSMenu FromMenu (ContextMenu menu, Action closeHandler)
		{
			var result = new NSMenu () { AutoEnablesItems = false };
			result.WeakDelegate = new ContextMenuDelegate { CloseHandler = closeHandler };

			foreach (var menuItem in menu.Items) {
				var item = CreateMenuItem (menuItem);
				result.AddItem (item);
			}

			return result;
		}
			public override void PopupContextMenu (UnitTestLocation unitTest, int x, int y)
			{
				var debugModeSet = Runtime.ProcessService.GetDebugExecutionMode ();
				var project = ext?.DocumentContext?.Project;
				if (project == null)
					return;
				var menu = new ContextMenu ();
				if (unitTest.IsFixture) {
					var menuItem = new ContextMenuItem ("_Run All");
					menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, false).Run;
					menu.Add (menuItem);
					if (debugModeSet != null) {
						menuItem = new ContextMenuItem ("_Debug All");
						menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, true).Run;
						menu.Add (menuItem);
					}
					menuItem = new ContextMenuItem ("_Select in Test Pad");
					menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, true).Select;
					menu.Add (menuItem);
				} else {
					if (unitTest.TestCases.Count == 0) {
						var menuItem = new ContextMenuItem ("_Run");
						menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, false).Run;
						menu.Add (menuItem);
						if (debugModeSet != null) {
							menuItem = new ContextMenuItem ("_Debug");
							menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, true).Run;
							menu.Add (menuItem);
						}
						menuItem = new ContextMenuItem ("_Select in Test Pad");
						menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, true).Select;
						menu.Add (menuItem);
					} else {
						var menuItem = new ContextMenuItem ("_Run All");
						menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, false).Run;
						menu.Add (menuItem);
						if (debugModeSet != null) {
							menuItem = new ContextMenuItem ("_Debug All");
							menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier, project, true).Run;
							menu.Add (menuItem);
						}
						menu.Add (new SeparatorContextMenuItem ());
						foreach (var id in unitTest.TestCases) {
							var submenu = new ContextMenu ();
							menuItem = new ContextMenuItem ("_Run");
							menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier + id, project, false).Run;
							submenu.Add (menuItem);
							if (debugModeSet != null) {
								menuItem = new ContextMenuItem ("_Debug");
								menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier + id, project, true).Run;
								submenu.Add (menuItem);
							}

							var label = "Test" + id;
							string tooltip = null;
							var test = UnitTestService.SearchTestById (unitTest.UnitTestIdentifier + id);
							if (test != null) {
								var result = test.GetLastResult ();
								if (result != null && result.IsFailure) {
									tooltip = result.Message;
									label += "!";
								}
							}

							menuItem = new ContextMenuItem ("_Select in Test Pad");
							menuItem.Clicked += new TestRunner (unitTest.UnitTestIdentifier + id, project, true).Select;
							submenu.Add (menuItem);

							var subMenuItem = new ContextMenuItem (label);
							// if (!string.IsNullOrEmpty (tooltip))
							//	subMenuItem.TooltipText = tooltip;
							subMenuItem.SubMenu  = submenu;
							menu.Add (subMenuItem);
						}
					}
				}
				menu.Show (ext.Editor, x, y);
			}
		public static void ShowContextMenu (Gtk.Widget parent, Gdk.EventButton evt, ContextMenu menu)
		{
			ShowContextMenu (parent, evt, menu, null);
		}
		static NSMenu FromMenu (ContextMenu menu)
		{
			var result = new NSMenu () { AutoEnablesItems = false };

			foreach (var menuItem in menu.Items) {
				var item = CreateMenuItem (menuItem);
				result.AddItem (item);
			}

			return result;
		}
		public static void ShowContextMenu (Gtk.Widget parent, int x, int y, ContextMenu menu)
		{
			ShowContextMenu (parent, x, y, menu, null);
		}
		public static void ShowContextMenu (Gtk.Widget parent, int x, int y, ContextMenu menu)
		{
			var nsMenu = FromMenu (menu);
			ShowContextMenu (parent, x, y, nsMenu);
		}
		static Gtk.Menu FromMenu (ContextMenu menu, Action closeHandler)
		{
			var result = new Gtk.Menu ();

			foreach (var menuItem in menu.Items) {
				var item = CreateMenuItem (menuItem);
				if (item != null)
					result.Append (item);
			}

			result.Hidden += delegate {
				if (closeHandler != null)
					closeHandler ();
				menu.FireClosedEvent ();
			};
			return result;
		}
			public PoupHandlerWrapper (ContextMenu menu, Gtk.Menu gtkMenu)
			{
				this.menu = menu;
				gtkMenu.ExposeEvent += HandleExposeEvent;
			}
Пример #27
0
		void ShowPopup (Gdk.EventButton evt)
		{
			var context_menu = new ContextMenu ();
			context_menu.Items.Add (new SeparatorContextMenuItem ());
			var selectAllItem = new ContextMenuItem (GettextCatalog.GetString ("Select All"));
			selectAllItem.Clicked += delegate {
				OnSelectAll ();
			};
			context_menu.Items.Add (selectAllItem);
			var copyItem = new ContextMenuItem (GettextCatalog.GetString ("Copy"));
			copyItem.Clicked += delegate {
				OnCopy ();
			};
			context_menu.Items.Add (copyItem);

			context_menu.Items.Add (new SeparatorContextMenuItem ());

			var assemblyCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Show Module Name"));
			assemblyCheckbox.Clicked += delegate {
				assemblyCheckbox.Checked = ShowModuleName = !ShowModuleName;
				StoreSettings ();
				UpdateDisplay ();
			};
			assemblyCheckbox.Checked = ShowModuleName;
			context_menu.Items.Add (assemblyCheckbox);
			var typeCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Show Parameter Type"));
			typeCheckbox.Clicked += delegate {
				typeCheckbox.Checked = ShowParameterType = !ShowParameterType;
				StoreSettings ();
				UpdateDisplay ();
			};
			typeCheckbox.Checked = ShowParameterType;
			context_menu.Items.Add (typeCheckbox);
			var nameCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Show Parameter Name"));
			nameCheckbox.Clicked += delegate {
				nameCheckbox.Checked = ShowParameterName = !ShowParameterName;
				StoreSettings ();
				UpdateDisplay ();
			};
			nameCheckbox.Checked = ShowParameterName;
			context_menu.Items.Add (nameCheckbox);
			var valueCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Show Parameter Value"));
			valueCheckbox.Clicked += delegate {
				valueCheckbox.Checked = ShowParameterValue = !ShowParameterValue;
				StoreSettings ();
				UpdateDisplay ();
			};
			valueCheckbox.Checked = ShowParameterValue;
			context_menu.Items.Add (valueCheckbox);
			var lineCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Show Line Number"));
			lineCheckbox.Clicked += delegate {
				lineCheckbox.Checked = ShowLineNumber = !ShowLineNumber;
				StoreSettings ();
				UpdateDisplay ();
			};
			lineCheckbox.Checked = ShowLineNumber;
			context_menu.Items.Add (lineCheckbox);

			context_menu.Items.Add (new SeparatorContextMenuItem ());

			var columnsVisibilitySubMenu = new ContextMenu ();
			var nameColumnVisibilityCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Name"));
			nameColumnVisibilityCheckbox.Clicked += delegate {
				nameColumnVisibilityCheckbox.Checked = tree.Columns [MethodColumn].Visible = !tree.Columns [MethodColumn].Visible;
				StoreColumnsVisibility ();
			};
			nameColumnVisibilityCheckbox.Checked = tree.Columns [MethodColumn].Visible;
			columnsVisibilitySubMenu.Items.Add (nameColumnVisibilityCheckbox);
			var fileColumnVisibilityCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("File"));
			fileColumnVisibilityCheckbox.Clicked += delegate {
				fileColumnVisibilityCheckbox.Checked = tree.Columns [FileColumn].Visible = !tree.Columns [FileColumn].Visible;
				StoreColumnsVisibility ();
			};
			fileColumnVisibilityCheckbox.Checked = tree.Columns [FileColumn].Visible;
			columnsVisibilitySubMenu.Items.Add (fileColumnVisibilityCheckbox);
			var languageColumnVisibilityCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Language"));
			languageColumnVisibilityCheckbox.Clicked += delegate {
				languageColumnVisibilityCheckbox.Checked = tree.Columns [LangColumn].Visible = !tree.Columns [LangColumn].Visible;
				StoreColumnsVisibility ();
			};
			languageColumnVisibilityCheckbox.Checked = tree.Columns [LangColumn].Visible;
			columnsVisibilitySubMenu.Items.Add (languageColumnVisibilityCheckbox);
			var addressColumnVisibilityCheckbox = new CheckBoxContextMenuItem (GettextCatalog.GetString ("Address"));
			addressColumnVisibilityCheckbox.Clicked += delegate {
				addressColumnVisibilityCheckbox.Checked = tree.Columns [AddrColumn].Visible = !tree.Columns [AddrColumn].Visible;
				StoreColumnsVisibility ();
			};
			addressColumnVisibilityCheckbox.Checked = tree.Columns [AddrColumn].Visible;
			columnsVisibilitySubMenu.Items.Add (addressColumnVisibilityCheckbox);
			context_menu.Items.Add (new ContextMenuItem (GettextCatalog.GetString ("Columns")){ SubMenu = columnsVisibilitySubMenu });


			context_menu.Show (this, evt);
		}
			public ContextMenuDelegate (ContextMenu menu)
			{
				this.menu = menu;
			}
		ContextMenu CreateContextMenu (FixMenuDescriptor entrySet)
		{
			var menu = new ContextMenu ();

			foreach (var item in entrySet.Items) {
				if (item == FixMenuEntry.Separator) {
					menu.Items.Add (new SeparatorContextMenuItem ());
					continue;
				}

				var menuItem = new ContextMenuItem (item.Label);
				menuItem.Context = item.Action;
				var subMenu = item as FixMenuDescriptor;
				if (subMenu != null) {
					menuItem.SubMenu = CreateContextMenu (subMenu);
				} else {
					menuItem.Clicked += (object sender, ContextMenuItemClickedEventArgs e) => ((System.Action)((ContextMenuItem)sender).Context) ();
				}
				menu.Items.Add (menuItem);
			}

			return menu;
		}
 internal ContextMenuItemCollection(ContextMenu parent)
 {
 }