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.

Author:
mzechner, Nathan Sweet
  • Constructor Details

  • Method Details

    • setStyle

      public void setStyle(SplitPane.SplitPaneStyle style)
    • getStyle

      public SplitPane.SplitPaneStyle getStyle()
      Returns the split pane's style. Modifying the returned style may not have an effect until setStyle(SplitPaneStyle) is called.
    • 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
    • getPrefWidth

      public float getPrefWidth()
      Specified by:
      getPrefWidth in interface Layout
      Overrides:
      getPrefWidth in class WidgetGroup
    • getPrefHeight

      public float getPrefHeight()
      Specified by:
      getPrefHeight in interface Layout
      Overrides:
      getPrefHeight in class WidgetGroup
    • getMinWidth

      public float getMinWidth()
      Specified by:
      getMinWidth in interface Layout
      Overrides:
      getMinWidth in class WidgetGroup
    • getMinHeight

      public float getMinHeight()
      Specified by:
      getMinHeight in interface Layout
      Overrides:
      getMinHeight 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()
    • 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
    • removeActor

      public boolean removeActor(Actor actor)
      Description copied from class: Group
      Removes an actor from this group and unfocuses it. Calls Group.removeActor(Actor, boolean) with true.
      Overrides:
      removeActor in class Group
    • removeActor

      public boolean removeActor(Actor actor, boolean unfocus)
      Description copied from class: Group
      Removes an actor from this group. Calls Group.removeActorAt(int, boolean) with the actor's child index.
      Overrides:
      removeActor 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()