diff options
Diffstat (limited to 'src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java')
-rw-r--r-- | src/Java/binnie/craftgui/extratrees/kitchen/ControlDropdownButton.java | 36 |
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(); +} |