diff game/IDMWidget.java @ 75:b586ce4f6d97

Large GUI code cleanup.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 03 Mar 2011 04:04:57 +0200
parents f81f76458b92
children 4c0dec72e2f0
line wrap: on
line diff
--- a/game/IDMWidget.java	Wed Mar 02 23:48:17 2011 +0200
+++ b/game/IDMWidget.java	Thu Mar 03 04:04:57 2011 +0200
@@ -10,7 +10,8 @@
 
 public class IDMWidget
 {
-    IDMPoint pos, scale;
+    IDMWidget parent;
+    IDMPoint pos, size, scale;
     int keyCode;
     
     public IDMWidget()
@@ -18,6 +19,7 @@
         keyCode = -1;
         this.scale = new IDMPoint(1, 1);
         this.pos = new IDMPoint(0, 0);
+        this.size = new IDMPoint(0, 0);
     }
 
     public IDMWidget(IDMPoint pos)
@@ -26,15 +28,45 @@
         this.pos = pos;
     }
 
-    public void move(IDMPoint pos)
+    public IDMWidget(IDMPoint pos, IDMPoint size)
+    {
+        this();
+        this.pos = pos;
+        this.size = size;
+    }
+
+    public void setParent(IDMWidget par)
+    {
+        this.parent = par;
+    }
+
+    public void add(IDMWidget widget)
+    {
+    }
+    
+    public void remove(IDMWidget widget)
+    {
+    }
+
+    public void setPos(IDMPoint pos)
     {
         this.pos = pos;
     }
 
-    public void move(float x, float y)
+    public void setPos(float x, float y)
     {
         this.pos = new IDMPoint(x, y);
     }
+    
+    public void setSize(IDMPoint size)
+    {
+        this.size = size;
+    }
+    
+    public void setSize(float w, float h)
+    {
+        this.size = new IDMPoint(w, h);
+    }
 
     public void setScale(IDMPoint scale)
     {
@@ -48,39 +80,69 @@
 
     public int getScaledX()
     {
-        return (int) (this.pos.x * this.scale.x);
+        return (int) (pos.x * scale.x);
     }
 
     public int getScaledY()
     {
-        return (int) (this.pos.y * this.scale.y);
+        return (int) (pos.y * scale.y);
+    }
+
+    public int getScaledWidth()
+    {
+        return (int) (size.x * scale.x);
+    }
+
+    public int getScaledHeight()
+    {
+        return (int) (size.y * scale.y);
     }
 
+    public boolean contains(float x, float y)
+    {
+        return (x >= getScaledX() &&
+                y >= getScaledY() &&
+                x < getScaledX() + getScaledWidth() &&
+                y < getScaledY() + getScaledHeight());
+    }
+
+    public boolean contains(Point where)
+    {
+        return contains(where.x, where.y);
+    }
+
+    public boolean contains(IDMPoint where)
+    {
+        return contains(where.x, where.y);
+    }
+    
     public void paint(Graphics2D g)
     {
     }
     
-    public boolean contains(Point pos)
+    public boolean mousePressed(MouseEvent e)
     {
         return false;
     }
-    
-    public void mousePressed(MouseEvent e)
-    {
-    }
 
-    public void mouseReleased(MouseEvent e)
+    public boolean mouseReleased(MouseEvent e)
     {
         if (contains(e.getPoint()))
+        {
             clicked();
+            return true;
+        }
+        return false;
     }
 
-    public void mouseEntered(MouseEvent e)
+    public boolean mouseEntered(MouseEvent e)
     {
+        return false;
     }
 
-    public void mouseExited(MouseEvent e)
+    public boolean mouseExited(MouseEvent e)
     {
+        return false;
     }
 
     // Generic key handler