X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fatomic%2FModelManualSwitch.java;h=ef3c817ebfcb52921c0aa19dc46b69c7ef4c5307;hb=c6806c7c38252b1d782581599efecff3930aa395;hp=f495b4e9ea80dc65bd488b5c6c43808bee6256ad;hpb=5711229bc04a9495a84f09f6baf446283f228923;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java index f495b4e9..ef3c817e 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java @@ -1,5 +1,8 @@ package net.mograsim.logic.model.model.components.atomic; +import static net.mograsim.logic.model.preferences.RenderPreferences.FOREGROUND_COLOR; +import static net.mograsim.logic.model.preferences.RenderPreferences.TEXT_COLOR; + import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; @@ -8,23 +11,23 @@ import org.eclipse.swt.graphics.Color; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.core.LogicObserver; import net.mograsim.logic.core.components.CoreManualSwitch; import net.mograsim.logic.core.types.Bit; import net.mograsim.logic.core.types.BitVector; -import net.mograsim.logic.core.types.BitVectorFormatter; +import net.mograsim.logic.model.BitVectorFormatter; import net.mograsim.logic.model.model.LogicModelModifiable; import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.wires.Pin; import net.mograsim.logic.model.model.wires.PinUsage; import net.mograsim.logic.model.modeladapter.LogicCoreAdapter; import net.mograsim.logic.model.modeladapter.componentadapters.ManualSwitchAdapter; +import net.mograsim.logic.model.preferences.RenderPreferences; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; import net.mograsim.logic.model.snippets.HighLevelStateHandler; -import net.mograsim.preferences.Preferences; +import net.mograsim.logic.model.util.TextRenderingHelper; public class ModelManualSwitch extends ModelComponent { @@ -32,6 +35,7 @@ public class ModelManualSwitch extends ModelComponent private static final double height = 10; private static final double fontHeight = 5; private static final double heightMiniButtons = 4; // 0 is disabled + private static final double textMargin = 0.5; public final int logicWidth; private final Pin outputPin; @@ -136,9 +140,9 @@ public class ModelManualSwitch extends ModelComponent } @Override - public void render(GeneralGC gc, Rectangle visibleRegion) + public void render(GeneralGC gc, RenderPreferences renderPrefs, Rectangle visibleRegion) { - Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground"); + Color foreground = renderPrefs.getColor(FOREGROUND_COLOR); if (foreground != null) gc.setForeground(foreground); gc.drawRectangle(getBounds()); @@ -146,11 +150,10 @@ public class ModelManualSwitch extends ModelComponent Font oldFont = gc.getFont(); Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle()); gc.setFont(labelFont); - Point textExtent = gc.textExtent(label); - Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text"); + Color textColor = renderPrefs.getColor(TEXT_COLOR); if (textColor != null) gc.setForeground(textColor); - gc.drawText(label, getPosX() + (width - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true); + TextRenderingHelper.drawTextFitting(gc, label, getBounds(), textMargin, true); gc.setFont(oldFont); if (manualSwitch != null && logicWidth > 1 && heightMiniButtons > 0 && visibleRegion.y < getPosY() + heightMiniButtons)