big transformation , using DockPanels now
it feels good to me! -Thoys git-svn-id: https://lsleditor.svn.sourceforge.net/svnroot/lsleditor@26 3f4676ac-adda-40fd-8265-58d1435b1672
This commit is contained in:
parent
75c722f354
commit
573823c181
92 changed files with 16899 additions and 760 deletions
142
trunk/Docking/DockAreasEditor.cs
Normal file
142
trunk/Docking/DockAreasEditor.cs
Normal file
|
@ -0,0 +1,142 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Design;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.Design;
|
||||
|
||||
namespace LSLEditor.Docking
|
||||
{
|
||||
internal class DockAreasEditor : UITypeEditor
|
||||
{
|
||||
private class DockAreasEditorControl : System.Windows.Forms.UserControl
|
||||
{
|
||||
private CheckBox checkBoxFloat;
|
||||
private CheckBox checkBoxDockLeft;
|
||||
private CheckBox checkBoxDockRight;
|
||||
private CheckBox checkBoxDockTop;
|
||||
private CheckBox checkBoxDockBottom;
|
||||
private CheckBox checkBoxDockFill;
|
||||
private DockAreas m_oldDockAreas;
|
||||
|
||||
public DockAreas DockAreas
|
||||
{
|
||||
get
|
||||
{
|
||||
DockAreas dockAreas = 0;
|
||||
if (checkBoxFloat.Checked)
|
||||
dockAreas |= DockAreas.Float;
|
||||
if (checkBoxDockLeft.Checked)
|
||||
dockAreas |= DockAreas.DockLeft;
|
||||
if (checkBoxDockRight.Checked)
|
||||
dockAreas |= DockAreas.DockRight;
|
||||
if (checkBoxDockTop.Checked)
|
||||
dockAreas |= DockAreas.DockTop;
|
||||
if (checkBoxDockBottom.Checked)
|
||||
dockAreas |= DockAreas.DockBottom;
|
||||
if (checkBoxDockFill.Checked)
|
||||
dockAreas |= DockAreas.Document;
|
||||
|
||||
if (dockAreas == 0)
|
||||
return m_oldDockAreas;
|
||||
else
|
||||
return dockAreas;
|
||||
}
|
||||
}
|
||||
|
||||
public DockAreasEditorControl()
|
||||
{
|
||||
checkBoxFloat = new CheckBox();
|
||||
checkBoxDockLeft = new CheckBox();
|
||||
checkBoxDockRight = new CheckBox();
|
||||
checkBoxDockTop = new CheckBox();
|
||||
checkBoxDockBottom = new CheckBox();
|
||||
checkBoxDockFill = new CheckBox();
|
||||
|
||||
SuspendLayout();
|
||||
|
||||
checkBoxFloat.Appearance = Appearance.Button;
|
||||
checkBoxFloat.Dock = DockStyle.Top;
|
||||
checkBoxFloat.Height = 24;
|
||||
checkBoxFloat.Text = Strings.DockAreaEditor_FloatCheckBoxText;
|
||||
checkBoxFloat.TextAlign = ContentAlignment.MiddleCenter;
|
||||
checkBoxFloat.FlatStyle = FlatStyle.System;
|
||||
|
||||
checkBoxDockLeft.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
checkBoxDockLeft.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
checkBoxDockLeft.Width = 24;
|
||||
checkBoxDockLeft.FlatStyle = FlatStyle.System;
|
||||
|
||||
checkBoxDockRight.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
checkBoxDockRight.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
checkBoxDockRight.Width = 24;
|
||||
checkBoxDockRight.FlatStyle = FlatStyle.System;
|
||||
|
||||
checkBoxDockTop.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
checkBoxDockTop.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
checkBoxDockTop.Height = 24;
|
||||
checkBoxDockTop.FlatStyle = FlatStyle.System;
|
||||
|
||||
checkBoxDockBottom.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
checkBoxDockBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
checkBoxDockBottom.Height = 24;
|
||||
checkBoxDockBottom.FlatStyle = FlatStyle.System;
|
||||
|
||||
checkBoxDockFill.Appearance = System.Windows.Forms.Appearance.Button;
|
||||
checkBoxDockFill.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
checkBoxDockFill.FlatStyle = FlatStyle.System;
|
||||
|
||||
this.Controls.AddRange(new Control[] {
|
||||
checkBoxDockFill,
|
||||
checkBoxDockBottom,
|
||||
checkBoxDockTop,
|
||||
checkBoxDockRight,
|
||||
checkBoxDockLeft,
|
||||
checkBoxFloat});
|
||||
|
||||
Size = new System.Drawing.Size(160, 144);
|
||||
BackColor = SystemColors.Control;
|
||||
ResumeLayout();
|
||||
}
|
||||
|
||||
public void SetStates(DockAreas dockAreas)
|
||||
{
|
||||
m_oldDockAreas = dockAreas;
|
||||
if ((dockAreas & DockAreas.DockLeft) != 0)
|
||||
checkBoxDockLeft.Checked = true;
|
||||
if ((dockAreas & DockAreas.DockRight) != 0)
|
||||
checkBoxDockRight.Checked = true;
|
||||
if ((dockAreas & DockAreas.DockTop) != 0)
|
||||
checkBoxDockTop.Checked = true;
|
||||
if ((dockAreas & DockAreas.DockTop) != 0)
|
||||
checkBoxDockTop.Checked = true;
|
||||
if ((dockAreas & DockAreas.DockBottom) != 0)
|
||||
checkBoxDockBottom.Checked = true;
|
||||
if ((dockAreas & DockAreas.Document) != 0)
|
||||
checkBoxDockFill.Checked = true;
|
||||
if ((dockAreas & DockAreas.Float) != 0)
|
||||
checkBoxFloat.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private DockAreasEditor.DockAreasEditorControl m_ui = null;
|
||||
|
||||
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
|
||||
{
|
||||
return UITypeEditorEditStyle.DropDown;
|
||||
}
|
||||
|
||||
public override object EditValue(ITypeDescriptorContext context, IServiceProvider sp, object value)
|
||||
{
|
||||
if (m_ui == null)
|
||||
m_ui = new DockAreasEditor.DockAreasEditorControl();
|
||||
|
||||
m_ui.SetStates((DockAreas)value);
|
||||
|
||||
IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)sp.GetService(typeof(IWindowsFormsEditorService));
|
||||
edSvc.DropDownControl(m_ui);
|
||||
|
||||
return m_ui.DockAreas;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue