Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Drawing.Drawing2D
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement