Esempio n. 1
0
        public static int PopupMessage(Widget sender, MessageType type, String errorMessage,
                                       CustomizeDialog customize = null)
        {
            Window toplevel;
            int    ret;

            if (sender != null)
            {
                toplevel = sender.Toplevel as Window;
            }
            else
            {
                toplevel = null;
            }

            MessageDialog md = new MessageDialog(toplevel,
                                                 DialogFlags.Modal,
                                                 type,
                                                 ButtonsType.Ok,
                                                 errorMessage);

            md.Icon = Misc.LoadIcon(App.Current.SoftwareIconName, Gtk.IconSize.Dialog, 0);
            try {
                var vbox  = md.MessageDialogGetMessageArea();
                var label = (Label)vbox.Children [0];

                label.SetLinkHandler(url => {
                    try {
                        App.Current.NetworkManager.OpenURL(url);
                    } catch (Exception ex) {
                        Log.WarningFormat("Could not spawn process for url {0}\n{1}",
                                          url, ex);
                    }
                });
            } catch (Exception ex) {
                Log.WarningFormat("Could not set link handler for Message Dialog\n{0}",
                                  ex);
            }

            if (customize != null)
            {
                customize(md);
            }

            ret = md.Run();
            md.Destroy();
            return(ret);
        }