17 using System.Windows.Forms;
19 namespace sage.ew.formul.ButtonTittle.Themes
21 internal class Aero : ThemeBase
23 private Size maxFrameBorder = Size.Empty;
24 private Size minFrameBorder = Size.Empty;
26 public Aero(Form form)
31 public override Color BackColor
33 get {
return Color.Transparent; }
36 public override Size ControlBoxSize
40 if (base.controlBoxSize == Size.Empty)
46 base.controlBoxSize =
new Size(SystemButtonSize.Width, SystemButtonSize.Height);
50 base.controlBoxSize =
new Size(1, 0);
55 if (!form.MaximizeBox && !form.MinimizeBox && form.ControlBox)
59 base.controlBoxSize =
new Size((2*SystemButtonSize.Width) + 7, SystemButtonSize.Height);
63 base.controlBoxSize =
new Size((1*SystemButtonSize.Width) + 25, SystemButtonSize.Height);
69 index = (form.ControlBox) ? 3 : 0;
70 base.controlBoxSize =
new Size(index*SystemButtonSize.Width + 10, SystemButtonSize.Height);
74 return base.controlBoxSize;
78 public override Point ButtonOffset
82 if (base.buttonOffset == Point.Empty)
86 base.buttonOffset =
new Point(0, 0);
90 base.buttonOffset =
new Point(0, -2);
93 return base.buttonOffset;
97 public override Size FrameBorder
101 if (form.WindowState == FormWindowState.Maximized)
103 if (maxFrameBorder == Size.Empty)
105 switch (form.FormBorderStyle)
107 case FormBorderStyle.FixedToolWindow:
108 maxFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width - 8, -1);
110 case FormBorderStyle.SizableToolWindow:
111 maxFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width - 3, 4);
113 case FormBorderStyle.Sizable:
114 maxFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width + 2, 7);
117 maxFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width - 3, 2);
121 return maxFrameBorder;
125 if (minFrameBorder == Size.Empty)
127 switch (form.FormBorderStyle)
129 case FormBorderStyle.FixedToolWindow:
130 minFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width - 8, -1);
132 case FormBorderStyle.SizableToolWindow:
133 minFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width - 3, 4);
135 case FormBorderStyle.Sizable:
136 minFrameBorder =
new Size(SystemInformation.FrameBorderSize.Width - 3, 1);
138 case FormBorderStyle.Fixed3D:
139 minFrameBorder =
new Size(SystemInformation.Border3DSize.Width, -4);
141 case FormBorderStyle.FixedSingle:
142 minFrameBorder =
new Size(SystemInformation.Border3DSize.Width - 2, -4);
145 minFrameBorder =
new Size(SystemInformation.Border3DSize.Width - 1, -4);
149 return minFrameBorder;
154 public override Size SystemButtonSize
158 if (base.systemButtonSize == Size.Empty)
162 Size size = SystemInformation.SmallCaptionButtonSize;
165 base.systemButtonSize = size;
169 Size size = SystemInformation.CaptionButtonSize;
172 base.systemButtonSize = size;
175 return base.systemButtonSize;