aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/controls/button/ControlEnumButton.java
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-01-20 14:24:34 +1000
commit869c206c4fcc8001bd2e1d66f704290331813835 (patch)
tree96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/craftgui/controls/button/ControlEnumButton.java
parentec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff)
downloadGT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2
GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip
Initial Commit
Diffstat (limited to 'src/Java/binnie/craftgui/controls/button/ControlEnumButton.java')
-rw-r--r--src/Java/binnie/craftgui/controls/button/ControlEnumButton.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/controls/button/ControlEnumButton.java b/src/Java/binnie/craftgui/controls/button/ControlEnumButton.java
new file mode 100644
index 0000000000..924bd8c110
--- /dev/null
+++ b/src/Java/binnie/craftgui/controls/button/ControlEnumButton.java
@@ -0,0 +1,61 @@
+package binnie.craftgui.controls.button;
+
+import binnie.craftgui.controls.core.IControlValue;
+import binnie.craftgui.core.IWidget;
+import binnie.craftgui.events.EventMouse.Down;
+import binnie.craftgui.events.EventValueChanged;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ControlEnumButton<T>
+ extends ControlButton
+ implements IControlValue<T>
+{
+ public static final String eventEnumChanged = "eventEnumButtonChanged";
+ private T currentSelection;
+
+ public String getText()
+ {
+ return this.currentSelection.toString();
+ }
+
+ public void onMouseClick(EventMouse.Down event)
+ {
+ int index = this.enumConstants.indexOf(this.currentSelection);
+ if (index < this.enumConstants.size() - 1) {
+ index++;
+ } else {
+ index = 0;
+ }
+ T newEnum = this.enumConstants.get(index);
+
+ setValue(newEnum);
+ }
+
+ public void setValue(T selection)
+ {
+ if (this.currentSelection != selection)
+ {
+ this.currentSelection = selection;
+ callEvent(new EventValueChanged(this, getValue()));
+ }
+ }
+
+ private List<T> enumConstants = new ArrayList();
+
+ public ControlEnumButton(IWidget parent, float x, float y, float width, float height, T[] values)
+ {
+ super(parent, x, y, width, height, "");
+ for (T value : values) {
+ this.enumConstants.add(value);
+ }
+ if (values.length > 0) {
+ this.currentSelection = values[0];
+ }
+ }
+
+ public T getValue()
+ {
+ return this.currentSelection;
+ }
+}