List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Table defaults
public Cell defaults()
From source file:com.badlogic.gdx.spriter.demo.SpriterDemoApp.java
@Override public void create() { // Initialize object batch = new SpriteBatch(); camera = new OrthographicCamera(); FileHandleResolver resolver = new InternalFileHandleResolver(); assetManager = new AssetManager(resolver); assetManager.setLoader(SpriterData.class, new SpriterDataLoader(resolver)); resolver = new AbsoluteFileHandleResolver(); externalAssetManager = new AssetManager(resolver); externalAssetManager.setLoader(SpriterData.class, new SpriterDataLoader(resolver)); assetManager.load("uiskin.json", Skin.class); assetManager.finishLoading();//w ww . j av a2 s.co m skin = assetManager.get("uiskin.json"); // Create widgets stage = new Stage(new ScreenViewport(camera), batch); Label titleLabel = new Label("gdx-spriter", skin); titleLabel.setFontScale(3f); Label fpsLabel = new Label("FPS", skin) { @Override public void act(float delta) { this.setText(Gdx.graphics.getFramesPerSecond() + " FPS"); super.act(delta); } }; fileChooser = new SelectBox<SpriterDemoFileHandle>(skin); fileChooser.setName("Files"); fileChooser.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { changeSpriterFile(fileChooser.getSelected()); lastUsedSelectBox = fileChooser; } }); Button fileFinder = new TextButton("Browse", skin); fileFinder.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { FileDialog fileDialog = new FileDialog((java.awt.Frame) null, "Choose Spriter file", FileDialog.LOAD); fileDialog.setDirectory(lastFolderBrowsed); fileDialog.setResizable(true); fileDialog.setVisible(true); String file = fileDialog.getFile(); String directory = fileDialog.getDirectory(); if (directory != null) { lastFolderBrowsed = directory; } if (file != null) { String path = directory + file; addFile(Gdx.files.absolute(path), externalAssetManager); fileChooser.setItems(files); fileChooser.setSelectedIndex(fileChooser.getItems().size - 1); } } }); entityChooser = new SelectBox<SpriterAnimator>(skin); entityChooser.setName("Entities"); entityChooser.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { changeAnimator(entityChooser.getSelected()); lastUsedSelectBox = entityChooser; } }); animationChooser = new SelectBox<String>(skin); animationChooser.setName("Animations"); animationChooser.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { changeAnimation(animationChooser.getSelected()); lastUsedSelectBox = animationChooser; } }); final CheckBox transitionCheckbox = new CheckBox("Transition", skin); transitionCheckbox.setChecked(transition); transitionCheckbox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { transition = transitionCheckbox.isChecked(); } }); charmapChooser = new List<SpriterCharacterMap>(skin); ArraySelection<SpriterCharacterMap> selection = charmapChooser.getSelection(); selection.setMultiple(true); selection.setRangeSelect(false); selection.setToggle(false); selection.setRequired(false); charmapChooser.setName("Charmaps"); charmapChooser.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { changeCharacterMaps(charmapChooser.getSelection().items().orderedItems()); } }); angleSlider = new SpriterDemoAnimatorSlider(0, 360, 1f, skin, "%.0f") { @Override public void setValue(SpriterAnimator animator, float value) { spriterAnimator.setRotation(value); } @Override protected float getValue(SpriterAnimator animator) { return spriterAnimator.getRotation(); } }; pivotXSlider = new SpriterDemoAnimatorSlider(-1000f, 1000f, 1f, skin, "%.0f") { @Override public void setValue(SpriterAnimator animator, float value) { animator.setPivotX(value); } @Override protected float getValue(SpriterAnimator animator) { return animator.getPivotX(); } }; pivotYSlider = new SpriterDemoAnimatorSlider(-1000f, 1000f, 1f, skin, "%.0f") { @Override public void setValue(SpriterAnimator animator, float value) { animator.setPivotY(value); } @Override protected float getValue(SpriterAnimator animator) { return animator.getPivotY(); } }; scaleXSlider = new SpriterDemoAnimatorSlider(-10f, 10f, 0.1f, skin) { @Override public void setValue(SpriterAnimator animator, float value) { spriterAnimator.setScaleX(value); } @Override protected float getValue(SpriterAnimator animator) { return spriterAnimator.getScaleX(); } }; scaleYSlider = new SpriterDemoAnimatorSlider(-10f, 10f, 0.1f, skin) { @Override public void setValue(SpriterAnimator animator, float value) { spriterAnimator.setScaleY(value); } @Override protected float getValue(SpriterAnimator animator) { return spriterAnimator.getScaleY(); } }; alphaSlider = new SpriterDemoAnimatorSlider(0f, 1f, 0.01f, skin, "%.2f") { @Override public void setValue(SpriterAnimator animator, float value) { animator.setAlpha(value); } @Override protected float getValue(SpriterAnimator animator) { return animator.getAlpha(); } }; speedSlider = new SpriterDemoAnimatorSlider(0f, 10f, 0.1f, skin) { @Override public void setValue(SpriterAnimator animator, float value) { animator.setSpeed(value); } @Override protected float getValue(SpriterAnimator animator) { return animator.getSpeed(); } }; allAnimatorSliders = new SpriterDemoAnimatorSlider[] { scaleXSlider, scaleYSlider, pivotXSlider, pivotYSlider, angleSlider, alphaSlider, speedSlider }; metaLabel = new Label("Meta: ", skin); metaLabel.setWrap(true); metaLabel.setAlignment(Align.topLeft); spriterPlaceholder = new Label("No animator", skin); spriterPlaceholder.setAlignment(Align.center); spriterAnimator = new SpriterAnimatorActor(animator); spriterAnimator.debug(); playPauseButton = new ImageButton(skin, "play"); playPauseButton.setChecked(true); playPauseButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { boolean playing = playPauseButton.isChecked(); spriterAnimator.setDisabled(!playing); } }); timeSlider = new Slider(0f, 2000f, 1, false, skin); timeSlider.addListener(timeSliderListener = new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (animator == null) return; animator.setTime(timeSlider.getValue()); animator.update(0f); } }); timeLabel = new Label("---", skin); // Put everything in place Table titleTable = new Table(skin); titleTable.add(titleLabel).pad(6f); titleTable.add().expandX(); titleTable.add(fpsLabel).padRight(10f); Table selectionTable = new Table(skin); selectionTable.defaults().pad(3f); Table filesTable = new Table(skin); filesTable.row(); filesTable.add(fileChooser).expand().fillX(); filesTable.add(fileFinder).padLeft(2f).padRight(1f); Table animationsTable = new Table(skin); animationsTable.row(); animationsTable.add(animationChooser).expand().fill(); animationsTable.add(transitionCheckbox).fillX().padLeft(2f); ScrollPane scrollableCharmapChooser = new ScrollPane(charmapChooser); Table menuTable = new Table(skin); menuTable.defaults().pad(3f).expandX().fillX(); menuTable.row(); menuTable.add(titleTable).colspan(2); menuTable.row(); menuTable.add("File"); menuTable.add(filesTable).pad(4f); menuTable.row(); menuTable.add("Entity"); menuTable.add(entityChooser).pad(4f); menuTable.row(); menuTable.add("Animation"); menuTable.add(animationsTable).pad(4f); menuTable.row(); menuTable.add("Maps"); menuTable.add(scrollableCharmapChooser).pad(4f); menuTable.row(); menuTable.add("Angle"); menuTable.add(angleSlider); menuTable.row(); menuTable.add("Pivot X"); menuTable.add(pivotXSlider); menuTable.row(); menuTable.add("Pivot Y"); menuTable.add(pivotYSlider); menuTable.row(); menuTable.add("Scale X"); menuTable.add(scaleXSlider); menuTable.row(); menuTable.add("Scale Y"); menuTable.add(scaleYSlider); menuTable.row(); menuTable.add("Alpha"); menuTable.add(alphaSlider); menuTable.row(); menuTable.add("Speed"); menuTable.add(speedSlider); menuTable.row(); menuTable.add().expandY(); Table contentTable = new Table(skin); contentTable.row(); contentTable.add(metaLabel).left().expandX().maxHeight(1f); contentTable.row(); contentTable.stack(spriterPlaceholder, spriterAnimator).expand(); Table timelineTable = new Table(skin); timelineTable.row(); timelineTable.add("Timeline").expandX().align(Align.bottom); timelineTable.row(); timelineTable.add(timeSlider).expandX().fillX(); timelineTable.row(); timelineTable.add(timeLabel).expandX().align(Align.top); Table controlTable = new Table(skin); controlTable.add(playPauseButton).space(5f).expandY().fillY(); controlTable.add(timelineTable).expandX().fillX(); rootTable = new Table(skin); rootTable.setFillParent(true); rootTable.row(); rootTable.add(menuTable).expandY().fill(); rootTable.add(contentTable).expand().fill(); rootTable.row(); rootTable.add(controlTable).colspan(2).expandX().fillX(); stage.addActor(rootTable); // Bring input processing to the party InputProcessor globalInput = new InputProcessor() { @Override public boolean keyDown(int keycode) { switch (keycode) { case Keys.UP: case Keys.Z: case Keys.W: if (lastUsedSelectBox != null) lastUsedSelectBox.setSelectedIndex(Math.max(lastUsedSelectBox.getSelectedIndex() - 1, 0)); break; case Keys.DOWN: case Keys.S: if (lastUsedSelectBox != null) lastUsedSelectBox.setSelectedIndex(Math.min(lastUsedSelectBox.getSelectedIndex() + 1, lastUsedSelectBox.getItems().size - 1)); break; default: break; } return true; } @Override public boolean keyUp(int keycode) { return false; } @Override public boolean keyTyped(char character) { return false; } @Override public boolean touchDown(int screenX, int screenY, int pointer, int button) { return false; } @Override public boolean touchUp(int screenX, int screenY, int pointer, int button) { return false; } @Override public boolean touchDragged(int screenX, int screenY, int pointer) { return false; } @Override public boolean mouseMoved(int screenX, int screenY) { return false; } @Override public boolean scrolled(int amount) { amount *= 0.05f; // Zoom coefficient scaleXSlider.setValue(scaleXSlider.getValue() + amount); scaleYSlider.setValue(scaleYSlider.getValue() + amount); return false; } }; Gdx.input.setInputProcessor(new InputMultiplexer(stage, globalInput)); // Add default test resources Array<String> testResources = new Array<String>(SpriterTestData.scml); testResources.addAll(SpriterTestData.scon); testResources.sort(); for (String path : testResources) addFile(Gdx.files.internal(path.replaceFirst("/", "")), assetManager); // Also go discover some unknown exotic resources! (won't work in jar though) Array<FileHandle> spriterFiles = SpriterDemoUtils.findFiles(new String[] { "scml", "scon" }); for (FileHandle f : spriterFiles) addFile(f, assetManager); fileChooser.setItems(files); lastUsedSelectBox = fileChooser; if (playPauseButton.isChecked()) animator.play(animator.getAnimations().iterator().next()); }
From source file:com.bladecoder.engine.ui.DebugScreen.java
License:Apache License
@Override public void show() { float size = DPIUtils.getPrefButtonSize(); float margin = DPIUtils.getMarginSize(); stage = new Stage(new ScreenViewport()); table = new Table(ui.getSkin()); table.setFillParent(true);//from www.j av a 2s.co m table.left().top(); table.pad(margin); table.addListener(new InputListener() { @Override public boolean keyUp(InputEvent event, int keycode) { if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) ui.setCurrentScreen(Screens.SCENE_SCREEN); return true; } }); stage.setKeyboardFocus(table); Button back = new Button(ui.getSkin(), "back"); back.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); Label title = new Label("DEBUG SCREEN", ui.getSkin(), "title"); Table header = new Table(); header.padBottom(margin); Container<Button> cont = new Container<Button>(back); cont.size(size); header.add(cont); header.add(title).fillX().expandX().left(); table.add(header).colspan(3).fillX().expandX().left(); // ------------- SPEED speedText = new TextField(Float.toString(((SceneScreen) ui.getScreen(Screens.SCENE_SCREEN)).getSpeed()), ui.getSkin()); TextButton speedButton = new TextButton("Set Speed", ui.getSkin()); speedButton.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { SceneScreen scnScr = (SceneScreen) ui.getScreen(Screens.SCENE_SCREEN); scnScr.setSpeed(Float.parseFloat(speedText.getText())); } }); speedButton.pad(2, 3, 2, 3); HorizontalGroup sGroup = new HorizontalGroup(); sGroup.space(10); sGroup.addActor(speedText); sGroup.addActor(speedButton); table.row().pad(5).align(Align.left); table.add(new Label("Game Speed: ", ui.getSkin(), "debug")); table.add(sGroup); // ------------- RECORDING final Recorder r = ui.getRecorder(); TextButton play = new TextButton(r.isPlaying() ? "Stop" : "Play", ui.getSkin()); rec = new TextButton(r.isRecording() ? "Stop Rec" : "Rec", ui.getSkin()); play.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final Recorder r = ui.getRecorder(); if (!r.isPlaying()) { r.setFilename(recordings.getSelected()); r.load(); r.setPlaying(true); ui.setCurrentScreen(Screens.SCENE_SCREEN); } else { r.setPlaying(false); ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }); rec.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final Recorder r = ui.getRecorder(); if (r.isPlaying()) { r.setPlaying(false); } if (!r.isRecording()) r.setFilename(recFilename.getText()); r.setRecording(!r.isRecording()); rec.setText(r.isRecording() ? "Stop Rec" : "Rec"); if (r.isRecording()) ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); recordings = new SelectBox<String>(ui.getSkin()); String[] testFiles = EngineAssetManager.getInstance().listAssetFiles("/tests"); ArrayList<String> al = new ArrayList<String>(); for (String file : testFiles) if (file.endsWith(Recorder.RECORD_EXT)) al.add(file.substring(0, file.indexOf(Recorder.RECORD_EXT))); FileHandle[] testFiles2 = EngineAssetManager.getInstance().getUserFolder().list(); for (FileHandle file : testFiles2) if (file.name().endsWith(Recorder.RECORD_EXT)) al.add(file.name().substring(0, file.name().indexOf(Recorder.RECORD_EXT))); recordings.setItems(al.toArray(new String[al.size()])); play.pad(2, 3, 2, 3); rec.pad(2, 3, 2, 3); recFilename = new TextField(r.getFileName(), ui.getSkin()); HorizontalGroup rGroup = new HorizontalGroup(); rGroup.space(10); rGroup.addActor(recordings); rGroup.addActor(play); rGroup.addActor(new Label("Rec. Filename", ui.getSkin(), "debug")); rGroup.addActor(recFilename); rGroup.addActor(rec); table.row().pad(5).align(Align.left); table.add(new Label("Game Recording: ", ui.getSkin(), "debug")); table.add(rGroup); // ------------- SCENES TextButton go = new TextButton("Go", ui.getSkin()); go.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { World.getInstance().resume(); World.getInstance().setCutMode(false); World.getInstance().setCurrentScene(scenes.getSelected()); ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); go.pad(2, 3, 2, 3); scenes = new SelectBox<String>(ui.getSkin()); scenes.setItems(World.getInstance().getScenes().keySet() .toArray(new String[World.getInstance().getScenes().size()])); HorizontalGroup scGroup = new HorizontalGroup(); scGroup.space(10); scGroup.addActor(scenes); scGroup.addActor(go); table.row().pad(5).align(Align.left); table.add(new Label("Go to Scene: ", ui.getSkin(), "debug")); table.add(scGroup); // ------------- TESTERBOT final TesterBot bot = ui.getTesterBot(); TextButton runBot = new TextButton(bot.isEnabled() ? "Stop" : "Run", ui.getSkin()); runBot.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final TesterBot bot = ui.getTesterBot(); bot.setMaxWaitInverval(Float.parseFloat(testerTimeConf.getText())); bot.setInSceneTime(Float.parseFloat(inSceneTimeConf.getText())); bot.setExcludeList(testerExcludeList.getText()); bot.setEnabled(!bot.isEnabled()); ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); runBot.pad(2, 3, 2, 3); testerTimeConf = new TextField(Float.toString(bot.getMaxWaitInverval()), ui.getSkin()); inSceneTimeConf = new TextField(Float.toString(bot.getInSceneTime()), ui.getSkin()); testerExcludeList = new TextField(bot.getExcludeList(), ui.getSkin()); TextButton testerLeaveConf = new TextButton("Leave", ui.getSkin(), "toggle"); testerLeaveConf.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final TesterBot bot = ui.getTesterBot(); bot.setRunLeaveVerbs(!bot.isRunLeaveVerbs()); } }); testerLeaveConf.setChecked(bot.isRunLeaveVerbs()); TextButton testerGotoConf = new TextButton("Goto", ui.getSkin(), "toggle"); testerGotoConf.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final TesterBot bot = ui.getTesterBot(); bot.setRunGoto(!bot.isRunGoto()); } }); testerGotoConf.setChecked(bot.isRunGoto()); TextButton testerPassText = new TextButton("Pass Texts", ui.getSkin(), "toggle"); testerPassText.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final TesterBot bot = ui.getTesterBot(); bot.setPassTexts(!bot.isPassTexts()); } }); testerPassText.setChecked(bot.isPassTexts()); TextButton testerWaitWhenWalking = new TextButton("Wait When Walking", ui.getSkin(), "toggle"); testerWaitWhenWalking.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { final TesterBot bot = ui.getTesterBot(); bot.setWaitWhenWalking(!bot.isWaitWhenWalking()); } }); testerWaitWhenWalking.setChecked(bot.isWaitWhenWalking()); HorizontalGroup botGroup = new HorizontalGroup(); botGroup.space(10); botGroup.addActor(testerLeaveConf); botGroup.addActor(testerGotoConf); botGroup.addActor(testerPassText); botGroup.addActor(testerWaitWhenWalking); HorizontalGroup botGroup2 = new HorizontalGroup(); botGroup2.space(10); botGroup2.addActor(new Label("Excl. List: ", ui.getSkin(), "debug")); botGroup2.addActor(testerExcludeList); botGroup2.addActor(new Label("Interval: ", ui.getSkin(), "debug")); botGroup2.addActor(testerTimeConf); botGroup2.addActor(new Label("Scn Time: ", ui.getSkin(), "debug")); botGroup2.addActor(inSceneTimeConf); botGroup2.addActor(runBot); table.row().pad(5).align(Align.left); table.add(new Label("Tester Bot: ", ui.getSkin(), "debug")); table.add(botGroup); table.row().pad(5).align(Align.left); table.add(); table.add(botGroup2); // ------------- VERSION LABEL NOT IN TABLE String versionString = Config.getProperty(Config.TITLE_PROP, "title unspecified") + " v" + Config.getProperty(Config.VERSION_PROP, "unspecified") + "\n" + "Blade Engine: v" + Config.getProperty("bladeEngineVersion", "unspecified") + "\n" + "libGdx: v" + Config.getProperty("gdxVersion", "unspecified") + "\n" + "RoboVM: v" + Config.getProperty("roboVMVersion", "unspecified") + "\n"; // + "Gdx.app.getVersion: " + Gdx.app.getVersion(); Label version = new Label(versionString, ui.getSkin(), "debug"); version.setColor(Color.LIGHT_GRAY); Table versionStack = new Table(); versionStack.defaults().pad(DPIUtils.getSpacing()); versionStack.pad(0); versionStack.add(version); versionStack.bottom().left(); versionStack.setFillParent(true); versionStack.pack(); table.row(); table.add(versionStack).colspan(3).left(); table.pack(); ScrollPane scrollPane = new ScrollPane(table); scrollPane.setFillParent(true); stage.addActor(scrollPane); pointer = new Pointer(ui.getSkin()); stage.addActor(pointer); Gdx.input.setInputProcessor(stage); }
From source file:com.bladecoder.engine.ui.LoadSaveScreen.java
License:Apache License
@Override public void show() { float size = DPIUtils.getPrefButtonSize(); float pad = DPIUtils.getMarginSize(); final Skin skin = ui.getSkin(); final World world = World.getInstance(); // loadScreenMode = ui.getScreen(Screens.LOAD_GAME_SCREEN) == this; loadScreenMode = world.getCurrentScene() == null; stage = new Stage(new ScreenViewport()); slotWidth = (int) (stage.getViewport().getWorldWidth() / (ROW_SLOTS + 1) - 2 * pad); slotHeight = (int) (slotWidth * stage.getViewport().getScreenHeight() / stage.getViewport().getScreenWidth()); LoadSaveScreenStyle style = skin.get(LoadSaveScreenStyle.class); Drawable bg = style.background;//from w w w .ja v a 2s. c o m if (bg == null && style.bgFile != null) { bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile)); bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear); bg = new TextureRegionDrawable(new TextureRegion(bgTexFile)); } Table table = new Table(skin); table.setFillParent(true); table.center(); table.pad(pad); Label title = new Label(loadScreenMode ? I18N.getString("ui.load") : I18N.getString("ui.save"), skin, "title"); Button back = new Button(skin, "back"); back.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.MENU_SCREEN); } }); Table header = new Table(); // header.padBottom(pad); Container<Button> cont = new Container<Button>(back); cont.size(size); header.add(cont); header.add(title).fillX().expandX().left(); table.add(header).fillX().expandX().left(); if (bg != null) table.setBackground(bg); table.addListener(new InputListener() { @Override public boolean keyUp(InputEvent event, int keycode) { if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) if (world.getCurrentScene() != null) ui.setCurrentScreen(Screens.SCENE_SCREEN); return true; } }); final PagedScrollPane scroll = new PagedScrollPane(); scroll.setFlingTime(0.1f); scroll.setPageSpacing(25); Table slots = new Table().pad(pad); slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top(); int c = 0; // Add "new slot" slot for save screen if (!loadScreenMode) { slots.add(getSlotButton(Long.toString(new Date().getTime()))).fill().expand(); c++; } final List<String> sl = getSlots(); Collections.sort(sl); for (int j = sl.size() - 1; j >= 0; j--) { String s = sl.get(j); if (c % ROW_SLOTS == 0 && c % (ROW_SLOTS * COL_SLOTS) != 0) slots.row(); if (c != 0 && c % (ROW_SLOTS * COL_SLOTS) == 0) { scroll.addPage(slots); slots = new Table().pad(pad); slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top(); } Button removeButton = new Button(skin, "delete_game"); removeButton.setName(s); removeButton.addListener(removeClickListener); Container<Button> container = new Container<Button>(removeButton); container.size(DPIUtils.getPrefButtonSize() * .75f); container.align(Align.topRight); slots.stack(getSlotButton(s), container).fill().expand(); c++; } // Add last page if (slots.getCells().size > 0) scroll.addPage(slots); table.row(); if (loadScreenMode && sl.size() == 0) { Label lbl = new Label(I18N.getString("ui.noSavedGames"), skin, "title"); lbl.setAlignment(Align.center); table.add(lbl).expand().fill(); } else { table.add(scroll).expand().fill(); } table.pack(); stage.setKeyboardFocus(table); stage.addActor(table); pointer = new Pointer(ui.getSkin()); stage.addActor(pointer); Gdx.input.setInputProcessor(stage); }
From source file:com.bladecoder.engine.ui.MenuScreen.java
License:Apache License
@Override public void show() { stage = new Stage(new ScreenViewport()); final Skin skin = ui.getSkin(); final World world = World.getInstance(); final MenuScreenStyle style = skin.get(MenuScreenStyle.class); final BitmapFont f = skin.get(style.textButtonStyle, TextButtonStyle.class).font; float buttonWidth = f.getCapHeight() * 15f; // Image background = new Image(style.background); Drawable bg = style.background;/*from www . java 2 s . com*/ if (bg == null && style.bgFile != null) { bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile)); bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear); bg = new TextureRegionDrawable(new TextureRegion(bgTexFile)); } final Table table = new Table(); table.setFillParent(true); table.center(); if (bg != null) table.setBackground(bg); table.addListener(new InputListener() { @Override public boolean keyUp(InputEvent event, int keycode) { if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) if (world.getCurrentScene() != null) ui.setCurrentScreen(Screens.SCENE_SCREEN); return true; } }); table.defaults().pad(BUTTON_PADDING).width(buttonWidth); stage.setKeyboardFocus(table); if (style.showTitle) { Label title = new Label(Config.getProperty(Config.TITLE_PROP, "Adventure Blade Engine"), skin, style.titleStyle); title.setAlignment(Align.center); table.add(title).padBottom(DPIUtils.getMarginSize() * 2); table.row(); } if (world.savedGameExists() || world.getCurrentScene() != null) { TextButton continueGame = new TextButton(I18N.getString("ui.continue"), skin, style.textButtonStyle); continueGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { if (world.getCurrentScene() == null) try { world.load(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } }); table.add(continueGame); } TextButton newGame = new TextButton(I18N.getString("ui.new"), skin, style.textButtonStyle); newGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { if (world.savedGameExists()) { Dialog d = new Dialog("", skin) { protected void result(Object object) { if (((Boolean) object).booleanValue()) { try { world.newGame(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }; d.pad(DPIUtils.getMarginSize()); d.getButtonTable().padTop(DPIUtils.getMarginSize()); d.getButtonTable().defaults().padLeft(DPIUtils.getMarginSize()) .padRight(DPIUtils.getMarginSize()); Label l = new Label(I18N.getString("ui.override"), ui.getSkin(), "ui-dialog"); l.setWrap(true); l.setAlignment(Align.center); d.getContentTable().add(l).prefWidth(Gdx.graphics.getWidth() * .7f); d.button(I18N.getString("ui.yes"), true, ui.getSkin().get("ui-dialog", TextButtonStyle.class)); d.button(I18N.getString("ui.no"), false, ui.getSkin().get("ui-dialog", TextButtonStyle.class)); d.key(Keys.ENTER, true).key(Keys.ESCAPE, false); d.show(stage); } else { try { world.newGame(); } catch (Exception e) { Gdx.app.exit(); } ui.setCurrentScreen(Screens.SCENE_SCREEN); } } }); table.row(); table.add(newGame); TextButton loadGame = new TextButton(I18N.getString("ui.load"), skin, style.textButtonStyle); loadGame.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.LOAD_GAME_SCREEN); } }); table.row(); table.add(loadGame); // if (world.getCurrentScene() != null) { // TextButton saveGame = new TextButton(I18N.getString("ui.save"), skin, style.textButtonStyle); // saveGame.addListener(new ClickListener() { // public void clicked(InputEvent event, float x, float y) { // ui.setCurrentScreen(Screens.SAVE_GAME_SCREEN); // } // }); // // table.row(); // table.add(saveGame); // } TextButton quit = new TextButton(I18N.getString("ui.quit"), skin, style.textButtonStyle); quit.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { Gdx.app.exit(); } }); table.row(); table.add(quit); table.pack(); stage.addActor(table); // BOTTOM-RIGHT BUTTON STACK credits = new Button(skin, "credits"); credits.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.CREDIT_SCREEN); } }); help = new Button(skin, "help"); help.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { ui.setCurrentScreen(Screens.HELP_SCREEN); } }); debug = new Button(skin, "debug"); debug.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { DebugScreen debugScr = new DebugScreen(); debugScr.setUI(ui); ui.setCurrentScreen(debugScr); } }); Table buttonStack = new Table(); buttonStack.defaults().pad(DPIUtils.getSpacing()).size(DPIUtils.getPrefButtonSize(), DPIUtils.getPrefButtonSize()); buttonStack.pad(DPIUtils.getMarginSize() * 2); if (EngineLogger.debugMode() && world.getCurrentScene() != null) { buttonStack.add(debug); buttonStack.row(); } buttonStack.add(help); buttonStack.row(); buttonStack.add(credits); buttonStack.bottom().right(); buttonStack.setFillParent(true); buttonStack.pack(); stage.addActor(buttonStack); Label version = new Label("v" + Config.getProperty(Config.VERSION_PROP, " unspecified"), skin); version.setPosition(DPIUtils.getMarginSize(), DPIUtils.getMarginSize()); stage.addActor(version); debug.addListener(new ClickListener() { public void clicked(InputEvent event, float x, float y) { DebugScreen debugScr = new DebugScreen(); debugScr.setUI(ui); ui.setCurrentScreen(debugScr); } }); pointer = new Pointer(skin); stage.addActor(pointer); Gdx.input.setInputProcessor(stage); }
From source file:com.bladecoder.engineeditor.scneditor.ViewWindow.java
License:Apache License
public ViewWindow(Skin skin, ScnWidget sw) { scnWidget = sw;//from w w w . j a v a2 s. c o m Table table = new Table(skin); table.defaults().left().expandX(); table.top(); table.add(new Label("View", skin, "big")).center(); Drawable drawable = skin.getDrawable("trans"); setBackground(drawable); table.row(); final CheckBox inSceneCb = new CheckBox("Animations in scene", skin); inSceneCb.setChecked(false); table.add(inSceneCb); table.row(); final CheckBox animCb = new CheckBox("Show Animations", skin); animCb.setChecked(true); table.add(animCb); table.row(); walkZone = new CheckBox("Show Walkzone", skin); walkZone.setChecked(false); table.add(walkZone); setActor(table); inSceneCb.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, com.badlogic.gdx.scenes.scene2d.Actor actor) { scnWidget.setInSceneSprites(inSceneCb.isChecked()); } }); animCb.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, com.badlogic.gdx.scenes.scene2d.Actor actor) { scnWidget.setAnimation(animCb.isChecked()); } }); walkZone.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, com.badlogic.gdx.scenes.scene2d.Actor actor) { scnWidget.setShowWalkZone(walkZone.isChecked()); } }); prefSize(200, 200); setSize(200, 200); }
From source file:com.exovum.test.animation.AnimatorMenuScreen.java
License:Creative Commons License
public AnimatorMenuScreen(final Game game) { this.batch = new SpriteBatch(); this.game = game; screen = this; menuBackground = new Texture(Gdx.files.internal("beach-ocean-sea-bg/transparent-png/full_background.png")); menuMusic = Gdx.audio.newMusic(Gdx.files.internal("Carpe Diem.mp3")); stage = new Stage(new FitViewport(800, 480)); Gdx.input.setInputProcessor(stage);/*from w w w .ja v a2 s . co m*/ // Setup the UI skin. Pass the TextureAtlas too so it can find the default settings. TextureAtlas skinAtlas = new TextureAtlas(Gdx.files.internal("uiskin.atlas")); skin = new Skin(Gdx.files.internal("uiskin.json"), skinAtlas); mainTable = new Table(skin); //mainTable.defaults().expand().fill().padBottom(4f).padTop(4f); mainTable.setFillParent(true); // Add the title of the game at the top of the MenuScreen titleTable = new Table(skin); final Label titleLabel = new Label("Kordan Jirby", skin, "title"); titleLabel.setColor(Color.FIREBRICK); //titleLabel.setStyle(new Label.LabelStyle(titleFont, Color.FIREBRICK)); titleLabel.setAlignment(Align.center, Align.center); titleLabel.setPosition(stage.getWidth() / 2, stage.getHeight()); //titleLabel.setFontScale(2.0f); titleTable.defaults().expand().fill().padBottom(4f).padTop(4f); titleTable.add(titleLabel); titleTable.padBottom(10f); // Bottom/Base Table: left-child holds buttonTable for menu buttons, // right-child holds some text info ie instructions or credits baseTable = new Table(skin); baseTable.defaults().expand().fill().padBottom(10f).padTop(10f); // Add the buttons for the user to press: play, help, credits, exit TextButton playButton = new TextButton("Play Game", skin, "small-font"); TextButton helpButton = new TextButton("Instructions", skin, "small-font"); TextButton creditsButton = new TextButton("Credits", skin, "small-font"); TextButton exitButton = new TextButton("Exit", skin, "small-font"); Table buttonTable = new Table(skin); // Add the button table as the left-child to baseTable baseTable.add(buttonTable); //menuTable.setBackground("console2"); // Set the color of the BACKGROUND on the buttons Color buttonColor = Color.SKY; Gdx.app.log("AnimatorMenuScreen", "Color RGB SKY: " + Color.SKY.toString()); playButton.setColor(buttonColor); helpButton.setColor(buttonColor); creditsButton.setColor(buttonColor); exitButton.setColor(buttonColor); // Set the color of the TEXT on the buttons //buttonColor = new Color(0.845f, 0.845f, 0.845f, 1); buttonColor = new Color(0.91f, 0.91f, 0.91f, 1); playButton.getLabel().setColor(buttonColor); helpButton.getLabel().setColor(buttonColor); creditsButton.getLabel().setColor(buttonColor); exitButton.getLabel().setColor(buttonColor); buttonTable.defaults().expand().fill().padBottom(8f).padTop(2f); buttonTable.add(playButton).width(180f).height(60f).row(); buttonTable.add(helpButton).width(180f).height(60f).row(); buttonTable.add(creditsButton).width(180f).height(60f).row(); buttonTable.add(exitButton).width(180f).height(60f); buttonTable.padTop(30f).padBottom(30f); buttonTable.left(); /* Temporary removal of infoTable It was not easy for me to add hidden/new text and for the layouts to update correctly. Changing plan to create a new Screen for Credits (and instructions too). */ infoTable = new Table(skin); // = new Label("", skin, "small-font"); infoTable.setVisible(false); infoTable.defaults().expand().fill().padBottom(8f).padTop(2f); //baseTable.add(infoTable); // Add title table at the top of mainTable mainTable.add(titleTable).row(); // Add baseTable containing buttonTable to the next row of mainTable //mainTable.add(buttonTable); mainTable.add(baseTable); // Add mainTable to the stage stage.addActor(mainTable); // Event Listeners for the menu buttons playButton.addListener(new ChangeListener() { public void changed(ChangeEvent event, Actor actor) { Gdx.app.log("AnimatorMenuScreen", "Pressed playButton"); //game.setScreen(new AnimatorGameScreen(game, screen)); ((Game) Gdx.app.getApplicationListener()).setScreen(new AnimatorGameScreen(game, screen)); } }); helpButton.addListener(new ChangeListener() { public void changed(ChangeEvent event, Actor actor) { Gdx.app.log("AnimatorMenuScreen", "Pressed helpButton"); //game.setScreen(new InstructionsScreen(game, screen)); ((Game) Gdx.app.getApplicationListener()).setScreen(new InstructionsScreen(game, screen)); } }); creditsButton.addListener(new ChangeListener() { public void changed(ChangeEvent event, Actor actor) { Gdx.app.log("AnimatorMenuScreen", "Pressed creditsButton"); //game.setScreen(new CreditsScreen(game, screen)); ((Game) Gdx.app.getApplicationListener()).setScreen(new CreditsScreen(game, screen)); /* * Attempt at adding text next to the buttons. * Status: Unsuccessful. Updating the layout once adding the credits text * does not update as easily as I hoped. * Changing plan to use different Screens for Credits & Instructions. // If the table is visible and already showing credits, then 'minimize' infoTable if(infoTable.isVisible() && infoTable.getName() != null && infoTable.getName().equals("Credits")) { Gdx.app.log("AnimatorMenuScreen", "Hide the credits menu"); infoTable.setVisible(false); infoTable.clearChildren(); } else { Gdx.app.log("AnimatorMenuScreen", "Display the credits text"); // Otherwise, make the infoTable visible and set text to the credits infoTable.setVisible(true); infoTable.clearChildren(); //infoTable.center(); Label musicLabel = new Label("Music\n" + "Pixel Peeker Polka - slower Kevin MacLeod (incompetech.com)\n" + "Licensed under Creative Commons: By Attribution 3.0 License\n" + "http://creativecommons.org/licenses/by/3.0/", skin, "small-font"); musicLabel.setColor(Color.BLACK); //infoTable.addActor(musicLabel); infoTable.addActor(musicLabel); infoTable.padLeft(20f); //musicLabel.setPosition(stage.getWidth() / 2 + 50, stage.getHeight() / 2 + 100, Align.right); infoTable.defaults().expand().fill().padBottom(8f).padTop(2f); musicLabel.setWidth(200f); //musicLabel.setWrap(true); musicLabel.setAlignment(Align.center); //musicLabel.setFillParent(true); // "Invalidates this actor's layout, causing layout() to happen next time // validate() is called infoTable.invalidate(); baseTable.invalidate(); infoTable.center(); //infoTable.setFillParent(true); //titleTable.add(musicLabel); } infoTable.setName("Credits"); */ } }); exitButton.addListener(new ChangeListener() { public void changed(ChangeEvent event, Actor actor) { Gdx.app.log("AnimatorMenuScreen", "Pressed exitButton - exiting application"); Gdx.app.exit(); } }); }
From source file:com.exovum.test.animation.CreditsScreen.java
License:Creative Commons License
public CreditsScreen(final Game game, Screen parentScreen) { this.batch = new SpriteBatch(); this.game = game; this.parent = parentScreen; Gdx.app.log("CreditsScreen", "Creating CreditsScreen"); menuBackground = new Texture(Gdx.files.internal("beach-ocean-sea-bg/transparent-png/full_background.png")); stage = new Stage(new FitViewport(800, 480)); Gdx.input.setInputProcessor(stage);/* w ww .ja va 2 s.c o m*/ skin = new Skin(Gdx.files.internal("uiskin.json")); mainTable = new Table(skin); //mainTable.defaults().expand().fill().padBottom(4f).padTop(4f); mainTable.setFillParent(true); baseTable = new Table(skin); baseTable.defaults().expand().fill().padBottom(10f).padTop(10f); Label myHeader = new Label("General", skin, "small-font"); myHeader.setColor(Color.FIREBRICK); myHeader.setAlignment(Align.center); Label myCredits = new Label("Programming and Development\n" + "Caleb Stevenson", skin, "small-font"); myCredits.setColor(Color.BLACK); myCredits.setAlignment(Align.center); Label musicHeader = new Label("Music", skin, "small-font"); musicHeader.setColor(Color.FIREBRICK); musicHeader.setAlignment(Align.center); Label musicCredits = new Label("\"Capre Diem\", \"Hidden Past\", \"Pixel Peeker Polka - slower\"\n" + "Kevin MacLeod (incompetech.com)\n" + "Licensed under Creative Commons: By Attribution 3.0\n" + "http://creativecommons.org/licenses/by/3.0/", skin, "small-font"); musicCredits.setColor(Color.BLACK); musicCredits.setAlignment(Align.center); Label artHeader = new Label("Artwork", skin, "small-font"); artHeader.setColor(Color.FIREBRICK); artHeader.setAlignment(Align.center); Label artCredits = new Label("Background and Tree Sprites\n" + "http://bevouliin.com\nopengameart.org", skin, "small-font"); artCredits.setColor(Color.BLACK); artCredits.setAlignment(Align.center); TextButton exitButton = new TextButton("Back to Menu", skin, "small-font"); Table buttonTable = new Table(skin); baseTable.add(myHeader).row(); baseTable.add(myCredits).row(); baseTable.add(musicHeader).row(); baseTable.add(musicCredits).row(); baseTable.add(artHeader).row(); baseTable.add(artCredits).row(); baseTable.add(buttonTable); //menuTable.setBackground("console2"); // Set the color of the BACKGROUND on the buttons Color buttonColor = Color.SKY; exitButton.setColor(buttonColor); // Set the color of the TEXT on the buttons exitButton.getLabel().setColor(new Color(0.91f, 0.91f, 0.91f, 1)); buttonTable.defaults().expand().fill().padBottom(4f).padTop(2f); buttonTable.add(exitButton).width(180f).height(60f); //buttonTable.padTop(20f).padBottom(20f); buttonTable.left(); // Add baseTable containing buttonTable to the next row of mainTable //mainTable.add(buttonTable); mainTable.add(baseTable); // Add mainTable to the stage stage.addActor(mainTable); exitButton.addListener(new ChangeListener() { public void changed(ChangeEvent event, Actor actor) { Gdx.app.log("CreditsScreen", "Exiting to main menu"); //game.setScreen(new AnimatorMenuScreen(game)); //game.setScreen(parent); //((Game) Gdx.app.getApplicationListener()).setScreen(parent); ((Game) Gdx.app.getApplicationListener()).setScreen(new AnimatorMenuScreen(game)); } }); //Use an InputMultiplexer so that the Stage and keyDown input processors can both be used InputMultiplexer multiplexer = new InputMultiplexer(); multiplexer.addProcessor(stage); multiplexer.addProcessor(new InputAdapter() { // If the back key is pressed, go to main menu // This also handles the Android 'back' button @Override public boolean keyDown(int keycode) { if (keycode == Input.Keys.BACK) { // Handle the back button Gdx.app.log("CreditsScreen", "KeyDown: BACK pressed"); //AnimatorMenuScreen newMenu = new AnimatorMenuScreen(batch, game); //game.setScreen(newMenu); //game.setScreen(parent); //((Game) Gdx.app.getApplicationListener()).setScreen(parent); ((Game) Gdx.app.getApplicationListener()).setScreen(new AnimatorMenuScreen(game)); return true; } return false; } }); Gdx.input.setInputProcessor(multiplexer); }
From source file:com.kotcrab.vis.ui.util.TableUtils.java
License:Apache License
/** Sets default table spacing for VisUI skin. Uses values from current skin {@link Sizes} class obtained from {@link VisUI#getSizes()}. */ public static void setSpacingDefaults(Table table) { Sizes sizes = VisUI.getSizes();/*from w w w . ja va 2s . c om*/ if (sizes.spacingTop != 0) table.defaults().spaceTop(sizes.spacingTop); if (sizes.spacingBottom != 0) table.defaults().spaceBottom(sizes.spacingBottom); if (sizes.spacingRight != 0) table.defaults().spaceRight(sizes.spacingRight); if (sizes.spacingLeft != 0) table.defaults().spaceLeft(sizes.spacingLeft); }
From source file:com.packtpub.libgdx.bludbourne.screens.CreditScreen.java
public CreditScreen(BludBourne game) { _game = game;/*w w w .j a v a 2 s . com*/ _stage = new Stage(); Gdx.input.setInputProcessor(_stage); //Get text FileHandle file = Gdx.files.internal(CREDITS_PATH); String textString = file.readString(); Label text = new Label(textString, Utility.STATUSUI_SKIN, "credits"); text.setAlignment(Align.top | Align.center); text.setWrap(true); _scrollPane = new ScrollPane(text); _scrollPane.addListener(new ClickListener() { @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { return true; } @Override public void touchUp(InputEvent event, float x, float y, int pointer, int button) { _scrollPane.setScrollY(0); _scrollPane.updateVisualScroll(); _game.setScreen(_game.getScreenType(BludBourne.ScreenType.MainMenu)); } }); Table table = new Table(); table.center(); table.setFillParent(true); table.defaults().width(Gdx.graphics.getWidth()); table.add(_scrollPane); _stage.addActor(table); }
From source file:com.ray3k.skincomposer.dialog.DialogAbout.java
License:Open Source License
public DialogAbout(Main main, Skin skin, String windowStyleName) { super("", skin, windowStyleName); key(Keys.ENTER, true);/* www .java 2s . c om*/ key(Keys.ESCAPE, false); Table table = getContentTable(); table.defaults().pad(10.0f); Label label = new Label("About", skin, "title"); table.add(label); table.row(); label = new Label("Skin Composer is developed by Raeleus for the LibGDX community.\nVersion " + Main.VERSION + "\nCopyright Raymond \"Raeleus\" Buckley 2017", skin); label.setAlignment(Align.center); table.add(label).padBottom(0); table.row(); TextButton button = new TextButton("ray3k.wordpress.com/software/skin-composer-for-libgdx/", skin, "link"); button.addListener(main.getHandListener()); button.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { Gdx.net.openURI("https://ray3k.wordpress.com/software/skin-composer-for-libgdx/"); } }); table.add(button).padTop(0); button("Close"); getButtonTable().getCells().first().getActor().addListener(main.getHandListener()); getCell(getButtonTable()).padBottom(20.0f); table.setWidth(200); }