public DiabloTab(string keyName, string defaultAccount, string path) { this.exePath = path; this.Text = keyName; this.defaultAccount = defaultAccount; diabloPanel = new DiabloHostPanel(); diabloPanel.Width = Convert.ToInt32(800m * BlueVex2.Properties.Settings.Default.ResolutionScale); diabloPanel.Height = Convert.ToInt32(600m * BlueVex2.Properties.Settings.Default.ResolutionScale);; diabloPanel.Location = new Point(10, 10); this.Controls.Add(diabloPanel); Button LoadDiabloButton = new Button(); LoadDiabloButton.Text = "Load D2"; LoadDiabloButton.Location = new Point(Convert.ToInt32(800m * BlueVex2.Properties.Settings.Default.ResolutionScale + 20m), 10); LoadDiabloButton.Click += new EventHandler(LoadDiabloButton_Click); this.Controls.Add(LoadDiabloButton); // Crap Fett007 added to bring master variable foreach (string accountString in BlueVex2.Properties.Settings.Default.Accounts) { if (accountString.StartsWith(defaultAccount + ",")) { string[] parts = accountString.Split(','); master = parts[3]; } } }
public void Activate() { foreach (TabPage tab in ((TabControl)this.Parent).TabPages) { if (tab is DiabloTab) { // Look through the current panels to see if we have added it already. DiabloHostPanel existingPanel = null; foreach (DiabloHostPanel panel in this.flowPanel.Controls) { if (((DiabloTab)tab).DiabloWindow == panel.DiabloWindow) { existingPanel = panel; break; } } // If we have, activate it. if (existingPanel != null) { existingPanel.DiabloWindow.SetHostPanel(existingPanel); existingPanel.DiabloWindow.Activate(); } // If we havnt, Add it. else { if (((DiabloTab)tab).DiabloWindow != null) { existingPanel = new DiabloHostPanel(); existingPanel.Width = Convert.ToInt32(400m * BlueVex2.Properties.Settings.Default.ResolutionScale); existingPanel.Height = Convert.ToInt32(300m * BlueVex2.Properties.Settings.Default.ResolutionScale); existingPanel.Location = new Point(10, 10); this.flowPanel.Controls.Add(existingPanel); existingPanel.BindDiabloWindow(((DiabloTab)tab).DiabloWindow); existingPanel.DiabloWindow.SetHostPanel(existingPanel); existingPanel.DiabloWindow.Activate(); } } } } // Remove any inactive panels for (int i = this.flowPanel.Controls.Count; i > 0; i--) { DiabloHostPanel panel = this.flowPanel.Controls[i - 1] as DiabloHostPanel; if (panel != null) { if (panel.DiabloWindow == null || panel.DiabloWindow.Disposed) { this.flowPanel.Controls.Remove(panel); } } } }