package com.gameminers.glasspane.testharness; import gminers.glasspane.Direction; import gminers.glasspane.GlassPane; import gminers.glasspane.component.PaneGradientBox; import gminers.glasspane.component.button.PaneButton; import gminers.glasspane.component.numeric.PaneSlider; import gminers.glasspane.ease.PaneEaser; import gminers.glasspane.event.StateChangedEvent; import gminers.glasspane.listener.PaneEventHandler; import gminers.kitchensink.Strings; public class PaneTestEasers extends GlassPane { private int x = 24; private int y = 34; public PaneTestEasers() { setName("Easers"); add(PaneButton.createDoneButton()); add(PaneTestHarness.createGithubButton("PaneTestEasers.java"), PaneTestHarness.createFlipButton()); final PaneGradientBox box = new PaneGradientBox(0xFFFF5555, 0xFFFFFF55); box.setWidth(20); box.setHeight(20); box.setX(10); box.setY(10); box.setZIndex(5); box.setRotationAllowed(true); box.setXRot(0); box.setYRot(0); box.setZRot(1); add(box); final PaneEaser boxEaser = new PaneEaser(box); final PaneSlider speed = new PaneSlider(); speed.setDirection(Direction.VERTICAL); speed.setMaximum(6400); speed.setValue(400); speed.setWidth(10); speed.setHeight(140); speed.setX(10); speed.setY(34); speed.setText(""); speed.registerListeners(new Object() { @PaneEventHandler public void onStateChanged(StateChangedEvent e) { boxEaser.setSpeed((speed.getValue() + 100) / 100D); } }); add(speed); createEaserButton(boxEaser, "x", 300); createEaserButton(boxEaser, "x", 10); createEaserButton(boxEaser, "y", 180); createEaserButton(boxEaser, "y", 10); createEaserButton(boxEaser, "width", 200); createEaserButton(boxEaser, "width", 20); y += 12; createAndAddButton("Ease to Blue/Green", new Runnable() { @Override public void run() { boxEaser.easeColorInt("color", 0xFF5555FF); boxEaser.easeColorInt("color2", 0xFF55FF55); } }); createAndAddButton("Ease to Red/Yellow", new Runnable() { @Override public void run() { boxEaser.easeColorInt("color", 0xFFFF5555); boxEaser.easeColorInt("color2", 0xFFFFFF55); } }); createEaserButton(boxEaser, "angle", 45f); createEaserButton(boxEaser, "angle", 0f); createEaserButton(boxEaser, "angle", -45f); } private void createEaserButton(final PaneEaser boxEaser, final String key, final float val) { createAndAddButton("Ease to " + Strings.formatTitleCase(key) + " " + val, new Runnable() { @Override public void run() { boxEaser.easeFloat(key, val); } }); } private void createEaserButton(final PaneEaser boxEaser, final String key, final int val) { createAndAddButton("Ease to " + Strings.formatTitleCase(key) + " " + val, new Runnable() { @Override public void run() { boxEaser.easeInteger(key, val); } }); } private void createAndAddButton(String text, Runnable runnable) { PaneButton button = new PaneButton(text); button.setX(x); button.setY(y); button.setWidth(120); button.registerActivationListener(runnable); add(button); y += 24; if (y >= 160) { y = 34; x += 124; } } }