List of usage examples for com.badlogic.gdx.scenes.scene2d.ui ScrollPane setScrollingDisabled
public void setScrollingDisabled(boolean x, boolean y)
From source file:es.eucm.ead.mockup.core.control.screens.gallery.SceneGallery.java
License:Open Source License
@Override public void create() { setPreviousScreen(Screens.PROJECT_MENU); navigationGroup = UIAssets.getNavigationGroup(); super.root = new Group(); root.setVisible(false);/*from ww w. j a v a 2 s .c o m*/ topToolbar = new ToolBar(skin); ToolBar bottomToolBar = new ToolBar(skin); topToolbar.right(); String search = "Buscar por ...";// TODO use i18n! TextField searchtf = new TextField("", skin); searchtf.setMessageText(search); searchtf.setMaxLength(search.length()); String[] orders = new String[] { "Ordenar por ...", "nombre A-Z", "nombre Z-A", "ms recientes", "menos recientes" };// TODO use // i18n! SelectBox order = new SelectBox(orders, skin); /* filter panel */ Button applyFilter = new TextButton("Filtrar", skin); CheckBox[] tags = new CheckBox[] { new CheckBox("Almohada", skin), new CheckBox("Camilla", skin), new CheckBox("Doctor", skin), new CheckBox("Enfermera", skin), new CheckBox("Guantes", skin), new CheckBox("Habitacin", skin), new CheckBox("Hospital", skin), new CheckBox("Quirfano", skin), new CheckBox("Medicamentos", skin), new CheckBox("Mdico", skin), new CheckBox("Paciente", skin), new CheckBox("Vehculo", skin) }; Table tagList = new Table(skin); tagList.left(); tagList.defaults().left(); for (int i = 0; i < tags.length; ++i) { tagList.add(tags[i]); if (i < tags.length - 1) tagList.row(); } ScrollPane tagScroll = new ScrollPane(tagList, skin, "opaque"); final Panel filterPanel = new Panel(skin); filterPanel.setVisible(false); final float panelw = stagew * .26f, panelx = stagew - panelw; filterPanel.add(tagScroll).fill().colspan(3).left(); filterPanel.row(); filterPanel.add(applyFilter).colspan(3).expandX(); filterPanel.setBounds(panelx, topToolbar.getHeight(), panelw, stageh - topToolbar.getHeight() * 2f); Button filterButton = new TextButton("Filtrar por tags", skin); ClickListener closeFilterListenerTmp = new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (filterPanel.isVisible()) { mockupController.hide(filterPanel); } else { mockupController.show(filterPanel); } } }; applyFilter.addListener(closeFilterListenerTmp); filterButton.addListener(closeFilterListenerTmp); name = new Label("Galera de escenas", skin); topToolbar.add(name).expandX().left().padLeft(UIAssets.NAVIGATION_BUTTON_WIDTH_HEIGHT * 1.1f); topToolbar.add(order); topToolbar.add(filterButton); topToolbar.add(searchtf).width(skin.getFont("default-font").getBounds(search).width + 50); // FIXME // hardcoded // fixed // value /***/ final int COLS = 4, ROWS = 6; gridPanel = new GalleryGrid<Actor>(skin, ROWS, COLS, root, new ToolBar[] { topToolbar, bottomToolBar }) { @Override protected void entityClicked(InputEvent event) { Actor target = event.getTarget(); if (target instanceof Image) { if (ProjectMenu.getFROM_INITIAL_SCENE()) { exitAnimation(Screens.PROJECT_MENU); } else { SceneEdition.setSCENE_INDEX((Integer) target.getUserObject()); exitAnimation(Screens.SCENE_EDITION); } } else if (target instanceof Label) { SceneEdition.setSCENE_INDEX(null); exitAnimation(Screens.SCENE_EDITION); } } }; boolean first = true; for (int i = 0; i < ROWS; ++i) { for (int j = 0; j < COLS; ++j) { if (first) { first = false; gridPanel.addItem(new TextButton("Imagen en blanco", skin), 0, 0).fill(); } else { int rand = MathUtils.random(Loading.demoScenesThumbnail.length - 1); GalleryEntity auxImg = new GalleryEntity(Loading.demoScenesThumbnail[rand]); auxImg.setUserObject(Integer.valueOf(rand)); gridPanel.addItem(auxImg, i, j); } } } ScrollPane scrollPane = new ScrollPane(gridPanel); scrollPane.setScrollingDisabled(true, false); scrollPane.setBounds(0, topToolbar.getHeight(), stagew, stageh - 2 * topToolbar.getHeight()); final float DEFAULT_ICON_LABEL_SPACE = 10f; final Button picButton = new Button(skin); picButton.defaults().space(DEFAULT_ICON_LABEL_SPACE); Label picLabel = new Label("Nuevo desde cmara", skin); Image picImage = new Image(skin.getDrawable("ic_photocamera")); picButton.add(picImage); picButton.add(picLabel); final Button vidButton = new Button(skin); vidButton.defaults().space(DEFAULT_ICON_LABEL_SPACE); Label vidLabel = new Label("Grabar desde Escena", skin); Image vidImage = new Image(skin.getDrawable("ic_videocamera")); vidButton.add(vidImage); vidButton.add(vidLabel); ClickListener mTransitionLIstener = new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { final Screens next = getNextScreen(event.getListenerActor()); if (next == null) { return; } exitAnimation(next); } private Screens getNextScreen(Actor target) { Screens next = null; if (target == picButton) { next = Screens.PICTURE; } else if (target == vidButton) { next = Screens.RECORDING; } return next; } }; picButton.addListener(mTransitionLIstener); vidButton.addListener(mTransitionLIstener); bottomToolBar.setY(0); bottomToolBar.add(picButton).expandX().left(); bottomToolBar.add(vidButton).expandX().right(); root.addActor(topToolbar); root.addActor(bottomToolBar); root.addActor(scrollPane); root.addActor(filterPanel); stage.addActor(root); }
From source file:es.eucm.ead.mockup.core.control.screens.menu.MainMenu.java
License:Open Source License
@Override public void create() { this.optionsGroup = UIAssets.getOptionsGroup(); super.root = new Group(); root.setVisible(false);//from www. j a va 2s .c o m final Button newProject, projectGallery; newProject = new MenuButton("Nuevo\nproyecto", skin, "ic_newproject", MAIN_MENU_BUTTON_WIDTH_HEIGHT, MAIN_MENU_BUTTON_WIDTH_HEIGHT);// TODO // use // i18n // in // this // class projectGallery = new MenuButton("Galera de\nproyectos", skin, "ic_gallery", MAIN_MENU_BUTTON_WIDTH_HEIGHT, MAIN_MENU_BUTTON_WIDTH_HEIGHT);// TODO use i18n in this class CircularGroup cg = new CircularGroup(halfstageh, 135, 180, true, newProject, projectGallery); cg.setX(halfstagew); cg.setY(halfstageh); // Scan for aviable projects here... Table projectsTable = new Table(); // projectsTable.debug(); projectsTable.defaults().space(10); ScrollPane sp = new ScrollPane(projectsTable); sp.setBounds(stagew * .1f, 10, stagew * .8f, stageh * .2f); sp.setScrollingDisabled(false, true); Texture t = am.get("mockup/temp/proyecto.png", Texture.class); t.setFilter(TextureFilter.Linear, TextureFilter.Linear); final int PROJECTS = 8; final Array<Actor> mProjects = new Array<Actor>(false, PROJECTS); // Creating the transition listener ClickListener mTransitionListener = new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { final Screens next = getNextScreen(event.getListenerActor()); if (next == null) { return; } exitAnimation(next); } private Screens getNextScreen(Actor target) { Screens next = null; if (target == newProject) { next = Screens.PROJECT_MENU; } else if (target == projectGallery) { next = Screens.PROJECT_GALLERY; } else { for (Actor project : mProjects) { if (target == project) { next = Screens.PROJECT_MENU; } } } return next; } }; for (int i = 0; i < PROJECTS; ++i) { Image im = new Image(t); im.addListener(mTransitionListener); projectsTable.add(im); mProjects.add(im); } newProject.addListener(mTransitionListener); projectGallery.addListener(mTransitionListener); Image bg = new Image(skin.getRegion("bg")); bg.setTouchable(Touchable.disabled); bg.setBounds(0, 0, stagew, stageh); root.addActor(bg); root.addActor(sp); root.addActor(cg); Table topName = new Table(skin); topName.setBounds(0, stageh - UIAssets.TOOLBAR_HEIGHT, stagew, UIAssets.TOOLBAR_HEIGHT); topName.left(); topName.add("Men principal").padLeft(10f); root.addActor(topName); stage.addActor(root); exitDialog = new Dialog("Salir?", skin, "exit-dialog") { protected void result(Object object) { if ((Boolean) object) { Gdx.app.exit(); } } }.text("Ests seguro?").button("Todava no!", false).button("Salir", true).key(Keys.ENTER, true); // TODO use i18n exitDialog.setMovable(false); exitDialog.padLeft(DEFAULT_DIALOG_PADDING_BOTTON_TOP); exitDialog.padRight(DEFAULT_DIALOG_PADDING_BOTTON_TOP); }
From source file:es.eucm.ead.mockup.core.view.ui.components.edition.ActionsTable.java
License:Open Source License
public ActionsTable(Skin s, final Panel parent, FlagPanel f) { super(s);// w w w. j a va 2 s .co m fPanel = f; top = new Table(s); bot = new Table(s); this.skin = s; final String[] pos = { "Activo", "Inactivo" }; top.defaults().pad(10); FlagButton flag = new FlagButton(skin, fPanel); top.add(new CheckBox("DAR", s)); top.add(" a "); top.add(new TextButton("Elemento", skin)); top.add(" cambia si "); top.add(flag.getFlag()); top.add(new SelectBox(pos, skin)); ScrollPane sp = new ScrollPane(top, skin); sp.setupFadeScrollBars(0f, 0f); sp.setScrollingDisabled(true, false); TextButton accept = new TextButton("Aceptar", skin); TextButton newAct = new TextButton("Nueva accin", skin); bot.row(); bot.add(accept).expandX().left(); bot.add(newAct).expandX().right(); accept.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { event.cancel(); AbstractScreen.mockupController.hide(parent); } }); newAct.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { event.cancel(); //add new action } }); this.add(sp).expand().fill(); this.row(); this.add(bot).expandX().fill().bottom(); top.debug(); this.debug(); }
From source file:es.eucm.ead.mockup.core.view.ui.components.edition.FlagPanel.java
License:Open Source License
public FlagPanel(Skin skin) { super(skin);// w w w .j av a 2 s .com setHeight(600); setWidth(600); setVisible(false); setModal(false); setColor(Color.DARK_GRAY); Table top = new Table(skin); Table bot = new Table(skin); top.defaults().pad(20); top.add("Panel de flags, selecciona uno").expandX().fill().center().top(); top.row(); top.add(new TextButton("Flag1", skin)).expandX().fill(); top.add(new TextButton("LuzSala1", skin)).expandX().fill(); top.add(new TextButton("LuzSala2", skin)).expandX().fill(); top.row(); top.add(new TextButton("Flag2", skin)).expandX().fill(); top.add(new TextButton("Puerta1", skin)).expandX().fill(); ScrollPane sp = new ScrollPane(top, skin); sp.setupFadeScrollBars(0f, 0f); sp.setScrollingDisabled(true, false); TextButton accept = new TextButton("Aceptar", skin); TextButton newAct = new TextButton("Nuevo FLAG", skin); bot.row(); bot.add(accept).expandX().fill().left(); bot.add(newAct).expandX().fill().right(); this.add(top).expandY(); this.row(); this.add(bot); }
From source file:es.eucm.ead.mockup.core.view.ui.components.edition.GeneralTable.java
License:Open Source License
public GeneralTable(Skin s, final Panel parent, FlagPanel f) { super(s);/*w w w . j a va2 s .c om*/ fPanel = f; top = new Table(s); bot = new Table(s); this.skin = s; top.defaults().pad(10); top.add("Elemento solo visible si:").expandX().left().padLeft(50); top.row(); ScrollPane sp = new ScrollPane(top); sp.setScrollingDisabled(true, false); TextButton accept = new TextButton("Aceptar", skin); TextButton newAct = new TextButton("Nueva condicin", skin); bot.row(); bot.add(accept).expandX().left(); bot.add(newAct).expandX().right(); accept.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { event.cancel(); AbstractScreen.mockupController.hide(parent); } }); newAct.addListener(new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { event.cancel(); top.add(new FragTableVisible(skin, fPanel)).expandX().fill(); } }); this.add(sp).expand().fill(); this.row(); this.add(bot).expandX().fill().bottom(); top.debug(); this.debug(); }
From source file:es.eucm.ead.mockup.core.view.ui.components.OptionsPanel.java
License:Open Source License
public OptionsPanel(Skin skin, String styleName) { super(skin, styleName); this.x = AbstractScreen.stagew * .64f; this.y = UIAssets.OPTIONS_BUTTON_WIDTH_HEIGHT; setBounds(AbstractScreen.stagew, y, (AbstractScreen.stagew - y) - x, AbstractScreen.stageh - y * 2); setVisible(false);/*from w w w . j a v a 2s . co m*/ setModal(true); Label cbs1 = new Label("SKINS", skin); String skinStyle = "default-radio", line = "- - - - - - - - - - - - -"; CheckBox cbs2 = new CheckBox("Skin predefinido", skin, skinStyle); cbs2.setChecked(true); CheckBox cbs3 = new CheckBox("Skin divertido", skin, skinStyle); CheckBox cbs4 = new CheckBox("Skin serio", skin, skinStyle); CheckBox cbs5 = new CheckBox("Skin profesional", skin, skinStyle); Label cbs6 = new Label(line, skin); Label cbs7 = new Label("IDIOMAS", skin); CheckBox cbs8 = new CheckBox("ES/Espaol", skin, skinStyle); cbs8.setChecked(true); CheckBox cbs9 = new CheckBox("EN/Ingls", skin, skinStyle); CheckBox cbs10 = new CheckBox("FR/Francs", skin, skinStyle); Label cbs11 = new Label(line, skin); CheckBox cbs12 = new CheckBox("Mostrar ltimos\nproyectos editados", skin, skinStyle); cbs12.setChecked(true); new ButtonGroup(cbs2, cbs3, cbs4, cbs5); new ButtonGroup(cbs8, cbs9, cbs10); Table t = new Table(); t.padTop(DEFAULT_PAD_BOTTON_AND_TOP); t.padBottom(DEFAULT_PAD_BOTTON_AND_TOP); ScrollPane sp = new ScrollPane(t, skin); sp.setupFadeScrollBars(0f, 0f); sp.setScrollingDisabled(true, false); t.add(cbs1); t.row(); t.add(cbs2).left(); t.row(); t.add(cbs3).left(); t.row(); t.add(cbs4).left(); t.row(); t.add(cbs5).left(); t.row(); t.add(cbs6); t.row(); t.add(cbs7); t.row(); t.add(cbs8).left(); t.row(); t.add(cbs9).left(); t.row(); t.add(cbs10).left(); t.row(); t.add(cbs11); t.row(); t.add(cbs12).left(); add(sp); }
From source file:io.piotrjastrzebski.sfg.screen.CustomDifficultyScreen.java
License:Open Source License
private Table createTabs() { buttons = new Table(); buttonGroup = new ButtonGroup(); stack = new Stack(); tabs = new ArrayMap<String, Tab>(); addTab(TAB_1, Config.Difficulty.CUSTOM_1); addTab(TAB_2, Config.Difficulty.CUSTOM_2); addTab(TAB_3, Config.Difficulty.CUSTOM_3); showTab(TAB_1);//from w w w . j a va2s . c o m final Table table = new Table(); table.add(buttons).pad(0, 10, 10, 10); table.row(); final ScrollPane scrollPane = new ScrollPane(stack); // so sliders sort of work scrollPane.setCancelTouchFocus(false); scrollPane.setScrollingDisabled(true, false); table.add(scrollPane).expand().fill(); // table.debug(); return table; }
From source file:mobi.shad.s3lib.gui.widget.ScrollBoxImageButton.java
License:Apache License
/** * @return/*from www . j a v a 2 s. com*/ */ public Table getTable() { Gui gui = new Gui(); buttonAct = new Vector<Button>(); gui.row(); int j = 0; boolean newRow = false; for (int i = 0; i < items.size(); i++) { newRow = false; if (j > buttonX) { newRow = true; j = 0; } Button addImgButton = gui.addImgButton(items.get(i), this, "buttonIdx", i, newRow, 1, true, buttonSize, "btn" + this.toString(), localChangeListener); if (i == value) { addImgButton.setChecked(true); } buttonAct.add(i, addImgButton); j++; } Table table = gui.getTable(); ScrollPane scrollPane = GuiResource.scrollPane(table, "scroll"); scrollPane.setFadeScrollBars(true); scrollPane.setClamp(true); scrollPane.setFlickScroll(true); scrollPane.setScrollingDisabled(true, false); window = GuiResource.table("window"); window.row(); window.add(scrollPane).width(width).height(height); window.row(); return window; }
From source file:mobi.shad.s3lib.gui.widget.ScrollImageButton.java
License:Apache License
/** * //from ww w . j a va 2 s . c o m * @return */ public Table getTable() { Gui gui = new Gui(); buttonAct = new Vector<Button>(); gui.row(); for (int i = 0; i < items.size(); i++) { Button addImgButton = gui.addImgButton(items.get(i), this, "buttonIdx", i, vertical, 1, true, buttonSize, "btn" + this.toString(), changeListener); if (i == value) { addImgButton.setChecked(true); } buttonAct.add(i, addImgButton); } if (!vertical) { gui.row(); gui.addLabel("", true, items.size()); } Table table = gui.getTable(); table.row(); table.add(" ").colspan(items.size()); ScrollPane scrollPane = GuiResource.scrollPane(table, "scroll"); scrollPane.setFadeScrollBars(true); scrollPane.setClamp(true); scrollPane.setFlickScroll(true); if (!vertical) { scrollPane.setScrollingDisabled(false, true); } else { scrollPane.setScrollingDisabled(true, false); } window = GuiResource.table("window"); window.row(); window.add(scrollPane); window.row(); return window; }
From source file:net.spookygames.gdx.sfx.demo.GdxSfxDemo.java
License:Open Source License
@Override public void create() { /******************/ /* Initialization */ /******************/ prefs = Gdx.app.getPreferences("GdxSfxDemo"); batch = new SpriteBatch(); Camera camera = new OrthographicCamera(); FileHandleResolver resolver = new AbsoluteFileHandleResolver(); assetManager = new AssetManager(resolver); assetManager.setLoader(SfxMusic.class, new SfxMusicLoader(resolver)); skin = new Skin(Gdx.files.internal("skin/uiskin.json")); player = new SfxMusicPlayer(); /************/ /* Playlist */ /************/ final VerticalGroup playlistGroup = new VerticalGroup(); playlistGroup.fill().left();/* w w w . j a v a 2 s . c o m*/ final Label invitationLabel = new Label("Add some music and let's have fun", skin, "subtitle"); invitationLabel.setAlignment(Align.center); ScrollPane scrollablePlaylistTable = new ScrollPane(playlistGroup, skin); scrollablePlaylistTable.setScrollingDisabled(true, false); playlistGroup.addActor(invitationLabel); /********/ /* File */ /********/ Button fileFinder = new TextButton("Add music", skin, "round"); fileFinder.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { NativeFileChooserConfiguration conf = new NativeFileChooserConfiguration(); conf.directory = Gdx.files.absolute(prefs.getString("last", Gdx.files.isExternalStorageAvailable() ? Gdx.files.getExternalStoragePath() : (Gdx.files.isLocalStorageAvailable() ? Gdx.files.getLocalStoragePath() : System.getProperty("user.home")))); conf.nameFilter = new FilenameFilter() { final String[] extensions = { "wav", "mp3", "ogg" }; @Override public boolean accept(File dir, String name) { int i = name.lastIndexOf('.'); if (i > 0 && i < name.length() - 1) { String desiredExtension = name.substring(i + 1).toLowerCase(Locale.ENGLISH); for (String extension : extensions) { if (desiredExtension.equals(extension)) { return true; } } } return false; } }; conf.mimeFilter = "audio/*"; conf.title = "Choose audio file"; fileChooser.chooseFile(conf, new NativeFileChooserCallback() { @Override public void onFileChosen(FileHandle file) { if (file == null) return; prefs.putString("last", file.parent().file().getAbsolutePath()); MusicParameters parameters = new MusicParameters(); parameters.title = file.name(); parameters.loadedCallback = new LoadedCallback() { @Override public void finishedLoading(AssetManager assetManager, String fileName, @SuppressWarnings("rawtypes") Class type) { final SfxMusic music = assetManager.get(fileName, SfxMusic.class); if (player.addToPlaylist(music)) { final MusicWidget widget = new MusicWidget(skin, music); playlistGroup.addActor(widget); widget.removeButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (player.removeFromPlaylist(music)) widget.remove(); } }); } } }; assetManager.load(new AssetDescriptor<SfxMusic>(file, SfxMusic.class, parameters)); } @Override public void onCancellation() { } @Override public void onError(Exception exception) { } }); } }); /***********/ /* Control */ /***********/ Table controlTable = new Table(skin); final Button playPauseButton = new Button(skin, "music"); playPauseButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (playPauseButton.isChecked()) { player.play(); } else { player.pause(); } } }); Button previousButton = new Button(skin, "left"); previousButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.previous(); } }); Button nextButton = new Button(skin, "right"); nextButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.next(); } }); final Button muteButton = new Button(skin, "sound"); muteButton.setChecked(true); muteButton.addListener(new ChangeListener() { float formerVolume = player.getVolume(); @Override public void changed(ChangeEvent event, Actor actor) { float newVolume; if (muteButton.isChecked()) { // Un-mute newVolume = formerVolume; } else { // Mute formerVolume = player.getVolume(); newVolume = 0f; } player.setVolume(newVolume); } }); final Slider panSlider = new Slider(-1f, 1f, 0.02f, false, skin); panSlider.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setPan(panSlider.getValue()); } }); panSlider.setValue(player.getPan()); final Slider volumeSlider = new Slider(0f, 1f, 0.01f, false, skin); volumeSlider.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { muteButton.setChecked(true); player.setVolume(volumeSlider.getValue()); } }); volumeSlider.setValue(player.getVolume()); final CheckBox shuffleCheckBox = new CheckBox("Shuffle", skin, "switch"); shuffleCheckBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setShuffleEnabled(shuffleCheckBox.isChecked()); } }); shuffleCheckBox.setChecked(player.isShuffleEnabled()); final CheckBox repeatCheckBox = new CheckBox("Repeat", skin, "switch"); repeatCheckBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setRepeatEnabled(repeatCheckBox.isChecked()); } }); repeatCheckBox.setChecked(player.isRepeatEnabled()); final Table fadeTable = new Table(skin); final Label fadeDurationLabel = new Label("0.0s", skin); final Slider fadeDurationSlider = new Slider(0.1f, 5f, 0.1f, false, skin); fadeDurationSlider.addListener(new ChangeListener() { String format = "%.1fs"; @Override public void changed(ChangeEvent event, Actor actor) { float value = fadeDurationSlider.getValue(); player.setFadeDuration(value); fadeDurationLabel.setText(String.format(format, value)); } }); fadeDurationSlider.setValue(player.getFadeDuration()); final SelectBox<String> fadeInterpolationSelectBox = new SelectBox<String>(skin); final ObjectMap<String, Interpolation> interpolations = new ObjectMap<String, Interpolation>(); interpolations.put("Linear", Interpolation.linear); interpolations.put("Fade", Interpolation.fade); interpolations.put("Circle", Interpolation.circle); interpolations.put("Sine", Interpolation.sine); interpolations.put("Bounce", Interpolation.bounce); interpolations.put("Elastic", Interpolation.elastic); interpolations.put("Swing", Interpolation.swing); fadeInterpolationSelectBox.setItems(interpolations.keys().toArray()); fadeInterpolationSelectBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { player.setFadeInterpolation(interpolations.get(fadeInterpolationSelectBox.getSelected())); } }); fadeTable.defaults().left().pad(1f); fadeTable.row(); fadeTable.add("Duration"); fadeTable.add(fadeDurationSlider).expandX().fill(); fadeTable.add(fadeDurationLabel).width(40); fadeTable.row(); fadeTable.add("Interpolation"); fadeTable.add(fadeInterpolationSelectBox).colspan(2).expandX().fill(); final CheckBox fadeCheckBox = new CheckBox("Fade", skin, "switch"); fadeCheckBox.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { boolean fade = fadeCheckBox.isChecked(); player.setFadingEnabled(fade); fadeTable.setVisible(fade); } }); fadeCheckBox.setChecked(player.isFadingEnabled()); fadeTable.setVisible(player.isFadingEnabled()); controlTable.defaults().padTop(4f); controlTable.row().colspan(3); controlTable.add(shuffleCheckBox).left(); controlTable.row().colspan(3); controlTable.add(repeatCheckBox).left(); controlTable.row().colspan(3); controlTable.add(fadeCheckBox).left(); controlTable.row().colspan(3); controlTable.add(fadeTable); controlTable.row(); controlTable.add("Pan"); controlTable.add(panSlider).colspan(2); controlTable.row().colspan(3); controlTable.add().expand(); controlTable.row(); controlTable.add(previousButton).right(); controlTable.add(playPauseButton); controlTable.add(nextButton).left(); controlTable.row(); controlTable.add("Volume"); controlTable.add(volumeSlider).colspan(2); controlTable.row(); controlTable.add("Mute"); controlTable.add(muteButton).colspan(2).left(); /*********/ /* Debug */ /*********/ Label debugLabel = new Label("", skin) { @Override public void act(float delta) { setText(player.toString()); super.act(delta); } }; /***************/ /* Stage setup */ /***************/ Table leftTable = new Table(skin); leftTable.row(); leftTable.add(scrollablePlaylistTable).expand().fillX().top(); leftTable.row(); leftTable.add(debugLabel).expandX().left().padLeft(30f).padTop(8f); Table rightTable = new Table(skin); rightTable.row(); rightTable.add(controlTable).expandY().fill(); rightTable.row(); rightTable.add(fileFinder).padTop(10f); Table rootTable = new Table(skin); rootTable.setFillParent(true); rootTable.row(); rootTable.add(leftTable).expand().fill(); rootTable.add(rightTable).expandY().fill().padTop(25f).padLeft(8f); stage = new Stage(new ScreenViewport(camera), batch); stage.addActor(rootTable); /*********/ /* Input */ /*********/ Gdx.input.setInputProcessor(stage); }