diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
commit | 869c206c4fcc8001bd2e1d66f704290331813835 (patch) | |
tree | 96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/craftgui/controls/button/ControlEnumButton.java | |
parent | ec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff) | |
download | GT5-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.java | 61 |
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; + } +} |