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=b0138aa2e1ad062c40afcb3f1f287c15da12d021;hb=35df5a4186f12073d5cdc956b645b882b43b858a;hp=e5a6347ad7de74c7a2cd50f244479c82f812d919;hpb=66f8cbab0c292761a8a34f5c5e2d5e4434672d44;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 e5a6347a..b0138aa2 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));