-
Notifications
You must be signed in to change notification settings - Fork 0
/
LC_Button.pde
139 lines (126 loc) · 3.09 KB
/
LC_Button.pde
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
129
130
131
132
133
134
135
136
137
138
139
//=======================================\\
// LOGICOLOUR : A COLOURFUL PUZZLE GAME \\
// ------------------------------------- \\
// AUTHOR: KYLE DERBY MACINNIS \\
// DATE: MARCH 12, 2015 \\
// ------------------------------------- \\
// LAST UPDATED: MARCH 12, 2015 \\
// ------------------------------------- \\
// \\
// LC_Button.pde \\
// \\
// ------------------------------------- \\
//=======================================\\
// Menu Button Class
class Button
{
// Dimensions
int btnHeight;
int btnWidth;
// Position
PVector btnPos;
// Colour
color btnColour;
color txtColour;
// Text
String btnLabel;
// Activation Flag
boolean isActive;
// Default Constructor
public Button()
{
this.btnHeight = hSize/10;
this.btnWidth = wSize/10;
this.btnPos = new PVector(wSize/2, hSize - hSize/3);
this.btnColour = color(100);
this.txtColour = color(30, 00, 00);
this.btnLabel = "Button";
this.isActive = true;
}
// Regular Contructor
public Button(int ht, int wd, int x, int y, color bclr, color tclr, String lbl)
{
this.btnHeight = ht;
this.btnWidth = wd;
this.btnPos = new PVector(x, y);
this.btnColour = bclr;
this.txtColour = tclr;
this.btnLabel = lbl;
this.isActive = true;
}
// Deactivate Button
public void Deactivate()
{
this.isActive = false;
}
// Activate Button
public void Activate()
{
this.isActive = true;
}
// Main Button Display Function
public void Display()
{
if (this.isActive())
{
// Draw Rectangle
fill(this.btnColour);
stroke(0);
rectMode(CENTER);
rect(this.btnPos.x, this.btnPos.y, this.btnWidth, this.btnHeight, 10);
// Draw Text;
textFont(GameFont, 20);
fill(this.txtColour);
textAlign(CENTER, CENTER);
text(this.btnLabel, this.btnPos.x, this.btnPos.y);
} else
{
// Draw Rectangle
fill(66, 66, 66, 100);
stroke(0);
rectMode(CENTER);
rect(this.btnPos.x, this.btnPos.y, this.btnWidth, this.btnHeight, 10);
// Draw Text;
textFont(GameFont, 20);
fill(this.txtColour);
textAlign(CENTER, CENTER);
text(this.btnLabel, this.btnPos.x, this.btnPos.y);
}
}
// Check Status of Button
public boolean isActive()
{
return this.isActive;
}
// Button Colour Change Method (For Rollover)
public void setBtnColour(color clr)
{
this.btnColour = clr;
}
// Text Colour Change Method (For Rollover)
public void setTxtColour(color clr)
{
this.txtColour = clr;
}
// Label Change Method (For Rollover)
public void setBtnLabel(String text)
{
this.btnLabel = text;
}
// Return Button Position Vector
public PVector getBtnPos()
{
return this.btnPos;
}
// Return Button Size Vector
public PVector getBtnSize()
{
PVector size = new PVector(this.btnWidth, this.btnHeight);
return size;
}
// Return Button Colour
public color getColour()
{
return this.btnColour;
}
}