From 97a2f7c297bf2aa814cfc06a8eca1c7b452a4377 Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Mon, 2 Sep 2019 23:00:38 +0200 Subject: [PATCH] Adjusted GUIMerger/GUISplitter to thick GUIWires --- .../logic/model/model/components/atomic/GUIMerger.java | 5 +++++ .../logic/model/model/components/atomic/GUISplitter.java | 5 +++++ .../src/net/mograsim/logic/model/model/wires/GUIWire.java | 6 ++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java index d8ef0152..345e360f 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java @@ -55,8 +55,11 @@ public class GUIMerger extends GUIComponent ColorDefinition c = BitVectorFormatter.formatAsColor(outputEnd); if (c != null) gc.setForeground(ColorManager.current().toColor(c)); + gc.setLineWidth( + Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); double outLineY = posY + (logicWidth - 1) * heightPerPin / 2; gc.drawLine(posX + width / 2, outLineY, posX + width, outLineY); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); double inputHeight = posY; for (int i = 0; i < logicWidth; i++, inputHeight += 10) { @@ -69,8 +72,10 @@ public class GUIMerger extends GUIComponent int oldLineCap = gc.getLineCap(); int lineJoin = gc.getLineJoin(); // TODO find better "replacement" for JOIN_BEVEL + // TODO it looks weird that the vertical line is thinner than the single multibit wire. 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.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); gc.setLineCap(oldLineCap); } 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 6da46580..635c790b 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 @@ -55,8 +55,11 @@ public class GUISplitter extends GUIComponent ColorDefinition c = BitVectorFormatter.formatAsColor(inputEnd); if (c != null) gc.setForeground(ColorManager.current().toColor(c)); + gc.setLineWidth( + Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); double inLineY = posY + (logicWidth - 1) * heightPerPin / 2; gc.drawLine(posX, inLineY, posX + width / 2, inLineY); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); double outputHeight = posY; for (int i = 0; i < logicWidth; i++, outputHeight += 10) { @@ -69,8 +72,10 @@ public class GUISplitter extends GUIComponent int oldLineCap = gc.getLineCap(); int lineJoin = gc.getLineJoin(); // TODO find better "replacement" for JOIN_BEVEL + // TODO it looks weird that the vertical line is thinner than the single multibit wire. 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.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); gc.setLineCap(oldLineCap); } diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java index c5645715..870be5bc 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java @@ -368,10 +368,8 @@ public class GUIWire ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end); if (wireColor != null) gc.setForeground(ColorManager.current().toColor(wireColor)); - if (logicWidth == 1) - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.singlebit")); - else - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire.multibit")); + gc.setLineWidth( + Preferences.current().getDouble("net.mograsim.logic.model.linewidth.wire." + (logicWidth == 1 ? "singlebit" : "multibit"))); gc.drawPolyline(effectivePath); gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); } -- 2.17.1