Imports System.Drawing.Drawing2D 'Creator: Aeonhack 'Date: 8/8/2010 'Site: www.elitevs.net 'Version: 1.0 'This is a modified version of the "FutureTheme". Class BullionTheme Inherits Control Protected Overrides Sub OnHandleCreated(ByVal e As EventArgs) Dock = DockStyle.Fill If TypeOf Parent Is Form Then With DirectCast(Parent, Form) .FormBorderStyle = 0 .BackColor = C1 .ForeColor = Color.FromArgb(170, 170, 170) End With End If MyBase.OnHandleCreated(e) End Sub Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs) If New Rectangle(Parent.Location.X, Parent.Location.Y, Width, 22).IntersectsWith(New Rectangle(MousePosition.X, MousePosition.Y, 1, 1)) Then Capture = False Dim M As Message = Message.Create(Parent.Handle, 161, New IntPtr(2), IntPtr.Zero) DefWndProc(M) End If MyBase.OnMouseDown(e) End Sub Dim G As Graphics, B As Bitmap, R1, R2 As Rectangle Dim C1, C2, C3 As Color, P1, P2, P3, P4 As Pen, B1 As SolidBrush, B2, B3 As LinearGradientBrush Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint, True) C1 = Color.FromArgb(248, 248, 248) 'Background C2 = Color.FromArgb(255, 255, 255) 'Highlight C3 = Color.FromArgb(235, 235, 235) 'Shadow P1 = New Pen(Color.FromArgb(215, 215, 215)) 'Border P4 = New Pen(Color.FromArgb(230, 230, 230)) 'Diagnol Lines P2 = New Pen(C1) P3 = New Pen(C2) B1 = New SolidBrush(Color.FromArgb(170, 170, 170)) Font = New Font("Verdana", 7.0F) End Sub Protected Overrides Sub OnSizeChanged(ByVal e As EventArgs) If Height > 0 Then R1 = New Rectangle(0, 2, Width, 18) R2 = New Rectangle(0, 21, Width, 10) B2 = New LinearGradientBrush(R1, C1, C3, 90.0F) B3 = New LinearGradientBrush(R2, Color.FromArgb(18, 0, 0, 0), Color.Transparent, 90.0F) Invalidate() End If MyBase.OnSizeChanged(e) End Sub Protected Overrides Sub OnPaintBackground(ByVal pevent As PaintEventArgs) End Sub Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) B = New Bitmap(Width, Height) G = Graphics.FromImage(B) G.Clear(C1) For I As Integer = 0 To Width + 17 Step 4 G.DrawLine(P4, I, 21, I - 17, 37) G.DrawLine(P4, I - 1, 21, I - 16, 37) Next G.FillRectangle(B3, R2) G.FillRectangle(B2, R1) G.DrawString(Text, Font, B1, 5, 5) G.DrawRectangle(P2, 1, 1, Width - 3, 19) G.DrawRectangle(P3, 1, 39, Width - 3, Height - 41) G.DrawRectangle(P1, 0, 0, Width - 1, Height - 1) G.DrawLine(P1, 0, 21, Width, 21) G.DrawLine(P1, 0, 38, Width, 38) e.Graphics.DrawImage(B, 0, 0) G.Dispose() B.Dispose() End Sub End Class Class BullionButton Inherits Control Private _Image As Image, ImageSet As Boolean Public Property Image() As Image Get Return _Image End Get Set(ByVal v As Image) _Image = v ImageSet = v IsNot Nothing End Set End Property Dim B As Bitmap, G As Graphics, R1 As Rectangle Dim C1, C2, C3, C4 As Color, P1, P2, P3, P4 As Pen, B1, B2, B5 As Brush, B3, B4 As LinearGradientBrush Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint, True) C1 = Color.FromArgb(244, 244, 244) 'Background C2 = Color.FromArgb(220, 220, 220) 'Highlight C3 = Color.FromArgb(248, 248, 248) 'Lesser Highlight C4 = Color.FromArgb(24, Color.Black) P1 = New Pen(Color.FromArgb(255, 255, 255)) 'Shadow P2 = New Pen(Color.FromArgb(40, Color.White)) P3 = New Pen(Color.FromArgb(20, Color.White)) P4 = New Pen(Color.FromArgb(10, Color.Black)) 'Down-Left B1 = New SolidBrush(C1) B2 = New SolidBrush(C3) B5 = New SolidBrush(Color.FromArgb(170, 170, 170)) 'Text Color Font = New Font("Verdana", 8.0F) End Sub Private State As Integer Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs) State = 0 Invalidate() End Sub Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs) State = 1 Invalidate() End Sub Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs) State = 1 Invalidate() End Sub Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs) State = 2 Invalidate() End Sub Protected Overrides Sub OnResize(ByVal e As EventArgs) R1 = New Rectangle(2, 2, Width - 4, 4) B3 = New LinearGradientBrush(ClientRectangle, C3, C2, 90.0F) B4 = New LinearGradientBrush(R1, C4, Color.Transparent, 90.0F) Invalidate() End Sub Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) B = New Bitmap(Width, Height) G = Graphics.FromImage(B) G.FillRectangle(B3, ClientRectangle) Select Case State Case 0 'Up G.FillRectangle(B2, 1, 1, Width - 2, Height - 2) G.DrawRectangle(P4, 2, 2, Width - 5, Height - 5) Case 1 'Over G.FillRectangle(B1, 1, 1, Width - 2, Height - 2) G.DrawRectangle(P4, 2, 2, Width - 5, Height - 5) Case 2 'Down G.FillRectangle(B1, 1, 1, Width - 2, Height - 2) G.FillRectangle(B4, R1) G.DrawLine(P4, 2, 2, 2, Height - 3) End Select Dim S As SizeF = G.MeasureString(Text, Font) G.DrawString(Text, Font, B5, Convert.ToInt32(Width / 2 - S.Width / 2), Convert.ToInt32(Height / 2 - S.Height / 2)) G.DrawRectangle(P1, 1, 1, Width - 3, Height - 3) If ImageSet Then G.DrawImage(_Image, 5, CInt(Height / 2 - _Image.Height / 2), _Image.Width, _Image.Height) e.Graphics.DrawImage(B, 0, 0) G.Dispose() B.Dispose() End Sub Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs) End Sub End Class Class BullionProgressBar 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.PaleTurquoise '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.AliceBlue '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(246, 246, 246) 'Background P1 = New Pen(Color.FromArgb(70, Color.White), 2) P2 = New Pen(C2) P3 = New Pen(Color.FromArgb(255, 255, 255)) '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(24, 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 Class BullionSeperator 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(248, 248, 248) 'Background P1 = New Pen(Color.FromArgb(230, 230, 230)) 'Shadow P2 = New Pen(Color.FromArgb(255, 255, 255)) 'Highlight 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