List of usage examples for com.badlogic.gdx.scenes.scene2d.actions TemporalAction TemporalAction
public TemporalAction(float duration)
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(); } }); } }