public TextEditorDialog () { Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow (); sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; sc.ShadowType = Gtk.ShadowType.In; sc.BorderWidth = 6; textview = new Gtk.TextView (); sc.Add (textview); dialog = new Gtk.Dialog (); dialog.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dialog.AddButton (Gtk.Stock.Ok, Gtk.ResponseType.Ok); dialog.VBox.Add (sc); }
void RunDialog(string message) { if (disposed) { return; } dialog = new Gtk.Dialog() { Title = "Waiting for debugger" }; var label = new Gtk.Alignment(0.5f, 0.5f, 1f, 1f) { Child = new Gtk.Label(message), BorderWidth = 12 }; dialog.VBox.PackStart(label); label.ShowAll(); dialog.AddButton("Cancel", Gtk.ResponseType.Cancel); int response = MonoDevelop.Ide.MessageService.ShowCustomDialog(dialog); dialog.Destroy(); dialog = null; if (!disposed && response != (int)Gtk.ResponseType.Ok && UserCancelled != null) { UserCancelled(null, null); } }
void ShowListenDialog(RemoteDebuggerStartInfo dsi) { string message = GetListenMessage(dsi); Gtk.Application.Invoke(delegate { if (VirtualMachine != null || Exited) { return; } dialog = new Gtk.Dialog() { Title = "Waiting for debugger" }; var label = new Gtk.Alignment(0.5f, 0.5f, 1f, 1f) { Child = new Gtk.Label(message), BorderWidth = 12 }; dialog.VBox.PackStart(label); label.ShowAll(); dialog.AddButton("Cancel", Gtk.ResponseType.Cancel); int response = MonoDevelop.Ide.MessageService.ShowCustomDialog(dialog); if (response != (int)Gtk.ResponseType.Ok) { EndSession(); } dialog = null; }); }
private void OnViewNotebook() { var dlg = new Gtk.Dialog("Boxes", this, Gtk.DialogFlags.Modal); var nbTabs = new Gtk.Notebook(); nbTabs.AppendPage(new Gtk.Label("Page1"), new Gtk.Label("Page1")); nbTabs.AppendPage(new Gtk.Label("Page2"), new Gtk.Label("Page2")); dlg.VBox.PackStart(nbTabs, true, true, 5); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinHeight = 200, MinWidth = 320 }, Gdk.WindowHints.MinSize ); dlg.AddButton("Ok", Gtk.ResponseType.Ok); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
private void OnViewBoxes() { var dlg = new Gtk.Dialog( "Boxes", this, Gtk.DialogFlags.Modal ); var hbBox1 = new Gtk.HBox( false, 5 ); hbBox1.Add( new Gtk.Label( "This is hbox 1" ) ); var hbBox2 = new Gtk.HBox( false, 5 ); hbBox2.Add( new Gtk.Label( "This is hbox 2" ) ); var hbBox3 = new Gtk.HBox( false, 5 ); hbBox3.Add( new Gtk.Label( "This is hbox 3" ) ); dlg.VBox.PackStart( hbBox1, true, true, 5 ); dlg.VBox.PackStart( hbBox2, true, true, 5 ); dlg.VBox.PackStart( hbBox3, true, true, 5 ); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinHeight = 200, MinWidth = 320 }, Gdk.WindowHints.MinSize ); dlg.AddButton( "Ok", Gtk.ResponseType.Ok ); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
public TextEditorDialog() { Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow(); sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; sc.ShadowType = Gtk.ShadowType.In; sc.BorderWidth = 6; textview = new Gtk.TextView(); sc.Add(textview); dialog = new Gtk.Dialog(); dialog.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dialog.AddButton(Gtk.Stock.Ok, Gtk.ResponseType.Ok); dialog.VBox.Add(sc); }
public FlagsSelectorDialog(Gtk.Window parent, Type enumDesc, ulong flags, string title) { this.flags = flags; this.parent = parent; Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow(); sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; sc.ShadowType = Gtk.ShadowType.In; sc.BorderWidth = 6; treeView = new Gtk.TreeView(); sc.Add(treeView); dialog = new Gtk.Dialog(); IdeTheme.ApplyTheme(dialog); dialog.VBox.Add(sc); dialog.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dialog.AddButton(Gtk.Stock.Ok, Gtk.ResponseType.Ok); store = new Gtk.ListStore(typeof(bool), typeof(string), typeof(ulong)); treeView.Model = store; treeView.HeadersVisible = false; Gtk.TreeViewColumn col = new Gtk.TreeViewColumn(); Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle(); tog.Toggled += new Gtk.ToggledHandler(OnToggled); col.PackStart(tog, false); col.AddAttribute(tog, "active", 0); Gtk.CellRendererText crt = new Gtk.CellRendererText(); col.PackStart(crt, true); col.AddAttribute(crt, "text", 1); treeView.AppendColumn(col); values = System.Enum.GetValues(enumDesc); foreach (object value in values) { ulong val = Convert.ToUInt64(value); store.AppendValues((flags == 0 && val == 0) || ((flags & val) != 0), value.ToString(), val); } }
void ShowErrorMessage() { DBusBackgroundWorker.Request(); DBusBackgroundWorker.InvokeGtkThread(() => { using (var dialog = new Gtk.Dialog()) { dialog.BorderWidth = 6; dialog.Resizable = false; dialog.HasSeparator = false; var message = "<span weight=\"bold\"size=\"larger\">" + "Could not register KeebuntuAppMenu with Unity panel service." + "</span>\n\n" + "This plugin only works with Ubuntu Unity desktop." + " If you do not use Unity, you should uninstall the KeebuntuAppMenu plugin." + "\n"; var label = new Gtk.Label(message); label.UseMarkup = true; label.Wrap = true; label.Yalign = 0; var icon = new Gtk.Image(Gtk.Stock.DialogError, Gtk.IconSize.Dialog); icon.Yalign = 0; var contentBox = new Gtk.HBox(); contentBox.Spacing = 12; contentBox.BorderWidth = 6; contentBox.PackStart(icon); contentBox.PackEnd(label); dialog.VBox.PackStart(contentBox); dialog.AddButton("Don't show this again", Gtk.ResponseType.Accept); dialog.AddButton("OK", Gtk.ResponseType.Ok); dialog.DefaultResponse = Gtk.ResponseType.Ok; dialog.Response += (o, args) => { dialog.Destroy(); if (args.ResponseId == Gtk.ResponseType.Accept) { pluginHost.CustomConfig.SetBool(keebuntuAppMenuWarningSeenId, true); } }; dialog.ShowAll(); dialog.KeepAbove = true; dialog.Run(); } }).Wait(); DBusBackgroundWorker.Release(); }
public FlagsSelectorDialog (Gtk.Window parent, Type enumDesc, ulong flags, string title) { this.flags = flags; this.parent = parent; Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow (); sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; sc.ShadowType = Gtk.ShadowType.In; sc.BorderWidth = 6; treeView = new Gtk.TreeView (); sc.Add (treeView); dialog = new Gtk.Dialog (); IdeTheme.ApplyTheme (dialog); dialog.VBox.Add (sc); dialog.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dialog.AddButton (Gtk.Stock.Ok, Gtk.ResponseType.Ok); store = new Gtk.ListStore (typeof(bool), typeof(string), typeof(ulong)); treeView.Model = store; treeView.HeadersVisible = false; Gtk.TreeViewColumn col = new Gtk.TreeViewColumn (); Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle (); tog.Toggled += new Gtk.ToggledHandler (OnToggled); col.PackStart (tog, false); col.AddAttribute (tog, "active", 0); Gtk.CellRendererText crt = new Gtk.CellRendererText (); col.PackStart (crt, true); col.AddAttribute (crt, "text", 1); treeView.AppendColumn (col); values = System.Enum.GetValues (enumDesc); foreach (object value in values) { ulong val = Convert.ToUInt64 (value); store.AppendValues ((flags == 0 && val == 0) || ((flags & val) != 0), value.ToString (), val); } }
public IAsyncOperation <IUICommand> ShowAsync() { Func <CancellationToken, Task <IUICommand> > func = async(ct) => { return(await Task.Run(() => { var waitHandle = new ManualResetEventSlim(); int result = -1; Gtk.Application.Invoke((s, a) => { var dialog = new Gtk.Dialog(Title, GtkHost.Window, Gtk.DialogFlags.Modal); dialog.SkipTaskbarHint = true; Gtk.Label label = new Gtk.Label(Content); label.Halign = Gtk.Align.Fill; dialog.ContentArea.Add(label); label.Show(); if (Commands.Count == 0) { Commands.Add(new UICommand("Close")); } for (int i = 0; i < Commands.Count; ++i) { dialog.AddButton(Commands[i].Label, i); } dialog.DefaultResponse = (Gtk.ResponseType)DefaultCommandIndex; result = dialog.Run(); dialog.Hide(); // dialog.Destroy(); dialog.Dispose(); waitHandle.Set(); }); waitHandle.Wait(); if (result < 0) { result = unchecked ((int)CancelCommandIndex); } // CancelCommandIndex still not set. if (result < 0) { result = (int)DefaultCommandIndex; } return Commands[result]; }, ct)); }; return(FromTaskFunction.Invoke(null, new object[] { func }) as IAsyncOperation <IUICommand>); }
private void OnViewDrawing() { var dlg = new Gtk.Dialog("Drawing", this, Gtk.DialogFlags.Modal); var swScroll = new Gtk.ScrolledWindow(); var rnd = new System.Random(); int[][] valuesSeries = new int[3][]; // Create series for (int i = 0; i < valuesSeries.Length; ++i) { valuesSeries[i] = new int[12]; for (int j = 0; j < valuesSeries[i].Length; ++j) { valuesSeries[i][j] = rnd.Next(50); } } // Drawing area Chart chart = new Chart(512, 512) { LegendY = "Sells (in thousands)", LegendX = "Months", Values = valuesSeries }; // Layout swScroll.AddWithViewport(chart); dlg.VBox.PackStart(swScroll, true, true, 5); dlg.AddButton(Gtk.Stock.Close, Gtk.ResponseType.Close); // Polish dlg.WindowPosition = Gtk.WindowPosition.CenterOnParent; dlg.Resize(640, 640); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinWidth = 640, MinHeight = 640 }, Gdk.WindowHints.MinSize ); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
public static void ShowHintWindow(Gtk.Widget parent, String caption, String text) { Gtk.Dialog dialog = new Gtk.Dialog(); dialog.ParentWindow = parent.GdkWindow; dialog.Parent = parent; dialog.Title = caption; dialog.VBox.PackStart(new Gtk.Label(text), true, true, 12); Gtk.Button closeButton = (Gtk.Button)dialog.AddButton(Gtk.Stock.Ok, Gtk.ResponseType.Close); closeButton.Clicked += delegate(object sender, EventArgs ea) { dialog.Hide(); dialog.Dispose(); }; EventHandler showDelegate = delegate(object s, EventArgs ea) { dialog.ShowAll(); dialog.Present(); }; Gtk.Application.Invoke(showDelegate); }
private static void RunModalDialog(string title, string format, params object [] args) { Gtk.Dialog dlg = new Gtk.Dialog ("Tomboy.InsertImage - " + Catalog.GetString(title), null, Gtk.DialogFlags.Modal | Gtk.DialogFlags.DestroyWithParent); var text = new Gtk.TextView (); text.WrapMode = Gtk.WrapMode.Word; text.Editable = false; if (args.Length > 0) format = string.Format (format, args); text.Buffer.Text = format; var scroll = new Gtk.ScrolledWindow (); scroll.Add (text); dlg.AddButton (Catalog.GetString("Close"), Gtk.ResponseType.Close); dlg.VBox.PackStart (scroll, true, true, 0); dlg.SetSizeRequest (300, 240); scroll.ShowAll (); dlg.Run (); dlg.Destroy (); }
private void OnViewBoxes() { var dlg = new Gtk.Dialog("Boxes", this, Gtk.DialogFlags.Modal); var hbBox1 = new Gtk.HBox(false, 5) { new Gtk.Label("This is hbox 1") }; var hbBox2 = new Gtk.HBox(false, 5) { new Gtk.Label("This is hbox 2") }; var hbBox3 = new Gtk.HBox(false, 5) { new Gtk.Label("This is hbox 3") }; dlg.VBox.PackStart(hbBox1, true, true, 5); dlg.VBox.PackStart(hbBox2, true, true, 5); dlg.VBox.PackStart(hbBox3, true, true, 5); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinHeight = 200, MinWidth = 320 }, Gdk.WindowHints.MinSize ); dlg.AddButton("Ok", Gtk.ResponseType.Ok); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
private void OnViewFrames() { var dlg = new Gtk.Dialog("Frames", this, Gtk.DialogFlags.Modal); var frame1 = new Gtk.Frame("<b>Frame1</b>"); ((Gtk.Label)frame1.LabelWidget).UseMarkup = true; frame1.Add(new Gtk.Label("This is frame1")); var frame2 = new Gtk.Frame("<b>Frame2</b>"); ((Gtk.Label)frame2.LabelWidget).UseMarkup = true; frame2.Add(new Gtk.Label("This is frame2")); var frame3 = new Gtk.Frame("<b>Frame3</b>"); ((Gtk.Label)frame3.LabelWidget).UseMarkup = true; frame3.Add(new Gtk.Label("This is frame3")); dlg.VBox.PackStart(frame1, true, true, 5); dlg.VBox.PackStart(frame2, true, true, 5); dlg.VBox.PackStart(frame3, true, true, 5); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinHeight = 200, MinWidth = 320 }, Gdk.WindowHints.MinSize ); dlg.AddButton("Ok", Gtk.ResponseType.Ok); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
private void OnViewFrames() { var dlg = new Gtk.Dialog( "Frames", this, Gtk.DialogFlags.Modal ); var frame1 = new Gtk.Frame( "<b>Frame1</b>" ); ( (Gtk.Label) frame1.LabelWidget ).UseMarkup = true; frame1.Add( new Gtk.Label( "This is frame1" ) ); var frame2 = new Gtk.Frame( "<b>Frame2</b>" ); ( (Gtk.Label) frame2.LabelWidget ).UseMarkup = true; frame2.Add( new Gtk.Label( "This is frame2" ) ); var frame3 = new Gtk.Frame( "<b>Frame3</b>" ); ( (Gtk.Label) frame3.LabelWidget ).UseMarkup = true; frame3.Add( new Gtk.Label( "This is frame3" ) ); dlg.VBox.PackStart( frame1, true, true, 5 ); dlg.VBox.PackStart( frame2, true, true, 5 ); dlg.VBox.PackStart( frame3, true, true, 5 ); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinHeight = 200, MinWidth = 320 }, Gdk.WindowHints.MinSize ); dlg.AddButton( "Ok", Gtk.ResponseType.Ok ); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
static void ShowEvalDialog () { string evalTitle = GettextCatalog.GetString ("Evaluation Version"); string evalHeader = GettextCatalog.GetString ("Feature Not Available In Evaluation Version"); string evalMessage = GettextCatalog.GetString ( "Upgrade to the full version of Mono for Android to deploy\n" + "to devices, and to enable your applications to be distributed."); string continueMessage = GettextCatalog.GetString ("Continue evaluation"); var dialog = new Gtk.Dialog () { Title = evalTitle, }; dialog.VBox.PackStart ( new Gtk.Label ("<b><big>" + evalHeader + "</big></b>") { Xalign = 0.5f, UseMarkup = true }, true, false, 12); var align = new Gtk.Alignment (0.5f, 0.5f, 1.0f, 1.0f) { LeftPadding = 12, RightPadding = 12 }; dialog.VBox.PackStart (align, true, false, 12); align.Add (new Gtk.Label (evalMessage) { Xalign = 0.5f, Justify = Gtk.Justification.Center }); align = new Gtk.Alignment (0.5f, 0.5f, 1.0f, 1.0f) { LeftPadding = 12, RightPadding = 12 }; dialog.VBox.PackStart (align, true, false, 12); string activateMessage; if (PropertyService.IsWindows) { activateMessage = GettextCatalog.GetString ("Activate Mono for Android"); } else { activateMessage = GettextCatalog.GetString ("Buy Mono for Android"); } var buyButton = new Gtk.Button (new Gtk.Label ("<big>" + activateMessage + "</big>") { UseMarkup = true } ); buyButton.Clicked += delegate { Activate (); dialog.Respond (Gtk.ResponseType.Accept); }; align.Add (buyButton); dialog.AddButton (continueMessage, Gtk.ResponseType.Close); dialog.ShowAll (); MessageService.ShowCustomDialog (dialog); }
static void ShowEvalDialog() { string evalTitle = GettextCatalog.GetString("Evaluation Version"); string evalHeader = GettextCatalog.GetString("Feature Not Available In Evaluation Version"); string evalMessage = GettextCatalog.GetString( "Upgrade to the full version of Mono for Android to deploy\n" + "to devices, and to enable your applications to be distributed."); string continueMessage = GettextCatalog.GetString("Continue evaluation"); var dialog = new Gtk.Dialog() { Title = evalTitle, }; dialog.VBox.PackStart( new Gtk.Label("<b><big>" + evalHeader + "</big></b>") { Xalign = 0.5f, UseMarkup = true }, true, false, 12); var align = new Gtk.Alignment(0.5f, 0.5f, 1.0f, 1.0f) { LeftPadding = 12, RightPadding = 12 }; dialog.VBox.PackStart(align, true, false, 12); align.Add(new Gtk.Label(evalMessage) { Xalign = 0.5f, Justify = Gtk.Justification.Center }); align = new Gtk.Alignment(0.5f, 0.5f, 1.0f, 1.0f) { LeftPadding = 12, RightPadding = 12 }; dialog.VBox.PackStart(align, true, false, 12); string activateMessage; if (PropertyService.IsWindows) { activateMessage = GettextCatalog.GetString("Activate Mono for Android"); } else { activateMessage = GettextCatalog.GetString("Buy Mono for Android"); } var buyButton = new Gtk.Button(new Gtk.Label("<big>" + activateMessage + "</big>") { UseMarkup = true }); buyButton.Clicked += delegate { Activate(); dialog.Respond(Gtk.ResponseType.Accept); }; align.Add(buyButton); dialog.AddButton(continueMessage, Gtk.ResponseType.Close); dialog.ShowAll(); MessageService.ShowCustomDialog(dialog); }
private void OnViewNotebook() { var dlg = new Gtk.Dialog( "Boxes", this, Gtk.DialogFlags.Modal ); var nbTabs = new Gtk.Notebook(); nbTabs.AppendPage( new Gtk.Label( "Page1" ), new Gtk.Label( "Page1" ) ); nbTabs.AppendPage( new Gtk.Label( "Page2" ), new Gtk.Label( "Page2" ) ); dlg.VBox.PackStart( nbTabs, true, true, 5 ); dlg.SetGeometryHints( dlg, new Gdk.Geometry() { MinHeight = 200, MinWidth = 320 }, Gdk.WindowHints.MinSize ); dlg.AddButton( "Ok", Gtk.ResponseType.Ok ); dlg.ShowAll(); dlg.Run(); dlg.Destroy(); }
void ShowListenDialog (RemoteDebuggerStartInfo dsi) { string message = GetListenMessage (dsi); Gtk.Application.Invoke (delegate { if (VirtualMachine != null || Exited) return; dialog = new Gtk.Dialog () { Title = "Waiting for debugger" }; var label = new Gtk.Alignment (0.5f, 0.5f, 1f, 1f) { Child = new Gtk.Label (message), BorderWidth = 12 }; dialog.VBox.PackStart (label); label.ShowAll (); dialog.AddButton ("Cancel", Gtk.ResponseType.Cancel); int response = MonoDevelop.Ide.MessageService.ShowCustomDialog (dialog); if (response != (int) Gtk.ResponseType.Ok) { EndSession (); } dialog = null; }); }
void RunDialog (string message) { if (disposed) return; dialog = new Gtk.Dialog () { Title = "Waiting for debugger" }; var label = new Gtk.Alignment (0.5f, 0.5f, 1f, 1f) { Child = new Gtk.Label (message), BorderWidth = 12 }; dialog.VBox.PackStart (label); label.ShowAll (); dialog.AddButton ("Cancel", Gtk.ResponseType.Cancel); int response = MonoDevelop.Ide.MessageService.ShowCustomDialog (dialog); dialog.Destroy (); dialog = null; if (!disposed && response != (int) Gtk.ResponseType.Ok && UserCancelled != null) { UserCancelled (null, null); } }
void GtkDBusInit() { /* setup ApplicationMenu */ dbusMenu = new MenuStripDBusMenu(pluginHost.MainWindow.MainMenu); emptyDBusMenu = new MenuStripDBusMenu(new MenuStrip()); var sessionBus = Bus.Session; #if DEBUG const string dbusBusPath = "/org/freedesktop/DBus"; const string dbusBusName = "org.freedesktop.DBus"; var dbusObjectPath = new ObjectPath(dbusBusPath); var dbusService = sessionBus.GetObject <org.freedesktop.DBus.IBus>(dbusBusName, dbusObjectPath); dbusService.NameAcquired += (name) => Console.WriteLine("NameAcquired: " + name); #endif const string registrarBusPath = "/com/canonical/AppMenu/Registrar"; const string registratBusName = "com.canonical.AppMenu.Registrar"; var registrarObjectPath = new ObjectPath(registrarBusPath); unityPanelServiceBus = sessionBus.GetObject <com.canonical.AppMenu.Registrar.IRegistrar>(registratBusName, registrarObjectPath); mainFormXid = GetWindowXid(pluginHost.MainWindow); mainFormObjectPath = new ObjectPath(string.Format(menuPath, mainFormXid)); sessionBus.Register(mainFormObjectPath, dbusMenu); try { unityPanelServiceBus.RegisterWindow((uint)mainFormXid.ToInt32(), mainFormObjectPath); gtkInitOk = true; gtkInitDoneEvent.Set(); } catch (Exception) { gtkInitDoneEvent.Set(); if (!pluginHost.CustomConfig.GetBool(keebuntuAppMenuWarningSeenId, false)) { using (var dialog = new Gtk.Dialog()) { dialog.BorderWidth = 6; dialog.Resizable = false; dialog.HasSeparator = false; var message = "<span weight=\"bold\"size=\"larger\">" + "Could not register KeebuntuAppMenu with Unity panel service." + "</span>\n\n" + "This plugin only works with Ubuntu Unity desktop." + " If you do not use Unity, you should uninstall the KeebuntuAppMenu plugin." + "\n"; var label = new Gtk.Label(message); label.UseMarkup = true; label.Wrap = true; label.Yalign = 0; var icon = new Gtk.Image(Gtk.Stock.DialogError, Gtk.IconSize.Dialog); icon.Yalign = 0; var contentBox = new Gtk.HBox(); contentBox.Spacing = 12; contentBox.BorderWidth = 6; contentBox.PackStart(icon); contentBox.PackEnd(label); dialog.VBox.PackStart(contentBox); dialog.AddButton("Don't show this again", Gtk.ResponseType.Accept); dialog.AddButton("OK", Gtk.ResponseType.Ok); dialog.DefaultResponse = Gtk.ResponseType.Ok; dialog.Response += (o, args) => { dialog.Destroy(); if (args.ResponseId == Gtk.ResponseType.Accept) { pluginHost.CustomConfig.SetBool(keebuntuAppMenuWarningSeenId, true); } }; dialog.ShowAll(); dialog.KeepAbove = true; dialog.Run(); } DBusBackgroundWorker.Stop(); } } }