mirror of
https://github.com/xenia-project/dockpanelsuite.git
synced 2026-01-31 01:25:23 +01:00
Merge pull request #183 from odalet/development_3.0
VS2012 Theme enhancement (in Demo project)
This commit is contained in:
@@ -89,6 +89,12 @@
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="VS2012ColorTable.cs" />
|
||||
<Compile Include="VS2012ToolStripExtender.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="VS2012ToolStripExtender.Designer.cs">
|
||||
<DependentUpon>VS2012ToolStripExtender.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="VS2012ToolStripRenderer.cs" />
|
||||
<EmbeddedResource Include="AboutDialog.resx">
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
12
DockSample/MainForm.Designer.cs
generated
12
DockSample/MainForm.Designer.cs
generated
@@ -100,9 +100,10 @@ namespace DockSample
|
||||
this.toolBarButtonLayoutByXml = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolBarButtonDockPanelSkinDemo = new System.Windows.Forms.ToolStripButton();
|
||||
this.dockPanel = new WeifenLuo.WinFormsUI.Docking.DockPanel();
|
||||
this.vS2003Theme1 = new WeifenLuo.WinFormsUI.Docking.VS2003Theme();
|
||||
this.vS2005Theme1 = new WeifenLuo.WinFormsUI.Docking.VS2005Theme();
|
||||
this.vS2003Theme1 = new WeifenLuo.WinFormsUI.Docking.VS2003Theme();
|
||||
this.vS2012LightTheme1 = new WeifenLuo.WinFormsUI.Docking.VS2012LightTheme();
|
||||
this.vS2012ToolStripExtender1 = new DockSample.VS2012ToolStripExtender(this.components);
|
||||
this.mainMenu.SuspendLayout();
|
||||
this.toolBar.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
@@ -411,7 +412,7 @@ namespace DockSample
|
||||
// menuItemNewWindow
|
||||
//
|
||||
this.menuItemNewWindow.Name = "menuItemNewWindow";
|
||||
this.menuItemNewWindow.Size = new System.Drawing.Size(152, 22);
|
||||
this.menuItemNewWindow.Size = new System.Drawing.Size(145, 22);
|
||||
this.menuItemNewWindow.Text = "&New Window";
|
||||
this.menuItemNewWindow.Click += new System.EventHandler(this.menuItemNewWindow_Click);
|
||||
//
|
||||
@@ -618,7 +619,11 @@ namespace DockSample
|
||||
dockPanelSkin1.DockPaneStripSkin = dockPaneStripSkin1;
|
||||
this.dockPanel.Skin = dockPanelSkin1;
|
||||
this.dockPanel.TabIndex = 0;
|
||||
this.dockPanel.Theme = this.vS2005Theme1;
|
||||
//
|
||||
// vS2012ToolStripExtender1
|
||||
//
|
||||
this.vS2012ToolStripExtender1.DefaultRenderer = null;
|
||||
this.vS2012ToolStripExtender1.VS2012Renderer = null;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
@@ -703,5 +708,6 @@ namespace DockSample
|
||||
private WeifenLuo.WinFormsUI.Docking.VS2012LightTheme vS2012LightTheme1;
|
||||
private WeifenLuo.WinFormsUI.Docking.VS2003Theme vS2003Theme1;
|
||||
private WeifenLuo.WinFormsUI.Docking.VS2005Theme vS2005Theme1;
|
||||
private VS2012ToolStripExtender vS2012ToolStripExtender1;
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,9 @@ namespace DockSample
|
||||
RightToLeftLayout = showRightToLeft.Checked;
|
||||
m_solutionExplorer.RightToLeftLayout = RightToLeftLayout;
|
||||
m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
|
||||
|
||||
vS2012ToolStripExtender1.DefaultRenderer = _system;
|
||||
vS2012ToolStripExtender1.VS2012Renderer = _custom;
|
||||
}
|
||||
|
||||
#region Methods
|
||||
@@ -156,17 +159,17 @@ namespace DockSample
|
||||
if (sender == menuItemSchemaVS2005)
|
||||
{
|
||||
dockPanel.Theme = vS2005Theme1;
|
||||
ToolStripManager.Renderer = _system;
|
||||
EnableVS2012Renderer(false);
|
||||
}
|
||||
else if (sender == menuItemSchemaVS2003)
|
||||
{
|
||||
dockPanel.Theme = vS2003Theme1;
|
||||
ToolStripManager.Renderer = _system;
|
||||
EnableVS2012Renderer(false);
|
||||
}
|
||||
else if (sender == menuItemSchemaVS2012Light)
|
||||
{
|
||||
dockPanel.Theme = vS2012LightTheme1;
|
||||
ToolStripManager.Renderer = _custom;
|
||||
EnableVS2012Renderer(true);
|
||||
}
|
||||
|
||||
menuItemSchemaVS2005.Checked = (sender == menuItemSchemaVS2005);
|
||||
@@ -174,6 +177,12 @@ namespace DockSample
|
||||
menuItemSchemaVS2012Light.Checked = (sender == menuItemSchemaVS2012Light);
|
||||
}
|
||||
|
||||
private void EnableVS2012Renderer(bool enable)
|
||||
{
|
||||
vS2012ToolStripExtender1.SetEnableVS2012Style(this.mainMenu, enable);
|
||||
vS2012ToolStripExtender1.SetEnableVS2012Style(this.toolBar, enable);
|
||||
}
|
||||
|
||||
private void SetDocumentStyle(object sender, System.EventArgs e)
|
||||
{
|
||||
DocumentStyle oldStyle = dockPanel.DocumentStyle;
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADY
|
||||
DAAAAk1TRnQBSQFMAgEBCQEAAVQBAAFUAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
DAAAAk1TRnQBSQFMAgEBCQEAAVwBAAFcAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
@@ -216,4 +216,7 @@
|
||||
<metadata name="vS2012LightTheme1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>674, 8</value>
|
||||
</metadata>
|
||||
<metadata name="vS2012ToolStripExtender1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>836, 8</value>
|
||||
</metadata>
|
||||
</root>
|
||||
36
DockSample/VS2012ToolStripExtender.Designer.cs
generated
Normal file
36
DockSample/VS2012ToolStripExtender.Designer.cs
generated
Normal file
@@ -0,0 +1,36 @@
|
||||
namespace DockSample
|
||||
{
|
||||
partial class VS2012ToolStripExtender
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
114
DockSample/VS2012ToolStripExtender.cs
Normal file
114
DockSample/VS2012ToolStripExtender.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DockSample
|
||||
{
|
||||
[ProvideProperty("EnableVS2012Style", typeof(ToolStrip))]
|
||||
public partial class VS2012ToolStripExtender : Component, IExtenderProvider
|
||||
{
|
||||
private class ToolStripProperties
|
||||
{
|
||||
private bool enabled = false;
|
||||
private readonly ToolStrip strip;
|
||||
private readonly Dictionary<ToolStripItem, string> menuText = new Dictionary<ToolStripItem, string>();
|
||||
|
||||
|
||||
public ToolStripProperties(ToolStrip toolstrip)
|
||||
{
|
||||
if (toolstrip == null) throw new ArgumentNullException("toolstrip");
|
||||
strip = toolstrip;
|
||||
|
||||
if (strip is MenuStrip)
|
||||
SaveMenuStripText();
|
||||
}
|
||||
|
||||
public bool EnableVS2012Style
|
||||
{
|
||||
get { return enabled; }
|
||||
set
|
||||
{
|
||||
enabled = value;
|
||||
UpdateMenuText(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveMenuStripText()
|
||||
{
|
||||
foreach (ToolStripItem item in strip.Items)
|
||||
menuText.Add(item, item.Text);
|
||||
}
|
||||
|
||||
public void UpdateMenuText(bool caps)
|
||||
{
|
||||
foreach (ToolStripItem item in menuText.Keys)
|
||||
{
|
||||
var text = menuText[item];
|
||||
item.Text = caps ? text.ToUpper() : text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private readonly Dictionary<ToolStrip, ToolStripProperties> strips = new Dictionary<ToolStrip, ToolStripProperties>();
|
||||
|
||||
public VS2012ToolStripExtender()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public VS2012ToolStripExtender(IContainer container)
|
||||
{
|
||||
container.Add(this);
|
||||
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
#region IExtenderProvider Members
|
||||
|
||||
public bool CanExtend(object extendee)
|
||||
{
|
||||
return extendee is ToolStrip;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public ToolStripRenderer DefaultRenderer { get; set; }
|
||||
|
||||
public ToolStripRenderer VS2012Renderer { get; set; }
|
||||
|
||||
[DefaultValue(false)]
|
||||
public bool GetEnableVS2012Style(ToolStrip strip)
|
||||
{
|
||||
if (strips.ContainsKey(strip))
|
||||
return strips[strip].EnableVS2012Style;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void SetEnableVS2012Style(ToolStrip strip, bool enable)
|
||||
{
|
||||
var apply = false;
|
||||
ToolStripProperties properties = null;
|
||||
|
||||
if (!strips.ContainsKey(strip))
|
||||
{
|
||||
properties = new ToolStripProperties(strip) { EnableVS2012Style = enable };
|
||||
strips.Add(strip, properties);
|
||||
apply = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
properties = strips[strip];
|
||||
apply = properties.EnableVS2012Style != enable;
|
||||
}
|
||||
|
||||
if (apply)
|
||||
{
|
||||
//ToolStripManager.Renderer = enable ? VS2012Renderer : DefaultRenderer;
|
||||
strip.Renderer = enable ? VS2012Renderer : DefaultRenderer;
|
||||
properties.EnableVS2012Style = enable;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user