示例#1
0
        public override void Dispose()
        {
            content.ContentChanged -= new EventHandler(OnTextContentChanged);
            content.DirtyChanged   -= new EventHandler(OnTextDirtyChanged);
            IdeApp.Workbench.ActiveDocumentChanged -= new EventHandler(OnActiveDocumentChanged);
            content.Dispose();

            // Remove and destroy the contents of the Notebook, since the destroy event is
            // not propagated to pages in some gtk versions.

            foreach (Gtk.Widget cw in notebook.Children)
            {
                Gtk.Widget lw = notebook.GetTabLabel(cw);
                notebook.Remove(cw);
                cw.Destroy();
                if (lw != null)
                {
                    lw.Destroy();
                }
            }
            content = null;
            box     = null;

            base.Dispose();
        }
示例#2
0
        public PublishDialogWizzard()
        {
            project  = MainClass.Workspace.ActualProject;
            this.TransientFor = MainClass.MainWindow;
            this.Build();

            ciDeviceTesting = new DropDownButton.ComboItem(MainClass.Languages.Translate("device_testing"),0);
            ciDeviceDistribution = new DropDownButton.ComboItem(MainClass.Languages.Translate("market_distribution"),1);

            btnResetMatrix.Label = MainClass.Languages.Translate("reset_matrix");

            chbSignApp= new CheckButton( MainClass.Languages.Translate("sign_app"));
            chbSignApp.Active = MainClass.Workspace.SignApp;
            chbSignApp.Toggled += new EventHandler(OnChbSignAppToggled);
            chbSignApp.Sensitive = true;//MainClass.Settings.SignAllow;

            notebook1.ShowTabs = false;
            notebook1.ShowBorder = false;
            notebook1.Page = 0;

            Table tblHeader = new Table(1,4,false);

            ddbTypPublish = new DropDownRadioButton();
            ddbTypPublish.Changed+= delegate(object sender, DropDownButton.ChangedEventArgs e)
            {
                if(e.Item !=null){
                    int selTyp = (int)e.Item;
                    if(selTyp == 0){
                        lblRemote.Visible = true;
                        ddbTypRemote.Visible = true;
                        chbSignApp.Sensitive= false;
                    } else {
                        if(!MainClass.LicencesSystem.CheckFunction("marketdistribution",this)){
                            ddbTypPublish.SelectItem(publishItems,ciDeviceTesting);
                            return;
                        }

                        lblRemote.Visible = false;
                        ddbTypRemote.Visible = false;
                        chbSignApp.Sensitive= true;
                    }

                    MainClass.Workspace.ActualProject.TypPublish = selTyp;
                }
            };
            ddbTypPublish.WidthRequest = 175;
            ddbTypPublish.SetItemSet(publishItems);

            ddbTypRemote = new DropDownRadioButton();
            ddbTypRemote.Changed+= delegate(object sender, DropDownButton.ChangedEventArgs e)
            {
                if(e.Item !=null){
                    string ipAdress = (string)e.Item;
                    MainClass.Settings.RemoteIpAdress = ipAdress;
                }
            };

            ddbTypRemote.WidthRequest = 175;
            ddbTypRemote.SetItemSet(remoteItems);

            publishItems.Add(ciDeviceTesting);
            publishItems.Add(ciDeviceDistribution);

            ddbTypPublish.SelectItem(publishItems,ciDeviceTesting);
            /*if(MainClass.Workspace.ActualProject.TypPublish ==1)
                ddbTypPublish.SelectItem(publishItems,ciDeviceDistribution);
            else
                ddbTypPublish.SelectItem(publishItems,ciDeviceTesting);*/

            DropDownButton.ComboItem addRemote0 = new DropDownButton.ComboItem(MainClass.Languages.Translate("remote_none"),"0");
            remoteItems.Add(addRemote0);

            bool findSelect = false;
            List<string> listIp = Moscrif.IDE.Tool.Network.GetIpAdress();
            foreach (string ip in listIp){
                DropDownButton.ComboItem addIP = new DropDownButton.ComboItem(ip,ip);
                remoteItems.Add(addIP);
                /*if(ip== MainClass.Settings.RemoteIpAdress){
                    ddbTypRemote.SelectItem(remoteItems,addIP);
                    findSelect = true;
                }*/
            }
            if(!findSelect){
                ddbTypRemote.SelectItem(remoteItems,addRemote0);;
            }

            tblHeader.Attach(new Label("Publish: "),0,1,0,1,AttachOptions.Fill,AttachOptions.Fill,5,0);
            tblHeader.Attach(ddbTypPublish,1,2,0,1,AttachOptions.Fill,AttachOptions.Fill,0,0);

            tblHeader.Attach(lblRemote,2,3,0,1,AttachOptions.Fill,AttachOptions.Fill,5,0);
            tblHeader.Attach(ddbTypRemote,3,4,0,1,AttachOptions.Fill,AttachOptions.Fill,0,0);

            this.vbox2.PackStart(tblHeader,false,false,0);

            storeOutput = new ListStore (typeof (string), typeof (string), typeof (Gdk.Pixbuf),typeof (bool));

            nvOutput.Model = storeOutput;
            Gtk.CellRendererText collumnRenderer = new Gtk.CellRendererText();

            //nvOutput.AppendColumn ("", new Gtk.CellRendererPixbuf (), "pixbuf", 2);
            nvOutput.AppendColumn ("", collumnRenderer, "text", 0);
            nvOutput.AppendColumn ("", collumnRenderer, "text", 1);
            nvOutput.Columns[0].FixedWidth = 200;
            nvOutput.Columns[1].Expand = true;

            //nvOutput.Columns[0].SetCellDataFunc(collumnRenderer, new Gtk.TreeCellDataFunc(RenderOutput));
            //nvOutput.Columns[1].SetCellDataFunc(collumnRenderer, new Gtk.TreeCellDataFunc(RenderOutput));

            this.Title = MainClass.Languages.Translate("publish_title" , project.ProjectName);

            if(project.ProjectUserSetting.CombinePublish == null || project.ProjectUserSetting.CombinePublish.Count==0){
                project.GeneratePublishCombination();
            }

            if(project.DevicesSettings == null || project.DevicesSettings.Count == 0)
                project.GenerateDevices();

            foreach (Rule rl in MainClass.Settings.Platform.Rules){

                if( (rl.Tag == -1 ) && !MainClass.Settings.ShowUnsupportedDevices) continue;
                if( (rl.Tag == -2 ) && !MainClass.Settings.ShowDebugDevices) continue;

                Device dvc = project.DevicesSettings.Find(x => x.TargetPlatformId == rl.Id);
                if (dvc == null) {
                    Console.WriteLine("generate device -{0}",rl.Id);
                    dvc = new Device();
                    dvc.TargetPlatformId = rl.Id;
                    dvc.PublishPropertisMask = project.GeneratePublishPropertisMask(rl.Id);
                    project.DevicesSettings.Add(dvc);
                }
            }

            project.Save();
            notebook = new Notebook();
            GenerateNotebookPages();

            this.vbox2.PackStart(notebook,true,true,0);//PackEnd

            VBox vbox1 = new VBox();

            chbOpenOutputDirectory = new CheckButton( MainClass.Languages.Translate("open_open_directory_after_publish"));
            chbOpenOutputDirectory.Toggled += new EventHandler(OnChbOpenOutputDirectoryToggled);

            chbIncludeAllResolution = new CheckButton( MainClass.Languages.Translate("include_all_resolution"));
            chbIncludeAllResolution.Active = project.IncludeAllResolution;
            chbIncludeAllResolution.Sensitive = false;
            chbIncludeAllResolution.Toggled+= delegate {
                project.IncludeAllResolution =chbIncludeAllResolution.Active;
            };

            vbox1.PackStart(chbIncludeAllResolution,false,false,0);
            vbox3.PackEnd(chbOpenOutputDirectory,false,false,0);

            chbDebugLog = new Gtk.CheckButton(MainClass.Languages.Translate("debug_log_publish"));
            chbDebugLog.Active = MainClass.Settings.LogPublish;
            chbDebugLog.Toggled+= delegate {
                MainClass.Settings.LogPublish =  chbDebugLog.Active;
            };

            vbox1.PackEnd(chbDebugLog,false,false,0);

            this.vbox2.PackEnd(vbox1,false,false,0);

            VBox hbox = new VBox();
            hbox.PackStart(chbSignApp,false,false,0);

            this.vbox2.PackEnd(hbox,false,false,0);

            this.ShowAll();

            int cpage = project.ProjectUserSetting.PublishPage;

            notebook.SwitchPage += delegate(object o, SwitchPageArgs args) {
                project.ProjectUserSetting.PublishPage = notebook.CurrentPage;

                NotebookLabel nl = (NotebookLabel)notebook.GetTabLabel(notebook.CurrentPageWidget);
                chbIncludeAllResolution.Sensitive = false;

                if(nl.Tag == null) return;

                Device d = project.DevicesSettings.Find(x=>(int)x.Devicetype==(int)nl.Tag);
                if(d!=null){
                    if(d.Includes != null){
                        if(d.Includes.Skin!=null){
                            if(!String.IsNullOrEmpty(d.Includes.Skin.Name))
                                chbIncludeAllResolution.Sensitive = true;
                        }
                    }
                }
            };

            chbOpenOutputDirectory.Active = MainClass.Settings.OpenOutputAfterPublish;

            notebook.CurrentPage =cpage;
            btnNext.GrabFocus();
        }
示例#3
0
文件: MainView.cs 项目: hol353/ApsimX
 // Is there a better way?
 /// <summary>
 /// Helper function for dealing with clicks on the tab labels, or whatever
 /// widgets the tab label might control. Tests to see which tab the 
 /// indicated objects is on. This lets us identify the tabs associated
 /// with click events, for example.
 /// </summary>
 /// <param name="o">The widget that we are seaching for</param>
 /// <returns>Page number of the tab, or -1 if not found</returns>
 private int GetTabOfWidget(object o, ref Notebook notebook, ref string tabName)
 {
     tabName = null;
     Widget widg = o as Widget;
     if (widg == null)
         return -1;
     notebook = IsControlOnLeft(o) ? notebook1 : notebook2;
     for (int i = 0; i < notebook.NPages; i++)
     {
         // First check the tab labels
         Widget testParent = notebook.GetTabLabel(notebook.GetNthPage(i));
         if (testParent == widg || widg.IsAncestor(testParent))
         {
             tabName = notebook.GetTabLabelText(notebook.GetNthPage(i));
             return i;
         }
         // If not found, check the tab contents
         testParent = notebook.GetNthPage(i);
         if (testParent == widg || widg.IsAncestor(testParent))
         {
             tabName = notebook.GetTabLabelText(notebook.GetNthPage(i));
             return i;
         }
     }
     return -1;
 }
示例#4
0
        public PublishDialog()
        {
            project  = MainClass.Workspace.ActualProject;

            this.TransientFor = MainClass.MainWindow;
            this.Build();

            btnResetMatrix.Label = MainClass.Languages.Translate("reset_matrix");
            this.Title = MainClass.Languages.Translate("publish_title" , project.ProjectName);

            if(project.ProjectUserSetting.CombinePublish == null || project.ProjectUserSetting.CombinePublish.Count==0){
                project.GeneratePublishCombination();
            }

            if(project.DevicesSettings == null || project.DevicesSettings.Count == 0)
                project.GenerateDevices();

            foreach (Rule rl in MainClass.Settings.Platform.Rules){

                if( (rl.Tag == -1 ) && !MainClass.Settings.ShowUnsupportedDevices) continue;
                if( (rl.Tag == -2 ) && !MainClass.Settings.ShowDebugDevices) continue;

                Device dvc = project.DevicesSettings.Find(x => x.TargetPlatformId == rl.Id);
                if (dvc == null) {
                    Console.WriteLine("generate device -{0}",rl.Id);
                    dvc = new Device();
                    dvc.TargetPlatformId = rl.Id;
                    dvc.PublishPropertisMask = project.GeneratePublishPropertisMask(rl.Id);
                    project.DevicesSettings.Add(dvc);
                }
            }
            project.Save();
            notebook = new Notebook();
            GenerateNotebookPages();

            this.vbox2.PackStart(notebook,true,true,0);//PackEnd

            VBox vbox1 = new VBox();

            chbOpenOutputDirectory = new CheckButton( MainClass.Languages.Translate("open_open_directory_after_publish"));
            chbOpenOutputDirectory.Toggled += new EventHandler(OnChbOpenOutputDirectoryToggled);

            chbIncludeAllResolution = new CheckButton( MainClass.Languages.Translate("include_all_resolution"));
            chbIncludeAllResolution.Active = project.IncludeAllResolution;
            chbIncludeAllResolution.Sensitive = false;
            chbIncludeAllResolution.Toggled+= delegate {
                project.IncludeAllResolution =chbIncludeAllResolution.Active;
            };

            vbox1.PackStart(chbIncludeAllResolution,false,false,0);
            vbox1.PackEnd(chbOpenOutputDirectory,false,false,0);

            chbDebugLog = new Gtk.CheckButton(MainClass.Languages.Translate("debug_log_publish"));
            //MainClass.Settings.LogPublish =false;
            chbDebugLog.Active = MainClass.Settings.LogPublish;
            chbDebugLog.Toggled+= delegate {
                MainClass.Settings.LogPublish =  chbDebugLog.Active;
            };

            vbox1.PackEnd(chbDebugLog,false,false,0);

            this.vbox2.PackEnd(vbox1,false,false,0);
            //this.vbox2.PackEnd(chbOpenOutputDirectory,false,false,0);//

            chbSignApp= new CheckButton( MainClass.Languages.Translate("sign_app"));
            chbSignApp.Toggled += new EventHandler(OnChbSignAppToggled);
            chbSignApp.Sensitive = true;//MainClass.Settings.SignAllow;
            //this.vbox2.PackEnd(chbSignApp,false,false,0);//

            VBox hbox = new VBox();
            hbox.PackStart(chbSignApp,false,false,0);

            this.vbox2.PackEnd(hbox,false,false,0);

            this.ShowAll();

            int cpage = project.ProjectUserSetting.PublishPage;

            notebook.SwitchPage += delegate(object o, SwitchPageArgs args) {
                project.ProjectUserSetting.PublishPage = notebook.CurrentPage;

                NotebookLabel nl = (NotebookLabel)notebook.GetTabLabel(notebook.CurrentPageWidget);
                chbIncludeAllResolution.Sensitive = false;

                if(nl.Tag == null) return;

                Device d = project.DevicesSettings.Find(x=>(int)x.Devicetype==(int)nl.Tag);
                if(d!=null){
                    if(d.Includes != null){
                        if(d.Includes.Skin!=null){
                            if(!String.IsNullOrEmpty(d.Includes.Skin.Name))
                                chbIncludeAllResolution.Sensitive = true;
                        }
                    }
                }
            };

            chbOpenOutputDirectory.Active = MainClass.Settings.OpenOutputAfterPublish;
            chbSignApp.Active = MainClass.Workspace.SignApp;

            notebook.CurrentPage =cpage;
            buttonOk.GrabFocus();
        }