Example usage for com.badlogic.gdx.scenes.scene2d.actions TemporalAction TemporalAction

List of usage examples for com.badlogic.gdx.scenes.scene2d.actions TemporalAction TemporalAction

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.actions TemporalAction TemporalAction.

Prototype

public TemporalAction(float duration) 

Source Link

Usage

From source file:com.vlaaad.dice.ui.components.DiePane.java

License:Open Source License

public void setMinimized(boolean minimized) {
    if (minimized == this.minimized)
        return;/*from  w  w  w.j  a  v  a  2 s . c  o m*/
    DiePaneListener.PaneEvent event = Pools.obtain(DiePaneListener.PaneEvent.class).setPane(this);
    if (minimized) {
        event.setType(DiePaneListener.EventType.minimize);
    } else {
        event.setType(DiePaneListener.EventType.maximize);
    }
    boolean cancelled = fire(event);
    Pools.free(event);
    if (cancelled)
        return;
    this.minimized = minimized;
    if (minimized) {
        refreshInfo();
        splitPane.clearActions();
        params.setTouchable(Touchable.disabled);
        splitPane.addAction(new TemporalAction(0.2f) {
            public float amount;
            public float height;

            @Override
            protected void begin() {
                amount = splitPane.getSplit();
                height = splitPane.getHeight();
            }

            @Override
            protected void update(float percent) {
                splitPane.setHeight(MathUtils.round(height + (infoMaxHeight - height) * percent));
                splitPane.setSplitAmount(infoMaxHeight / splitPane.getHeight());
                setSize(getPrefWidth(), splitPane.getHeight());
                invalidateHierarchy();
            }

            @Override
            protected void end() {
                DiePaneListener.PaneEvent event = Pools.obtain(DiePaneListener.PaneEvent.class)
                        .setPane(DiePane.this).setType(DiePaneListener.EventType.minimized);
                fire(event);
                Pools.free(event);
            }
        });
    } else {
        splitPane.addAction(new TemporalAction(0.2f) {
            public float amount;
            public float height;

            @Override
            protected void end() {
                params.setTouchable(Touchable.enabled);
                DiePaneListener.PaneEvent event = Pools.obtain(DiePaneListener.PaneEvent.class)
                        .setPane(DiePane.this).setType(DiePaneListener.EventType.maximized);
                fire(event);
                Pools.free(event);
                ChangeListener.ChangeEvent e = Pools.obtain(ChangeListener.ChangeEvent.class);
                fire(e);
                Pools.free(e);
            }

            @Override
            protected void begin() {
                amount = splitPane.getSplit();
                height = splitPane.getHeight();
            }

            @Override
            protected void update(float percent) {
                splitPane.setHeight(
                        MathUtils.round(height + (infoMinHeight + params.getPrefHeight() - height) * percent));
                splitPane.setSplitAmount(infoMinHeight / (splitPane.getHeight()));
                setSize(getPrefWidth(), splitPane.getHeight());
                invalidateHierarchy();
            }
        });
    }
}