aboutsummaryrefslogtreecommitdiff
path: root/src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java')
-rw-r--r--src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java b/src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java
new file mode 100644
index 0000000000..069272b82a
--- /dev/null
+++ b/src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java
@@ -0,0 +1,36 @@
+package binnie.craftgui.extratrees.kitchen;
+
+import binnie.craftgui.controls.button.ControlButton;
+import binnie.craftgui.core.IWidget;
+import binnie.craftgui.events.EventMouse.Down;
+import binnie.craftgui.events.EventMouse.Down.Handler;
+import binnie.craftgui.minecraft.Window;
+
+public abstract class ControlDropdownButton
+ extends ControlButton
+{
+ public ControlDropdownButton(IWidget parent, float x, float y, float width, float height, String text)
+ {
+ super(parent, x, y, width, height, text);
+
+ addSelfEventHandler(new EventMouse.Down.Handler()
+ {
+ public void onEvent(EventMouse.Down event)
+ {
+ ControlDropDownMenu menu = (ControlDropDownMenu)ControlDropdownButton.this.getWidget(ControlDropDownMenu.class);
+ ControlDropdownButton.this.deleteChild((IWidget)ControlDropdownButton.this.getWidget(ControlDropDownMenu.class));
+ if (ControlDropdownButton.this.getWidget(ControlDropDownMenu.class) == null)
+ {
+ menu = ControlDropdownButton.this.createDropDownMenu();
+ Window.get(ControlDropdownButton.this.getWidget()).setFocusedWidget(menu);
+ }
+ else
+ {
+ ControlDropdownButton.this.deleteChild((IWidget)ControlDropdownButton.this.getWidget(ControlDropDownMenu.class));
+ }
+ }
+ });
+ }
+
+ public abstract ControlDropDownMenu createDropDownMenu();
+}