List of usage examples for com.badlogic.gdx.scenes.scene2d.ui HorizontalGroup space
public HorizontalGroup space(float spacing)
From source file:com.agateau.ui.UiBuilder.java
License:Apache License
protected HorizontalGroup createHorizontalGroup(XmlReader.Element element) { HorizontalGroup group = new HorizontalGroup(); group.space(element.getFloatAttribute("spacing", 0)); return group; }
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);/* ww w. j a va2s .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:gaia.cu9.ari.gaiaorbit.interfce.AboutWindow.java
License:Open Source License
public AboutWindow(Stage stg, Skin sk) { super(txt("gui.help.help") + " - " + GlobalConf.APPLICATION_NAME + " v" + GlobalConf.version.version, sk); this.stage = stg; this.skin = sk; this.me = this; this.linkStyle = skin.get("link", LabelStyle.class); float tawidth = 440 * GlobalConf.SCALE_FACTOR; float taheight = 250 * GlobalConf.SCALE_FACTOR; float taheight_s = 60 * GlobalConf.SCALE_FACTOR; float tabwidth = 60 * GlobalConf.SCALE_FACTOR; float pad = 5 * GlobalConf.SCALE_FACTOR; scrolls = new ArrayList<OwnScrollPane>(5); textareas = new ArrayList<Actor>(); /** TABLE and SCROLL **/ table = new Table(skin); // Create the tab buttons HorizontalGroup group = new HorizontalGroup(); group.align(Align.left);/*from www . j av a2s . c o m*/ final Button tab1 = new OwnTextButton(txt("gui.help.help"), skin, "toggle-big"); tab1.pad(pad); tab1.setWidth(tabwidth); final Button tab2 = new OwnTextButton(txt("gui.help.about"), skin, "toggle-big"); tab2.pad(pad); tab2.setWidth(tabwidth); final Button tab3 = new OwnTextButton(txt("gui.help.system"), skin, "toggle-big"); tab3.pad(pad); tab3.setWidth(tabwidth); group.addActor(tab1); group.addActor(tab2); group.addActor(tab3); table.add(group).align(Align.left).padLeft(pad); table.row(); // Create the tab content. Just using images here for simplicity. Stack content = new Stack(); /** CONTENT 1 - HELP **/ final Table content1 = new Table(skin); content1.align(Align.top); Image gaiasky = new Image(getSpriteDrawable(Gdx.files.internal("img/gaiaskylogo.png"))); // User manual Label usermantitle = new OwnLabel(txt("gui.help.usermanual"), skin, "ui-12"); Label usermantxt = new OwnLabel(txt("gui.help.help1"), skin, "ui-11"); Link usermanlink = new Link(GlobalConf.WEBPAGE, linkStyle, GlobalConf.WEBPAGE); // Wiki Label wikititle = new OwnLabel("Docs", skin, "ui-12"); Label wikitxt = new OwnLabel(txt("gui.help.help2"), skin, "ui-11"); Link wikilink = new Link(GlobalConf.DOCUMENTATION, linkStyle, GlobalConf.DOCUMENTATION); // Readme Label readmetitle = new OwnLabel(txt("gui.help.readme"), skin, "ui-12"); FileHandle readmefile = Gdx.files.internal("README.md"); if (!readmefile.exists()) { readmefile = Gdx.files.internal("../README.md"); } String readmestr = readmefile.readString(); int lines = GlobalResources.countOccurrences(readmestr, '\n'); TextArea readme = new TextArea(readmestr, skin); readme.setDisabled(true); readme.setPrefRows(lines); textareas.add(readme); OwnScrollPane readmescroll = new OwnScrollPane(readme, skin, "default-nobg"); readmescroll.setWidth(tawidth); readmescroll.setHeight(taheight); readmescroll.setForceScroll(false, true); readmescroll.setSmoothScrolling(true); readmescroll.setFadeScrollBars(false); scrolls.add(readmescroll); // Add all to content content1.add(gaiasky).colspan(2); content1.row(); content1.add(usermantitle).align(Align.left).padRight(pad * 2); content1.add(usermantxt).align(Align.left); content1.row(); content1.add(new OwnLabel("", skin, "ui-11")); content1.add(usermanlink).align(Align.left); content1.row(); content1.add(wikititle).align(Align.left).padRight(pad * 2); content1.add(wikitxt).align(Align.left); content1.row(); content1.add(new OwnLabel("", skin, "ui-11")); content1.add(wikilink).align(Align.left); content1.row(); content1.add(readmetitle).colspan(2).align(Align.left); content1.row(); content1.add(readmescroll).colspan(2).expand().pad(pad * 2, 0, pad * 2, 0).align(Align.center); /** CONTENT 2 - ABOUT **/ final Table content2 = new Table(skin); content2.align(Align.top); // Intro TextArea intro = new OwnTextArea(txt("gui.help.gscredits", GlobalConf.version.version), skin.get("msg-11", TextFieldStyle.class)); intro.setDisabled(true); intro.setPrefRows(3); intro.setWidth(tawidth); textareas.add(intro); // Home page Label homepagetitle = new OwnLabel(txt("gui.help.homepage"), skin, "ui-12"); Link homepage = new Link(GlobalConf.WEBPAGE, linkStyle, GlobalConf.WEBPAGE); // Author Label authortitle = new OwnLabel(txt("gui.help.author"), skin, "ui-12"); VerticalGroup author = new VerticalGroup(); author.align(Align.left); Label authorname = new OwnLabel("Toni Sagrist Sells", skin, "ui-11"); Link authormail = new Link("tsagrista@ari.uni-heidelberg.de", linkStyle, "mailto:tsagrista@ari.uni-heidelberg.de"); Link authorpage = new Link("www.tonisagrista.com", linkStyle, "http://tonisagrista.com"); author.addActor(authorname); author.addActor(authormail); author.addActor(authorpage); // Contributor Label contribtitle = new OwnLabel(txt("gui.help.contributors"), skin, "ui-12"); VerticalGroup contrib = new VerticalGroup(); contrib.align(Align.left); Label contribname = new OwnLabel("Apl. Prof. Dr. Stefan Jordan", skin, "ui-11"); Link contribmail = new Link("jordan@ari.uni-heidelberg.de", linkStyle, "mailto:jordan@ari.uni-heidelberg.de"); contrib.addActor(contribname); contrib.addActor(contribmail); // License HorizontalGroup licenseh = new HorizontalGroup(); licenseh.space(pad * 2); Image license = new Image(getSpriteDrawable(Gdx.files.internal("img/license.png"))); VerticalGroup licensev = new VerticalGroup(); TextArea licensetext = new OwnTextArea(txt("gui.help.license"), skin.get("msg-11", TextFieldStyle.class)); licensetext.setDisabled(true); licensetext.setPrefRows(3); licensetext.setWidth(tawidth / 2f); Link licenselink = new Link("https://www.gnu.org/licenses/gpl.html", linkStyle, "https://www.gnu.org/licenses/gpl.html"); licensev.addActor(licensetext); licensev.addActor(licenselink); licenseh.addActor(license); licenseh.addActor(licensev); // Thanks HorizontalGroup thanks = new HorizontalGroup(); thanks.space(pad * 2); Container thanksc = new Container(thanks); thanksc.setBackground(skin.getDrawable("bg-clear")); Image zah = new Image(getSpriteDrawable(Gdx.files.internal("img/zah.png"))); Image dlr = new Image(getSpriteDrawable(Gdx.files.internal("img/dlr.png"))); Image bwt = new Image(getSpriteDrawable(Gdx.files.internal("img/bwt.png"))); Image dpac = new Image(getSpriteDrawable(Gdx.files.internal("img/dpac.png"))); thanks.addActor(zah); thanks.addActor(dlr); thanks.addActor(bwt); thanks.addActor(dpac); content2.add(intro).colspan(2).align(Align.left).padTop(pad * 2); content2.row(); content2.add(homepagetitle).align(Align.topLeft).padRight(pad * 2); content2.add(homepage).align(Align.left); content2.row(); content2.add(authortitle).align(Align.topLeft).padRight(pad * 2).padTop(pad); content2.add(author).align(Align.left).padTop(pad); content2.row(); content2.add(contribtitle).align(Align.topLeft).padRight(pad * 2).padTop(pad); content2.add(contrib).align(Align.left).padTop(pad); content2.row(); content2.add(licenseh).colspan(2).align(Align.center).padTop(pad * 4); content2.row(); content2.add(thanksc).colspan(2).align(Align.center).padTop(pad * 8); /** CONTENT 3 - SYSTEM **/ final Table content3 = new Table(skin); content3.align(Align.top); // Build info Label buildinfo = new OwnLabel(txt("gui.help.buildinfo"), skin, "help-title"); Label versiontitle = new OwnLabel(txt("gui.help.version", GlobalConf.APPLICATION_NAME), skin, "ui-12"); Label version = new OwnLabel(GlobalConf.version.version, skin, "ui-11"); Label revisiontitle = new OwnLabel(txt("gui.help.buildnumber"), skin, "ui-12"); Label revision = new OwnLabel(GlobalConf.version.build, skin, "ui-11"); Label timetitle = new OwnLabel(txt("gui.help.buildtime"), skin, "ui-12"); Label time = new OwnLabel(GlobalConf.version.buildtime, skin, "ui-11"); Label systemtitle = new OwnLabel(txt("gui.help.buildsys"), skin, "ui-12"); TextArea system = new OwnTextArea(GlobalConf.version.system, skin.get("msg-11", TextFieldStyle.class)); system.setDisabled(true); system.setPrefRows(3); system.setWidth(tawidth * 2f / 3f); textareas.add(system); Label buildertitle = new OwnLabel(txt("gui.help.builder"), skin, "ui-12"); Label builder = new OwnLabel(GlobalConf.version.builder, skin, "ui-11"); // Java info Label javainfo = new OwnLabel(txt("gui.help.javainfo"), skin, "help-title"); Label javaversiontitle = new OwnLabel(txt("gui.help.javaversion"), skin, "ui-12"); Label javaversion = new OwnLabel(System.getProperty("java.version"), skin, "ui-11"); Label javaruntimetitle = new OwnLabel(txt("gui.help.javaname"), skin, "ui-12"); Label javaruntime = new OwnLabel(System.getProperty("java.runtime.name"), skin, "ui-11"); Label javavmnametitle = new OwnLabel(txt("gui.help.javavmname"), skin, "ui-12"); Label javavmname = new OwnLabel(System.getProperty("java.vm.name"), skin, "ui-11"); Label javavmversiontitle = new OwnLabel(txt("gui.help.javavmversion"), skin, "ui-12"); Label javavmversion = new OwnLabel(System.getProperty("java.vm.version"), skin, "ui-11"); Label javavmvendortitle = new OwnLabel(txt("gui.help.javavmvendor"), skin, "ui-12"); Label javavmvendor = new OwnLabel(System.getProperty("java.vm.vendor"), skin, "ui-11"); TextButton memoryinfobutton = new OwnTextButton(txt("gui.help.meminfo"), skin, "default"); memoryinfobutton.setName("memoryinfo"); memoryinfobutton.setSize(150 * GlobalConf.SCALE_FACTOR, 20 * GlobalConf.SCALE_FACTOR); memoryinfobutton.addListener(new EventListener() { @Override public boolean handle(Event event) { if (event instanceof ChangeEvent) { EventManager.instance.post(Events.DISPLAY_MEM_INFO_WINDOW, stage, skin); return true; } return false; } }); // OpenGL info Label glinfo = new OwnLabel(txt("gui.help.openglinfo"), skin, "help-title"); Label glversiontitle = new OwnLabel(txt("gui.help.openglversion"), skin, "ui-12"); Label glversion = new OwnLabel(Gdx.gl.glGetString(GL20.GL_VERSION), skin, "ui-11"); Label glslversiontitle = new OwnLabel(txt("gui.help.glslversion"), skin, "ui-12"); Label glslversion = new OwnLabel(Gdx.gl.glGetString(GL20.GL_SHADING_LANGUAGE_VERSION), skin, "ui-11"); Label glextensionstitle = new OwnLabel(txt("gui.help.glextensions"), skin, "ui-12"); String glextensionsstr = Gdx.gl.glGetString(GL20.GL_EXTENSIONS).replace(' ', '\r'); lines = GlobalResources.countOccurrences(glextensionsstr, '\r') + 1; IntBuffer buf = BufferUtils.newIntBuffer(16); Gdx.gl.glGetIntegerv(Gdx.graphics.getGL20().GL_MAX_TEXTURE_SIZE, buf); int maxSize = buf.get(0); TextArea glextensions = new TextArea("Max texture size: " + maxSize + "\r" + glextensionsstr, skin); glextensions.setDisabled(true); glextensions.setPrefRows(lines); textareas.add(glextensions); OwnScrollPane glextensionsscroll = new OwnScrollPane(glextensions, skin, "default-nobg"); glextensionsscroll.setWidth(tawidth / 1.7f); glextensionsscroll.setHeight(taheight_s); glextensionsscroll.setForceScroll(false, true); glextensionsscroll.setSmoothScrolling(true); glextensionsscroll.setFadeScrollBars(false); scrolls.add(glextensionsscroll); content3.add(buildinfo).colspan(2).align(Align.left).padTop(pad * 3); content3.row(); content3.add(versiontitle).align(Align.topLeft).padRight(pad * 2); content3.add(version).align(Align.left); content3.row(); content3.add(revisiontitle).align(Align.topLeft).padRight(pad * 2); content3.add(revision).align(Align.left); content3.row(); content3.add(timetitle).align(Align.topLeft).padRight(pad * 2); content3.add(time).align(Align.left); content3.row(); content3.add(buildertitle).align(Align.topLeft).padRight(pad * 2); content3.add(builder).align(Align.left).padBottom(pad * 3); content3.row(); content3.add(systemtitle).align(Align.topLeft).padRight(pad * 2); content3.add(system).align(Align.left); content3.row(); content3.add(javainfo).colspan(2).align(Align.left).padTop(pad * 2); content3.row(); content3.add(javaversiontitle).align(Align.topLeft).padRight(pad * 2); content3.add(javaversion).align(Align.left); content3.row(); content3.add(javaruntimetitle).align(Align.topLeft).padRight(pad * 2); content3.add(javaruntime).align(Align.left); content3.row(); content3.add(javavmnametitle).align(Align.topLeft).padRight(pad * 2); content3.add(javavmname).align(Align.left); content3.row(); content3.add(javavmversiontitle).align(Align.topLeft).padRight(pad * 2); content3.add(javavmversion).align(Align.left); content3.row(); content3.add(javavmvendortitle).align(Align.topLeft).padRight(pad * 2); content3.add(javavmvendor).align(Align.left).padBottom(pad * 2); content3.row(); content3.add(memoryinfobutton).colspan(2).align(Align.left).padBottom(pad * 3); content3.row(); content3.add(glinfo).colspan(2).align(Align.left).padTop(pad * 2); content3.row(); content3.add(glversiontitle).align(Align.topLeft).padRight(pad * 2); content3.add(glversion).align(Align.left); content3.row(); content3.add(glslversiontitle).align(Align.topLeft).padRight(pad * 2); content3.add(glslversion).align(Align.left); content3.row(); content3.add(glextensionstitle).align(Align.topLeft).padRight(pad * 2); content3.add(glextensionsscroll).align(Align.left); /** ADD ALL CONTENT **/ content.addActor(content1); content.addActor(content2); content.addActor(content3); table.add(content).expand().fill(); // Listen to changes in the tab button checked states // Set visibility of the tab content to match the checked state ChangeListener tab_listener = new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { content1.setVisible(tab1.isChecked()); content2.setVisible(tab2.isChecked()); content3.setVisible(tab3.isChecked()); } }; tab1.addListener(tab_listener); tab2.addListener(tab_listener); tab3.addListener(tab_listener); // Let only one tab button be checked at a time ButtonGroup tabs = new ButtonGroup(); tabs.setMinCheckCount(1); tabs.setMaxCheckCount(1); tabs.add(tab1); tabs.add(tab2); tabs.add(tab3); /** BUTTONS **/ HorizontalGroup buttonGroup = new HorizontalGroup(); TextButton close = new OwnTextButton(txt("gui.close"), skin, "default"); close.setName("close"); close.setSize(70 * GlobalConf.SCALE_FACTOR, 20 * GlobalConf.SCALE_FACTOR); close.addListener(new EventListener() { @Override public boolean handle(Event event) { if (event instanceof ChangeEvent) { me.hide(); return true; } return false; } }); buttonGroup.addActor(close); add(table).pad(pad); row(); add(buttonGroup).pad(pad).bottom().right(); getTitleTable().align(Align.left); pack(); this.setPosition(Math.round(stage.getWidth() / 2f - this.getWidth() / 2f), Math.round(stage.getHeight() / 2f - this.getHeight() / 2f)); /** CAPTURE SCROLL FOCUS **/ stage.addListener(new EventListener() { @Override public boolean handle(Event event) { if (event instanceof InputEvent) { InputEvent ie = (InputEvent) event; if (ie.getType() == Type.mouseMoved) { for (OwnScrollPane scroll : scrolls) { if (ie.getTarget().isDescendantOf(scroll)) { stage.setScrollFocus(scroll); } } return true; } } return false; } }); }