-
Notifications
You must be signed in to change notification settings - Fork 9
/
YarnFeeders.vb
128 lines (107 loc) · 4.13 KB
/
YarnFeeders.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Public Class YarnFeeders
Public Enum FeederStatus As Integer
Full = 1
Empty = 0
OutOfUse = -1
End Enum
Private PropFeeders(3) As FeederStatus
Private PropDisplayOnly As Boolean
Public Property Feeder1() As Integer
Get
Return PropFeeders(0)
End Get
Set(ByVal myFeeder As Integer)
PropFeeders(0) = myFeeder
End Set
End Property
Public Property Feeder2() As Integer
Get
Return PropFeeders(1)
End Get
Set(ByVal myFeeder As Integer)
PropFeeders(1) = myFeeder
PictureBox1.Refresh()
End Set
End Property
Public Property Feeder3() As Integer
Get
Return PropFeeders(2)
End Get
Set(ByVal myFeeder As Integer)
PropFeeders(2) = myFeeder
End Set
End Property
Public Property Feeder4() As Integer
Get
Return PropFeeders(3)
End Get
Set(ByVal myFeeder As Integer)
PropFeeders(3) = myFeeder
End Set
End Property
Public Property DisplayOnly() As Boolean
Get
Return PropDisplayOnly
End Get
Set(ByVal Value As Boolean)
PropDisplayOnly = Value
End Set
End Property
Private Sub YarnFeeders_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim skinnypen As Pen
Dim FeederRect As Rectangle
Dim FeederCenter As Rectangle
Dim YarnRect As Rectangle
FeederRect.Height = Me.Height - 2
FeederRect.Width = Me.Width / 4 - 4
FeederRect.X = 1
FeederRect.Y = 1
YarnRect.Height = FeederRect.Height - 6
YarnRect.Width = FeederRect.Width - 6
YarnRect.X = 4
YarnRect.Y = 4
FeederCenter.Height = YarnRect.Height / 2
FeederCenter.Width = YarnRect.Width / 2
FeederCenter.X = 1 + FeederRect.Width / 2 - FeederCenter.Width / 2
FeederCenter.Y = 1 + FeederRect.Height / 2 - FeederCenter.Height / 2
e.Graphics.Clear(Me.BackColor)
For i As Integer = 0 To 3
Select Case PropFeeders(i)
Case FeederStatus.Empty
skinnypen = New Pen(Me.ForeColor, 2)
e.Graphics.DrawEllipse(skinnypen, FeederRect)
e.Graphics.FillEllipse(New SolidBrush(Me.ForeColor), FeederCenter)
Case FeederStatus.Full
skinnypen = New Pen(Me.ForeColor, 2)
e.Graphics.DrawEllipse(skinnypen, FeederRect)
e.Graphics.FillEllipse(New SolidBrush(Me.ForeColor), YarnRect)
Case FeederStatus.OutOfUse
skinnypen = New Pen(Me.ForeColor, 2)
skinnypen.DashStyle = Drawing2D.DashStyle.Dot
e.Graphics.DrawEllipse(skinnypen, FeederRect)
End Select
FeederRect.X = FeederRect.X + FeederRect.Width + 4
YarnRect.X = FeederRect.X + 3
FeederCenter.X = FeederRect.X + FeederRect.Width / 2 - FeederCenter.Width / 2
FeederCenter.Y = FeederRect.Y + FeederRect.Height / 2 - FeederCenter.Height / 2
Next
End Sub
Private Sub PictureBox1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
Dim i As Short
If Not PropDisplayOnly Then
i = Int(e.X / (Me.Width / 4))
Select Case PropFeeders(i)
Case FeederStatus.OutOfUse
PropFeeders(i) = FeederStatus.Full
Exit Select
Case FeederStatus.Empty
PropFeeders(i) = FeederStatus.OutOfUse
Exit Select
Case FeederStatus.Full
PropFeeders(i) = FeederStatus.Empty
Exit Select
End Select
PictureBox1.Refresh()
End If
End Sub
End Class