-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUIKSpinner.pde
More file actions
88 lines (74 loc) · 2.38 KB
/
UIKSpinner.pde
File metadata and controls
88 lines (74 loc) · 2.38 KB
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
/*
* Copyright (c) 2010 The Jackson Laboratory
*
* This software was developed by Matt Hibbs' Lab at The Jackson
* Laboratory (see http://cbfg.jax.org/).
*
* This is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software. If not, see <http://www.gnu.org/licenses/>.
*/
class UIKSpinner extends UIComponent {
float value, size;
PFont main;
Object key;
String title;
color textColor = color(0xFF);
UIButton up, down;
UIKSpinner(float newX, float newY, float newSize, float newValue, String newT) {
x = newX;
y = newY;
main = createFont("Arial", size = newSize, true);
value = newValue;
title = newT;
up = new UIButton(0, y + size + 16, "+", size + 16, size + 16, size, new UIAction() {
public void doAction() {
inc();
}
});
down = new UIButton(0, y + size + 16, "-", size + 16, size + 16, size, new UIAction() {
public void doAction() {
dec();
}
});
}
void update() {
fill(textColor);
textFont(main);
text(title, x, y + size);
text(str(value), x + ((textWidth(title) - textWidth(str(value))) / 2.0), y + (2 * size) + 16);
up.x = x + ((textWidth(title) - textWidth(str(value))) / 2.0) - size - 32;
down.x = x + ((textWidth(title) + textWidth(str(value))) / 2.0) + 16;
up.update();
down.update();
}
void setKey(Object o) {
key = o;
up.setKey(o);
down.setKey(o);
}
void mouseAction() {
up.mouseAction();
down.mouseAction();
}
void inc() {
value += 0.1;
}
void dec() {
value -= 0.1;
}
float getWidth() {
textFont(main);
return textWidth(title);
}
int size() { return 0; }
}