예제 #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();
        }
예제 #2
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();
        }