diff --git a/src/main/java/mcjty/theoneprobe/api/IProbeInfo.java b/src/main/java/mcjty/theoneprobe/api/IProbeInfo.java index e18db97f..ee07bac2 100644 --- a/src/main/java/mcjty/theoneprobe/api/IProbeInfo.java +++ b/src/main/java/mcjty/theoneprobe/api/IProbeInfo.java @@ -60,6 +60,24 @@ public interface IProbeInfo { * Create a default style for the icon element */ IIconStyle defaultIconStyle(); + + /** + * Creates a Vertical Panel without adding it to elements. + */ + IProbeInfo createVerticalPanel(); + IProbeInfo createVerticalPanel(ILayoutStyle style); + + /** + * Creates a Horizontal Panel without adding it to elements. + */ + IProbeInfo createHorizontalPanel(); + IProbeInfo createHorizontalPanel(ILayoutStyle style); + + /** + * Converts the ProbeInfo into the element. Reduces casting. + */ + IElement asElement(); + /** * Create an icon. If u and v are -1 then the default texture atlas is used diff --git a/src/main/java/mcjty/theoneprobe/apiimpl/elements/AbstractElementPanel.java b/src/main/java/mcjty/theoneprobe/apiimpl/elements/AbstractElementPanel.java index 7a52c673..9c30080d 100644 --- a/src/main/java/mcjty/theoneprobe/apiimpl/elements/AbstractElementPanel.java +++ b/src/main/java/mcjty/theoneprobe/apiimpl/elements/AbstractElementPanel.java @@ -290,4 +290,29 @@ public IEntityStyle defaultEntityStyle() { public IIconStyle defaultIconStyle() { return new IconStyle(); } -} + + @Override + public IProbeInfo createVerticalPanel() { + return new ElementVertical(new LayoutStyle().spacing(ElementVertical.SPACING).alignment(ElementAlignment.ALIGN_TOPLEFT)); + } + + @Override + public IProbeInfo createVerticalPanel(ILayoutStyle style) { + return new ElementVertical(style); + } + + @Override + public IProbeInfo createHorizontalPanel() { + return new ElementHorizontal(new LayoutStyle().spacing(layout.getSpacing()).alignment(ElementAlignment.ALIGN_TOPLEFT)); + } + + @Override + public IProbeInfo createHorizontalPanel(ILayoutStyle style) { + return new ElementHorizontal(style); + } + + @Override + public IElement asElement() { + return this; + } +} \ No newline at end of file