aboutsummaryrefslogtreecommitdiff
path: root/src/client/java/dev/isxander/yacl/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/java/dev/isxander/yacl/api')
-rw-r--r--src/client/java/dev/isxander/yacl/api/LabelOption.java20
-rw-r--r--src/client/java/dev/isxander/yacl/api/Option.java1
2 files changed, 21 insertions, 0 deletions
diff --git a/src/client/java/dev/isxander/yacl/api/LabelOption.java b/src/client/java/dev/isxander/yacl/api/LabelOption.java
new file mode 100644
index 0000000..a1bbe28
--- /dev/null
+++ b/src/client/java/dev/isxander/yacl/api/LabelOption.java
@@ -0,0 +1,20 @@
+package dev.isxander.yacl.api;
+
+import dev.isxander.yacl.impl.LabelOptionImpl;
+import net.minecraft.text.Text;
+
+/**
+ * A label option is an easier way of creating a label with a {@link dev.isxander.yacl.gui.controllers.LabelController}.
+ * This option is immutable and cannot be disabled. Tooltips are supported through
+ * {@link Text} styling.
+ */
+public interface LabelOption extends Option<Text> {
+ Text label();
+
+ /**
+ * Creates a new label option with the given label.
+ */
+ static LabelOption create(Text label) {
+ return new LabelOptionImpl(label);
+ }
+}
diff --git a/src/client/java/dev/isxander/yacl/api/Option.java b/src/client/java/dev/isxander/yacl/api/Option.java
index 406931f..9b4ff7b 100644
--- a/src/client/java/dev/isxander/yacl/api/Option.java
+++ b/src/client/java/dev/isxander/yacl/api/Option.java
@@ -136,6 +136,7 @@ public interface Option<T> {
*
* @param tooltipGetter function to get tooltip depending on value {@link Builder#build()}.
*/
+ @SuppressWarnings("unchecked")
Builder<T> tooltip(@NotNull Function<T, Text>... tooltipGetter);
/**