List of usage examples for com.badlogic.gdx.scenes.scene2d.ui ScrollPane layout
public void layout()
From source file:com.vlaaad.dice.ui.windows.DiceWindow.java
License:Open Source License
@Override protected void doShow(final UserData userData) { final Table items = new Table(); final ScrollPane pane = new ScrollPane(items, new ScrollPane.ScrollPaneStyle()) { @Override/*from w ww .j av a 2 s . c o m*/ public void layout() { float w = items.getPrefWidth(); float h = Math.min(getParent().getHeight(), items.getPrefHeight()); if (w != getWidth() || h != getHeight()) { setSize(w, h); invalidateHierarchy(); } super.layout(); } }; pane.setTouchable(Touchable.childrenOnly); pane.setOverscroll(false, false); pane.setCancelTouchFocus(false); pane.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { pane.layout(); pane.layout(); items.layout(); if (actor instanceof Layout) ((Layout) actor).layout(); pane.layout(); pane.layout(); pane.scrollTo(actor.getX(), actor.getY(), actor.getWidth(), actor.getHeight() + 100); } }); Iterable<Die> dice = userData.dice(); int i = 1; int count = userData.diceCount(); for (Die die : dice) { DiePane diePane = new DiePane(die, userData, diceWindowGroup); table.add(diePane); diePane.setWidth(0); diePane.pack(); diePane.setWidth(ViewController.CELL_SIZE * 6.6f); Cell cell = items.add(diePane).fillX().maxWidth(ViewController.CELL_SIZE * 6.6f); if (i != count) { cell.padBottom(-1); } cell.row(); map.put(die, diePane); diePane.info.addListener(createMinimizeListener(die, dice)); i++; } items.pack(); table.add(pane).width(items.getPrefWidth());//.size(items.getPrefWidth(), 200); }
From source file:net.noviden.towerdefense.MapEditor.MapEditorSelectorScreen.java
License:Open Source License
public MapEditorSelectorScreen(final TowerDefense towerDefense) { this.towerDefense = towerDefense; Skin skin = new Skin(Gdx.files.internal("assets/uiskin.json")); Texture texture = new Texture(Gdx.files.internal("selectedMap.png")); _selectedMapIdentifierImage = new Image(texture); stage = new Stage(); rootTable = new Table(); rootTable.setFillParent(true);/*from w ww . j a va2 s . c o m*/ Table containerTable = new Table(); _mapListTable = new Table(); updateMapList(); ScrollPane scrollPane = new ScrollPane(_mapListTable); scrollPane.layout(); scrollPane.setFadeScrollBars(false); Table operationsTable = new Table(); TextButton createButton = new TextButton("Create", skin); TextButton selectButton = new TextButton("Edit", skin); TextButton cloneButton = new TextButton("Clone", skin); TextButton deleteButton = new TextButton("Delete", skin); TextButton exitButton = new TextButton("Main Menu", skin); Label screenTitleLabel = new Label("Map Editor Browser", skin); containerTable.add(scrollPane).fillX().fillY(); operationsTable.add(screenTitleLabel).pad(5.0f); operationsTable.add(createButton).pad(5.0f); operationsTable.add(selectButton).pad(5.0f); operationsTable.add(cloneButton).pad(5.0f); operationsTable.add(deleteButton).pad(5.0f); operationsTable.add(exitButton).pad(5.0f); rootTable.add(operationsTable).expandY().top().expandX().right(); rootTable.row(); rootTable.add(containerTable).top(); rootTable.center(); stage.addActor(rootTable); Gdx.input.setInputProcessor(stage); // set up input listeners exitButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { towerDefense.setScreen(new MainMenuScreen(towerDefense)); } }); createButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { towerDefense.setScreen(new MapCreatorScreen(towerDefense)); } }); selectButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (_selectedMap != null) towerDefense.setScreen(new MapEditorScreen(towerDefense, _selectedMap)); } }); cloneButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (_selectedMap != null) { towerDefense.maps.add(_selectedMap.clone()); updateMapList(); } } }); deleteButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (_selectedMap != null) { towerDefense.maps.remove(_selectedMap); updateMapList(); _selectedMap = null; } } }); }
From source file:net.noviden.towerdefense.Screens.GameSettingsScreen.java
License:Open Source License
public GameSettingsScreen(final TowerDefense pTowerDefense) { _towerDefense = pTowerDefense;//from w w w . j a v a2 s. co m _modifiedKeyboardShortcutsMap = new HashMap<Integer, GameSettings.Actions>(); _currentlySelectedActionLabel = null; _currentlySelectedShortcut = null; _previouslySelectedKey = -1; Skin skin = new Skin(Gdx.files.internal("assets/uiskin.json")); _mainStage = new Stage(); Table rootTable = new Table(); rootTable.setFillParent(true); _mainStage.addActor(rootTable); // set up ui elements Label musicVolumeLabel = new Label("Music Volume", skin); final Slider musicVolumeSlider = new Slider(0.0f, 1.0f, 0.1f, false, skin); musicVolumeSlider.setValue(GameSettings.getMusicVolume()); Label sfxVolumeLabel = new Label("Sound Effects Volume", skin); final Slider sfxVolumeSlider = new Slider(0.0f, 1.0f, 0.1f, false, skin); sfxVolumeSlider.setValue(GameSettings.getSoundVolume()); Table volumeTable = new Table(); volumeTable.add(musicVolumeLabel); volumeTable.add(musicVolumeSlider); volumeTable.row(); volumeTable.add(sfxVolumeLabel); volumeTable.add(sfxVolumeSlider).pad(8.0f); Table keyboardShortcutsTable = new Table(); HashMap<Integer, GameSettings.Actions> currentShortcutMap = GameSettings.getShortcutMap(); // for sorting the settings on screen Collection<GameSettings.Actions> values = currentShortcutMap.values(); ArrayList<String> valueNames = new ArrayList<String>(); for (GameSettings.Actions action : values) { valueNames.add(action.toString()); } Collections.sort(valueNames); for (String s : valueNames) { final Label actionLabel = new Label(s, skin); final TextButton shortcutButton = new TextButton( Input.Keys.toString(GameSettings.getReverse(GameSettings.Actions.valueOf(s))), skin); keyboardShortcutsTable.add(actionLabel).pad(10.0f); keyboardShortcutsTable.add(shortcutButton); keyboardShortcutsTable.row(); shortcutButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (_currentlySelectedShortcut == null) { _currentlySelectedActionLabel = actionLabel; _currentlySelectedShortcut = shortcutButton; _previouslySelectedKey = Input.Keys.valueOf(shortcutButton.getText().toString()); shortcutButton.setText("Press any un-set key!"); } } }); } ScrollPane keyboardShortcutsScrollPane = new ScrollPane(keyboardShortcutsTable); keyboardShortcutsScrollPane.layout(); // add in save and exit buttons Table exitFunctionalityTable = new Table(); TextButton saveAndExitButton = new TextButton("Save and Exit", skin); TextButton exitWithoutSavingButton = new TextButton("Exit Without Saving", skin); exitFunctionalityTable.add(saveAndExitButton).pad(10.0f); exitFunctionalityTable.add(exitWithoutSavingButton); // finally, construct display table rootTable.add(volumeTable); rootTable.row(); rootTable.add(keyboardShortcutsScrollPane); rootTable.row(); rootTable.add(exitFunctionalityTable); InputMultiplexer multiplexer = new InputMultiplexer(_mainStage, new MyInputProcessor()); Gdx.input.setInputProcessor(multiplexer); // add in event listeners here exitWithoutSavingButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { _towerDefense.setScreen(new net.noviden.towerdefense.Screens.MainMenuScreen(_towerDefense)); } }); saveAndExitButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { // attempt to save settings GameSettings.setMusicVolume(musicVolumeSlider.getPercent()); GameSettings.setSoundVolume(sfxVolumeSlider.getPercent()); // save keyboard shortcuts GameSettings.putShortcuts(_modifiedKeyboardShortcutsMap); // return to main menu _towerDefense.setScreen(new net.noviden.towerdefense.Screens.MainMenuScreen(_towerDefense)); dispose(); } }); }
From source file:net.noviden.towerdefense.Screens.MapSelectorScreen.java
License:Open Source License
public MapSelectorScreen(final TowerDefense towerDefense) { this.towerDefense = towerDefense; Skin skin = new Skin(Gdx.files.internal("assets/uiskin.json")); stage = new Stage(); rootTable = new Table(); rootTable.setFillParent(true);//from w ww. j a v a 2 s .co m Table containerTable = new Table(); Table mapListTable = new Table(); for (int i = 0; i < towerDefense.maps.size(); i++) { if (i > 0 && i % 3 == 0) { mapListTable.row(); } final Map map = towerDefense.maps.get(i); ClickListener clickListener = new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { towerDefense.setScreen(new net.noviden.towerdefense.Screens.GameScreen(towerDefense, map)); } }; TextButton textButton = new TextButton(map.getName(), skin); textButton.addListener(clickListener); ImageButton imageButton = new ImageButton(MapThumbnail.createThumbnail(map, 200)); imageButton.addListener(clickListener); mapListTable.add(imageButton).pad(10.0f); } ScrollPane scrollPane = new ScrollPane(mapListTable); scrollPane.layout(); scrollPane.setFadeScrollBars(false); TextButton exitButton = new TextButton("Main Menu", skin); exitButton.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { towerDefense.setScreen(new MainMenuScreen(towerDefense)); } }); containerTable.add(scrollPane).fillX().fillY(); rootTable.add(containerTable).expandY().pad(10.0f); rootTable.row(); rootTable.add(exitButton).bottom().expandX().right().pad(8.0f); stage.addActor(rootTable); Gdx.input.setInputProcessor(stage); }