From 1c0601faecd9a838587a5aa42c8deca7dd43563c Mon Sep 17 00:00:00 2001 From: Daniel Kirschten Date: Mon, 2 Sep 2019 22:46:19 +0200 Subject: [PATCH] Made wires with logicWidth!=1 thicker --- .../src/net/mograsim/logic/model/LogicUIRenderer.java | 2 +- .../model/components/submodels/SubmodelComponent.java | 2 +- .../src/net/mograsim/logic/model/model/wires/GUIWire.java | 7 ++++++- .../src/net/mograsim/preferences/DefaultPreferences.java | 6 +++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java index 8a2ef4e3..36b165a1 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java @@ -25,7 +25,7 @@ public class LogicUIRenderer { gc.setAntialias(SWT.ON); gc.setClipping(visibleRegion); - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth")); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); model.getWiresByName().values().forEach(w -> { Rectangle bounds = w.getBounds(); diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java index 51195681..46d59457 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java @@ -387,7 +387,7 @@ public abstract class SubmodelComponent extends GUIComponent } conf.reset(gc); // reset line width explicitly to avoid rounding errors causing weird glitches - gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth")); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); // draw the outline after all other operations to make interface pins look better renderOutline(gc, visibleRegion); } 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 8b91fc4d..c5645715 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 @@ -18,6 +18,7 @@ import net.mograsim.logic.core.wires.Wire.ReadEnd; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.preferences.ColorDefinition; import net.mograsim.preferences.ColorManager; +import net.mograsim.preferences.Preferences; /** * A wire connecting exactly two {@link Pin}s. @@ -364,11 +365,15 @@ public class GUIWire */ public void render(GeneralGC gc) { - // TODO maybe make wires with logicWidth!=1 thicker? Maybe make thickness selectable? 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.drawPolyline(effectivePath); + gc.setLineWidth(Preferences.current().getDouble("net.mograsim.logic.model.linewidth.default")); } // operations concerning the path diff --git a/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java b/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java index d2c23429..2f5c7c2a 100644 --- a/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java +++ b/net.mograsim.preferences/src/net/mograsim/preferences/DefaultPreferences.java @@ -31,8 +31,12 @@ public class DefaultPreferences extends Preferences { switch (name) { - case "net.mograsim.logic.model.linewidth": + case "net.mograsim.logic.model.linewidth.default": return 0.5; + case "net.mograsim.logic.model.linewidth.wire.singlebit": + return 0.5; + case "net.mograsim.logic.model.linewidth.wire.multibit": + return 0.85; default: throw new IllegalArgumentException("Unknown double preference name: " + name); } -- 2.17.1