List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Container Container
public Container(T actor)
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);/* www . j a v a2 s . c om*/ 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;/*w w w.j a v a 2 s . co 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.engineeditor.ui.AssetsList.java
License:Apache License
public AssetsList(Skin skin) { super(skin);//from w w w . j a v a 2 s.c o m assetTypes = new SelectBox<String>(skin); assetTypes.setItems(ASSET_TYPES); this.skin = skin; list = new CustomList<String>(skin); Array<String> items = new Array<String>(); list.setItems(items); ScrollPane scrollPane = new ScrollPane(list, skin); container = new Container<ScrollPane>(scrollPane); container.fill(); container.prefHeight(1000); toolbar = new EditToolbar(skin); // debug(); add(assetTypes).expandX().fillX(); row(); add(toolbar).expandX().fillX(); row(); add(container).expand().fill(); toolbar.addCreateListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { create(); } }); toolbar.addEditListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { edit(); } }); toolbar.addDeleteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { delete(); } }); list.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { toolbar.disableEdit(false); } }); Ctx.project.addPropertyChangeListener(Project.NOTIFY_PROJECT_LOADED, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent arg0) { toolbar.disableCreate(Ctx.project.getProjectDir() == null); addAssets(); } }); assetTypes.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { addAssets(); } }); }
From source file:com.bladecoder.engineeditor.ui.components.EditList.java
License:Apache License
public EditList(Skin skin) { super(skin);/*from w ww.j a v a 2s . com*/ this.skin = skin; list = new CustomList<T>(skin); Array<T> items = new Array<T>(); list.setItems(items); ScrollPane scrollPane = new ScrollPane(list, skin); container = new Container<ScrollPane>(scrollPane); container.fill(); container.prefHeight(1000); toolbar = new EditToolbar(skin); // debug(); add(toolbar).expandX().fillX(); row(); add(container).expand().fill(); toolbar.addCreateListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { create(); } }); toolbar.addEditListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { edit(); } }); toolbar.addDeleteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { delete(); } }); toolbar.addCopyListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { copy(); } }); toolbar.addPasteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { paste(); } }); list.addListener(new InputListener() { @Override public void enter(InputEvent event, float x, float y, int pointer, com.badlogic.gdx.scenes.scene2d.Actor fromActor) { // EditorLogger.debug("ENTER - X: " + x + " Y: " + y); getStage().setScrollFocus(list); } }); }
From source file:com.bladecoder.engineeditor.ui.components.EditTree.java
License:Apache License
public EditTree(Skin skin) { super(skin);/*w w w . j a v a 2s. co m*/ this.skin = skin; upBtn = new ImageButton(skin); downBtn = new ImageButton(skin); leftBtn = new ImageButton(skin); rightBtn = new ImageButton(skin); tree = new Tree(skin); ScrollPane scrollPane = new ScrollPane(tree, skin); container = new Container<ScrollPane>(scrollPane); container.fill(); container.prefHeight(1000); toolbar = new EditToolbar(skin); // debug(); add(toolbar).expandX().fillX(); row().fill(); add(container).expandY().fill(); toolbar.addToolBarButton(upBtn, "ic_up", "Move up", "Move up"); toolbar.addToolBarButton(downBtn, "ic_down", "Move down", "Move down"); toolbar.addToolBarButton(leftBtn, "ic_left", "Child", "Move to child option"); toolbar.addToolBarButton(rightBtn, "ic_right", "Parent", "Move to parent option"); toolbar.addCreateListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { create(); } }); toolbar.addEditListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { edit(); } }); toolbar.addDeleteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { delete(); } }); toolbar.addCopyListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { copy(); } }); toolbar.addPasteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { paste(); } }); upBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { upNode(); } }); downBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { downNode(); } }); leftBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { leftNode(); } }); rightBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { rightNode(); } }); tree.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Selection<Node> selection = tree.getSelection(); if (selection.isEmpty()) { upBtn.setDisabled(true); downBtn.setDisabled(true); leftBtn.setDisabled(true); rightBtn.setDisabled(true); } else { Node nodeSel = selection.first(); int level = nodeSel.getLevel(); Array<Node> siblings = getSiblings(); upBtn.setDisabled(siblings.get(0) == nodeSel); downBtn.setDisabled(siblings.get(siblings.size - 1) == nodeSel); leftBtn.setDisabled(level == 1); rightBtn.setDisabled(siblings.get(0) == nodeSel); } toolbar.disableEdit(selection == null); } }); }
From source file:com.bladecoder.engineeditor.ui.EditSceneDialog.java
License:Apache License
@SuppressWarnings("unchecked") public EditSceneDialog(Skin skin, World parent, Scene e) { super(skin);/*from ww w . j av a 2s . c o m*/ id = InputPanelFactory.createInputPanel(skin, "Scene ID", "The ID is mandatory for scenes. \nIDs can not contain '.' or '_' characters.", true); backgroundAtlas = InputPanelFactory.createInputPanel(skin, "Background Atlas", "The atlas where the background for the scene is located", atlasList, false); backgroundRegion = InputPanelFactory.createInputPanel(skin, "Background Region Id", "The region id for the background.", new String[0], false); depthVector = InputPanelFactory.createInputPanel(skin, "Depth Vector", "X: the actor 'y' position for a 0.0 scale, Y: the actor 'y' position for a 1.0 scale.", Param.Type.VECTOR2, false); state = InputPanelFactory.createInputPanel(skin, "State", "The initial state for the scene.", false); music = InputPanelFactory.createInputPanel(skin, "Music Filename", "The music for the scene", musicList, false); loopMusic = InputPanelFactory.createInputPanel(skin, "Loop Music", "If the music is playing in looping", Param.Type.BOOLEAN, false); initialMusicDelay = InputPanelFactory.createInputPanel(skin, "Initial music delay", "The time to wait before playing", Param.Type.FLOAT, true, "0"); repeatMusicDelay = InputPanelFactory.createInputPanel(skin, "Repeat music delay", "The time to wait before repetitions", Param.Type.FLOAT, true, "0"); sceneSize = InputPanelFactory.createInputPanel(skin, "Scene Dimension", "Sets the size of the scene. If empty, the background image size is used as the scene dimension.", Param.Type.DIMENSION, false); bgImage = new Image(); bgImage.setScaling(Scaling.fit); infoContainer = new Container<Image>(bgImage); setInfo(INFO); ((SelectBox<String>) backgroundAtlas.getField()).addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { try { fillBGRegions(backgroundAtlas, backgroundRegion); } catch (Exception e) { Message.showMsg(getStage(), "Error loading regions from selected atlas", 4); } } }); ((SelectBox<String>) backgroundRegion.getField()).addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { showBgImage(backgroundRegion.getText()); } }); try { fillBGRegions(backgroundAtlas, backgroundRegion); } catch (Exception e2) { EditorLogger.error("Error loading regions from selected atlas"); } init(parent, e, new InputPanel[] { id, backgroundAtlas, backgroundRegion, depthVector, state, sceneSize, music, loopMusic, initialMusicDelay, repeatMusicDelay }); }
From source file:com.forerunnergames.peril.client.ui.screens.menus.MenuScreenWidgetFactory.java
License:Open Source License
public ImageTextButton createMenuChoice(final String choiceText, final EventListener listener) { Arguments.checkIsNotNullOrEmptyOrBlank(choiceText, "choiceText"); Arguments.checkIsNotNull(listener, "listener"); final ImageTextButton menuChoiceButton = new ImageTextButton(choiceText, createMenuChoiceStyle()); final Stack singlePlayerButtonStack = new Stack(); singlePlayerButtonStack.add(new Container<>(menuChoiceButton.getLabel()).left().padLeft(60)); singlePlayerButtonStack.add(menuChoiceButton.getImage()); menuChoiceButton.clearChildren();// ww w .j a va2 s. com menuChoiceButton.add(singlePlayerButtonStack).fill().expand(); menuChoiceButton.addListener(listener); return menuChoiceButton; }
From source file:com.gdx.extension.ui.Console.java
License:Apache License
/** * Create a console with specified style. * //from ww w. ja v a 2 s . com * @param maxEntries the max lines to display in the console * @param style the style to use */ public Console(int maxEntries, ConsoleStyle style) { this.maxEntries = maxEntries; this.style = style; commandsHistory = new Array<String>(); commands = new ObjectMap<String, Command>(); body = new VerticalGroup(); body.left(); consoleContainer = new Container<VerticalGroup>(body); consoleContainer.setBackground(style.consoleBackground); consoleContainer.left().top(); consoleContainer.pad(10f); consoleScroll = new ScrollPane(consoleContainer); consoleScroll.setScrollingDisabled(true, false); consoleScroll.setFlickScroll(false); textfield = new TextField("", style.textfieldStyle); textfield.addCaptureListener(new InputListener() { @Override public boolean keyDown(InputEvent event, int keycode) { switch (keycode) { case Keys.ENTER: String _inputs = textfield.getText(); if (_inputs.length() > 0) { textfield.setText(""); String[] _split = _inputs.split(" "); if (_split.length == 0) { break; } if (commandsHistory.size == 0 || !(commandsHistory.peek().equals(_inputs))) { commandsHistory.add(_inputs); } currentHistory = commandsHistory.size; Command _commandAction = commands.get(_split[0]); if (_commandAction == null) { addEntry("Command " + _split[0] + " not found"); } else { String[] _args = null; if (_split.length > 1) { _args = Arrays.copyOfRange(_split, 1, _split.length); } _commandAction.executeInternal(Console.this, _args); } } break; case Keys.UP: if (currentHistory > 0) { currentHistory--; String _historyCmd = commandsHistory.get(currentHistory); textfield.setText(_historyCmd); textfield.setCursorPosition(_historyCmd.length()); } break; case Keys.DOWN: if (currentHistory < commandsHistory.size - 1) { currentHistory++; String _historyCmd = commandsHistory.get(currentHistory); textfield.setText(_historyCmd); textfield.setCursorPosition(_historyCmd.length()); } break; default: return false; } return true; } }); add(consoleScroll).expand().fill().row(); add(textfield).fillX(); }
From source file:com.vlaaad.dice.ui.windows.DieSettingsWindow.java
License:Open Source License
@Override protected void doShow(final Params params) { Table content = new Table(Config.skin); content.setBackground("ui-store-window-background"); content.defaults().pad(4);// w ww. j ava2 s . c o m content.setTouchable(Touchable.enabled); final LocLabel infoLabel = new LocLabel( "ui-renames-left", Thesaurus.params().with("count", String.valueOf(params.die.renames)) .with("free-renames", "free-renames." + Thesaurus.Util.countForm(params.die.renames)), StoreWindow.INACTIVE); infoLabel.setWrap(true); infoLabel.setAlignment(Align.center); final StringSpin nameSpin = new StringSpin(4, 10, Config.thesaurus.localize(params.die.nameLocKey())); Container inner = new Container(nameSpin); inner.padTop(3); final Container nameContainer = new Container(inner); nameContainer.setBackground(Config.skin.getDrawable("ui/button/name-change-background")); final Button changeNameButton = new Button(Config.skin); final Thesaurus thesaurus = Config.assetManager.get("names.yml", Thesaurus.class); final Array<ThesaurusData> values = thesaurus.values(); final Item coin = Config.items.get("coin"); updateChangeNameButton(changeNameButton, params); changeNameButton.addListener(new ChangeListener() { @SuppressWarnings("unchecked") @Override public void changed(ChangeEvent event, Actor actor) { ObjectSet<ThesaurusData> existingNames = Pools.obtain(ObjectSet.class); for (Die die : params.userData.dice()) { existingNames.add(thesaurus.getData(die.name.toLowerCase())); } ThesaurusData newName = values.random(); while (existingNames.contains(newName)) { newName = values.random(); } existingNames.clear(); Pools.free(existingNames); final ThesaurusData chosenName = newName; changeNameButton.setDisabled(true); nameSpin.setText(Config.thesaurus.localize(newName.key), new Runnable() { @Override public void run() { params.die.name = chosenName.key; if (params.die.renames > 0) { params.die.renames -= 1; infoLabel.setParams(Thesaurus.params().with("count", String.valueOf(params.die.renames)) .with("free-renames", "free-renames." + Thesaurus.Util.countForm(params.die.renames))); } else { params.userData.incrementItemCount(coin, -1); } updateChangeNameButton(changeNameButton, params); fire(RefreshEvent.INSTANCE); } }); } }); content.add(new LocLabel("ui-select-die-name")).row(); content.add(new Tile("ui-creature-info-line")).width(80).padTop(0).row(); content.add(nameContainer).size(70, 21).row(); content.add(changeNameButton).size(100, 21).padBottom(0).row(); content.add(infoLabel).width(110).row(); table.add(content); }
From source file:com.vlaaad.dice.ui.windows.PotionsWindow.java
License:Open Source License
@Override protected void initialize() { Table content = new Table(Config.skin); content.setBackground("ui-creature-info-background"); content.setTouchable(Touchable.enabled); content.defaults().pad(2);//from w w w .j a v a 2s. c om Array<Ability> potions = new Array<Ability>(); for (Ability ability : Config.abilities.byType(Ability.Type.potion)) { potions.add(ability); } potions.sort(Ability.COST_COMPARATOR); potionsList = new Table(); Image selection = new Image(Config.skin.getDrawable("selection/turn")); potionsList.addActor(selection); potionName = new LocLabel(""); potionDescription = new LocLabel(""); potionDescription.setAlignment(Align.center | Align.top); potionDescription.setWrap(true); ingredientsTable = new Table(Config.skin); ingredientsTable.defaults().pad(2); Table viewRow = new Table(); potionsList.add(viewRow).row(); viewRow.defaults().pad(2); int i = 0; ActorGestureListener l = null; for (Ability ability : potions) { AbilityIconCounter icon = new AbilityIconCounter(ability, 0); icon.image.setOrigin(icon.image.getWidth() / 2, icon.image.getHeight() / 2); potionIcons.put(ability, icon); ActorGestureListener listener = createPotionTapListener(icon, ability, selection, potionsList, potionName, potionDescription, ingredientsTable); if (l == null) { l = listener; } iconListeners.put(ability, listener); icon.addListener(listener); i++; viewRow.add(icon); if (i % 5 == 0) { viewRow = new Table(); viewRow.defaults().pad(2); potionsList.add(viewRow).row(); } } craftingPane = new CraftingPane(3, potions); Table craftTable = new Table(Config.skin); craftTable.setBackground("ui-craft-content"); craftTable.defaults().pad(4); craftTable.add(craftingPane).row(); craftTable.add(ingredientsContainer).row(); content.add(potionsList).row(); content.add(new Tile("ui-creature-info-line")).size(80, 1).row(); content.add(potionName).row(); content.add(ingredientsTable).padTop(5).padBottom(1).row(); content.add(potionDescription).size(130, 48).row(); content.add(craftTable).expandX().fillX().pad(-2).row(); Container contentContainer = new Container(content); contentContainer.width(content.getPrefWidth()); scrollPane = new ScrollPane(contentContainer); scrollPane.setOverscroll(false, false); scrollPane.setCancelTouchFocus(false); table.add(scrollPane).width(contentContainer.getMaxWidth()); if (l != null) { table.invalidate(); table.validate(); l.tap(null, 0, 0, 0, 0); } }