X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FTextComponent.java;h=b72c2f2c9477dccadf6d1045844cd2b508c0db3f;hb=be4fdfb3a35188d2438f9dcdf047197430f26a5f;hp=542b7f0e970757a18b44a9c4f78492fcd16f1b88;hpb=6cc67a41ad5cee725f1578f8a35e17cdffc6b642;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java index 542b7f0e..b72c2f2c 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java @@ -10,35 +10,32 @@ import net.mograsim.logic.ui.modeladapter.ViewLogicModelAdapter; import net.mograsim.logic.ui.modeladapter.componentadapters.NoLogicAdapter; import net.mograsim.preferences.Preferences; +//TODO clean size calculation mess public class TextComponent extends GUIComponent { private final String text; - private Point textExtent; public TextComponent(ViewModelModifiable model, String text) { super(model); this.text = text; + // If size is unset, it defaults to 0, which could prohibit this component from being rendered, which would prohibit the size being + // set to a better guess + setSize(1, 1); } @Override public void render(GeneralGC gc, Rectangle visibleRegion) { - textExtent = gc.textExtent(text); + Point textExtent = gc.textExtent(text); + setSize(textExtent.x, textExtent.y); + Color textColor = Preferences.current().getColor("net.mograsim.logic.ui.color.text"); if (textColor != null) gc.setForeground(textColor); gc.drawText(text, getPosX(), getPosY(), true); } - @Override - public Rectangle getBounds() - { - if (textExtent == null) - return super.getBounds(); - return new Rectangle(getPosX(), getPosY(), textExtent.x, textExtent.y); - } - static { ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(TextComponent.class));