protected void OnButtonOkClicked(object sender, EventArgs e)
 {
     try
     {
         if (cat != null)
         {
             int id = GetId(cat, idEntry.Text);
             string name = GetName(nameEntry.Text);
             doc = new Document(cat, id, name, dateCalendar.Date);
             cat.Add(doc);
             this.Respond(Gtk.ResponseType.Ok);
         }
         else
         {
             throw new Exception("You must select a category");
         }
     }
     catch (Exception ex)
     {
         Gtk.MessageDialog msg = new Gtk.MessageDialog(this, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Close, true, String.Format(ex.Message.ToString()));
         if ((Gtk.ResponseType)msg.Run() == Gtk.ResponseType.Close)
         {
             msg.Destroy();
         }
     }
 }
        void on_okButton_clicked(object o, EventArgs args)
        {
            if (Core.Settings.KeyEncrypted && !Core.Settings.CheckKeyPassword(oldPasswordEntry.Text)) {
                Gui.ShowErrorDialog("Old password incorrect");
                oldPasswordEntry.GrabFocus();
                return;
            }

            if (newPasswordEntry.Text != confirmPasswordEntry.Text) {
                Gui.ShowErrorDialog("New passwords do not match");
                newPasswordEntry.GrabFocus();
                return;
            }

            if (newPasswordEntry.Text == String.Empty) {
                var dialog = new Gtk.MessageDialog(base.Window, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, Gtk.ButtonsType.YesNo, "Are you sure you don't want to set a password?");
                dialog.Show();
                int r = dialog.Run();
                dialog.Destroy();
                if (r != (int)Gtk.ResponseType.Yes) {
                    return;
                }
            }

            Core.Settings.ChangeKeyPassword(newPasswordEntry.Text);

            if (!Core.Settings.FirstRun)
                Gui.ShowMessageDialog("Your password has been changed.");

            Dialog.Respond(Gtk.ResponseType.Ok);
        }
Пример #3
0
        public BattleSession()
        {
            this.coreAbilities = new List<AbilityDefinition>(8);
            this.coreAbilities.Add(AbilityDefinition.Charisma);
            this.coreAbilities.Add(AbilityDefinition.Logic);
            this.coreAbilities.Add(AbilityDefinition.Perception);
            this.coreAbilities.Add(AbilityDefinition.Power);
            this.coreAbilities.Add(AbilityDefinition.Speed);
            this.coreAbilities.Add(AbilityDefinition.Stamina);
            this.coreAbilities.Add(AbilityDefinition.Strength);
            this.coreAbilities.Add(AbilityDefinition.Willpower);

            try {
                this.origins = new List<OriginDefinition>();
                this.origins = Battle.Data.Storage.LoadOrigins("Data/origins.xml");
                this.species = new List<SpeciesDefinition>();
                this.species = Battle.Data.Storage.LoadSpecies("Data/species.xml");
                this.skills = new List<SkillDefinition>();
                this.skills = Battle.Data.Storage.LoadSkills("Data/skills.xml");
                this.powerSources = new List<PowerSource>();
                this.powerSources = Battle.Data.Storage.LoadPowerSources("Data/powersources.xml");
                this.powers = new List<PowerDefinition>();
                this.powers = Battle.Data.Storage.LoadPowers("Data/powers.xml");
            }
            catch (Exception exp)
            {
                Gtk.MessageDialog dlg = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Error,
                                                              Gtk.ButtonsType.Close, "{0}: {1}",
                                                              exp.GetType().ToString(), exp.Message);
                dlg.Run();
            }
        }
Пример #4
0
 // uses reflection to call the corresponding method in the "Create" class.
 public static UML.Element CreateUmlElement(string elementType)
 {
     Type create = typeof(UML.Create);
     object newElement = create.InvokeMember(
         elementType,
         BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static,
         null,
         null,
         null);
     UML.NamedElement ne = newElement as UML.NamedElement;
     if(ne != null)
     {
         _dialog = new Gtk.MessageDialog(
             null, Gtk.DialogFlags.Modal, Gtk.MessageType.Question,
             Gtk.ButtonsType.Ok, GettextCatalog.GetString ("New element name:"));
         Gtk.Entry elementName = new Gtk.Entry();
         elementName.Activated += new EventHandler(CloseNewElementNameModal);
         _dialog.VBox.Add(elementName);
         elementName.Show();
         _dialog.Run();
         ne.Name = String.Format(elementName.Text, elementType);
         _dialog.Destroy();
         _dialog = null;
     }
     return (UML.Element)newElement;
 }
Пример #5
0
        public MainClass(bool debug, string appName)
        {
            GLibLogging.Enabled = true;

            Assembly exe = typeof (MainClass).Assembly;

            string configDir = Path.GetFullPath (Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), appName));
            string lockFile = Path.Combine (configDir, "pid.lock");

            bool instanceRunning = DetectInstances (lockFile, appName);
            if (instanceRunning) {
                Gtk.Application.Init ();

                Gtk.MessageDialog md = new Gtk.MessageDialog (null, Gtk.DialogFlags.Modal, Gtk.MessageType.Warning, Gtk.ButtonsType.Close,
                    GettextCatalog.GetString ("An instance of StrongMonkey with configuration profile '{0}' is already running.{1}If you really want to run 2 seperate instances, use the \"--appName=StrongMonkeyXXX\" command line parameter",
                        appName, Environment.NewLine));
                md.Run ();
                md.Destroy ();
                md.Dispose ();

                md.Close += delegate(object sender, EventArgs e) {
                    Gtk.Application.Quit ();
                };

                Gtk.Application.Run ();
            } else {
                CoreUtility.Initialize (exe, appName, debug);
                WriteInstancePid (lockFile);

                AddinUtility.Initialize ();
            }
        }
Пример #6
0
 void ShowErrorMessage(string msg)
 {
     Gtk.MessageDialog md = new Gtk.MessageDialog (null ,
                                                   Gtk.DialogFlags.DestroyWithParent,
                                                   Gtk.MessageType.Error,
                                                   Gtk.ButtonsType.Close, msg,
                                                   new object [] {});
     md.Run ();
     md.Destroy ();
 }
Пример #7
0
 public static void ShowWarningMessage(Gtk.Window parentWin, string format, params object[] args)
 {
     Gtk.MessageDialog md = new Gtk.MessageDialog(parentWin,
                                                  Gtk.DialogFlags.DestroyWithParent | Gtk.DialogFlags.Modal,
                                                  Gtk.MessageType.Warning,
                                                  Gtk.ButtonsType.Ok,
                                                  format,
                                                  args);
     md.Title = Catalog.GetString("Warning");
     md.Run();
     md.Destroy();
 }
        bool HandleOverrideConfirmation (String name)
        {
            Gtk.MessageDialog dialog = new Gtk.MessageDialog(this.Toplevel as Gtk.Window,
                Gtk.DialogFlags.DestroyWithParent,
                Gtk.MessageType.Question,
                Gtk.ButtonsType.YesNo,
                name + Mono.Unix.Catalog.GetString(" already exists.\n Do you want to override it?"));
            dialog.Modal = true;
            Gtk.ResponseType result = (Gtk.ResponseType)dialog.Run();
            dialog.Destroy ();

            return result == Gtk.ResponseType.Yes;
        }
Пример #9
0
		public DialogResult ShowDialog(Control parent)
		{
			Gtk.Widget c = (parent == null) ? null : (Gtk.Widget)parent.ControlObject;
			while (!(c is Gtk.Window) && c != null)
			{
				c = c.Parent;
			}
			control = new Gtk.MessageDialog((Gtk.Window)c, Gtk.DialogFlags.Modal, Convert (Type), Gtk.ButtonsType.Ok, false, Text);
			control.TypeHint = Gdk.WindowTypeHint.Dialog;
            var caption = Caption ?? ((parent != null && parent.ParentWindow != null) ? parent.ParentWindow.Title : null);
            if (!string.IsNullOrEmpty(caption)) control.Title = caption;
			int ret = control.Run();
			control.Destroy();
			return Generator.Convert((Gtk.ResponseType)ret);
		}
Пример #10
0
        public static bool ShowReconnectDialog(Gtk.Window parent)
        {
            Trace.Call(parent);

            Gtk.MessageDialog md = new Gtk.MessageDialog(parent,
                                                         Gtk.DialogFlags.Modal, Gtk.MessageType.Error,
                                                         Gtk.ButtonsType.OkCancel, _("The frontend has lost the connection to the server.\nDo you want to reconnect now?"));
            Gtk.ResponseType res = (Gtk.ResponseType)md.Run();
            md.Destroy();

            if (res != Gtk.ResponseType.Ok)
            {
                Quit();
                return(false);
            }

            while (true)
            {
                try {
                    Frontend.ReconnectEngineToGUI();
                    // yay, we made it
                    _InReconnectHandler = false;
                    break;
                } catch (Exception e) {
#if LOG4NET
                    _Logger.Error("ShowReconnectDialog(): Reconnect failed, exception:", e);
#endif
                    var msg = _("Reconnecting to the server has failed.\nDo you want to try again?");
                    // the parent window is hidden (MainWindow) at this
                    // point thus modal doesn't make sense here
                    md = new Gtk.MessageDialog(parent,
                                               Gtk.DialogFlags.DestroyWithParent,
                                               Gtk.MessageType.Error,
                                               Gtk.ButtonsType.OkCancel, msg);
                    md.SetPosition(Gtk.WindowPosition.CenterAlways);
                    res = (Gtk.ResponseType)md.Run();
                    md.Destroy();

                    if (res != Gtk.ResponseType.Ok)
                    {
                        // give up
                        Quit();
                        return(false);
                    }
                }
            }
            return(true);
        }
Пример #11
0
        public DialogResult ShowDialog(Control parent)
        {
            Gtk.Window parentWindow = null;
            if (parent != null && parent.ParentWindow != null)
            {
                parentWindow = parent.ParentWindow.ControlObject as Gtk.Window;
            }

            control          = new Gtk.MessageDialog(parentWindow, Gtk.DialogFlags.Modal, Type.ToGtk(), Buttons.ToGtk(), false, Text);
            control.TypeHint = Gdk.WindowTypeHint.Dialog;
            var caption = Caption ?? ((parent != null && parent.ParentWindow != null) ? parent.ParentWindow.Title : null);

            if (!string.IsNullOrEmpty(caption))
            {
                control.Title = caption;
            }
            if (Buttons == MessageBoxButtons.YesNoCancel)
            {
                // must add cancel manually
                var b = (Gtk.Button)control.AddButton(Gtk.Stock.Cancel, (int)Gtk.ResponseType.Cancel);
                b.UseStock = true;
            }
            control.DefaultResponse = DefaultButton.ToGtk(Buttons);
            int ret = control.Run();

            control.Destroy();
            var result = ((Gtk.ResponseType)ret).ToEto();

            if (result == DialogResult.None)
            {
                switch (Buttons)
                {
                case MessageBoxButtons.OK:
                    result = DialogResult.Ok;
                    break;

                case MessageBoxButtons.YesNo:
                    result = DialogResult.No;
                    break;

                case MessageBoxButtons.OKCancel:
                case MessageBoxButtons.YesNoCancel:
                    result = DialogResult.Cancel;
                    break;
                }
            }
            return(result);
        }
Пример #12
0
 protected void OnButtonCloseClicked(object sender, EventArgs e)
 {
     //Check if preferences are valid
     if (pathFileChooserButton.Filename != null)
     {
         this.Respond(Gtk.ResponseType.Close);
     }
     else
     {
         Gtk.MessageDialog mes = new Gtk.MessageDialog(this, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, Mono.Unix.Catalog.GetString("You must choose a valid path for registry files."));
         if ((Gtk.ResponseType)mes.Run() == Gtk.ResponseType.Ok)
         {
             mes.Destroy();
         }
     }
 }
Пример #13
0
 protected void OnButtonCloseClicked(object sender, EventArgs e)
 {
     //Check if preferences are valid
     if (pathFileChooserButton.Filename != null)
     {
         this.Respond(Gtk.ResponseType.Close);
     }
     else
     {
         Gtk.MessageDialog mes = new Gtk.MessageDialog(this, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, Mono.Unix.Catalog.GetString("You must choose a valid path for registry files."));
         if ((Gtk.ResponseType)mes.Run() == Gtk.ResponseType.Ok)
         {
             mes.Destroy();
         }
     }
 }
Пример #14
0
 void HandleExitActivated(object sender, EventArgs e)
 {
     Gtk.MessageDialog md = new Gtk.MessageDialog(mainWindow,
                                                  Gtk.DialogFlags.DestroyWithParent | Gtk.DialogFlags.Modal,
                                                  Gtk.MessageType.Question,
                                                  Gtk.ButtonsType.OkCancel,
                                                  "Are you sure to quit?");
     md.Response += delegate(object o, Gtk.ResponseArgs response) {
         if (response.ResponseId == Gtk.ResponseType.Ok)
         {
             mainApp.DisableQuit(true);
         }
     };
     md.Run();
     md.Destroy();
 }
Пример #15
0
        public override void Close()
        {
            Trace.Call();

            // show warning if there are open chats (besides protocol chat)
            var ownedChats = 0;

            foreach (var chatView in Frontend.MainWindow.ChatViewManager.Chats)
            {
                if (chatView.ProtocolManager == ProtocolManager)
                {
                    ownedChats++;
                }
            }
            if (ownedChats > 1)
            {
                Gtk.MessageDialog md = new Gtk.MessageDialog(
                    Frontend.MainWindow,
                    Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Warning,
                    Gtk.ButtonsType.YesNo,
                    _("Closing the protocol chat will also close all open chats connected to it!\n" +
                      "Are you sure you want to do this?"));
                int result = md.Run();
                md.Destroy();
                if ((Gtk.ResponseType)result != Gtk.ResponseType.Yes)
                {
                    return;
                }
            }

            ThreadPool.QueueUserWorkItem(delegate {
                try {
                    // no need to call base.Close() as CommandNetwork() will
                    // deal with it
                    Frontend.Session.CommandNetwork(
                        new CommandModel(
                            Frontend.FrontendManager,
                            ChatModel,
                            "close"
                            )
                        );
                } catch (Exception ex) {
                    Frontend.ShowException(ex);
                }
            });
        }
Пример #16
0
        void Uploader_Completed(object sender, UploadCompletedEventArgs e)
        {
            Gtk.Application.Invoke(delegate
            {
                _uploadFinished = true;

                if (!e.Canceled)
                {
                    string newLine = Environment.NewLine;

                    Gtk.MessageDialog dialog;
                    if (e.HasError)
                    {
                        string txt = string.Format("An error occurred in the upload.{0}{0}You will need to upload your file manually:{0}{0}{1}", newLine, _fileName);
                        dialog     = new Gtk.MessageDialog(
                            this,
                            Gtk.DialogFlags.Modal,
                            Gtk.MessageType.Info,
                            Gtk.ButtonsType.Ok,
                            txt
                            );
                    }
                    else
                    {
                        using (Gtk.Clipboard clipboard = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)))
                        {
                            clipboard.Text = e.Link;
                        }

                        string txt = string.Format("Done!{0}{0}{1}{0}{0}The link is already on your clipboard.", newLine, e.Link);
                        dialog     = new Gtk.MessageDialog(
                            this,
                            Gtk.DialogFlags.Modal,
                            Gtk.MessageType.Info,
                            Gtk.ButtonsType.Ok,
                            txt
                            );
                    }

                    dialog.Run();
                    dialog.Destroy();
                }

                Destroy();
            });
        }
Пример #17
0
		public void Run ()
		{
			string text = TextEditorApp.MainWindow.View.Buffer.Text;
			XmlDocument doc = new XmlDocument ();
			try {
				doc.LoadXml (text);
				StringWriter sw = new StringWriter ();
				XmlTextWriter tw = new XmlTextWriter (sw);
				tw.Formatting = Formatting.Indented;
				doc.Save (tw);
				TextEditorApp.MainWindow.View.Buffer.Text = sw.ToString ();
			}
			catch {
				Gtk.MessageDialog dlg = new Gtk.MessageDialog (TextEditorApp.MainWindow, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Close, "Error parsing XML.");
				dlg.Run ();
				dlg.Destroy ();
			}
		}
Пример #18
0
        /// <summary>
        /// Asks for confirmation through a dialog on the screen. 
        /// </summary>
        /// <param name="main">
        /// A <see cref="Window"/> that will be the parent of the dialog.
        /// </param>
        /// <param name="title">
        /// A <see cref="System.String"/> containing the title of the dialog.
        /// </param>
        /// <param name="msg">
        /// A <see cref="System.String"/> containing the question to show.
        /// </param>
        /// <returns>
        /// A <see cref="System.Boolean"/> containing true if the user chose yes, false otherwise
        /// </returns>
        public static bool Ask(Gtk.Window main, string title, string msg)
        {
            var dlg = new Gtk.MessageDialog(
                          		main,
                                Gtk.DialogFlags.Modal,
                                Gtk.MessageType.Question,
                                Gtk.ButtonsType.YesNo,
                                title
             );

            dlg.Text = msg;
            dlg.Title = title + " Question";

            Gtk.ResponseType res = (Gtk.ResponseType) dlg.Run();
            dlg.Destroy();

            return ( res == Gtk.ResponseType.Yes );
        }
Пример #19
0
        /// <summary>
        /// Asks for confirmation through a dialog on the screen.
        /// </summary>
        /// <param name="main">
        /// A <see cref="Window"/> that will be the parent of the dialog.
        /// </param>
        /// <param name="title">
        /// A <see cref="System.String"/> containing the title of the dialog.
        /// </param>
        /// <param name="msg">
        /// A <see cref="System.String"/> containing the question to show.
        /// </param>
        /// <returns>
        /// A <see cref="System.Boolean"/> containing true if the user chose yes, false otherwise
        /// </returns>
        static public bool Ask(Gtk.Window main, string title, string msg)
        {
            var dlg = new Gtk.MessageDialog(
                main,
                Gtk.DialogFlags.Modal,
                Gtk.MessageType.Question,
                Gtk.ButtonsType.YesNo,
                title
                );

            dlg.Text  = msg;
            dlg.Title = title + " Question";

            Gtk.ResponseType res = (Gtk.ResponseType)dlg.Run();
            dlg.Destroy();

            return(res == Gtk.ResponseType.Yes);
        }
Пример #20
0
        internal void BeginComponentDrag(ProjectBackend project, string desc, string className, ObjectWrapper wrapper, Gtk.Widget source, Gdk.DragContext ctx, ComponentDropCallback callback)
        {
            if (wrapper != null)
            {
                Stetic.Wrapper.ActionPaletteItem it = new Stetic.Wrapper.ActionPaletteItem(Gtk.UIManagerItemType.Menuitem, null, (Wrapper.Action)wrapper);
                DND.Drag(source, ctx, it);
            }
            else if (callback != null)
            {
                DND.Drag(source, ctx, delegate()
                {
                    callback();

                    // If the class name has an assembly name, remove it now
                    int i = className.IndexOf(',');
                    if (i != -1)
                    {
                        className = className.Substring(0, i);
                    }

                    ClassDescriptor cls = Registry.LookupClassByName(className);
                    if (cls != null)
                    {
                        return(cls.NewInstance(project) as Gtk.Widget);
                    }
                    else
                    {
                        // Class not found, show an error
                        string msg            = string.Format("The widget '{0}' could not be found.", className);
                        Gtk.MessageDialog dlg = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Close, msg);
                        dlg.Run();
                        dlg.Destroy();
                        return(null);
                    }
                },
                         (desc != null && desc.Length > 0) ? desc : className
                         );
            }
            else
            {
                ClassDescriptor cls = Registry.LookupClassByName(className);
                DND.Drag(source, ctx, cls.NewInstance(project) as Gtk.Widget);
            }
        }
Пример #21
0
        private bool validateEntry()
        {
            if (String.IsNullOrEmpty(nameEntry.Text))
            {
                Gtk.MessageDialog msg = new Gtk.MessageDialog(this, Gtk.DialogFlags.DestroyWithParent,
                                                              Gtk.MessageType.Error, Gtk.ButtonsType.Ok,
                                                              "The name field is required.");
                msg.Run();
                msg.Hide();
                msg.Dispose();
                return(false);
            }

            /*if (!locationWidget.Latitude.ValidateEntry())
             *      return false;
             * if (!locationWidget.Longitude.ValidateEntry())
             *      return false;*/
            return(true);
        }
Пример #22
0
 protected void AcceptButtonClicked(object sender, EventArgs e)
 {
     try {
         Dbcon.Open();
         Dbcmd = new MySqlCommand(query, Dbcon);
         Dbcmd.Parameters.AddWithValue("@id1", IniEntry.Text);
         Dbcmd.Parameters.AddWithValue("@id2", FinEntry.Text);
         Dbcmd.Parameters.AddWithValue("@cost", CostEntry.Text);
         Dbcmd.ExecuteNonQuery();
         Gtk.MessageDialog msg = new Gtk.MessageDialog(this, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "Arista insertada exitosamente");
         msg.Run();
         msg.Destroy();
         this.Destroy();
     } catch (Exception ex) {
         Gtk.MessageDialog msg = new Gtk.MessageDialog(this, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Error, Gtk.ButtonsType.Ok, "Error al insertar la Arista\n" + ex.StackTrace);
         msg.Run();
         msg.Destroy();
     }
 }
Пример #23
0
        void on_ExportButton_clicked(object sender, EventArgs args)
        {
            if (this.exporter != null)
            {
                var messageDlg = new Gtk.MessageDialog(
                    BooruApp.BooruApplication.MainWindow,
                    Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Question,
                    Gtk.ButtonsType.YesNo,
                    "Cancel export?"
                    );
                messageDlg.SecondaryText = "Do you want to cancel the currently running export?";

                int result = messageDlg.Run();
                messageDlg.Destroy();
                if (result == (int)Gtk.ResponseType.Yes)
                {
                    this.exporter.Abort();
                    this.exporter = null;
                    this.ExportProgress.Visible = false;
                }
                return;
            }

            string folderPath;

            if (SelectExportPathDialog.SelectPath(out folderPath))
            {
                int exportedCount = 0;
                this.exporter           = new ImageExporter(this.store, folderPath);
                this.exporter.Exported += () => {
                    exportedCount++;

                    BooruApp.BooruApplication.TaskRunner.StartTaskMainThread("Update export progress bar", () => {
                        this.ExportProgress.Fraction = exportedCount / (float)this.foundImageCount;
                    });
                };
                this.exporter.Finished += () => {
                    this.exporter = null;
                };
                this.exporter.Start();
            }
        }
Пример #24
0
        void VerificaTabla()
        {
            cnx.Open();
            try
            {
                string        tabla = "CREATE TABLE IF NOT EXISTS CONVERSACION (CLAVE INTEGER PRIMARY KEY AUTOINCREMENT, FECHA TEXT NOT NULL, NOMBRE TEXT NOT NULL, MENSAJE TEXT NOT NULL);";
                SQLiteCommand cmd   = new SQLiteCommand(tabla, cnx);
                cmd.ExecuteNonQuery();
            }

            catch (Exception e)
            {
                Gtk.MessageDialog msg = new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "No se pudo crear la tabla");
                msg.Title = "Error Tabla";
                msg.Run();
                msg.Destroy();
            }
            cnx.Close();
        }
        public void Run()
        {
            string      text = TextEditorApp.MainWindow.View.Buffer.Text;
            XmlDocument doc  = new XmlDocument();

            try {
                doc.LoadXml(text);
                StringWriter  sw = new StringWriter();
                XmlTextWriter tw = new XmlTextWriter(sw);
                tw.Formatting = Formatting.Indented;
                doc.Save(tw);
                TextEditorApp.MainWindow.View.Buffer.Text = sw.ToString();
            }
            catch {
                Gtk.MessageDialog dlg = new Gtk.MessageDialog(TextEditorApp.MainWindow, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Close, "Error parsing XML.");
                dlg.Run();
                dlg.Destroy();
            }
        }
Пример #26
0
 protected void CreateButtonPressed(object o, EventArgs args)
 {
     try {
         Dbcon.Open();
         Dbcmd = new MySqlCommand(query, Dbcon);
         Dbcmd.Parameters.AddWithValue("@id", IdEntry.Text);
         Dbcmd.Parameters.AddWithValue("@name", NameEntry.Text);
         Dbcmd.Parameters.AddWithValue("@lat", LatEntry.Text);
         Dbcmd.Parameters.AddWithValue("@lon", LonEntry.Text);
         Dbcmd.ExecuteNonQuery();
         Gtk.MessageDialog msg = new Gtk.MessageDialog(this, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "Nodo insertado exitosamente");
         msg.Run();
         msg.Destroy();
         this.Destroy();
     } catch (Exception e) {
         Gtk.MessageDialog msg = new Gtk.MessageDialog(this, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Error, Gtk.ButtonsType.Ok, "Error al insertar el Nodo\n" + e.StackTrace);
         msg.Run();
         msg.Destroy();
     }
 }
Пример #27
0
        private void _OnSwitchRemoteEngineButtonClicked(object obj, EventArgs args)
        {
            Trace.Call(obj, args);

            try {
                Gtk.MessageDialog md = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal,
                                                             Gtk.MessageType.Warning, Gtk.ButtonsType.YesNo,
                                                             _("Switching the remote engine will disconnect you from the current engine!\n" +
                                                               "Are you sure you want to do this?"));
                int result = md.Run();
                md.Destroy();
                if ((Gtk.ResponseType)result == Gtk.ResponseType.Yes)
                {
                    Frontend.DisconnectEngineFromGUI();
                    Frontend.ShowEngineManagerDialog();
                }
            } catch (Exception ex) {
                Frontend.ShowException(this, ex);
            }
        }
Пример #28
0
        public DialogResult ShowDialog(Control parent)
        {
            Gtk.Widget c = (parent == null) ? null : (Gtk.Widget)parent.ControlObject;
            while (!(c is Gtk.Window) && c != null)
            {
                c = c.Parent;
            }
            control          = new Gtk.MessageDialog((Gtk.Window)c, Gtk.DialogFlags.Modal, Convert(Type), Gtk.ButtonsType.Ok, false, Text);
            control.TypeHint = Gdk.WindowTypeHint.Dialog;
            var caption = Caption ?? ((parent != null && parent.ParentWindow != null) ? parent.ParentWindow.Title : null);

            if (!string.IsNullOrEmpty(caption))
            {
                control.Title = caption;
            }
            int ret = control.Run();

            control.Destroy();
            return(Generator.Convert((Gtk.ResponseType)ret));
        }
Пример #29
0
        private void CalibrateWiimote()
        {
            IWiimote      wiimote          = (IWiimote)Device;
            ReportingMode oldReportingMode = wiimote.ReportingMode;

            wiimote.SetReportingMode(ReportingMode.ButtonsAccelerometer);
            AccelerometerAxes <ushort> raw = wiimote.Accelerometer.Raw;

            Gtk.MessageDialog dialog = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info, Gtk.ButtonsType.OkCancel, false, "Place the wiimote on a table.", new object[0]);
            if (dialog.Run() == -5)
            {
                ushort xZero, yZero, zZero, xOne, yOne, zOne = 0;
                xZero         = raw.X;
                yZero         = raw.Y;
                zOne          = raw.Z;
                dialog.Markup = "Place the wiimote on its left side.";
                if (dialog.Run() == -5)
                {
                    xOne  = raw.X;
                    zZero = raw.Z;

                    // Invert zOne (so that the values are negated).
                    zOne = (ushort)(zZero - (zOne - zZero));

                    dialog.Markup = "Place the wiimote on its lower side, so that it points up.";
                    if (dialog.Run() == -5)
                    {
                        yOne = raw.Y;

                        wiimote.WriteMemory(0x16, new byte[] {
                            (byte)xZero, (byte)yZero, (byte)zZero, 0,
                            (byte)xOne, (byte)yOne, (byte)zOne, 0
                        }, 0, 8);

                        wiimote.Initialize();
                    }
                }
            }
            dialog.Destroy();
            wiimote.SetReportingMode(oldReportingMode);
        }
Пример #30
0
        public SaveCheckDialogResult ShowSaveCheckDialog()
        {
            Gtk.MessageDialog saveCheckDialog = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, Gtk.ButtonsType.YesNo, false, "The current document has unsaved changes. Do you wish to save those now?");
            saveCheckDialog.AddButton("Cancel", Gtk.ResponseType.Cancel);

            SaveCheckDialogResult result = SaveCheckDialogResult.Cancel;

            int dialogResult = saveCheckDialog.Run();
            if ((int)Gtk.ResponseType.Yes == dialogResult)
            {
                result = SaveCheckDialogResult.Save;
            }
            else if ((int)Gtk.ResponseType.No == dialogResult)
            {
                result = SaveCheckDialogResult.NoSave;
            }

            saveCheckDialog.Destroy();

            return result;
        }
Пример #31
0
        protected void OnRemoveIcon(object ob, EventArgs args)
        {
            string         name = customIconList.Selection;
            ProjectIconSet icon = project.IconFactory.GetIcon(name);

            if (icon != null)
            {
                Gtk.MessageDialog md = new Gtk.MessageDialog(dialog, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, Gtk.ButtonsType.YesNo, string.Format(Catalog.GetString("Are you sure you want to delete the icon '{0}'"), icon.Name));
                if (parent != null)
                {
                    md.TransientFor = parent.Toplevel as Gtk.Window;
                }
                if (md.Run() == (int)Gtk.ResponseType.Yes)
                {
                    project.IconFactory.Icons.Remove(icon);
                    customIconList.Refresh();
                    project.Modified = true;
                }
                md.Destroy();
            }
        }
Пример #32
0
        private void _OnDeleteButtonPressed()
        {
            string msg = String.Format(
                _("Are you sure you want to delete the engine \"{0}\"?"),
                _SelectedEngine);

            Gtk.MessageDialog md = new Gtk.MessageDialog(this, Gtk.DialogFlags.Modal,
                                                         Gtk.MessageType.Warning, Gtk.ButtonsType.YesNo, msg);
            int res = md.Run();

            md.Destroy();

            if ((Gtk.ResponseType)res == Gtk.ResponseType.Yes)
            {
                _DeleteEngine(_SelectedEngine);
                _InitEngineList();

                // Re-run the Dialog
                Run();
            }
        }
Пример #33
0
		public DialogResult ShowDialog(Control parent, MessageBoxButtons buttons)
		{
			Gtk.Widget c = (parent == null) ? null : (Gtk.Widget)parent.ControlObject;
			while (!(c is Gtk.Window) && c != null)
			{
				c = c.Parent;
			}
			control = new Gtk.MessageDialog((Gtk.Window)c, Gtk.DialogFlags.Modal, Convert (Type), Convert(buttons), false, Text);
			control.TypeHint = Gdk.WindowTypeHint.Dialog;
			var caption = Caption ?? ((parent != null && parent.ParentWindow != null) ? parent.ParentWindow.Title : null);
            if (!string.IsNullOrEmpty(caption)) control.Title = caption;
			if (buttons == MessageBoxButtons.YesNoCancel)
			{
				// must add cancel manually
				Gtk.Button b = (Gtk.Button)control.AddButton(Gtk.Stock.Cancel, (int)Gtk.ResponseType.Cancel);
				b.UseStock = true;
			}
			int ret = control.Run();
			control.Destroy();
			return Generator.Convert((Gtk.ResponseType)ret);
		}
        void _forum_LoginEvent(object sender, LoginEventArgs e)
        {
            switch (e.LoginEventType)
            {
            case POG.Forum.LoginEventType.LoginFailure:
            {
                Gtk.MessageDialog msg = new Gtk.MessageDialog(this,
                                                              Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Error, Gtk.ButtonsType.Close,
                                                              "Login failed! Check the username and password.");
                msg.Run();
                msg.Destroy();
                btnLogin.Sensitive = true;
            }
            break;

            case POG.Forum.LoginEventType.LoginSuccess:
            {
                btnLogin.Sensitive = false;
                //txtUsername.ReadOnly = true;
                //txtPassword.ReadOnly = true;
                //txtPassword.PasswordChar = '*';
                if (chkRememberMe.Active)
                {
                }
                //DialogResult = System.Windows.Forms.DialogResult.OK;
            }
            break;

            case POG.Forum.LoginEventType.LogoutSuccess:
            {
                btnLogin.Sensitive = true;
                txtUsername.Text   = "";
                txtPassword.Text   = "";
                //txtUsername.ReadOnly = false;
                //txtPassword.ReadOnly = false;
                //txtPassword.PasswordChar = '\0';
            }
            break;
            }
        }
Пример #35
0
        protected void OnSwitchRemoteEngineActionActivated(object sender, EventArgs e)
        {
            Trace.Call(sender, e);

            try {
                var dialog = new Gtk.MessageDialog(
                    Parent, Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Warning, Gtk.ButtonsType.YesNo,
                    _("Switching the remote engine will disconnect you from the current engine!\n" +
                      "Are you sure you want to do this?")
                    );
                int result = dialog.Run();
                dialog.Destroy();
                if ((Gtk.ResponseType)result == Gtk.ResponseType.Yes)
                {
                    Frontend.DisconnectEngineFromGUI();
                    Frontend.ShowEngineManagerDialog();
                }
            } catch (Exception ex) {
                Frontend.ShowException(Parent, ex);
            }
        }
Пример #36
0
        public SaveCheckDialogResult ShowSaveCheckDialog()
        {
            Gtk.MessageDialog saveCheckDialog = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, Gtk.ButtonsType.YesNo, false, "The current document has unsaved changes. Do you wish to save those now?");
            saveCheckDialog.AddButton("Cancel", Gtk.ResponseType.Cancel);

            SaveCheckDialogResult result = SaveCheckDialogResult.Cancel;

            int dialogResult = saveCheckDialog.Run();

            if ((int)Gtk.ResponseType.Yes == dialogResult)
            {
                result = SaveCheckDialogResult.Save;
            }
            else if ((int)Gtk.ResponseType.No == dialogResult)
            {
                result = SaveCheckDialogResult.NoSave;
            }

            saveCheckDialog.Destroy();

            return(result);
        }
Пример #37
0
        private static bool CheckFrontendManagerStatus()
        {
            Trace.Call();

            if (_FrontendManager == null)
            {
                // we lost the frontend manager, nothing to check
                return(false);
            }

            if (_FrontendManager.IsAlive)
            {
                // everything is fine
                return(true);
            }

#if LOG4NET
            _Logger.Error("CheckFrontendManagerStatus(): frontend manager is not alive anymore!");
#endif
            Gtk.Application.Invoke(delegate {
                Gtk.MessageDialog md = new Gtk.MessageDialog(_MainWindow,
                                                             Gtk.DialogFlags.Modal, Gtk.MessageType.Error,
                                                             Gtk.ButtonsType.OkCancel, _("The server has lost the connection to the frontend.\nDo you want to reconnect now?"));
                Gtk.ResponseType res = (Gtk.ResponseType)md.Run();
                md.Destroy();

                if (res != Gtk.ResponseType.Ok)
                {
                    // the frontend is unusable in this state -> say good bye
                    Frontend.Quit();
                    return;
                }

                Frontend.ReconnectEngineToGUI();
            });

            return(false);
        }
Пример #38
0
        void on_okButton_clicked(object o, EventArgs args)
        {
            if (Core.Settings.KeyEncrypted && !Core.Settings.CheckKeyPassword(oldPasswordEntry.Text))
            {
                Gui.ShowErrorDialog("Old password incorrect");
                oldPasswordEntry.GrabFocus();
                return;
            }

            if (newPasswordEntry.Text != confirmPasswordEntry.Text)
            {
                Gui.ShowErrorDialog("New passwords do not match");
                newPasswordEntry.GrabFocus();
                return;
            }

            if (newPasswordEntry.Text == String.Empty)
            {
                var dialog = new Gtk.MessageDialog(base.Window, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, Gtk.ButtonsType.YesNo, "Are you sure you don't want to set a password?");
                dialog.Show();
                int r = dialog.Run();
                dialog.Destroy();
                if (r != (int)Gtk.ResponseType.Yes)
                {
                    return;
                }
            }

            Core.Settings.ChangeKeyPassword(newPasswordEntry.Text);

            if (!Core.Settings.FirstRun)
            {
                Gui.ShowMessageDialog("Your password has been changed.");
            }

            Dialog.Respond(Gtk.ResponseType.Ok);
        }
Пример #39
0
        public bool ValidateEntry()
        {
            try
            {
                int    degrees = int.Parse(degreeEntry.Text, CultureInfo.InvariantCulture);
                double minutes = double.Parse(minuteEntry.Text, CultureInfo.InvariantCulture);

                if (degrees < 0 || minutes < 0)
                {
                    throw new Exception();
                }
                return(true);
            }
            catch (Exception)
            {
                Gtk.MessageDialog dlg = new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent,
                                                              Gtk.MessageType.Error, Gtk.ButtonsType.Ok,
                                                              Catalog.GetString("Invalid Coordinate"));
                dlg.Run();
                dlg.Hide();
                dlg.Dispose();
                return(false);
            }
        }
Пример #40
0
		public static void Run (string file)
		{
			ICompiler[] compilers = (ICompiler[]) AddinManager.GetExtensionObjects (typeof(ICompiler));
			
			ICompiler compiler = null;
			foreach (ICompiler comp in compilers) {
				if (comp.CanCompile (file)) {
					compiler = comp;
					break;
				}
			}
			if (compiler == null) {
				string msg = "No compiler available for this kind of file.";
				Gtk.MessageDialog dlg = new Gtk.MessageDialog (TextEditorApp.MainWindow, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Close, msg);
				dlg.Run ();
				dlg.Destroy ();
				return;
			}

			string messages = compiler.Compile (file, file + ".exe");
			
			TextEditorApp.MainWindow.ConsoleWrite ("Compilation finished.\n");
			TextEditorApp.MainWindow.ConsoleWrite (messages);
		}
Пример #41
0
        public static void Load()
        {
            try
            {
                SetDefaultValues();

                using (FileStream stream = new FileStream(SettingsPath, FileMode.Open))
                {
                    BinaryFormatter bin = new BinaryFormatter();
                    HelperClass hc = (HelperClass)bin.Deserialize(stream);
                    hc.PushValues();
                }
            }
            catch (Exception ex)
            {
                Gtk.MessageDialog md = new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Error, Gtk.ButtonsType.Ok, "Couldn´t read Settings!" + Environment.NewLine + ex.Message);
                md.Title = "Error";
                md.AddButton("Restore Settings?", Gtk.ResponseType.Yes);
                Gtk.ResponseType result = (Gtk.ResponseType)md.Run();
                md.Destroy();

                if (result == Gtk.ResponseType.Yes) { Recreate(); }
            }
        }
Пример #42
0
 public bool Escuchar()
 {
     try{
         this.tcpLsn = new TcpListener(Convert.ToInt32(pto));
         tcpLsn.Start();
         tcpThd = new Thread(new ThreadStart(EsperarCliente));
         tcpThd.Start();
         Gtk.MessageDialog msg = new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "Se ha establecido la conexion");
         msg.Title = "Conectado";
         msg.Run();
         msg.Destroy();
         try
         {
             string cnxStr = "Data Source=CHAT.db;Version=3;New=True;Compress=True;";
             cnx = new SQLiteConnection(cnxStr);
             //Crea la tabla
             VerificaTabla();
             return(true);
         }
         catch (Exception e)
         {
             Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "No se puede acceder a la base de datos\n" + e);
             m.Title = "Error en Base de Datos";
             m.Run();
             m.Destroy();
             return(false);
         }
     }
     catch (Exception e) {
         Gtk.MessageDialog msg = new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Info, Gtk.ButtonsType.Ok, "Ya estas conectado");
         msg.Title = "Error";
         msg.Run();
         msg.Destroy();
         return(false);
     }
 }
Пример #43
0
        protected void OnSaveButtonClicked(object sender, System.EventArgs e)
        {
            object [] param = new object[4];
            param[0] = "Cancel";
            param[1] = Gtk.ResponseType.Cancel;
            param[2] = "Save";
            param[3] = Gtk.ResponseType.Accept;

            Gtk.FileChooserDialog fc =
                new Gtk.FileChooserDialog("Save File As",
                                          null,
                                          Gtk.FileChooserAction.Save,
                                          param);



            if (fc.Run() == (int)Gtk.ResponseType.Accept)
            {
                try
                {
                    Uri file = new Uri(fc.Filename);
                    pdf.SaveACopy(file.AbsoluteUri);
                }
                catch (Exception ex)
                {
                    Gtk.MessageDialog m = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Info,
                                                                Gtk.ButtonsType.Ok, false,
                                                                "Error Saving Copy of PDF." + System.Environment.NewLine + ex.Message);

                    m.Run();
                    m.Destroy();
                }
            }
            //Don't forget to call Destroy() or the FileChooserDialog window won't get closed.
            fc.Destroy();
        }
Пример #44
0
        private static bool CheckFrontendManagerStatus()
        {
            Trace.Call();

            if (_FrontendManager == null) {
                // we lost the frontend manager, nothing to check
                return false;
            }

            if (_FrontendManager.IsAlive) {
                // everything is fine
                return true;
            }

            #if LOG4NET
            _Logger.Error("CheckFrontendManagerStatus(): frontend manager is not alive anymore!");
            #endif
            Gtk.Application.Invoke(delegate {
                Gtk.MessageDialog md = new Gtk.MessageDialog(_MainWindow,
                    Gtk.DialogFlags.Modal, Gtk.MessageType.Error,
                    Gtk.ButtonsType.OkCancel, _("The server has lost the connection to the frontend.\nDo you want to reconnect now?"));
                Gtk.ResponseType res = (Gtk.ResponseType) md.Run();
                md.Destroy();

                if (res != Gtk.ResponseType.Ok) {
                    // the frontend is unusable in this state -> say good bye
                    Frontend.Quit();
                    return;
                }

                Frontend.ReconnectEngineToGUI();
            });

            return false;
        }
        protected virtual void LoadNotes()
        {
            Logger.Debug("Loading notes");
            string [] files = Directory.GetFiles(notes_dir, "*.note");

            foreach (string file_path in files)
            {
                try {
                    Note note = Note.Load(file_path, this);
                    if (note != null)
                    {
                        note.Renamed       += OnNoteRename;
                        note.Saved         += OnNoteSave;
                        note.BufferChanged += OnBufferChanged;
                        notes.Add(note);
                    }
                } catch (System.Xml.XmlException e) {
                    Logger.Error("Error parsing note XML, skipping \"{0}\": {1}",
                                 file_path,
                                 e.Message);
                } catch (System.IO.IOException e) {
                    Logger.Error("Note {0} can not be loaded - file corrupted?: {1}",
                                 file_path,
                                 e.Message);
                    Gtk.MessageDialog md =
                        new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent,
                                              Gtk.MessageType.Error,
                                              Gtk.ButtonsType.Close,
                                              "Skipping a note.\n {0} can not be loaded - Error loading file!",
                                              file_path
                                              );
                    md.Run();
                    md.Destroy();
                } catch (System.UnauthorizedAccessException e) {
                    Logger.Error("Note {0} can not be loaded - access denied: {1}",
                                 file_path,
                                 e.Message);
                    Gtk.MessageDialog md =
                        new Gtk.MessageDialog(null, Gtk.DialogFlags.DestroyWithParent,
                                              Gtk.MessageType.Error,
                                              Gtk.ButtonsType.Close,
                                              "Skipping a note.\n {0} can not be loaded - Access denied!",
                                              file_path
                                              );
                    md.Run();
                    md.Destroy();
                }
            }

            notes.Sort(new CompareDates());

            // Update the trie so addins can access it, if they want.
            trie_controller.Update();

            if (NotesLoaded != null)
            {
                NotesLoaded(this, EventArgs.Empty);
            }

            bool startup_notes_enabled = (bool)
                                         Preferences.Get(Preferences.ENABLE_STARTUP_NOTES);

            // Load all the addins for our notes.
            // Iterating through copy of notes list, because list may be
            // changed when loading addins.
            List <Note> notesCopy = new List <Note> (notes);

            foreach (Note note in notesCopy)
            {
                addin_mgr.LoadAddinsForNote(note);

                // Show all notes that were visible when tomboy was shut down
                if (note.IsOpenOnStartup)
                {
                    if (startup_notes_enabled)
                    {
                        note.Window.Show();
                    }

                    note.QueueSave(ChangeType.NoChange);
                }
            }

            // Make sure that a Start Note Uri is set in the preferences, and
            // make sure that the Uri is valid to prevent bug #508982. This
            // has to be done here for long-time Tomboy users who won't go
            // through the CreateStartNotes () process.
            if (StartNoteUri == String.Empty ||
                FindByUri(StartNoteUri) == null)
            {
                // Attempt to find an existing Start Here note
                Note start_note = Find(Catalog.GetString("Start Here"));
                if (start_note != null)
                {
                    Preferences.Set(Preferences.START_NOTE_URI, start_note.Uri);
                }
            }

            if (NotesLoaded != null)
            {
                NotesLoaded(this, EventArgs.Empty);
            }
        }
Пример #46
0
 protected void OnChkSortToggled(object sender, System.EventArgs e)
 {
     if (!disableSettingsEvents) {
         cmbSort.Visible = chkSort.Active;
         if (chkSort.Active) {
             if (!disableSettingsEvents) {
                 Gtk.MessageDialog d = new Gtk.MessageDialog (this, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Question, Gtk.ButtonsType.YesNo, textSortDialogMsg);
                 d.Modal = true;
                 d.Title = textChkSort;
                 Gtk.ResponseType answer = (Gtk.ResponseType)d.Run ();
                 if (answer == Gtk.ResponseType.Yes) {
                     SortMaster = true;
                     lblWarnings.Text = textLogSortMaster + ": " + textOn;
                 } else {
                     SortMaster = false;
                     lblWarnings.Text = textLogSortMaster + ": " + textOff;
                 }
                 d.Destroy ();
             }
             // effect sort on the Master Log, if desired
             if (SortMaster) {
                 rewriteMasterLog ();
             }
             // sort the list, if filter is running
             if (enabled) {
                 sortNeeded = true;
                 // force the filter of the logs (arguments probably have the wrong values, but they aren't used by the code)
                 this.OnTimedEvent (sender, null);
             }
         } else {
             lblWarnings.Text = "";
         }
         // save settings
         writeSettings ();
     }
 }
Пример #47
0
        private void _OnActivated(object sender, EventArgs e)
        {
            Trace.Call(sender, e);

            try {
                if (!(Text.Length > 0)) {
                    return;
                }
                if (ChatViewManager.CurrentChatView == null) {
                    return;
                }

                if (Text.IndexOf("\n") != -1) {
                    var text = Text.TrimEnd('\n');
                    // seems to be a paste, so let's break it apart
                    string[] msgParts = text.Split(new char[] {'\n'});
                    if (msgParts.Length > 3) {
                        string msg = String.Format(_("You are going to paste {0} lines. Do you want to continue?"),
                                                   msgParts.Length);
                        Gtk.MessageDialog md = new Gtk.MessageDialog(
                                                    Frontend.MainWindow,
                                                    Gtk.DialogFlags.Modal,
                                                    Gtk.MessageType.Warning,
                                                    Gtk.ButtonsType.YesNo,
                                                    msg);
                        Gtk.ResponseType res = (Gtk.ResponseType)md.Run();
                        md.Destroy();
                        if (res != Gtk.ResponseType.Yes) {
                            Text = String.Empty;
                            return;
                        }
                    }
                    if (Frontend.EngineProtocolVersion < new Version(0,8,11)) {
                        foreach (string msg in msgParts) {
                            ExecuteCommand(msg);
                        }
                    } else {
                        // new engines know how to handle messages containing \n
                        ExecuteCommand(text);
                    }
                } else {
                    ExecuteCommand(Text);
                    AddToHistory(Text, _History.Count - _HistoryPosition);
                    // reset history position to last entry
                    _HistoryPosition = _History.Count - 1;
                }
                Text = String.Empty;
            } catch (Exception ex) {
            #if LOG4NET
                _Logger.Error(ex);
            #endif
                Frontend.ShowException(null, ex);
            }
        }
Пример #48
0
        protected virtual void OnRemoveButtonClicked(object sender, System.EventArgs e)
        {
            Trace.Call(sender, e);

            try {
                Gtk.TreeIter iter;
                if (!f_TreeView.Selection.GetSelected(out iter)) {
                    return;
                }

                Gtk.MessageDialog md = new Gtk.MessageDialog(
                     f_Parent,
                     Gtk.DialogFlags.Modal,
                     Gtk.MessageType.Warning,
                     Gtk.ButtonsType.YesNo,
                     _("Are you sure you want to delete the selected filter?")
                );
                int result = md.Run();
                md.Destroy();
                if (result != (int) Gtk.ResponseType.Yes) {
                    return;
                }

                f_ListStore.Remove(ref iter);

                OnChanged(EventArgs.Empty);
            } catch (Exception ex) {
                Frontend.ShowException(ex);
            }
        }
Пример #49
0
        protected virtual void OnFindButtonClicked(object sender, System.EventArgs e)
        {
            Trace.Call(sender, e);

            try {
                string nameFilter = f_NameEntry.Text.Trim();
                if (!(Frontend.EngineVersion >= new Version("0.8.1")) &&
                    String.IsNullOrEmpty(nameFilter))
                {
                    Gtk.MessageDialog md = new Gtk.MessageDialog(
                        this,
                        Gtk.DialogFlags.Modal,
                        Gtk.MessageType.Warning,
                        Gtk.ButtonsType.YesNo,
                        _("Searching for group chats without a filter is not " +
                          "recommended.  This may take a while, or may not " +
                          "work at all.\n" +
                          "Do you wish to continue?")
                        );
                    int result = md.Run();
                    md.Destroy();
                    if (result != (int)Gtk.ResponseType.Yes)
                    {
                        return;
                    }
                }

                f_ListStore.Clear();
                CancelFindThread();

                GroupChatModel filter = new GroupChatModel(null, nameFilter, null);
                f_FindThread = new Thread(new ThreadStart(delegate {
                    try {
                        Gtk.Application.Invoke(delegate {
                            GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);
                        });

                        IList <GroupChatModel> chats = f_ProtocolManager.FindGroupChats(filter);

                        Gtk.Application.Invoke(delegate {
                            Gdk.Color bgColor = f_TreeView.Style.Background(Gtk.StateType.Normal);
                            foreach (GroupChatModel chat in chats)
                            {
                                f_ListStore.AppendValues(
                                    chat,
                                    chat.PersonCount,
                                    chat.Name,
                                    PangoTools.ToMarkup(chat.Topic, bgColor)
                                    );
                            }
                        });
                    } catch (ThreadAbortException) {
#if LOG4NET
                        f_Logger.Debug("FindThread aborted");
#endif
                        Thread.ResetAbort();
                    } catch (Exception ex) {
                        Frontend.ShowError(this, _("Error while fetching the list of group chats from the server."), ex);
                    } finally {
                        Gtk.Application.Invoke(delegate {
                            // if the dialog is gone the GdkWindow might be destroyed already
                            if (GdkWindow != null)
                            {
                                GdkWindow.Cursor = null;
                            }
                        });
                    }
                }));
                f_FindThread.IsBackground = true;
                f_FindThread.Start();
            } catch (Exception ex) {
                Frontend.ShowException(ex);
            }
        }
Пример #50
0
        protected virtual void OnRowActivated(object o, Gtk.RowActivatedArgs args)
        {
            Debug.WriteLine(5, "Row activated");

            Gtk.TreeIter iter;
            BibtexRecord record;

            if (!Model.GetIter(out iter, args.Path))
            {
                Debug.WriteLine(5, "Failed to open record because of GetIter faliure");
                return;
            }
            record = (BibtexRecord)Model.GetValue(iter, 0);
            string uriString = record.GetURI();

            if (string.IsNullOrEmpty(uriString))
            {
                Debug.WriteLine(5, "Selected record does not have a URI field");
                return;
            }

            var uri  = new Uri(uriString);
            var list = new GLib.List(typeof(String));

            list.Append(uriString);

            if (System.IO.File.Exists(uri.LocalPath))
            {
                bool   uncertain;
                string result;
                byte   data;
                ulong  data_size;

                data_size = 0;

                if (Environment.OSVersion.Platform == PlatformID.Win32NT)
                {
                    // TODO: Does this work under linux?
                    System.Diagnostics.Process.Start(@uri.ToString());
                }
                else
                {
                    result = GLib.ContentType.Guess(uri.ToString(), out data, data_size, out uncertain);

                    if (result != null & result != "" & !uncertain)
                    {
                        GLib.IAppInfo app;

                        app = GLib.AppInfoAdapter.GetDefaultForType(result, true);

                        if (app != null)
                        {
                            GLib.AppLaunchContext appContext;

                            appContext = new GLib.AppLaunchContext();
                            app.LaunchUris(list, appContext);
                            return;
                        }
                    }
                }
            }
            else
            {
                var md = new Gtk.MessageDialog((Gtk.Window)Toplevel, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Error, Gtk.ButtonsType.Close, "Error loading associated file:\n" + uri.LocalPath);
                md.Run();
                md.Destroy();

                Debug.WriteLine(0, "Error loading associated file:\n{0}", uri.LocalPath);
            }
        }
Пример #51
0
        public static void ShowError(Gtk.Window parent, string msg, Exception ex)
        {
            Trace.Call(parent, msg, ex != null ? ex.GetType() : null);

            if (!IsGuiThread()) {
                Gtk.Application.Invoke(delegate {
                    ShowError(parent, msg, ex);
                });
                return;
            }

            if (ex != null) {
            #if LOG4NET
                _Logger.Error("ShowError(): Exception: ", ex);
            #endif
                msg += "\n" + String.Format(_("Cause: {0}"), ex.Message);
            }
            if (parent == null) {
                parent = _MainWindow;
            }

            Gtk.MessageDialog md = new Gtk.MessageDialog(
                parent,
                Gtk.DialogFlags.Modal,
                Gtk.MessageType.Error,
                Gtk.ButtonsType.Ok,
                false,
                msg
            );
            md.Run();
            md.Destroy();
        }
Пример #52
0
		bool CheckBug77135 ()
		{
			try {
				// Check for bug 77135. Some versions of gnome-vfs2 and libgda
				// make MD crash in the file open dialog or in FileIconLoader.
				// Only in Suse.
				
				string path = "/etc/SuSE-release";
				if (!File.Exists (path))
					return true;
					
				// Only run the check for SUSE 10
				StreamReader sr = File.OpenText (path);
				string txt = sr.ReadToEnd ();
				sr.Close ();
				
				if (txt.IndexOf ("SUSE LINUX 10") == -1)
					return true;
					
				string current_libgda;
				string current_gnomevfs;
				string required_libgda = "1.3.91.5.4";
				string required_gnomevfs = "2.12.0.9.2";
				
				StringWriter sw = new StringWriter ();
				ProcessWrapper pw = Runtime.ProcessService.StartProcess ("rpm", "--qf %{version}.%{release} -q libgda", null, sw, null, null);
				pw.WaitForOutput ();
				current_libgda = sw.ToString ().Trim (' ','\n');
				
				sw = new StringWriter ();
				pw = Runtime.ProcessService.StartProcess ("rpm", "--qf %{version}.%{release} -q gnome-vfs2", null, sw, null, null);
				pw.WaitForOutput ();
				current_gnomevfs = sw.ToString ().Trim (' ','\n');
				
				bool fail1 = Addin.CompareVersions (current_libgda, required_libgda) == 1;
				bool fail2 = Addin.CompareVersions (current_gnomevfs, required_gnomevfs) == 1;
				
				if (fail1 || fail2) {
					string msg = GettextCatalog.GetString ("Some packages installed in your system are not compatible with MonoDevelop:\n");
					if (fail1)
						msg += "\nlibgda " + current_libgda + " ("+ GettextCatalog.GetString ("version required: {0}", required_libgda) + ")";
					if (fail2)
						msg += "\ngnome-vfs2 " + current_gnomevfs + " ("+ GettextCatalog.GetString ("version required: {0}", required_gnomevfs) + ")";
					msg += "\n\n";
					msg += GettextCatalog.GetString ("You need to upgrade the previous packages to start using MonoDevelop.");
					
					SplashScreenForm.SplashScreen.Hide ();
					Gtk.MessageDialog dlg = new Gtk.MessageDialog (null, Gtk.DialogFlags.Modal, Gtk.MessageType.Error, Gtk.ButtonsType.Ok, msg);
					dlg.Run ();
					dlg.Destroy ();
					
					return false;
				} else
					return true;
			}
			catch (Exception ex)
			{
				// Just ignore for now.
				Console.WriteLine (ex);
				return true;
			}
		}
Пример #53
0
		protected void OnSaveNoteBtnClicked(object sender, EventArgs e)
		{
			var note = (NoteNode)listView.NodeSelection.SelectedNode;
			if (note == null)
			{
				var md = new Gtk.MessageDialog(
					this,
					Gtk.DialogFlags.DestroyWithParent,
					Gtk.MessageType.Error,
					Gtk.ButtonsType.Close,
					"No note selected for saving!"
					);
				md.Run();
				md.Destroy();
			}
			else
			{
				note.Note.Content = noteView.Buffer.Text;
			}
		}
Пример #54
0
        protected void OnUseLocalEngineActionActivated(object sender, EventArgs e)
        {
            Trace.Call(sender, e);

            try {
                var dialog = new Gtk.MessageDialog(
                    Parent, Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Warning, Gtk.ButtonsType.YesNo,
                    _("Switching to local engine will disconnect you from the current engine!\n"+
                      "Are you sure you want to do this?")
                );
                int result = dialog.Run();
                dialog.Destroy();
                if ((Gtk.ResponseType)result == Gtk.ResponseType.Yes) {
                    Frontend.DisconnectEngineFromGUI();
                    Frontend.InitLocalEngine();
                    Frontend.ConnectEngineToGUI();
                }
            } catch (Exception ex) {
                Frontend.ShowException(Parent, ex);
            }
        }
Пример #55
0
        private void _OnDeleteButtonPressed()
        {
            string msg = String.Format(
                            _("Are you sure you want to delete the engine \"{0}\"?"),
                            _SelectedEngine);
            Gtk.MessageDialog md = new Gtk.MessageDialog(this, Gtk.DialogFlags.Modal,
            Gtk.MessageType.Warning, Gtk.ButtonsType.YesNo, msg);
            int res = md.Run();
            md.Destroy();

            if ((Gtk.ResponseType)res == Gtk.ResponseType.Yes) {
                _DeleteEngine(_SelectedEngine);
                 _InitEngineList();

                // Re-run the Dialog
                Run();
            }
        }
Пример #56
0
        public static bool ShowReconnectDialog(Gtk.Window parent)
        {
            Trace.Call(parent);

            Gtk.MessageDialog md = new Gtk.MessageDialog(parent,
                Gtk.DialogFlags.Modal, Gtk.MessageType.Error,
                Gtk.ButtonsType.OkCancel, _("The frontend has lost the connection to the server.\nDo you want to reconnect now?"));
            Gtk.ResponseType res = (Gtk.ResponseType) md.Run();
            md.Destroy();

            if (res != Gtk.ResponseType.Ok) {
                Quit();
                return false;
            }

            while (true) {
                try {
                    Frontend.ReconnectEngineToGUI();
                    // yay, we made it
                    _InReconnectHandler = false;
                    break;
                } catch (Exception e) {
            #if LOG4NET
                     _Logger.Error("ShowReconnectDialog(): Reconnect failed, exception:", e);
            #endif
                    var msg = _("Reconnecting to the server has failed.\nDo you want to try again?");
                    // the parent window is hidden (MainWindow) at this
                    // point thus modal doesn't make sense here
                    md = new Gtk.MessageDialog(parent,
                        Gtk.DialogFlags.DestroyWithParent,
                        Gtk.MessageType.Error,
                        Gtk.ButtonsType.OkCancel, msg);
                    md.SetPosition(Gtk.WindowPosition.CenterAlways);
                    res = (Gtk.ResponseType) md.Run();
                    md.Destroy();

                    if (res != Gtk.ResponseType.Ok) {
                        // give up
                        Quit();
                        return false;
                    }
                }
            }
            return true;
        }
Пример #57
0
        public static void ShowException(Gtk.Window parent, Exception ex)
        {
            Trace.Call(parent, ex != null ? ex.GetType() : null);

            if (parent == null) {
                parent = _MainWindow;
            }

            if (!IsGuiThread()) {
                Gtk.Application.Invoke(delegate {
                    ShowException(parent, ex);
                });
                return;
            }

            if (ex is NotImplementedException) {
                // don't quit on NotImplementedException
                ShowError(parent, ex);
                return;
            }

            #if LOG4NET
            _Logger.Error("ShowException(): Exception:", ex);
            #endif

            // HACK: ugly MS .NET throws underlaying SocketException instead of
            // wrapping those into a nice RemotingException, see:
            // http://projects.qnetp.net/issues/show/232
            if (ex is System.Runtime.Remoting.RemotingException ||
                ex is System.Net.Sockets.SocketException) {
                if (_InReconnectHandler || _InCrashHandler) {
                    // one reconnect is good enough and a crash we won't survive
                    return;
                }

                Frontend.ReconnectEngineToGUI();
                return;
            }

            if (_InCrashHandler) {
                // only show not more than one crash dialog, else the user
                // will not be able to copy/paste the stack trace and stuff
                return;
            }
            _InCrashHandler = true;

            // we are using a remote engine, we are not running on Mono and an
            // IConvertible issue happened
            if (!Frontend.IsLocalEngine &&
                Type.GetType("Mono.Runtime") == null &&
                ex is InvalidCastException &&
                ex.Message.Contains("IConvertible")) {
                var msg = _(
                    "A fatal error has been detected because of a protocol incompatibility with the smuxi-server!\n\n" +
                    "Please install Mono on the frontend side so it matches the smuxi-server.\n\n" +
                    "More details about this issue can be found here:\n" +
                    "https://smuxi.im/issues/show/589"
                );
                var dialog = new Gtk.MessageDialog(
                    parent,
                    Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Error,
                    Gtk.ButtonsType.Close,
                    true,
                    msg
                );
                dialog.Run();
                dialog.Destroy();
                Quit();
                return;
            }

            CrashDialog cd = new CrashDialog(parent, ex);
            cd.Run();
            cd.Destroy();

            if (SysDiag.Debugger.IsAttached) {
                // allow the debugger to examine the situation
                //SysDiag.Debugger.Break();
                // HACK: Break() would be nicer but crashes the runtime
                throw ex;
            }

            Quit();
        }
		void ClearRecent ()
		{
			Gtk.MessageDialog md = new Gtk.MessageDialog (null, 
					  0,
					  Gtk.MessageType.Warning, 
					  Gtk.ButtonsType.None,
					  "<b><big>" + Catalog.GetString ("Clear the Recent Documents list?") + "</big></b>");
			
			md.Title = Catalog.GetString ("Clear Recent Documents");
			md.Icon = DockServices.Drawing.LoadIcon ("docky", 22);
			md.SecondaryText = Catalog.GetString ("If you clear the Recent Documents list, you clear the following:\n" +
				"\u2022 All items from the Places \u2192 Recent Documents menu item.\n" +
				"\u2022 All items from the recent documents list in all applications.");
			md.Modal = false;
			
			md.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel);
			md.AddButton (Gtk.Stock.Clear, Gtk.ResponseType.Ok);
			md.DefaultResponse = Gtk.ResponseType.Ok;

			md.Response += (o, args) => {
				if (args.ResponseId != Gtk.ResponseType.Cancel)
					Gtk.RecentManager.Default.PurgeItems ();
				md.Destroy ();
			};
			
			md.Show ();
		}
Пример #59
0
        public override void Close()
        {
            Trace.Call();

            // show warning if there are open chats (besides protocol chat)
            var ownedChats = 0;
            foreach (var chatView in Frontend.MainWindow.ChatViewManager.Chats) {
                if (chatView.ProtocolManager == ProtocolManager) {
                    ownedChats++;
                }
            }
            if (ownedChats > 1) {
                Gtk.MessageDialog md = new Gtk.MessageDialog(
                    Frontend.MainWindow,
                    Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Warning,
                    Gtk.ButtonsType.YesNo,
                    _("Closing the protocol chat will also close all open chats connected to it!\n"+
                      "Are you sure you want to do this?"));
                int result = md.Run();
                md.Destroy();
                if ((Gtk.ResponseType) result != Gtk.ResponseType.Yes) {
                    return;
                }
            }

            ThreadPool.QueueUserWorkItem(delegate {
                try {
                    // no need to call base.Close() as CommandNetwork() will
                    // deal with it
                    Frontend.Session.CommandNetwork(
                        new CommandModel(
                            Frontend.FrontendManager,
                            ChatModel,
                            "close"
                        )
                    );
                } catch (Exception ex) {
                    Frontend.ShowException(ex);
                }
            });
        }
Пример #60
0
        private void _OnConnectButtonPressed()
        {
            if (_SelectedEngine == null || _SelectedEngine == String.Empty) {
                Gtk.MessageDialog md = new Gtk.MessageDialog(this,
                    Gtk.DialogFlags.Modal, Gtk.MessageType.Error,
                    Gtk.ButtonsType.Close, _("Please select an engine!"));
                md.Run();
                md.Destroy();
                // Re-run the Dialog
                Run();
                return;
            }

            if (_SelectedEngine == "<" + _("Local Engine") + ">") {
                Frontend.InitLocalEngine();
                Frontend.ConnectEngineToGUI();
                Destroy();
                return;
            }

            string engine = _SelectedEngine;
            try {
                _EngineManager.Connect(engine);
                var engineVersion = _EngineManager.EngineVersion;
                var frontendVersion = Frontend.Version;
                if ((engineVersion >= new Version("0.8") &&
                     engineVersion.Major != frontendVersion.Major) ||
                    (engineVersion < new Version("0.8") &&
                     (engineVersion.Major != frontendVersion.Major ||
                      engineVersion.Minor != frontendVersion.Minor))) {
                    throw new ApplicationException(String.Format(
                                _("Your frontend version ({0}) does not match the engine version ({1})!"),
                                Frontend.Version, _EngineManager.EngineVersion));
                }

                Frontend.Session = _EngineManager.Session;
                Frontend.UserConfig = _EngineManager.UserConfig;
                Frontend.EngineVersion = _EngineManager.EngineVersion;
                Frontend.ConnectEngineToGUI();
            } catch (Exception ex) {
            #if LOG4NET
                _Logger.Error(ex);
            #endif
                // clean-up
                try {
                    _EngineManager.Disconnect();
                } catch (Exception disEx) {
            #if LOG4NET
                    _Logger.Error(disEx);
            #endif
                }

                string error_msg = ex.Message + "\n";
                if (ex.InnerException != null) {
                    error_msg += " [" + ex.InnerException.Message + "]\n";
                }

                string msg;
                msg = _("An error occurred while connecting to the engine!") + "\n\n";
                msg += String.Format(_("Engine URL: {0}") + "\n",
                                     _EngineManager.EngineUrl);

                msg += String.Format(_("Error: {0}"), error_msg);

                Gtk.MessageDialog md = new Gtk.MessageDialog(this, Gtk.DialogFlags.Modal,
                    Gtk.MessageType.Error, Gtk.ButtonsType.Close, msg);
                md.Run();
                md.Destroy();

                // Re-run the Dialog
                Run();
            }
        }