Class SplitPane

  • All Implemented Interfaces:
    Cullable, Layout

    public class SplitPane
    extends WidgetGroup
    A container that contains two widgets and is divided either horizontally or vertically. The user may resize the widgets. The child widgets are always sized to fill their side of the SplitPane.

    Minimum and maximum split amounts can be set to limit the motion of the resizing handle. The handle position is also prevented from shrinking the children below their minimum sizes. If these limits over-constrain the handle, it will be locked and placed at an averaged location, resulting in cropped children. The minimum child size can be ignored (allowing dynamic cropping) by wrapping the child in a Container with a minimum size of 0 and fill() set, or by overriding clampSplitAmount().

    The preferred size of a SplitPane is that of the child widgets and the size of the SplitPane.SplitPaneStyle.handle. The widgets are sized depending on the SplitPane size and the split position.

    • Constructor Detail

      • SplitPane

        public SplitPane​(@Null
                         Actor firstWidget,
                         @Null
                         Actor secondWidget,
                         boolean vertical,
                         Skin skin)
        Parameters:
        firstWidget - May be null.
        secondWidget - May be null.
      • SplitPane

        public SplitPane​(@Null
                         Actor firstWidget,
                         @Null
                         Actor secondWidget,
                         boolean vertical,
                         Skin skin,
                         java.lang.String styleName)
        Parameters:
        firstWidget - May be null.
        secondWidget - May be null.
    • Method Detail

      • layout

        public void layout()
        Description copied from interface: Layout
        Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child, calls Layout.invalidate() on any each child whose width or height has changed, and calls Layout.validate() on each child. This method should almost never be called directly, instead Layout.validate() should be used.
        Specified by:
        layout in interface Layout
        Overrides:
        layout in class WidgetGroup
      • setVertical

        public void setVertical​(boolean vertical)
      • isVertical

        public boolean isVertical()
      • draw

        public void draw​(Batch batch,
                         float parentAlpha)
        Description copied from class: WidgetGroup
        If this method is overridden, the super method or WidgetGroup.validate() should be called to ensure the widget group is laid out.
        Overrides:
        draw in class WidgetGroup
        parentAlpha - The parent alpha, to be multiplied with this actor's alpha, allowing the parent's alpha to affect all children.
      • setSplitAmount

        public void setSplitAmount​(float splitAmount)
        Parameters:
        splitAmount - The split amount between the min and max amount. This parameter is clamped during layout. See clampSplitAmount().
      • getSplitAmount

        public float getSplitAmount()
      • clampSplitAmount

        protected void clampSplitAmount()
        Called during layout to clamp the splitAmount within the set limits. By default it imposes the limits of the min amount, max amount, and min sizes of the children. This method is internally called in response to layout, so it should not call WidgetGroup.invalidate().
      • getMinSplitAmount

        public float getMinSplitAmount()
      • setMinSplitAmount

        public void setMinSplitAmount​(float minAmount)
      • getMaxSplitAmount

        public float getMaxSplitAmount()
      • setMaxSplitAmount

        public void setMaxSplitAmount​(float maxAmount)
      • setFirstWidget

        public void setFirstWidget​(@Null
                                   Actor widget)
        Parameters:
        widget - May be null.
      • setSecondWidget

        public void setSecondWidget​(@Null
                                    Actor widget)
        Parameters:
        widget - May be null.
      • addActor

        public void addActor​(Actor actor)
        Description copied from class: Group
        Adds an actor as a child of this group, removing it from its previous parent. If the actor is already a child of this group, no changes are made.
        Overrides:
        addActor in class Group
      • addActorAt

        public void addActorAt​(int index,
                               Actor actor)
        Description copied from class: Group
        Adds an actor as a child of this group at a specific index, removing it from its previous parent. If the actor is already a child of this group, no changes are made.
        Overrides:
        addActorAt in class Group
        Parameters:
        index - May be greater than the number of children.
      • addActorBefore

        public void addActorBefore​(Actor actorBefore,
                                   Actor actor)
        Description copied from class: Group
        Adds an actor as a child of this group immediately before another child actor, removing it from its previous parent. If the actor is already a child of this group, no changes are made.
        Overrides:
        addActorBefore in class Group
      • removeActorAt

        public Actor removeActorAt​(int index,
                                   boolean unfocus)
        Description copied from class: Group
        Removes an actor from this group. If the actor will not be used again and has actions, they should be cleared so the actions will be returned to their pool, if any. This is not done automatically.
        Overrides:
        removeActorAt in class Group
        unfocus - If true, Stage.unfocus(Actor) is called.
        Returns:
        the actor removed from this group.
      • isCursorOverHandle

        public boolean isCursorOverHandle()