From ba7218c4f89812348d9cb9ac5e811a0b647987a3 Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Mon, 25 Jul 2011 05:07:29 +0000 Subject: [PATCH] Register tab events. Hide debug panel when docked. git-svn-id: https://radegast.googlecode.com/svn/trunk@1005 f7a694da-4d33-11de-9ad6-1127a62b9fcd --- Radegast/GUI/Dialogs/MainForm.cs | 13 +--- Radegast/GUI/Rendering/Rendering.Designer.cs | 89 ++++++++++++++-------------- Radegast/GUI/Rendering/Rendering.cs | 45 ++++++++++++-- 3 files changed, 87 insertions(+), 60 deletions(-) diff --git a/Radegast/GUI/Dialogs/MainForm.cs b/Radegast/GUI/Dialogs/MainForm.cs index 29603a2..efb979f 100644 --- a/Radegast/GUI/Dialogs/MainForm.cs +++ b/Radegast/GUI/Dialogs/MainForm.cs @@ -1510,23 +1510,16 @@ namespace Radegast instance.TabConsole.AddTab("scene_window", "Scene Viewer", control); instance.TabConsole.Tabs["scene_window"].Floater = false; instance.TabConsole.Tabs["scene_window"].CloseOnDetachedClose = true; - - instance.TabConsole.Tabs["scene_window"].TabAttached += (xsender, xe) => - { - instance.GlobalSettings["scene_window_docked"] = true; - }; - - instance.TabConsole.Tabs["scene_window"].TabDetached += (xsender, xe) => - { - instance.GlobalSettings["scene_window_docked"] = false; - }; + control.RegisterTabEvents(); if (instance.GlobalSettings["scene_window_docked"]) { + control.pnlDebug.Visible = false; instance.TabConsole.Tabs["scene_window"].Select(); } else { + control.pnlDebug.Visible = true; instance.TabConsole.Tabs["scene_window"].Detach(instance); } } diff --git a/Radegast/GUI/Rendering/Rendering.Designer.cs b/Radegast/GUI/Rendering/Rendering.Designer.cs index c5d6aa2..bc3898a 100644 --- a/Radegast/GUI/Rendering/Rendering.Designer.cs +++ b/Radegast/GUI/Rendering/Rendering.Designer.cs @@ -59,7 +59,7 @@ namespace Radegast.Rendering private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - this.gbZoom = new System.Windows.Forms.GroupBox(); + this.pnlDebug = new System.Windows.Forms.GroupBox(); this.cbMisc = new System.Windows.Forms.CheckBox(); this.lblDrawDistance = new System.Windows.Forms.Label(); this.tbDrawDistance = new System.Windows.Forms.TrackBar(); @@ -91,49 +91,48 @@ namespace Radegast.Rendering this.cbAA = new System.Windows.Forms.CheckBox(); this.chkWireFrame = new System.Windows.Forms.CheckBox(); this.ctxMenu = new System.Windows.Forms.ContextMenuStrip(this.components); - this.gbZoom.SuspendLayout(); + this.pnlDebug.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbDrawDistance)).BeginInit(); this.SuspendLayout(); // - // gbZoom - // - this.gbZoom.Controls.Add(this.cbMisc); - this.gbZoom.Controls.Add(this.lblDrawDistance); - this.gbZoom.Controls.Add(this.tbDrawDistance); - this.gbZoom.Controls.Add(this.button_driver); - this.gbZoom.Controls.Add(this.textBox_driveramount); - this.gbZoom.Controls.Add(this.label6); - this.gbZoom.Controls.Add(this.comboBox_driver); - this.gbZoom.Controls.Add(this.button1); - this.gbZoom.Controls.Add(this.textBox_morphamount); - this.gbZoom.Controls.Add(this.label5); - this.gbZoom.Controls.Add(this.comboBox_morph); - this.gbZoom.Controls.Add(this.textBox_sz); - this.gbZoom.Controls.Add(this.textBox_sy); - this.gbZoom.Controls.Add(this.label4); - this.gbZoom.Controls.Add(this.textBox_sx); - this.gbZoom.Controls.Add(this.label3); - this.gbZoom.Controls.Add(this.label1); - this.gbZoom.Controls.Add(this.textBox_z); - this.gbZoom.Controls.Add(this.textBox_y); - this.gbZoom.Controls.Add(this.comboBox1); - this.gbZoom.Controls.Add(this.button_vparam); - this.gbZoom.Controls.Add(this.textBox_x); - this.gbZoom.Controls.Add(this.hsLOD); - this.gbZoom.Controls.Add(this.hsSpecular); - this.gbZoom.Controls.Add(this.hsDiffuse); - this.gbZoom.Controls.Add(this.hsAmbient); - this.gbZoom.Controls.Add(this.label2); - this.gbZoom.Controls.Add(this.btnResetView); - this.gbZoom.Controls.Add(this.cbAA); - this.gbZoom.Controls.Add(this.chkWireFrame); - this.gbZoom.Dock = System.Windows.Forms.DockStyle.Bottom; - this.gbZoom.Location = new System.Drawing.Point(0, 337); - this.gbZoom.Name = "gbZoom"; - this.gbZoom.Size = new System.Drawing.Size(779, 163); - this.gbZoom.TabIndex = 8; - this.gbZoom.TabStop = false; - this.gbZoom.Enter += new System.EventHandler(this.gbZoom_Enter); + // pnlDebug + // + this.pnlDebug.Controls.Add(this.cbMisc); + this.pnlDebug.Controls.Add(this.lblDrawDistance); + this.pnlDebug.Controls.Add(this.tbDrawDistance); + this.pnlDebug.Controls.Add(this.button_driver); + this.pnlDebug.Controls.Add(this.textBox_driveramount); + this.pnlDebug.Controls.Add(this.label6); + this.pnlDebug.Controls.Add(this.comboBox_driver); + this.pnlDebug.Controls.Add(this.button1); + this.pnlDebug.Controls.Add(this.textBox_morphamount); + this.pnlDebug.Controls.Add(this.label5); + this.pnlDebug.Controls.Add(this.comboBox_morph); + this.pnlDebug.Controls.Add(this.textBox_sz); + this.pnlDebug.Controls.Add(this.textBox_sy); + this.pnlDebug.Controls.Add(this.label4); + this.pnlDebug.Controls.Add(this.textBox_sx); + this.pnlDebug.Controls.Add(this.label3); + this.pnlDebug.Controls.Add(this.label1); + this.pnlDebug.Controls.Add(this.textBox_z); + this.pnlDebug.Controls.Add(this.textBox_y); + this.pnlDebug.Controls.Add(this.comboBox1); + this.pnlDebug.Controls.Add(this.button_vparam); + this.pnlDebug.Controls.Add(this.textBox_x); + this.pnlDebug.Controls.Add(this.hsLOD); + this.pnlDebug.Controls.Add(this.hsSpecular); + this.pnlDebug.Controls.Add(this.hsDiffuse); + this.pnlDebug.Controls.Add(this.hsAmbient); + this.pnlDebug.Controls.Add(this.label2); + this.pnlDebug.Controls.Add(this.btnResetView); + this.pnlDebug.Controls.Add(this.cbAA); + this.pnlDebug.Controls.Add(this.chkWireFrame); + this.pnlDebug.Dock = System.Windows.Forms.DockStyle.Bottom; + this.pnlDebug.Location = new System.Drawing.Point(0, 337); + this.pnlDebug.Name = "pnlDebug"; + this.pnlDebug.Size = new System.Drawing.Size(779, 163); + this.pnlDebug.TabIndex = 8; + this.pnlDebug.TabStop = false; // // cbMisc // @@ -472,12 +471,12 @@ namespace Radegast.Rendering // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.gbZoom); + this.Controls.Add(this.pnlDebug); this.Name = "SceneWindow"; this.Size = new System.Drawing.Size(779, 500); this.Load += new System.EventHandler(this.ControlLoaded); - this.gbZoom.ResumeLayout(false); - this.gbZoom.PerformLayout(); + this.pnlDebug.ResumeLayout(false); + this.pnlDebug.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.tbDrawDistance)).EndInit(); this.ResumeLayout(false); @@ -485,7 +484,7 @@ namespace Radegast.Rendering #endregion - public System.Windows.Forms.GroupBox gbZoom; + public System.Windows.Forms.GroupBox pnlDebug; public System.Windows.Forms.ContextMenuStrip ctxMenu; public System.Windows.Forms.CheckBox cbAA; public System.Windows.Forms.CheckBox chkWireFrame; diff --git a/Radegast/GUI/Rendering/Rendering.cs b/Radegast/GUI/Rendering/Rendering.cs index f545b95..e0a7176 100644 --- a/Radegast/GUI/Rendering/Rendering.cs +++ b/Radegast/GUI/Rendering/Rendering.cs @@ -50,7 +50,7 @@ using OpenMetaverse.StructuredData; namespace Radegast.Rendering { - public partial class SceneWindow : DettachableControl + public partial class SceneWindow : RadegastTabControl { #region Public fields /// @@ -153,14 +153,14 @@ namespace Radegast.Rendering #region Construction and disposal public SceneWindow(RadegastInstance instance) - : base() + : base(instance) { InitializeComponent(); Disposed += new EventHandler(frmPrimWorkshop_Disposed); this.Instance = instance; this.Client = instance.Client; - + UseMultiSampling = cbAA.Checked = instance.GlobalSettings["use_multi_sampling"]; cbAA.CheckedChanged += cbAA_CheckedChanged; @@ -255,6 +255,43 @@ namespace Radegast.Rendering } #endregion Construction and disposal + #region Tab Events + public void RegisterTabEvents() + { + this.RadegastTab.TabAttached += new EventHandler(RadegastTab_TabAttached); + this.RadegastTab.TabDetached += new EventHandler(RadegastTab_TabDetached); + this.RadegastTab.TabClosed += new EventHandler(RadegastTab_TabClosed); + } + + public void UnregisterTabEvents() + { + this.RadegastTab.TabAttached -= new EventHandler(RadegastTab_TabAttached); + this.RadegastTab.TabDetached -= new EventHandler(RadegastTab_TabDetached); + this.RadegastTab.TabClosed -= new EventHandler(RadegastTab_TabClosed); + } + + void RadegastTab_TabDetached(object sender, EventArgs e) + { + instance.GlobalSettings["scene_window_docked"] = false; + pnlDebug.Visible = true; + } + + void RadegastTab_TabAttached(object sender, EventArgs e) + { + instance.GlobalSettings["scene_window_docked"] = true; + pnlDebug.Visible = false; + } + + void RadegastTab_TabClosed(object sender, EventArgs e) + { + if (this.RadegastTab != null) + { + UnregisterTabEvents(); + } + } + + #endregion Tab Events + #region Network messaage handlers void Terrain_LandPatchReceived(object sender, LandPatchReceivedEventArgs e) { @@ -2878,7 +2915,5 @@ namespace Radegast.Rendering miscEnabled = cbMisc.Checked; AvatarRenderingEnabled = miscEnabled; } - - } } -- 2.11.0