aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS/ProgressBarEX.vb
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS/ProgressBarEX.vb')
-rw-r--r--ShiftOS/ProgressBarEX.vb275
1 files changed, 0 insertions, 275 deletions
diff --git a/ShiftOS/ProgressBarEX.vb b/ShiftOS/ProgressBarEX.vb
deleted file mode 100644
index 6bf1c1b..0000000
--- a/ShiftOS/ProgressBarEX.vb
+++ /dev/null
@@ -1,275 +0,0 @@
-
-Public Class ProgressBarEX
-
-#Region " Properties "
-
- Private _Value As Integer = 0
- Public Property Value() As Integer
- Get
- Return _Value
- End Get
- Set(ByVal value As Integer)
- If value >= Me.MinValue And value <= Me.MaxValue Then
- _Value = value
- Me.Invalidate()
- Else
- Throw New ArgumentOutOfRangeException("The value must be between the minimum and maximum values.")
- End If
- End Set
- End Property
-
- Private _Step As Integer = 10
- Public Property [Step]() As Integer
- Get
- Return _Step
- End Get
- Set(ByVal value As Integer)
- _Step = value
- End Set
- End Property
-
- Private _Orientation As ProgressBarOrientation
- Public Property Orientation() As ProgressBarOrientation
- Get
- Return _Orientation
- End Get
- Set(ByVal value As ProgressBarOrientation)
- _Orientation = value
- End Set
- End Property
-
- Private _MinValue As Integer = 0
- Public Property MinValue() As Integer
- Get
- Return _MinValue
- End Get
- Set(ByVal value As Integer)
- If value < Me.MaxValue Then
- _MinValue = value
- Else
- Throw New ArgumentOutOfRangeException("The minimum value must be less than the maximum value.")
- End If
- End Set
- End Property
-
- Private _MaxValue As Integer = 100
- Public Property MaxValue() As Integer
- Get
- Return _MaxValue
- End Get
- Set(ByVal value As Integer)
- If value > Me.MinValue Then
- _MaxValue = value
- Else
- Throw New ArgumentOutOfRangeException("The maximum value must be more than the minimum value.")
- End If
- End Set
- End Property
-
- Private _Color As Color = Color.Lime
- Public Property Color() As Color
- Get
- Return _Color
- End Get
- Set(ByVal value As Color)
- _Color = value
- End Set
- End Property
-
- Private _ShowValue As Boolean = True
- Public Property ShowValue() As Boolean
- Get
- Return _ShowValue
- End Get
- Set(ByVal value As Boolean)
- _ShowValue = value
- End Set
- End Property
-
- Private _Style As ProgressBarExStyle
- Public Property Style() As ProgressBarExStyle
- Get
- Return _Style
- End Get
- Set(ByVal value As ProgressBarExStyle)
- _Style = value
- End Set
- End Property
-
- Private _BlockWidth As Integer = 5
- Public Property BlockWidth() As Integer
- Get
- Return _BlockWidth
- End Get
- Set(ByVal value As Integer)
- _BlockWidth = value
- End Set
- End Property
-
- Private _BlockSeparation As Integer = 3
- Public Property BlockSeparation() As Integer
- Get
- Return _BlockSeparation
- End Get
- Set(ByVal value As Integer)
- _BlockSeparation = value
- End Set
- End Property
-
-#End Region
-
-#Region " Enums, Variables "
-
- Public Enum ProgressBarOrientation
- Horizontal = 0
- Vertical = 1
- End Enum
-
- Public Enum ProgressBarExStyle
- Blocks = 0
- Continuous = 1
- Marquee = 2
- End Enum
-
-#End Region
-
-#Region " Events "
-
- Public Event PaintBackground(ByVal sender As Object, ByVal e As PaintEventArgs)
- Public Event PaintProcess(ByVal sender As Object, ByVal e As ProgressBarProcessPaintEventArgs)
-
- Public Class ProgressBarProcessPaintEventArgs
- Inherits EventArgs
-
- Public Sub New(ByVal bounds As Rectangle, ByVal g As Graphics, Optional ByVal blocks() As Rectangle = Nothing)
- _Bounds = bounds
- _Graphics = g
- If blocks Is Nothing Then
- _Blocks = New Rectangle() {}
- Else
- _Blocks = blocks
- End If
- End Sub
-
- Private _Bounds As Rectangle
- Public ReadOnly Property Bounds() As Rectangle
- Get
- Return _Bounds
- End Get
- End Property
-
- Private _Blocks As Rectangle()
- Public ReadOnly Property Blocks() As Rectangle()
- Get
- Return _Blocks
- End Get
- End Property
-
- Private _Graphics As Graphics
- Public ReadOnly Property Graphics() As Graphics
- Get
- Return _Graphics
- End Get
- End Property
-
- End Class
-
-#End Region
-
-#Region " Methods "
-
- Public Sub PerformStep()
- If Me.Step > 0 Then
- Me.Value = Math.Min(Me.Value + Me.Step, Me.MaxValue)
- Else
- Me.Value = Math.Max(Me.Value + Me.Step, Me.MinValue)
- End If
- End Sub
-
- Public Sub Increment(ByVal value As Integer)
- If value > 0 Then
- Me.Value = Math.Min(Me.Value + value, Me.MaxValue)
- Else
- Me.Value = Math.Max(Me.Value + value, Me.MinValue)
- End If
- End Sub
-
-#End Region
-
-#Region " Process Logic "
-
- Private Function GetProcessRect() As Rectangle
- Dim w As Integer = Me.Width
- Dim h As Integer = Me.Height
- Dim valRel As Integer = GetRelativeValue()
- Return New Rectangle(0, 0, w * valRel \ 100, h)
- End Function
-
- Private Function GetBlocks() As Rectangle()
- Dim b As New List(Of Rectangle)
-
- Dim w As Integer = Me.BlockWidth
- Dim h As Integer = Me.Height
- Dim r As Rectangle
-
- Dim x As Integer = 0
- Dim stopX As Integer = CInt((GetRelativeValue() / 100) * Me.Width)
- While (x + w <= stopX)
- r = New Rectangle(x, 0, w, h)
- b.Add(r)
-
- x += Me.BlockWidth + Me.BlockSeparation
- End While
-
- Return b.ToArray
- End Function
-
- Private Function GetRelativeValue() As Integer
- Return CInt(100 * Me.Value / (Me.MaxValue - Me.MinValue))
- End Function
-
-#End Region
-
-#Region " Drawing "
-
- Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
- MyBase.OnPaint(e)
- DoPaintBackground(e.Graphics)
- DoPaintProcess(e.Graphics)
- If Me.ShowValue Then DoPaintValue(e.Graphics)
- End Sub
-
- Private Sub DoPaintBackground(ByVal g As Graphics)
- RaiseEvent PaintBackground(Me, New PaintEventArgs(g, Me.ClientRectangle))
- End Sub
-
- Private Sub DoPaintProcess(ByVal g As Graphics)
- Dim rect As Rectangle = GetProcessRect()
- Dim blocks() As Rectangle = GetBlocks()
- Using brush As New SolidBrush(Me.Color)
- If Me.Style = ProgressBarExStyle.Continuous Then
- g.FillRectangle(brush, rect)
- ElseIf Me.Style = ProgressBarExStyle.Blocks Then
- For Each b As Rectangle In blocks
- g.FillRectangle(brush, b)
- Next
- End If
- End Using
-
- Dim e As New ProgressBarProcessPaintEventArgs(rect, g, blocks)
- RaiseEvent PaintProcess(Me, e)
- End Sub
-
- Private Sub DoPaintValue(ByVal g As Graphics)
- Dim valStr As String = GetRelativeValue.ToString & "&#37;"
- Dim sf As New StringFormat()
- sf.Alignment = StringAlignment.Center
- Dim s As SizeF = g.MeasureString(valStr, Me.Font)
-
- g.DrawString(valStr, Me.Font, New SolidBrush(Me.ForeColor), (Me.Width - s.Width) / 2, (Me.Height - s.Height) / 2)
- End Sub
-
-#End Region
-
-End Class
-