pascalabcnet/Libraries/WeifenLuoLinux/WinFormsUI/Docking/DefaultTheme.cs
Mikhalkovich Stanislav 2ca853af30 WeifenLuo
WeifenLuoLinux

перенесены в Libraries
2026-01-02 13:31:59 +03:00

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();
}
}
}
}
}