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