DEADSOFTWARE

Rewrite menu
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / menu / objects / Button.java
index f0da583f5c0e9c0127402e8eb067778b77211337..88dc5b3030747caf2c399514b27a4132921e39e9 100644 (file)
@@ -4,26 +4,31 @@ import com.badlogic.gdx.math.Rectangle;
 
 public class Button {
 
-    private Rectangle rect;
-    private String label;
-    private int type;
+    public static final int WIDTH = 200;
+    public static final int HEIGHT = 20;
 
-    public Button(String label, float x, float y, float width, float heigth, int type) {
-        this.label = label;
-        rect = new Rectangle(x, y, width, heigth);
-        this.type = type;
-    }
+    public static final int
+            DISABLED = 0,
+            NORMAL = 1,
+            SELECTED = 2;
 
-    public Button(String label, float x, float y, float width, float heigth) {
-        this(label, x, y, width, heigth, 1);
-    }
+    private ButtonEventListener listener;
 
-    public Button(String label, float x, float y, int type) {
-        this(label, x, y, 200, 20, type);
-    }
+    private final Rectangle rect;
+    private final String label;
+    private int type;
 
-    public Button(String label, float x, float y) {
-        this(label, x, y, 200, 20, 1);
+    /**
+     * @param label Label to be shown on button
+     * @param type  Type of button where 0 - disabled,  1 - normal, 2 - selected.
+     *              You should use these constants
+     *              {@link #DISABLED} {@link #NORMAL} {@link #SELECTED}
+     */
+    public Button(String label, int x, int y, int type, ButtonEventListener listener) {
+        this.label = label;
+        rect = new Rectangle(x, y, WIDTH, HEIGHT);
+        this.type = type;
+        this.listener = listener;
     }
 
     public Rectangle getRect() {
@@ -58,4 +63,12 @@ public class Button {
         this.type = type;
     }
 
+    public void draw(ButtonDrawer drawer) {
+        drawer.draw(this);
+    }
+
+    public void clicked() {
+        listener.buttonClicked();
+    }
+
 }