X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FSubmodelComponent.java;h=fe3ec07e81e77fea360b65600850837118bbc194;hb=5c9a571be01c04a0fb2c14318c2d30346871245c;hp=4b67650b9e6c037308801537b9eb752a5668c69f;hpb=4c590b82bc039bec5669e8cbb40703057274ab8c;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java index 4b67650b..fe3ec07e 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SubmodelComponent.java @@ -5,9 +5,10 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import net.haspamelodica.swt.helper.gcs.GCDefaultConfig; +import net.haspamelodica.swt.helper.gcs.GCConfig; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.gcs.TranslatedGC; +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.ui.LogicUIRenderer; @@ -44,7 +45,7 @@ public class SubmodelComponent extends GUIComponent this.label = label; this.submodelScale = 1; - this.maxVisibleRegionFillRatioForAlpha0 = 0.1; + this.maxVisibleRegionFillRatioForAlpha0 = 0.4; this.minVisibleRegionFillRatioForAlpha1 = 0.8; this.renderer = new LogicUIRenderer(submodelModifiable); @@ -138,7 +139,7 @@ public class SubmodelComponent extends GUIComponent double posX = getBounds().x; double posY = getBounds().y; - GCDefaultConfig conf = new GCDefaultConfig(gc); + GCConfig conf = new GCConfig(gc); TranslatedGC tgc = new TranslatedGC(gc, posX, posY, submodelScale, true); conf.reset(tgc); double visibleRegionFillRatio = Math.max(getBounds().width / visibleRegion.width, getBounds().height / visibleRegion.height); @@ -147,10 +148,14 @@ public class SubmodelComponent extends GUIComponent // we need to take the old alpha into account to support nested submodules better. int oldAlpha = gc.getAlpha(); gc.setAlpha(Math.max(0, Math.min(255, (int) (oldAlpha * alphaFactor)))); - renderer.render(tgc, visibleRegion.translate(posX, posY, submodelScale)); + renderer.render(tgc, visibleRegion.translate(-posX, -posY, 1 / submodelScale)); gc.setAlpha(Math.max(0, Math.min(255, (int) (oldAlpha * (1 - alphaFactor))))); + Font oldFont = gc.getFont(); + Font labelFont = new Font(oldFont.getName(), 6, oldFont.getStyle()); + gc.setFont(labelFont); Point textExtent = gc.textExtent(label); gc.drawText(label, posX + (getBounds().width - textExtent.x) / 2, posY + (getBounds().height - textExtent.y) / 2, true); + gc.setFont(oldFont); conf.reset(gc); // draw the "bounding box" after all other operations to make interface pins look better gc.drawRectangle(getBounds());