Made GUIWires more colorful
[Mograsim.git] / LogicUI / src / era / mi / components / gui / BasicGUIComponent.java
index 5a20b26..47479b1 100644 (file)
@@ -1,8 +1,42 @@
 package era.mi.components.gui;\r
 \r
+import era.mi.logic.wires.WireArray;\r
 import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
+import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
+import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
 \r
 public interface BasicGUIComponent\r
 {\r
+       /**\r
+        * Render this component to the given gc, at coordinates (0, 0).\r
+        */\r
        public void render(GeneralGC gc);\r
+       /**\r
+        * Returns the bounds of this component.\r
+        * Used for calculating which component is clicked.\r
+        */\r
+       public Rectangle getBounds();\r
+       /**\r
+        * Called when this component is clicked. Relative coordinates of the click are given.\r
+        * Returns true if this component has to be redrawn.\r
+        */\r
+       public default boolean clicked(double x, double y)\r
+       {\r
+               return false;\r
+       }\r
+\r
+       //TODO this code will be replaced by code in BasicComponent.\r
+       /**\r
+        * Returns how many wire arrays are connected to this component.\r
+        * (Connections are static - they can't be removed and no new ones can be added)\r
+        */\r
+       public int getConnectedWireArraysCount();\r
+       /**\r
+        * Returns the n-th wire array connected to this component.\r
+        */\r
+       public WireArray getConnectedWireArray(int connectionIndex);\r
+       /**\r
+        * Returns relative coordinates where the n-th wire array is connected to this component.\r
+        */\r
+       public Point getWireArrayConnectionPoint(int connectionIndex);\r
 }
\ No newline at end of file