docs copied over
@@ -790,6 +790,9 @@ public class Element{
if(enabled) invalidateHierarchy();
}
+ /** Ensures the actor has been laid out. Calls {@link #layout()} if {@link #invalidate()} has been called since the last time
+ * {@link #validate()} was called, or if the actor otherwise needs to be laid out. This method is usually called in
+ * {@link Element#draw()} by the actor itself before drawing is performed. */
public void validate(){
if(!layoutEnabled) return;
@@ -808,10 +811,16 @@ public class Element{
return needsLayout;
}
+ /** Invalidates this actor's layout, causing {@link #layout()} to happen the next time {@link #validate()} is called. This
+ * method should be called when state changes in the actor that requires a layout but does not change the minimum, preferred,
+ * maximum, or actual size of the actor (meaning it does not affect the parent actor's layout). */
public void invalidate(){
needsLayout = true;
}
+ /** Invalidates this actor and its ascendants, calling {@link #invalidate()} on each. This method should be called when state
+ * changes in the actor that affects the minimum, preferred, maximum, or actual size of the actor (meaning it potentially
+ * affects the parent actor's layout). */
public void invalidateHierarchy(){
if(!layoutEnabled) return;
invalidate();
@@ -819,16 +828,27 @@ public class Element{
if(parent != null) parent.invalidateHierarchy();
}
-
+ /** Sizes this actor to its preferred width and height, then calls {@link #validate()}.
+ * <p>
+ * Generally this method should not be called in an actor's constructor because it calls {@link #layout()}, which means a
+ * subclass would have layout() called before the subclass' constructor. Instead, in constructors simply set the actor's size
+ * to {@link #getPrefWidth()} and {@link #getPrefHeight()}. This allows the actor to have a size at construction time for more
+ * convenient use with groups that do not layout their children. */
public void pack(){
setSize(getPrefWidth(), getPrefHeight());
validate();
}
+ /** If true, this actor will be sized to the parent in {@link #validate()}. If the parent is the stage, the actor will be sized
+ * to the stage. This method is for convenience only when the widget's parent does not set the size of its children (such as
+ * the stage). */
public void setFillParent(boolean fillParent){
this.fillParent = fillParent;
}
+ /** Computes and caches any information needed for drawing and, if this actor has children, positions and sizes each child,
+ * calls {@link #invalidate()} on any each child whose width or height has changed, and calls {@link #validate()} on each
+ * child. This method should almost never be called directly, instead {@link #validate()} should be used. */
public void layout(){}
public void keepInStage(){
