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
* 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
//TODO this code will be replaced by code in BasicComponent.\r
/**\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Font;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
+import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
\r
public class GUIAndGate extends AndGate implements BasicGUIComponent\r
{\r
this.wireArrayConnectionPoints = Collections.unmodifiableList(wireArrayConnectionPointsModifiable);\r
}\r
\r
+ @Override\r
+ public Rectangle getBounds()\r
+ {\r
+ return new Rectangle(0, 0, 20, height);\r
+ }\r
@Override\r
public void render(GeneralGC gc)\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 class GUIMerger extends Merger implements BasicGUIComponent\r
{\r
this.wireArrayConnectionPoints = Collections.unmodifiableList(wireArrayConnectionPointsModifiable);\r
}\r
\r
+ @Override\r
+ public Rectangle getBounds()\r
+ {\r
+ return new Rectangle(0, 0, 20, height);\r
+ }\r
@Override\r
public void render(GeneralGC gc)\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 class GUIMux extends Mux implements BasicGUIComponent\r
{\r
this.connectedWireArrays = Collections.unmodifiableList(connectedWireArraysModifiable);\r
this.wireArrayConnectionPoints = Collections.unmodifiableList(wireArrayConnectionPointsModifiable);\r
}\r
+\r
+ @Override\r
+ public Rectangle getBounds()\r
+ {\r
+ return new Rectangle(0, 0, 20, height + 20);\r
+ }\r
@Override\r
public void render(GeneralGC gc)\r
{\r
import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Font;\r
import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
+import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
\r
public class GUINotGate extends NotGate implements BasicGUIComponent\r
{\r
this.wireArrayConnectionPoints = Collections.unmodifiableList(wireArrayConnectionPointsModifiable);\r
}\r
\r
+ @Override\r
+ public Rectangle getBounds()\r
+ {\r
+ return new Rectangle(0, 0, 20, 10);\r
+ }\r
@Override\r
public void render(GeneralGC gc)\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 class GUISplitter extends Splitter implements BasicGUIComponent\r
{\r
this.wireArrayConnectionPoints = Collections.unmodifiableList(wireArrayConnectionPointsModifiable);\r
}\r
\r
+ @Override\r
+ public Rectangle getBounds()\r
+ {\r
+ return new Rectangle(0, 0, 20, height);\r
+ }\r
@Override\r
public void render(GeneralGC gc)\r
{\r