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