261 lines
9.3 KiB
C#
261 lines
9.3 KiB
C#
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using System.Windows.Forms;
|
|
|
|
namespace WeifenLuo.WinFormsUI.Docking
|
|
{
|
|
internal class DefaultTheme : ThemeBase
|
|
{
|
|
internal DefaultTheme()
|
|
{
|
|
Extender.AutoHideStripFactory = new DefaultAutoHideStripFactory();
|
|
Extender.AutoHideWindowFactory = new DefaultAutoHideWindowFactory();
|
|
Extender.WindowSplitterControlFactory = new DefaultWindowSplitterControlFactory();
|
|
Extender.DockWindowFactory = new DefaultDockWindowFactory();
|
|
Extender.DockPaneSplitterControlFactory = new DefaultDockPaneSplitterControlFactory();
|
|
Extender.DockPaneCaptionFactory = new DefaultDockPaneCaptionFactory();
|
|
Extender.DockPaneStripFactory = new DefaultDockPaneStripFactory();
|
|
Extender.DockIndicatorFactory = new DefaultDockIndicatorFactory();
|
|
Extender.DockOutlineFactory = new DefaultDockOutlineFactory();
|
|
Extender.PaneIndicatorFactory = new DefaultPaneIndicatorFactory();
|
|
Extender.PanelIndicatorFactory = new DefaultPanelIndicatorFactory();
|
|
}
|
|
|
|
private class DefaultAutoHideStripFactory : DockPanelExtender.IAutoHideStripFactory
|
|
{
|
|
public AutoHideStripBase CreateAutoHideStrip(DockPanel panel)
|
|
{
|
|
return new DefaultAutoHideStripBase(panel);
|
|
}
|
|
|
|
internal class DefaultAutoHideStripBase : AutoHideStripBase
|
|
{
|
|
public DefaultAutoHideStripBase(DockPanel panel)
|
|
: base(panel)
|
|
{
|
|
}
|
|
|
|
protected override Rectangle GetTabBounds(Tab tab)
|
|
{
|
|
return Rectangle.Empty;
|
|
}
|
|
|
|
protected override IDockContent HitTest(Point point)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
protected internal override int MeasureHeight()
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private class DefaultAutoHideWindowFactory : DockPanelExtender.IAutoHideWindowFactory
|
|
{
|
|
public DockPanel.AutoHideWindowControl CreateAutoHideWindow(DockPanel panel)
|
|
{
|
|
return new DefaultAutoHideWindowControl(panel);
|
|
}
|
|
|
|
private class DefaultAutoHideWindowControl : DockPanel.AutoHideWindowControl
|
|
{
|
|
public DefaultAutoHideWindowControl(DockPanel dockPanel) : base(dockPanel)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
private class DefaultWindowSplitterControlFactory : DockPanelExtender.IWindowSplitterControlFactory
|
|
{
|
|
public SplitterBase CreateSplitterControl(ISplitterHost host)
|
|
{
|
|
return new SplitterBase();
|
|
}
|
|
}
|
|
|
|
private class DefaultDockWindowFactory : DockPanelExtender.IDockWindowFactory
|
|
{
|
|
public DockWindow CreateDockWindow(DockPanel dockPanel, DockState dockState)
|
|
{
|
|
return new DockWindow(dockPanel, dockState);
|
|
}
|
|
}
|
|
|
|
private class DefaultDockPaneSplitterControlFactory : DockPanelExtender.IDockPaneSplitterControlFactory
|
|
{
|
|
public DockPane.SplitterControlBase CreateSplitterControl(DockPane pane)
|
|
{
|
|
return new DockPane.SplitterControlBase(pane);
|
|
}
|
|
}
|
|
|
|
private class DefaultDockPaneCaptionFactory : DockPanelExtender.IDockPaneCaptionFactory
|
|
{
|
|
public DockPaneCaptionBase CreateDockPaneCaption(DockPane pane)
|
|
{
|
|
return new DefaultDockPaneCaption(pane);
|
|
}
|
|
|
|
private class DefaultDockPaneCaption : DockPaneCaptionBase
|
|
{
|
|
public DefaultDockPaneCaption(DockPane pane) : base(pane)
|
|
{
|
|
}
|
|
|
|
protected internal override int MeasureHeight()
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
private class DefaultDockPaneStripFactory : DockPanelExtender.IDockPaneStripFactory
|
|
{
|
|
public DockPaneStripBase CreateDockPaneStrip(DockPane pane)
|
|
{
|
|
return new DefaultDockPaneStrip(pane);
|
|
}
|
|
|
|
private class DefaultDockPaneStrip : DockPaneStripBase
|
|
{
|
|
public DefaultDockPaneStrip(DockPane pane) : base(pane)
|
|
{
|
|
}
|
|
|
|
public override GraphicsPath GetOutline(int index)
|
|
{
|
|
return new GraphicsPath();
|
|
}
|
|
|
|
protected override Rectangle GetTabBounds(Tab tab)
|
|
{
|
|
return Rectangle.Empty;
|
|
}
|
|
|
|
protected internal override void EnsureTabVisible(IDockContent content)
|
|
{
|
|
}
|
|
|
|
protected internal override int HitTest(Point point)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
protected internal override int MeasureHeight()
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
private class DefaultDockIndicatorFactory : DockPanelExtender.IDockIndicatorFactory
|
|
{
|
|
public DockPanel.DockDragHandler.DockIndicator CreateDockIndicator(DockPanel.DockDragHandler dockDragHandler)
|
|
{
|
|
return new DockPanel.DockDragHandler.DockIndicator(dockDragHandler);
|
|
}
|
|
}
|
|
|
|
private class DefaultDockOutlineFactory : DockPanelExtender.IDockOutlineFactory
|
|
{
|
|
public DockOutlineBase CreateDockOutline()
|
|
{
|
|
return new DefaultDockOutline();
|
|
}
|
|
|
|
private class DefaultDockOutline : DockOutlineBase
|
|
{
|
|
protected override void OnClose()
|
|
{
|
|
}
|
|
|
|
protected override void OnShow()
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
private class DefaultPaneIndicatorFactory : DockPanelExtender.IPaneIndicatorFactory
|
|
{
|
|
public DockPanel.IPaneIndicator CreatePaneIndicator(ThemeBase theme)
|
|
{
|
|
return new DefaultPaneIndicator(theme);
|
|
}
|
|
|
|
private class DefaultPaneIndicator : DockPanel.IPaneIndicator
|
|
{
|
|
private ThemeBase theme;
|
|
|
|
public DefaultPaneIndicator(ThemeBase theme)
|
|
{
|
|
this.theme = theme;
|
|
}
|
|
|
|
public Point Location { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
public bool Visible { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
|
|
public int Left => throw new System.NotImplementedException();
|
|
|
|
public int Top => throw new System.NotImplementedException();
|
|
|
|
public int Right => throw new System.NotImplementedException();
|
|
|
|
public int Bottom => throw new System.NotImplementedException();
|
|
|
|
public Rectangle ClientRectangle => throw new System.NotImplementedException();
|
|
|
|
public int Width => throw new System.NotImplementedException();
|
|
|
|
public int Height => throw new System.NotImplementedException();
|
|
|
|
public GraphicsPath DisplayingGraphicsPath => throw new System.NotImplementedException();
|
|
|
|
public DockStyle Status { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
|
|
public DockStyle HitTest(Point pt)
|
|
{
|
|
throw new System.NotImplementedException();
|
|
}
|
|
}
|
|
}
|
|
|
|
private class DefaultPanelIndicatorFactory : DockPanelExtender.IPanelIndicatorFactory
|
|
{
|
|
public DockPanel.IPanelIndicator CreatePanelIndicator(DockStyle style, ThemeBase theme)
|
|
{
|
|
return new DefaultPanelIndicator(style, theme);
|
|
}
|
|
|
|
private class DefaultPanelIndicator : DockPanel.IPanelIndicator
|
|
{
|
|
private DockStyle style;
|
|
private ThemeBase theme;
|
|
|
|
public DefaultPanelIndicator(DockStyle style, ThemeBase theme)
|
|
{
|
|
this.style = style;
|
|
this.theme = theme;
|
|
}
|
|
|
|
public Point Location { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
public bool Visible { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
|
|
public Rectangle Bounds => throw new System.NotImplementedException();
|
|
|
|
public int Width => throw new System.NotImplementedException();
|
|
|
|
public int Height => throw new System.NotImplementedException();
|
|
|
|
public DockStyle Status { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
|
|
public DockStyle HitTest(Point pt)
|
|
{
|
|
throw new System.NotImplementedException();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |