Beispiel #1
0
        protected void OnBtnAddRulesClicked(object sender, System.EventArgs e)
        {
            ResolutionDialog ed = new ResolutionDialog(parentWindow);

            int result = ed.Run();

            if (result == (int)ResponseType.Ok)
            {
                Rule res = ed.Resolution;
                if (res != null)
                {
                    Rule cdFind = MainClass.Settings.Resolution.Rules.Find(x => x.Name.ToUpper() == res.Name.ToUpper());
                    if (cdFind != null)
                    {
                        MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("resolution_is_exist", cdFind.Name), "", Gtk.MessageType.Error, parentWindow);
                        md.ShowDialog();
                        ed.Destroy();
                        return;
                    }

                    maxCond++;
                    res.Id = maxCond;
                    resolStore.AppendValues(res.Id, res.Name, res.Specific, res);
                    MainClass.Settings.Resolution.Rules.Add(res);

                    if (ed.CreateFile)
                    {
                        try{
                            string newFile = System.IO.Path.Combine(MainClass.Paths.DisplayDir, res.Name + ".ini");
                            EmulatorDisplay.Create(newFile, res.Width, res.Height);
                        }catch (Exception ex) {
                            Tool.Logger.Error(ex.Message, null);
                            MessageDialogs ms = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, "Error", ex.Message, MessageType.Error, parentWindow);
                            ms.ShowDialog();
                            return;
                        }
                    }
                }
            }
            ed.Destroy();
        }
Beispiel #2
0
        protected virtual void OnBtnRemoveClicked(object sender, System.EventArgs e)
        {
            TreeSelection ts = tvFiles.Selection;

            TreeIter ti = new TreeIter();

            ts.GetSelected(out ti);

            TreePath[] tp = ts.GetSelectedRows();
            if (tp.Length < 1)
            {
                return;
            }

            EmulatorDisplay dd = (EmulatorDisplay)tvFiles.Model.GetValue(ti, 2);


            MessageDialogs md     = new MessageDialogs(MessageDialogs.DialogButtonType.YesNo, MainClass.Languages.Translate("question_delete_file", dd.FilePath), "", Gtk.MessageType.Question, parentWindow);
            int            result = md.ShowDialog();

            if (result != (int)Gtk.ResponseType.Yes)
            {
                return;
            }

            if (!System.IO.File.Exists(dd.FilePath))
            {
                return;
            }

            try {
                //fileListStore
                fileListStore.SetValue(ti, 2, null);
                fileListStore.Remove(ref ti);
                System.IO.File.Delete(dd.FilePath);
            } catch {
                return;
            }
        }
Beispiel #3
0
        protected virtual void OnBtnAddClicked(object sender, System.EventArgs e)
        {
            EntryDialog ed = new EntryDialog("", MainClass.Languages.Translate("new_resolution_name"), parentWindow);

            int result = ed.Run();

            if (result == (int)ResponseType.Ok)
            {
                if (!String.IsNullOrEmpty(ed.TextEntry))
                {
                    string nameFile = MainClass.Tools.RemoveDiacritics(ed.TextEntry);

                    string newFile = System.IO.Path.Combine(MainClass.Paths.DisplayDir, nameFile + ".ini");

                    /*if (File.Exists(newFile)) {
                     *      MessageDialogs ms = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, "Error", "File cannot is create becaus is exist!", MessageType.Error);
                     *      ms.ShowDialog();
                     *      return;
                     * }*/
                    try {
                        EmulatorDisplay dd = EmulatorDisplay.Create(newFile);

                        if (dd != null)
                        {
                            TreeIter ti = fileListStore.AppendValues(System.IO.Path.GetFileName(newFile), newFile, dd);
                            tvFiles.Selection.SelectIter(ti);
                        }

                        //File.Create(newFile);
                    } catch (Exception ex) {
                        MessageDialogs ms = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, "Error", ex.Message, MessageType.Error, parentWindow);
                        ms.ShowDialog();
                        return;
                    }
                }
            }
            ed.Destroy();
        }
Beispiel #4
0
        public void ShowWidget()
        {
            isChange = false;
            TreeSelection ts = tvFiles.Selection;

            TreePath[] tp = ts.GetSelectedRows();

            fileListStore.Clear();
            string[] listFi = Directory.GetFiles(MainClass.Paths.DisplayDir, "*.ini");
            foreach (string fi in listFi)
            {
                EmulatorDisplay dd = new EmulatorDisplay(fi);
                if (dd.Load())
                {
                    fileListStore.AppendValues(System.IO.Path.GetFileName(fi), fi, dd);
                }
            }

            resolStore.Clear();
            foreach (Rule rl in MainClass.Settings.Resolution.Rules)
            {
                resolStore.AppendValues(String.Format("{0} ({1}x{2})", rl.Name, rl.Width, rl.Height), rl.Id, rl.Name, rl.Specific, rl);
            }

            isChange = false;
            if (tp.Length < 1)
            {
                TreeIter ti = new TreeIter();
                if (fileListStore.GetIterFirst(out ti))
                {
                    ts.SelectIter(ti);
                }
            }
            else
            {
                ts.SelectPath(tp[0]);
            }
        }
Beispiel #5
0
        //table1
        public DevicesOptionsWidget(Gtk.Window parent)
        {
            parentWindow = parent;
            this.Build();
            //ComboBox cbResolution = new ComboBox();

            //table1.Attach(cbResolution,1,2,0,1);
            CellRendererText textRenderer = new CellRendererText();

            //cbResolution.PackStart(textRenderer, true);

            cbResolution.AddAttribute(textRenderer, "text", 0);

            cbResolution.Model = resolStore;

            tvFiles.AppendColumn(MainClass.Languages.Translate("file"), new Gtk.CellRendererText(), "text", 0);
            tvFiles.AppendColumn(MainClass.Languages.Translate("path"), new Gtk.CellRendererText(), "text", 1);

            string[] listFi = Directory.GetFiles(MainClass.Paths.DisplayDir, "*.ini");
            foreach (string fi in listFi)
            {
                EmulatorDisplay dd = new EmulatorDisplay(fi);
                if (dd.Load())
                {
                    fileListStore.AppendValues(System.IO.Path.GetFileName(fi), fi, dd);
                }
            }

            foreach (Rule rl in MainClass.Settings.Resolution.Rules)
            {
                resolStore.AppendValues(String.Format("{0} ({1}x{2})", rl.Name, rl.Width, rl.Height), rl.Id, rl.Name, rl.Specific, rl);
            }

            tvFiles.Model = fileListStore;

            tvFiles.Selection.Changed += delegate(object sender, EventArgs e)
            {
                if (isChange)
                {
                    Save(true);
                }

                selectedResolDisplay = GetSelectedDevicesDisplay();
                if (selectedResolDisplay == null)
                {
                    return;
                }

                sbHeight.Value = selectedResolDisplay.Height;
                sbWidth.Value  = selectedResolDisplay.Width;

                entTitle.Text    = selectedResolDisplay.Title;
                entAuthor.Text   = selectedResolDisplay.Author;
                entUrl.Text      = selectedResolDisplay.Url;
                chbTablet.Active = selectedResolDisplay.Tablet;

                Rule rlr = MainClass.Settings.Resolution.Rules.Find(x => x.Height == selectedResolDisplay.Height && x.Width == selectedResolDisplay.Width);

                if (rlr != null)
                {
                    TreeIter ti     = new TreeIter();
                    bool     isFind = false;
                    resolStore.Foreach((model, path, iterr) => {
                        Rule ruleIter = (Rule)resolStore.GetValue(iterr, 4);

                        if (ruleIter == rlr)
                        {
                            ti     = iterr;
                            isFind = true;
                            return(true);
                        }
                        return(false);
                    });
                    if (isFind)
                    {
                        cbResolution.SetActiveIter(ti);
                    }
                    else
                    {
                        cbResolution.Active = 0;
                    }
                }
                isChange = false;
            };
            cbResolution.Changed += delegate(object sender, EventArgs e) {
                TreeIter ti = new TreeIter();
                if (cbResolution.GetActiveIter(out ti))
                {
                    Rule ruleIter = (Rule)resolStore.GetValue(ti, 4);
                    sbHeight.Value = ruleIter.Height;
                    sbWidth.Value  = ruleIter.Width;
                }
            };
        }
Beispiel #6
0
        private void EditRule()
        {
            TreeSelection ts = tvResolution.Selection;

            TreeIter ti = new TreeIter();

            ts.GetSelected(out ti);

            TreePath[] tp = ts.GetSelectedRows();
            if (tp.Length < 1)
            {
                return;
            }

            Rule cd = (Rule)tvResolution.Model.GetValue(ti, 3);

            if (cd == null)
            {
                return;
            }

            if (cd.Id == -1)
            {
                MessageDialogs mdError = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("edit_resolution_system"), "", Gtk.MessageType.Error, parentWindow);
                mdError.ShowDialog();
                return;
            }

            int width  = cd.Width;
            int height = cd.Height;

            ResolutionDialog ed = new ResolutionDialog(cd, parentWindow);
            int result          = ed.Run();

            if (result == (int)ResponseType.Ok)
            {
                Rule res = ed.Resolution;
                if (res != null)
                {
                    Rule cdFind = MainClass.Settings.Resolution.Rules.Find(x => x.Id == res.Id);
                    if (cdFind == null)
                    {
                        MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("resolution_is_exist", cdFind.Name), "", Gtk.MessageType.Error, parentWindow);
                        md.ShowDialog();
                        ed.Destroy();
                        return;
                    }
                    cdFind = res;
                    resolStore.SetValues(ti, cdFind.Id, cdFind.Name, cdFind.Specific, cdFind);

                    try{
                        string[] listFi = Directory.GetFiles(MainClass.Paths.DisplayDir, "*.ini");

                        foreach (string fi in listFi)
                        {
                            EmulatorDisplay dd = new EmulatorDisplay(fi);
                            if (dd.Load())
                            {
                                if (dd.Height == height && dd.Width == width)
                                {
                                    dd.Height = res.Height;
                                    dd.Width  = res.Width;
                                    dd.Save();
                                }
                            }
                        }
                    }catch (Exception ex) {
                        Tool.Logger.Error(ex.Message, null);
                        MessageDialogs ms = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, "Error", ex.Message, MessageType.Error, parentWindow);
                        ms.ShowDialog();
                        return;
                    }
                }
            }
            ed.Destroy();
        }