From fdf0ce3f5327dc2efcab8789fd4a41d5d8962ada Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Mon, 13 Apr 2020 21:32:54 +0300 Subject: Improve panel and list docs --- .../cottonmc/cotton/gui/widget/WListPanel.java | 36 ++++++++++++++++++++-- .../github/cottonmc/cotton/gui/widget/WPanel.java | 30 ++++++++++++++++-- 2 files changed, 60 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/github/cottonmc/cotton/gui/widget/WListPanel.java b/src/main/java/io/github/cottonmc/cotton/gui/widget/WListPanel.java index 7c92191..ff2b897 100644 --- a/src/main/java/io/github/cottonmc/cotton/gui/widget/WListPanel.java +++ b/src/main/java/io/github/cottonmc/cotton/gui/widget/WListPanel.java @@ -16,25 +16,49 @@ import io.github.cottonmc.cotton.gui.widget.data.Axis; *

W is the WWidget class that will represent a single D of data. */ public class WListPanel extends WClippedPanel { + /** + * The list of data that this list represents. + */ protected List data; + + /** + * The supplier of new empty widgets. + */ protected Supplier supplier; + + /** + * The widget configurator that configures the passed widget + * to display the passed data. + */ protected BiConsumer configurator; protected HashMap configured = new HashMap<>(); protected List unconfigured = new ArrayList<>(); + + /** + * The height of each child cell. + */ protected int cellHeight = 20; + + /** + * Whether this list has a fixed height for items. + */ protected boolean fixedHeight = false; protected int margin = 4; - + + /** + * The scroll bar of this list. + */ protected WScrollBar scrollBar = new WScrollBar(Axis.VERTICAL); - int lastScroll = -1; + private int lastScroll = -1; public WListPanel(List data, Supplier supplier, BiConsumer configurator) { this.data = data; this.supplier = supplier; this.configurator = configurator; scrollBar.setMaxValue(data.size()); + scrollBar.setParent(this); } /** @@ -157,7 +181,13 @@ public class WListPanel extends WClippedPanel { //System.out.println("Children: "+children.size()); } - + + /** + * Sets the height of this list's items to a constant value. + * + * @param height the item height + * @return this list + */ public WListPanel setListItemHeight(int height) { cellHeight = height; fixedHeight = true; diff --git a/src/main/java/io/github/cottonmc/cotton/gui/widget/WPanel.java b/src/main/java/io/github/cottonmc/cotton/gui/widget/WPanel.java index 706a71b..373479b 100644 --- a/src/main/java/io/github/cottonmc/cotton/gui/widget/WPanel.java +++ b/src/main/java/io/github/cottonmc/cotton/gui/widget/WPanel.java @@ -9,7 +9,15 @@ import io.github.cottonmc.cotton.gui.client.BackgroundPainter; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +/** + * Panels are widgets tthat contain other widgets. + */ public abstract class WPanel extends WWidget { + /** + * The widgets contained within this panel. + * + *

The list is mutable. + */ protected final List children = Lists.newArrayList(); @Environment(EnvType.CLIENT) private BackgroundPainter backgroundPainter = null; @@ -21,7 +29,12 @@ public abstract class WPanel extends WWidget { child.createPeers(c); } } - + + /** + * Removes the widget from this panel. + * + * @param w the removed widget + */ public void remove(WWidget w) { children.remove(w); } @@ -30,13 +43,24 @@ public abstract class WPanel extends WWidget { public boolean canResize() { return true; } - + + /** + * Sets the {@link BackgroundPainter} of this panel. + * + * @param painter the new painter + * @return this panel + */ @Environment(EnvType.CLIENT) public WPanel setBackgroundPainter(BackgroundPainter painter) { this.backgroundPainter = painter; return this; } - + + /** + * Gets the current {@link BackgroundPainter} of this panel. + * + * @return the painter + */ @Environment(EnvType.CLIENT) public BackgroundPainter getBackgroundPainter() { return this.backgroundPainter; -- cgit