X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fatomic%2FGUISplitter.java;h=b283f46604cd0758d0885c0dc4719e0d6f549a51;hb=b2b57f2e7ab5c5a5ed2a297b5ee1d5acb1cb9d1d;hp=06cfe1713e431c17bfe2a30bfed851544a857e6a;hpb=a936af6541ed4a9e6857d9944c528d394b8f63fc;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java index 06cfe171..b283f466 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java @@ -1,5 +1,7 @@ package net.mograsim.logic.model.model.components.atomic; +import org.eclipse.swt.SWT; + import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; @@ -33,7 +35,7 @@ public class GUISplitter extends GUIComponent super(model, name); this.logicWidth = logicWidth; setSize(width, logicWidth * heightPerPin); - addPin(new Pin(this, "I", logicWidth, 0, logicWidth * heightPerPin / 2)); + addPin(new Pin(this, "I", logicWidth, 0, (logicWidth - 1) * heightPerPin / 2)); double outputHeight = 0; for (int i = 0; i < logicWidth; i++, outputHeight += 10) addPin(new Pin(this, "O" + i, 1, width, outputHeight)); @@ -49,9 +51,8 @@ public class GUISplitter extends GUIComponent ColorDefinition c = BitVectorFormatter.formatAsColor(inputEnd); if (c != null) gc.setForeground(ColorManager.current().toColor(c)); - gc.drawLine(posX, posY + heightPerPin * logicWidth / 2, posX + width / 2, posY + heightPerPin * logicWidth / 2); - gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); - gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); + double inLineY = posY + (logicWidth - 1) * heightPerPin / 2; + gc.drawLine(posX, inLineY, posX + width / 2, inLineY); double outputHeight = posY; for (int i = 0; i < logicWidth; i++, outputHeight += 10) { @@ -60,6 +61,13 @@ public class GUISplitter extends GUIComponent gc.setForeground(ColorManager.current().toColor(c)); gc.drawLine(posX + width / 2, outputHeight, posX + width, outputHeight); } + gc.setForeground(Preferences.current().getColor("net.mograsim.logic.model.color.foreground")); + int oldLineCap = gc.getLineCap(); + int lineJoin = gc.getLineJoin(); + // TODO find better "replacement" for JOIN_BEVEL + gc.setLineCap(lineJoin == SWT.JOIN_MITER ? SWT.CAP_SQUARE : lineJoin == SWT.JOIN_ROUND ? SWT.CAP_ROUND : SWT.CAP_SQUARE); + gc.drawLine(posX + width / 2, posY, posX + width / 2, posY + heightPerPin * (logicWidth - 1)); + gc.setLineCap(oldLineCap); } @Override