//destroy everything but our tray icon, main window, and our notification bubble private void DestroyMostlyEverything() { if (hbox != null) { hbox.Destroy(); } if (vbox != null) { vbox.Destroy(); } if (newi != null) { newi.Destroy(); } if (menuBar != null) { menuBar.Destroy(); } if (filemenu != null) { filemenu.Destroy(); } if (file != null) { file.Destroy(); } if (sep != null) { sep.Destroy(); } if (exit != null) { exit.Destroy(); } if (uploadButton != null) { uploadButton.Destroy(); } if (toCropBox != null) { toCropBox.Destroy(); } if (agr != null) { agr.Dispose(); } }
internal void ShowDockPopupMenu (uint time) { Menu menu = new Menu (); // Hide menuitem if ((Behavior & DockItemBehavior.CantClose) == 0) { MenuItem mitem = new MenuItem (Catalog.GetString("Hide")); mitem.Activated += delegate { Visible = false; }; menu.Append (mitem); } MenuItem citem; // Auto Hide menuitem if ((Behavior & DockItemBehavior.CantAutoHide) == 0 && Status != DockItemStatus.AutoHide) { citem = new MenuItem (Catalog.GetString("Minimize")); citem.Activated += delegate { Status = DockItemStatus.AutoHide; }; menu.Append (citem); } if (Status != DockItemStatus.Dockable) { // Dockable menuitem citem = new MenuItem (Catalog.GetString("Dock")); citem.Activated += delegate { Status = DockItemStatus.Dockable; }; menu.Append (citem); } // Floating menuitem if ((Behavior & DockItemBehavior.NeverFloating) == 0 && Status != DockItemStatus.Floating) { citem = new MenuItem (Catalog.GetString("Undock")); citem.Activated += delegate { Status = DockItemStatus.Floating; }; menu.Append (citem); } if (menu.Children.Length == 0) { menu.Destroy (); return; } ShowingContextMemu = true; menu.ShowAll (); menu.Hidden += (o,e) => { ShowingContextMemu = false; }; menu.Popup (null, null, null, 3, time); }
public Menu CreateOptionsMenu () { Menu menu = new Menu (); MenuItem searchInMenu = new MenuItem (GettextCatalog.GetString ("_Search in")); Menu sub = new Menu (); searchInMenu.Submenu = sub; Gtk.RadioMenuItem original = null, translated = null, both = null; GLib.SList group = new GLib.SList (IntPtr.Zero); original = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Original")); group = original.Group; original.ButtonPressEvent += delegate { original.Activate (); }; sub.Append (original); translated = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Translated")); translated.ButtonPressEvent += delegate { translated.Activate (); }; group = translated.Group; sub.Append (translated); both = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Both")); both.ButtonPressEvent += delegate { both.Activate (); }; sub.Append (both); switch (DoSearchIn) { case SearchIn.Both: both.Activate (); break; case SearchIn.Original: original.Activate (); break; case SearchIn.Translated: translated.Activate (); break; } menu.Append (searchInMenu); both.Activated += delegate { if (DoSearchIn != SearchIn.Both) { DoSearchIn = SearchIn.Both; UpdateFromCatalog (); menu.Destroy (); } }; original.Activated += delegate { if (DoSearchIn != SearchIn.Original) { DoSearchIn = SearchIn.Original; UpdateFromCatalog (); menu.Destroy (); } }; translated.Activated += delegate { if (DoSearchIn != SearchIn.Translated) { DoSearchIn = SearchIn.Translated; UpdateFromCatalog (); menu.Destroy (); } }; Gtk.CheckMenuItem regexSearch = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Regex search")); regexSearch.Active = RegexSearch; regexSearch.ButtonPressEvent += delegate { RegexSearch = !RegexSearch; UpdateFromCatalog (); }; menu.Append (regexSearch); Gtk.CheckMenuItem caseSensitive = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Case sensitive")); caseSensitive.Active = IsCaseSensitive; caseSensitive.ButtonPressEvent += delegate { IsCaseSensitive = !IsCaseSensitive; UpdateFromCatalog (); }; menu.Append (caseSensitive); Gtk.CheckMenuItem wholeWordsOnly = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Whole words only")); wholeWordsOnly.Active = IsWholeWordOnly; wholeWordsOnly.Sensitive = !RegexSearch; wholeWordsOnly.ButtonPressEvent += delegate { IsWholeWordOnly = !IsWholeWordOnly; UpdateFromCatalog (); }; menu.Append (wholeWordsOnly); menu.ShowAll (); return menu; }
void PopupQuickFixMenu (Gdk.EventButton evt, Action<Gtk.Menu> menuAction) { var menu = new Gtk.Menu (); menu.Events |= Gdk.EventMask.AllEventsMask; Gtk.Menu fixMenu = menu; ResolveResult resolveResult; ICSharpCode.NRefactory.CSharp.AstNode node; int items = 0; if (ResolveCommandHandler.ResolveAt (document, out resolveResult, out node)) { var possibleNamespaces = MonoDevelop.Refactoring.ResolveCommandHandler.GetPossibleNamespaces ( document, node, ref resolveResult ); foreach (var t in possibleNamespaces.Where (tp => tp.OnlyAddReference)) { var menuItem = new Gtk.MenuItem (t.GetImportText ()); menuItem.Activated += delegate { new ResolveCommandHandler.AddImport (document, resolveResult, null, t.Reference, true, node).Run (); menu.Destroy (); }; menu.Add (menuItem); items++; } bool addUsing = !(resolveResult is AmbiguousTypeResolveResult); if (addUsing) { foreach (var t in possibleNamespaces.Where (tp => tp.IsAccessibleWithGlobalUsing)) { string ns = t.Namespace; var reference = t.Reference; var menuItem = new Gtk.MenuItem (t.GetImportText ()); menuItem.Activated += delegate { new ResolveCommandHandler.AddImport (document, resolveResult, ns, reference, true, node).Run (); menu.Destroy (); }; menu.Add (menuItem); items++; } } bool resolveDirect = !(resolveResult is UnknownMemberResolveResult); if (resolveDirect) { foreach (var t in possibleNamespaces) { string ns = t.Namespace; var reference = t.Reference; var menuItem = new Gtk.MenuItem (t.GetInsertNamespaceText (document.Editor.GetTextBetween (node.StartLocation, node.EndLocation))); menuItem.Activated += delegate { new ResolveCommandHandler.AddImport (document, resolveResult, ns, reference, false, node).Run (); menu.Destroy (); }; menu.Add (menuItem); items++; } } if (menu.Children.Any () && Fixes.Any ()) { fixMenu = new Gtk.Menu (); var menuItem = new Gtk.MenuItem (GettextCatalog.GetString ("Quick Fixes")); menuItem.Submenu = fixMenu; menu.Add (menuItem); items++; } } PopulateFixes (fixMenu, ref items); if (items == 0) { menu.Destroy (); return; } document.Editor.SuppressTooltips = true; document.Editor.Parent.HideTooltip (); if (menuAction != null) menuAction (menu); menu.ShowAll (); menu.SelectFirst (true); menu.Hidden += delegate { document.Editor.SuppressTooltips = false; }; var container = document.Editor.Parent; var p = container.LocationToPoint (currentSmartTagBegin); var rect = new Gdk.Rectangle ( p.X + container.Allocation.X , p.Y + (int)document.Editor.LineHeight + container.Allocation.Y, 0, 0); GtkWorkarounds.ShowContextMenu (menu, document.Editor.Parent, null, rect); }
public void PopulateFixes(Gtk.Menu menu, ref int items) { int mnemonic = 1; bool gotImportantFix = false, addedSeparator = false; var fixesAdded = new List <string> (); foreach (var fix_ in Fixes.OrderByDescending(i => Tuple.Create(IsAnalysisOrErrorFix(i), (int)i.Severity, GetUsage(i.IdString)))) { // filter out code actions that are already resolutions of a code issue if (fixesAdded.Any(f => fix_.IdString.IndexOf(f, StringComparison.Ordinal) >= 0)) { continue; } fixesAdded.Add(fix_.IdString); if (IsAnalysisOrErrorFix(fix_)) { gotImportantFix = true; } if (!addedSeparator && gotImportantFix && !IsAnalysisOrErrorFix(fix_)) { menu.Add(new Gtk.SeparatorMenuItem()); addedSeparator = true; } var fix = fix_; var escapedLabel = fix.Title.Replace("_", "__"); var label = (mnemonic <= 10) ? "_" + (mnemonic++ % 10).ToString() + " " + escapedLabel : " " + escapedLabel; var thisInstanceMenuItem = new MenuItem(label); thisInstanceMenuItem.Activated += new ContextActionRunner(fix, document, currentSmartTagBegin).Run; thisInstanceMenuItem.Activated += delegate { ConfirmUsage(fix.IdString); menu.Destroy(); }; menu.Add(thisInstanceMenuItem); items++; } bool first = true; var settingsMenuFixes = Fixes .OfType <AnalysisContextActionProvider.AnalysisCodeAction> () .Where(f => f.Result is InspectorResults) .GroupBy(f => ((InspectorResults)f.Result).Inspector); foreach (var analysisFixGroup_ in settingsMenuFixes) { var analysisFixGroup = analysisFixGroup_; var arbitraryFixInGroup = analysisFixGroup.First(); var ir = (InspectorResults)arbitraryFixInGroup.Result; if (first) { menu.Add(new Gtk.SeparatorMenuItem()); first = false; } var subMenu = new Gtk.Menu(); foreach (var analysisFix_ in analysisFixGroup) { var analysisFix = analysisFix_; if (analysisFix.SupportsBatchRunning) { var batchRunMenuItem = new Gtk.MenuItem(string.Format(GettextCatalog.GetString("Apply in file: {0}"), analysisFix.Title)); batchRunMenuItem.Activated += delegate { ConfirmUsage(analysisFix.IdString); menu.Destroy(); }; batchRunMenuItem.Activated += new ContextActionRunner(analysisFix, document, this.currentSmartTagBegin).BatchRun; subMenu.Add(batchRunMenuItem); subMenu.Add(new Gtk.SeparatorMenuItem()); } } var inspector = ir.Inspector; if (inspector.CanSuppressWithAttribute) { var menuItem = new Gtk.MenuItem(GettextCatalog.GetString("_Suppress with attribute")); menuItem.Activated += delegate { inspector.SuppressWithAttribute(document, arbitraryFixInGroup.DocumentRegion); }; subMenu.Add(menuItem); } if (inspector.CanDisableWithPragma) { var menuItem = new Gtk.MenuItem(GettextCatalog.GetString("_Suppress with #pragma")); menuItem.Activated += delegate { inspector.DisableWithPragma(document, arbitraryFixInGroup.DocumentRegion); }; subMenu.Add(menuItem); } if (inspector.CanDisableOnce) { var menuItem = new Gtk.MenuItem(GettextCatalog.GetString("_Disable Once")); menuItem.Activated += delegate { inspector.DisableOnce(document, arbitraryFixInGroup.DocumentRegion); }; subMenu.Add(menuItem); } if (inspector.CanDisableAndRestore) { var menuItem = new Gtk.MenuItem(GettextCatalog.GetString("Disable _and Restore")); menuItem.Activated += delegate { inspector.DisableAndRestore(document, arbitraryFixInGroup.DocumentRegion); }; subMenu.Add(menuItem); } var label = GettextCatalog.GetString("_Options for \"{0}\"", InspectorResults.GetTitle(ir.Inspector)); var subMenuItem = new Gtk.MenuItem(label); var optionsMenuItem = new Gtk.MenuItem(GettextCatalog.GetString("_Configure Rule")); optionsMenuItem.Activated += arbitraryFixInGroup.ShowOptions; optionsMenuItem.Activated += delegate { menu.Destroy(); }; subMenu.Add(optionsMenuItem); subMenuItem.Submenu = subMenu; menu.Add(subMenuItem); items++; } }
void PopupQuickFixMenu(Gdk.EventButton evt, Action <Gtk.Menu> menuAction) { var menu = new Gtk.Menu(); menu.Events |= Gdk.EventMask.AllEventsMask; Gtk.Menu fixMenu = menu; ResolveResult resolveResult; ICSharpCode.NRefactory.CSharp.AstNode node; int items = 0; if (ResolveCommandHandler.ResolveAt(document, out resolveResult, out node)) { var possibleNamespaces = MonoDevelop.Refactoring.ResolveCommandHandler.GetPossibleNamespaces( document, node, ref resolveResult ); foreach (var t in possibleNamespaces.Where(tp => tp.OnlyAddReference)) { var menuItem = new Gtk.MenuItem(t.GetImportText()); menuItem.Activated += delegate { new ResolveCommandHandler.AddImport(document, resolveResult, null, t.Reference, true, node).Run(); menu.Destroy(); }; menu.Add(menuItem); items++; } bool addUsing = !(resolveResult is AmbiguousTypeResolveResult); if (addUsing) { foreach (var t in possibleNamespaces.Where(tp => tp.IsAccessibleWithGlobalUsing)) { string ns = t.Namespace; var reference = t.Reference; var menuItem = new Gtk.MenuItem(t.GetImportText()); menuItem.Activated += delegate { new ResolveCommandHandler.AddImport(document, resolveResult, ns, reference, true, node).Run(); menu.Destroy(); }; menu.Add(menuItem); items++; } } bool resolveDirect = !(resolveResult is UnknownMemberResolveResult); if (resolveDirect) { foreach (var t in possibleNamespaces) { string ns = t.Namespace; var reference = t.Reference; var menuItem = new Gtk.MenuItem(t.GetInsertNamespaceText(document.Editor.GetTextBetween(node.StartLocation, node.EndLocation))); menuItem.Activated += delegate { new ResolveCommandHandler.AddImport(document, resolveResult, ns, reference, false, node).Run(); menu.Destroy(); }; menu.Add(menuItem); items++; } } if (menu.Children.Any() && Fixes.Any()) { fixMenu = new Gtk.Menu(); var menuItem = new Gtk.MenuItem(GettextCatalog.GetString("Quick Fixes")); menuItem.Submenu = fixMenu; menu.Add(menuItem); items++; } } PopulateFixes(fixMenu, ref items); if (items == 0) { menu.Destroy(); return; } document.Editor.SuppressTooltips = true; document.Editor.Parent.HideTooltip(); if (menuAction != null) { menuAction(menu); } menu.ShowAll(); menu.SelectFirst(true); menu.Hidden += delegate { document.Editor.SuppressTooltips = false; }; var container = document.Editor.Parent; var p = container.LocationToPoint(currentSmartTagBegin); var rect = new Gdk.Rectangle( p.X + container.Allocation.X, p.Y + (int)document.Editor.LineHeight + container.Allocation.Y, 0, 0); GtkWorkarounds.ShowContextMenu(menu, document.Editor.Parent, null, rect); }
// options menu for filterSearchEntry public Menu CreateOptionsMenu() { Menu menu = new Menu (); MenuItem searchInMenu = new MenuItem (GettextCatalog.GetString ("_Search in")); Menu sub = new Menu (); searchInMenu.Submenu = sub; Gtk.RadioMenuItem name = null, baseValue = null, value =null, comment = null, all = null; GLib.SList group = new GLib.SList (IntPtr.Zero); name = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Name")); group = name.Group; name.ButtonPressEvent += delegate { name.Activate (); }; sub.Append (name); baseValue = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Base Value")); baseValue.ButtonPressEvent += delegate { baseValue.Activate (); }; group = baseValue.Group; sub.Append (baseValue); value = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Value")); value.ButtonPressEvent += delegate { value.Activate (); }; group = value.Group; sub.Append (value); comment = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_Comment")); comment.ButtonPressEvent += delegate { comment.Activate (); }; group = comment.Group; sub.Append (comment); all = new Gtk.RadioMenuItem (group, GettextCatalog.GetString ("_All")); all.ButtonPressEvent += delegate { all.Activate (); }; sub.Append (all); switch (DoSearchIn) { case SearchIn.All: all.Activate (); break; case SearchIn.BaseValue: baseValue.Activate (); break; case SearchIn.Value: value.Activate (); break; case SearchIn.Name: name.Activate (); break; case SearchIn.Comment: comment.Activate (); break; } menu.Append (searchInMenu); all.Activated += delegate { if (DoSearchIn != SearchIn.All) { DoSearchIn = SearchIn.All; Refresh (); menu.Destroy (); } }; baseValue.Activated += delegate { if (DoSearchIn != SearchIn.BaseValue) { DoSearchIn = SearchIn.BaseValue; Refresh (); menu.Destroy (); } }; value.Activated += delegate { if (DoSearchIn != SearchIn.Value) { DoSearchIn = SearchIn.Value; Refresh (); menu.Destroy (); } }; name.Activated += delegate { if (DoSearchIn != SearchIn.Name) { DoSearchIn = SearchIn.Name; Refresh (); menu.Destroy (); } }; comment.Activated += delegate { if (DoSearchIn != SearchIn.Comment) { DoSearchIn = SearchIn.Comment; Refresh (); menu.Destroy (); } }; Gtk.CheckMenuItem regexSearch = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Regex search")); regexSearch.Active = RegexSearch; regexSearch.ButtonPressEvent += delegate { RegexSearch = !RegexSearch; Refresh (); }; menu.Append (regexSearch); Gtk.CheckMenuItem caseSensitive = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Case sensitive")); caseSensitive.Active = IsCaseSensitive; caseSensitive.ButtonPressEvent += delegate { IsCaseSensitive = !IsCaseSensitive; Refresh (); }; menu.Append (caseSensitive); Gtk.CheckMenuItem wholeWordsOnly = new Gtk.CheckMenuItem (MonoDevelop.Core.GettextCatalog.GetString ("_Whole words only")); wholeWordsOnly.Active = IsWholeWordOnly; wholeWordsOnly.Sensitive = !RegexSearch; wholeWordsOnly.ButtonPressEvent += delegate { IsWholeWordOnly = !IsWholeWordOnly; Refresh (); }; menu.Append (wholeWordsOnly); menu.ShowAll (); return menu; }
//literally, destroy all our gui stuff private void DestroyEverything() { if (hbox != null) { hbox.Destroy(); } if (vbox != null) { vbox.Destroy(); } if (newi != null) { newi.Destroy(); } if (menuBar != null) { menuBar.Destroy(); } if (filemenu != null) { filemenu.Destroy(); } if (file != null) { file.Destroy(); } if (sep != null) { sep.Destroy(); } if (exit != null) { exit.Destroy(); } if (uploadButton != null) { uploadButton.Destroy(); } if (toCropBox != null) { toCropBox.Destroy(); } if (appimg != null) { appimg.Destroy(); } if (menuItemQuit != null) { menuItemQuit.Destroy(); } if (popupMenu != null) { popupMenu.Destroy(); } if (notificationMessage != null) { notificationMessage.Destroy(); } if (notificationEventBox != null) { notificationEventBox.Destroy(); } if (mainWindowTracker != null) { mainWindowTracker.Destroy(); } if (trayIcon != null) { trayIcon.Dispose(); } if (agr != null) { agr.Dispose(); } }
internal void ShowDockPopupMenu(uint time, TabStrip tabstrip = null) { Menu menu = new Menu(); MenuItem citem; // Close menuitem if ((Behavior & DockItemBehavior.CantClose) == 0) { citem = new MenuItem(Catalog.GetString("Close")); citem.Activated += delegate { Close(); }; menu.Append(citem); } { citem = new MenuItem(this.Status==DockItemStatus.AutoHide ? Catalog.GetString("Restore" ) : Catalog.GetString("Minimize")); citem.Activated += (o, e) => { TitleTab.OnClickDock(o, e); if(this.Status==DockItemStatus.AutoHide) (o as MenuItem).Name = this.Status==DockItemStatus.AutoHide ? Catalog.GetString("Restore" ) : Catalog.GetString("Minimize"); }; menu.Append(citem); } #if false // Hide menuitem if ((Behavior & DockItemBehavior.CantClose) == 0 && (Behavior & DockItemBehavior.CloseOnHide) == 0) { citem = new MenuItem (Catalog.GetString("Hide")); citem.Activated += delegate { Visible = false; }; menu.Append (citem); } // Auto Hide menuitem if ((Behavior & DockItemBehavior.CantAutoHide) == 0 && Status != DockItemStatus.AutoHide) { citem = new MenuItem (Catalog.GetString("Minimize")); citem.Activated += delegate { Status = DockItemStatus.AutoHide; }; menu.Append (citem); } #endif if (Status != DockItemStatus.Dockable) { // Dockable menuitem citem = new MenuItem(Catalog.GetString("Dock")); citem.Activated += delegate { Status = DockItemStatus.Dockable; }; menu.Append(citem); } // Floating menuitem if ((Behavior & DockItemBehavior.NeverFloating) == 0 && Status != DockItemStatus.Floating) { citem = new MenuItem(Catalog.GetString("Undock")); citem.Activated += delegate { Status = DockItemStatus.Floating; }; menu.Append(citem); } // flip tab menuitem if (tabstrip != null && (Behavior & DockItemBehavior.NeverFloating) == 0 && Status != DockItemStatus.Floating && (Status == DockItemStatus.Dockable || Status == DockItemStatus.AutoHide)) { citem = new MenuItem(Catalog.GetString("Toggle Horizontal/Vertical Tab Layout")); citem.Activated += (o, e) => { tabstrip.Flip(); }; menu.Append(citem); } if (menu.Children.Length == 0) { menu.Destroy(); return; } ShowingContextMemu = true; menu.ShowAll(); menu.Hidden += (o, e) => { ShowingContextMemu = false; }; menu.Popup(null, null, null, 3, time); }