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 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);
			}
Example #3
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 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);
			}