Imports System.Drawing, System.Drawing.Drawing2D 'Theme Class CyberTheme Inherits Theme Sub New() MoveHeight = 24 BackColor = Color.FromArgb(34, 34, 34) SetColor("Back", 25, 25, 25) SetColor("Gradient1", 35, 35, 35) SetColor("Gradient2", 20, 20, 20) SetColor("Border1", 34, 34, 34) SetColor("Border2", 49, 49, 49) SetColor("Border3", Color.Black) SetColor("Line1", Color.Black) SetColor("Line2", Color.Black) SetColor("Hatch1", Color.Black) SetColor("Hatch2", 34, 34, 34) SetColor("Shade1", 70, Color.Black) SetColor("Shade2", Color.Transparent) SetColor("Text", Color.LightBlue) End Sub Private C1, C2, C3, C4, C5 As Color Private P1, P2, P3, P4, P5 As Pen Private B1 As HatchBrush Private B2 As SolidBrush Protected Overrides Sub ColorHook() C1 = GetColor("Back") C2 = GetColor("Gradient1") C3 = GetColor("Gradient2") C4 = GetColor("Shade1") C5 = GetColor("Shade2") P1 = New Pen(GetColor("Border1")) P2 = New Pen(GetColor("Line1")) P3 = New Pen(GetColor("Line2")) P4 = New Pen(GetColor("Border2")) P5 = New Pen(GetColor("Border3")) B1 = New HatchBrush(HatchStyle.DarkUpwardDiagonal, GetColor("Hatch1"), GetColor("Hatch2")) B2 = New SolidBrush(GetColor("Text")) BackColor = C1 End Sub Private RT1 As Rectangle Protected Overrides Sub PaintHook() G.Clear(C1) RT1 = New Rectangle(1, 1, Width - 2, 22) DrawGradient(C2, C3, RT1, 90.0F) DrawBorders(P1, RT1) G.DrawLine(P2, 0, 23, Width, 23) DrawBorders(P4, 1, 24, Width - 2, Height - 24) DrawText(B2, HorizontalAlignment.Center, 5, 0) DrawBorders(P5) End Sub End Class 'Button Class CyberButton Inherits ThemeControl Sub New() SetColor("BackColor", Color.FromArgb(40, 40, 40)) SetColor("TextColor", Color.LightBlue) Size = New Size(100, 30) End Sub Dim C1, T1 As Color Protected Overrides Sub ColorHook() C1 = GetColor("BackColor") T1 = GetColor("TextColor") End Sub Protected Overrides Sub PaintHook() G.Clear(C1) Select Case State Case 0 DrawGradient(Color.FromArgb(50, 50, 50), Color.FromArgb(42, 42, 42), ClientRectangle, 90S) Cursor = Cursors.Arrow Case 1 DrawGradient(Color.FromArgb(42, 42, 42), Color.FromArgb(38, 38, 38), ClientRectangle, 90S) Cursor = Cursors.Arrow Case 2 DrawGradient(Color.FromArgb(30, 30, 30), Color.FromArgb(20, 20, 20), ClientRectangle, 90S) Cursor = Cursors.Arrow End Select DrawBorders(New Pen(New SolidBrush(Color.FromArgb(20, 20, 20))), 1) DrawBorders(New Pen(New SolidBrush(Color.FromArgb(35, 35, 35)))) DrawCorners(Color.FromArgb(35, 35, 35)) DrawText(New SolidBrush(T1), HorizontalAlignment.Center, 0, 0) End Sub End Class 'Top Button Class CyberTopButton Inherits ThemeControl Sub New() SetColor("BackColor", Color.FromArgb(40, 40, 40)) SetColor("TextColor", Color.LightBlue) Size = New Size(35, 22) LockHeight = 22 LockWidth = 35 End Sub Dim C1, T1 As Color Protected Overrides Sub ColorHook() C1 = GetColor("BackColor") T1 = GetColor("TextColor") End Sub Protected Overrides Sub PaintHook() G.Clear(C1) Select Case State Case 0 DrawGradient(Color.FromArgb(38, 38, 38), Color.FromArgb(30, 30, 30), ClientRectangle, 90S) Cursor = Cursors.Arrow Case 1 DrawGradient(Color.FromArgb(50, 50, 50), Color.FromArgb(42, 42, 42), ClientRectangle, 90S) Cursor = Cursors.Hand Case 2 DrawGradient(Color.FromArgb(42, 42, 42), Color.FromArgb(50, 50, 50), ClientRectangle, 90S) Cursor = Cursors.Hand End Select DrawBorders(New Pen(New SolidBrush(Color.FromArgb(65, 65, 65))), New Rectangle(1, 0, Width - 2, Height)) DrawBorders(New Pen(New SolidBrush(Color.FromArgb(22, 22, 22)))) G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(22, 22, 22))), 2, Height - 1, Width - 3, Height - 1) G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(65, 65, 65))), 0, 1, Width - 1, 1) G.DrawLine(New Pen(New SolidBrush(Color.Black)), 0, 0, Width, 0) DrawText(New SolidBrush(T1), HorizontalAlignment.Center, 0, 0) End Sub End Class 'CheckBox Class CyberCheckBox Inherits ThemeControl Private _CheckedState As Boolean Public Property CheckedState() As Boolean Get Return _CheckedState End Get Set(ByVal v As Boolean) _CheckedState = v Invalidate() End Set End Property Sub New() Size = New Size(118, 16) MinimumSize = New Size(16, 16) MaximumSize = New Size(600, 16) CheckedState = False SetColor("CheckBorderOut", Color.FromArgb(25, 25, 25)) SetColor("CheckBorderIn", Color.FromArgb(59, 59, 59)) SetColor("TextColor", Color.LightBlue) SetColor("CheckBack1", Color.FromArgb(132, 192, 240)) SetColor("CheckBack2", Color.LightBlue) SetColor("CheckFore1", Color.LightBlue) SetColor("CheckFore2", Color.FromArgb(42, 242, 77)) SetColor("ColorUncheck", Color.FromArgb(35, 35, 35)) SetColor("BackColor", Color.FromArgb(25, 25, 25)) End Sub Dim C1, C2, C3, C4, C5, C6, P1, P2, B1 As Color Protected Overrides Sub ColorHook() C1 = GetColor("CheckBack1") C2 = GetColor("CheckBack2") C3 = GetColor("CheckFore1") C4 = GetColor("CheckFore2") C5 = GetColor("ColorUncheck") C6 = GetColor("BackColor") P1 = GetColor("CheckBorderOut") P2 = GetColor("CheckBorderIn") B1 = GetColor("TextColor") End Sub Protected Overrides Sub PaintHook() G.Clear(C6) Select Case CheckedState Case True DrawGradient(C1, C2, 3, 3, 9, 9, 90S) DrawGradient(C3, C4, 4, 4, 7, 7, 90S) Case False DrawGradient(C5, C5, 0, 0, 15, 15, 90S) End Select G.DrawRectangle(New Pen(New SolidBrush(P1)), 0, 0, 14, 14) G.DrawRectangle(New Pen(New SolidBrush(P2)), 1, 1, 12, 12) DrawText(New SolidBrush(B1), 17, 0) DrawCorners(C6, New Rectangle(0, 0, 13, 13)) End Sub Sub changeCheck() Handles Me.Click Select Case CheckedState Case True CheckedState = False Case False CheckedState = True End Select End Sub End Class 'ProgressBar Class CyberProgressBar Inherits Control #Region " Properties " Private _Maximum As Double = 100 Public Property Maximum() As Double Get Return _Maximum End Get Set(ByVal v As Double) _Maximum = v Progress = _Current / v * 100 Invalidate() End Set End Property Private _Current As Double Public Property Current() As Double Get Return _Current End Get Set(ByVal v As Double) _Current = v Progress = v / _Maximum * 100 Invalidate() End Set End Property Private _Progress As Integer Public Property Progress() As Double Get Return _Progress End Get Set(ByVal v As Double) If v < 0 Then v = 0 Else If v > 100 Then v = 100 _Progress = Convert.ToInt32(v) _Current = v * 0.01 * _Maximum If Width > 0 Then UpdateProgress() Invalidate() End Set End Property Dim C2 As Color = Color.FromArgb(0, 192, 192) 'Dark Color Public Property Color1() As Color Get Return C2 End Get Set(ByVal v As Color) C2 = v UpdateColors() Invalidate() End Set End Property Dim C3 As Color = Color.FromArgb(0, 238, 238) 'Light color Public Property Color2() As Color Get Return C3 End Get Set(ByVal v As Color) C3 = v UpdateColors() Invalidate() End Set End Property #End Region Protected Overrides Sub OnPaintBackground(ByVal pevent As PaintEventArgs) End Sub Dim G As Graphics, B As Bitmap, R1, R2 As Rectangle, X As ColorBlend Dim C1 As Color, P1, P2, P3 As Pen, B1, B2 As LinearGradientBrush, B3 As SolidBrush Sub New() C1 = Color.FromArgb(22, 22, 22) 'Background P1 = New Pen(Color.FromArgb(70, Color.White), 2) P2 = New Pen(C2) P3 = New Pen(Color.FromArgb(49, 49, 49)) 'Highlight B3 = New SolidBrush(Color.FromArgb(100, Color.White)) X = New ColorBlend(4) X.Colors = {C2, C3, C3, C2} X.Positions = {0.0F, 0.1F, 0.9F, 1.0F} R2 = New Rectangle(2, 2, 2, 2) B2 = New LinearGradientBrush(R2, Nothing, Nothing, 180.0F) B2.InterpolationColors = X End Sub Sub UpdateColors() P2.Color = C2 X.Colors = {C2, C3, C3, C2} B2.InterpolationColors = X End Sub Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs) R1 = New Rectangle(0, 1, Width, 4) B1 = New LinearGradientBrush(R1, Color.FromArgb(60, Color.Black), Color.Transparent, 90.0F) UpdateProgress() Invalidate() MyBase.OnSizeChanged(e) End Sub Sub UpdateProgress() If _Progress = 0 Then Return R2 = New Rectangle(2, 2, Convert.ToInt32((Width - 4) * (_Progress * 0.01)), Height - 4) B2 = New LinearGradientBrush(R2, Nothing, Nothing, 180.0F) B2.InterpolationColors = X End Sub Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) B = New Bitmap(Width, Height) G = Graphics.FromImage(B) G.Clear(C1) G.FillRectangle(B1, R1) If _Progress > 0 Then G.FillRectangle(B2, R2) G.FillRectangle(B3, 2, 3, R2.Width, 4) G.DrawRectangle(P1, 4, 4, R2.Width - 4, Height - 8) G.DrawRectangle(P2, 2, 2, R2.Width - 1, Height - 5) End If G.DrawRectangle(P3, 0, 0, Width - 1, Height - 1) e.Graphics.DrawImage(B, 0, 0) G.Dispose() B.Dispose() End Sub End Class 'Label Class CyberLabel Inherits ThemeControl Sub New() Size = New Size(73, 16) MinimumSize = New Size(16, 16) MaximumSize = New Size(600, 16) SetColor("TextColor", Color.LightBlue) SetColor("BackColor", Color.FromArgb(25, 25, 25)) End Sub Dim C6, B1 As Color Protected Overrides Sub ColorHook() C6 = GetColor("BackColor") B1 = GetColor("TextColor") End Sub Protected Overrides Sub PaintHook() G.Clear(C6) DrawText(New SolidBrush(B1), 0, 0) End Sub End Class 'TextBox Class CyberTextBox Inherits ThemeControl Dim WithEvents CyberTextBox As TextBox Public Sub New() CyberTextBox = New TextBox CyberTextBox.Parent = Me CyberTextBox.Size = New Size(New Point(10, 19)) CyberTextBox.ForeColor = Color.LightBlue CyberTextBox.BackColor = Color.FromArgb(30, 30, 30) CyberTextBox.BorderStyle = BorderStyle.FixedSingle End Sub Protected Overrides Sub ColorHook() End Sub Protected Overrides Sub PaintHook() End Sub Public Property Multilined() As Boolean Get Return CyberTextBox.Multiline End Get Set(ByVal value As Boolean) CyberTextBox.Multiline = value Invalidate() End Set End Property Sub s() Handles Me.Invalidated If CyberTextBox.Multiline = False Then Me.MinimumSize = New Size(100, 20) Me.MaximumSize = New Size(1000, 20) Else Me.MinimumSize = New Size(100, 20) Me.MaximumSize = New Size(1000, 20) End If End Sub Private Sub res() Handles Me.SizeChanged CyberTextBox.Width = Width CyberTextBox.Height = Height End Sub Private Sub tt() Handles Me.TextChanged CyberTextBox.Text = Me.Text End Sub Private Sub ttt() Handles CyberTextBox.TextChanged Me.Text = CyberTextBox.Text End Sub End Class 'Seperator Class CyberSeparator Inherits Control Private _Orientation As Orientation Public Property Orientation() As Orientation Get Return _Orientation End Get Set(ByVal v As Orientation) _Orientation = v UpdateOffset() Invalidate() End Set End Property Dim G As Graphics, B As Bitmap, I As Integer Dim C1 As Color, P1, P2 As Pen Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint, True) C1 = Color.FromArgb(25, 25, 25) P1 = New Pen(Color.LightBlue) P2 = New Pen(Color.FromArgb(22, 22, 22)) End Sub Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs) UpdateOffset() MyBase.OnSizeChanged(e) End Sub Sub UpdateOffset() I = Convert.ToInt32(If(_Orientation = 0, Height / 2 - 1, Width / 2 - 1)) End Sub Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) B = New Bitmap(Width, Height) G = Graphics.FromImage(B) G.Clear(C1) If _Orientation = 0 Then G.DrawLine(P1, 0, I, Width, I) G.DrawLine(P2, 0, I + 1, Width, I + 1) Else G.DrawLine(P2, I, 0, I, Height) G.DrawLine(P1, I + 1, 0, I + 1, Height) End If e.Graphics.DrawImage(B, 0, 0) G.Dispose() B.Dispose() End Sub Protected Overrides Sub OnPaintBackground(ByVal pevent As PaintEventArgs) End Sub End Class 'GroupBox Class CyberGroupBox Inherits Theme Private C1 As Color Private C2, C3 As Color Private P1 As Pen Private B1 As Brush Private B2 As Brush Private B5 As Brush Private HB1 As Brush Sub New() ControlMode = True Size = New Size(205, 95) End Sub Private _subtext As String Public Property TextSub() As String Get Return _subtext End Get Set(ByVal value As String) _subtext = value Invalidate() End Set End Property Protected Overrides Sub ColorHook() C1 = Color.FromArgb(25, 25, 25) C2 = Color.FromArgb(25, 25, 25) C3 = Color.FromArgb(0, 0, 0) P1 = Pens.Black B1 = New SolidBrush(Color.FromArgb(60, Color.White)) B2 = New SolidBrush(Color.White) B5 = New SolidBrush(Color.White) End Sub Protected Overrides Sub PaintHook() Dim hb1 As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Trellis, Color.FromArgb(15, 15, 15)) Dim hb2 As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Trellis, Color.FromArgb(35, 35, 35)) Dim hb3 As New Drawing2D.HatchBrush(Drawing2D.HatchStyle.Trellis, Color.FromArgb(0, 0, 0)) G.Clear(C1) G.FillRectangle(New SolidBrush(Color.Transparent), 0, 0, Width, Height) G.FillRectangle(New SolidBrush(Color.Transparent), 0, 0, Width, 15) G.DrawRectangle(P1, 0, 0, Width - 1, CInt(Height - 1)) G.FillRectangle(New SolidBrush(Color.FromArgb(80, 35, 35, 35)), 0, 0, Width, 20) G.FillRectangle(New SolidBrush(Color.FromArgb(20, 20, 20)), 0, 0, Width - 1, 20) G.DrawRectangle(P1, 0, 0, Width - 1, 20) G.DrawString(Text, Font, Brushes.LightBlue, New Point(5, 3)) Dim SubFont As Font = New Font(DefaultFont.FontFamily, Font.Size - 1) G.DrawString(_subtext, SubFont, New SolidBrush(Color.FromArgb(48, 48, 48)), New Point(6, 26)) End Sub End Class