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(); }
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(); }
// 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; }
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(); }