From be97d62cd9ba19f95d22b55b91f6dd6c39a54025 Mon Sep 17 00:00:00 2001 From: Christian Femers Date: Sat, 29 Jun 2019 03:29:05 +0200 Subject: [PATCH] Added getBounds() to TextComponent --- .../logic/ui/model/components/TextComponent.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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)); -- 2.17.1