示例#1
0
		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);
		}
示例#2
0
        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;
            });
        }
示例#4
0
        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();
        }
示例#5
0
        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();
        }
示例#6
0
        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);
            }
        }
示例#8
0
 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);
			}
		}
示例#10
0
        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>);
        }
示例#11
0
        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();
        }
示例#12
0
        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);
        }
示例#13
0
 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 ();
 }
示例#14
0
        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();
        }
示例#15
0
        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();
        }
示例#16
0
        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();
        }
示例#17
0
		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);
		}
示例#18
0
        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);
        }
示例#19
0
        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();
        }
示例#20
0
    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);
    }
		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;
			});
		}
示例#22
0
		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();
                }
            }
        }