From: Christian Femers Date: Sat, 29 Jun 2019 01:29:05 +0000 (+0200) Subject: Added getBounds() to TextComponent X-Git-Url: https://mograsim.net/gitweb/?a=commitdiff_plain;h=be97d62cd9ba19f95d22b55b91f6dd6c39a54025;p=Mograsim.git Added getBounds() to TextComponent --- 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 0f8b542d..6062aff4 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 @@ -13,6 +13,7 @@ import net.mograsim.preferences.Preferences; public class TextComponent extends GUIComponent { private final String text; + private Point textExtent; public TextComponent(ViewModelModifiable model, String text) { @@ -23,13 +24,21 @@ public class TextComponent extends GUIComponent @Override public void render(GeneralGC gc, Rectangle visibleRegion) { - Point textExtent = gc.textExtent(text); + textExtent = gc.textExtent(text); Color textColor = Preferences.current().getColor("net.mograsim.logic.ui.color.text"); if (textColor != null) gc.setForeground(textColor); gc.drawText(text, getPosX() - textExtent.x / 2, getPosY() - textExtent.y / 2, true); } + @Override + public Rectangle getBounds() + { + if (textExtent == null) + return super.getBounds(); + return new Rectangle(getPosX() - textExtent.x / 2, getPosY() - textExtent.y / 2, textExtent.x, textExtent.y); + } + static { ViewLogicModelAdapter.addComponentAdapter(NoLogicAdapter.forClass(TextComponent.class));