From 869c206c4fcc8001bd2e1d66f704290331813835 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 20 Jan 2016 14:24:34 +1000 Subject: Initial Commit --- .../controls/button/ControlEnumButton.java | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/Java/binnie/craftgui/controls/button/ControlEnumButton.java (limited to 'src/Java/binnie/craftgui/controls/button/ControlEnumButton.java') 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 + extends ControlButton + implements IControlValue +{ + 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 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; + } +} -- cgit