From f2214c6b00dee33b81d9659be77530729a839372 Mon Sep 17 00:00:00 2001 From: Shiewk Date: Fri, 6 Dec 2024 14:12:48 +0100 Subject: [PATCH] Provide maximum recommended width to setting options --- .../java/de/shiewk/widgets/WidgetSettingOption.java | 9 +++++++++ .../screen/components/WidgetSettingsEditWidget.java | 11 ++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/shiewk/widgets/WidgetSettingOption.java b/src/main/java/de/shiewk/widgets/WidgetSettingOption.java index dde15b7..5b65724 100644 --- a/src/main/java/de/shiewk/widgets/WidgetSettingOption.java +++ b/src/main/java/de/shiewk/widgets/WidgetSettingOption.java @@ -14,6 +14,7 @@ public abstract class WidgetSettingOption implements Drawable, Widget { private final Text name; private int x = 0; private int y = 0; + private int maxRenderWidth = 200; // this will always be changed before rendering private boolean focused = false; private BooleanSupplier shouldShow = WidgetUtils.TRUE_SUPPLIER; @@ -22,6 +23,14 @@ public abstract class WidgetSettingOption implements Drawable, Widget { this.name = name; } + public void setMaxRenderWidth(int maxRenderWidth) { + this.maxRenderWidth = maxRenderWidth; + } + + public int getMaxRenderWidth() { + return maxRenderWidth; + } + public final String getId() { return id; } diff --git a/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java b/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java index b20b6e4..50b413a 100644 --- a/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java +++ b/src/main/java/de/shiewk/widgets/client/screen/components/WidgetSettingsEditWidget.java @@ -19,12 +19,21 @@ public class WidgetSettingsEditWidget extends ScrollableWidget { private int contentsHeight = 10; public WidgetSettingsEditWidget(int x, int y, int width, int height, TextRenderer textRenderer, ModWidget widget, Runnable onChange) { super(x, y, width, height, Text.empty()); - this.textRenderer = textRenderer; this.widget = widget; + this.textRenderer = textRenderer; this.onChange = onChange; for (WidgetSettingOption customSetting : widget.getSettings().getCustomSettings()) { customSetting.setFocused(false); } + setWidth(width); + } + + @Override + public void setWidth(int width) { + for (WidgetSettingOption setting : widget.getSettings().getCustomSettings()) { + setting.setMaxRenderWidth(width - 10); + } + super.setWidth(width); } @Override