aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/controls/listbox/ControlListBox.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/listbox/ControlListBox.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/listbox/ControlListBox.java')
-rw-r--r--src/Java/binnie/craftgui/controls/listbox/ControlListBox.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/controls/listbox/ControlListBox.java b/src/Java/binnie/craftgui/controls/listbox/ControlListBox.java
new file mode 100644
index 0000000000..e9370daa3d
--- /dev/null
+++ b/src/Java/binnie/craftgui/controls/listbox/ControlListBox.java
@@ -0,0 +1,76 @@
+package binnie.craftgui.controls.listbox;
+
+import binnie.core.util.IValidator;
+import binnie.craftgui.controls.core.IControlValue;
+import binnie.craftgui.controls.scroll.ControlScrollableContent;
+import binnie.craftgui.core.IWidget;
+import binnie.craftgui.events.EventKey.Down;
+import binnie.craftgui.events.EventKey.Down.Handler;
+import java.util.Collection;
+
+public class ControlListBox<T>
+ extends ControlScrollableContent<ControlList<T>>
+ implements IControlValue<T>
+{
+ public ControlListBox(IWidget parent, float x, float y, float w, float h, float scrollBarSize)
+ {
+ super(parent, x, y, w, h, scrollBarSize);
+ }
+
+ public void initialise()
+ {
+ setScrollableContent(new ControlList(this, 1.0F, 1.0F, w() - 2.0F - this.scrollBarSize, h() - 2.0F));
+
+ addEventHandler(new EventKey.Down.Handler()
+ {
+ public void onEvent(EventKey.Down event)
+ {
+ EventKey.Down eventKey = event;
+ if (ControlListBox.this.calculateIsMouseOver())
+ {
+ int currentIndex = ((ControlList)ControlListBox.this.getContent()).getCurrentIndex();
+ if (eventKey.getKey() == 208)
+ {
+ currentIndex++;
+ if (currentIndex >= ((ControlList)ControlListBox.this.getContent()).getOptions().size()) {
+ currentIndex = 0;
+ }
+ }
+ else if (eventKey.getKey() == 200)
+ {
+ currentIndex--;
+ if (currentIndex < 0) {
+ currentIndex = ((ControlList)ControlListBox.this.getContent()).getOptions().size() - 1;
+ }
+ }
+ ((ControlList)ControlListBox.this.getContent()).setIndex(currentIndex);
+ }
+ }
+ });
+ }
+
+ public final T getValue()
+ {
+ return ((ControlList)getContent()).getValue();
+ }
+
+ public final void setValue(T value)
+ {
+ ((ControlList)getContent()).setValue(value);
+ }
+
+ public void setOptions(Collection<T> options)
+ {
+ ((ControlList)getContent()).setOptions(options);
+ }
+
+ public IWidget createOption(T value, int y)
+ {
+ return new ControlOption((ControlList)getContent(), value, y);
+ }
+
+ public void setValidator(IValidator<IWidget> validator)
+ {
+ ((ControlList)getContent()).setValidator(validator);
+ }
+}