* @author mzechner\r
* \r
*/\r
-final class LwjglInput implements Input {\r
+public final class LwjglInput implements Input {\r
class KeyEvent {\r
static final int KEY_DOWN = 0;\r
static final int KEY_UP = 1;\r
<classpathentry excluding="**/.svn/*" kind="src" path="src"/>\r
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
<classpathentry combineaccessrules="false" kind="src" path="/gdx-twl"/>\r
- <classpathentry combineaccessrules="false" kind="src" path="/gdx-backend-jogl"/>\r
+ <classpathentry combineaccessrules="false" kind="src" path="/gdx-backend-lwjgl"/>\r
<classpathentry kind="output" path="bin"/>\r
</classpath>\r
import com.badlogic.gdx.Gdx;\r
import com.badlogic.gdx.Files.FileType;\r
import com.badlogic.gdx.graphics.GL10;\r
-import com.badlogic.gdx.twl.renderer.TwlInputListener;\r
+import com.badlogic.gdx.twl.renderer.TwlInputProcessor;\r
import com.badlogic.gdx.twl.renderer.TwlRenderer;\r
\r
import de.matthiasmann.twl.Button;\r
import de.matthiasmann.twl.GUI;\r
\r
public class ButtonTest implements ApplicationListener {\r
- GUI gui; \r
- TwlInputListener guiInputListener;\r
+ GUI gui;\r
+ TwlInputProcessor guiInputListener;\r
+ private TwlRenderer twl;\r
\r
- @Override\r
- public void create () {\r
+ @Override public void create () {\r
if (gui != null) return;\r
\r
Button button = new Button("Click Me");\r
layout.setHorizontalGroup(layout.createParallelGroup().addWidgets(button, fpsCounter));\r
layout.setVerticalGroup(layout.createSequentialGroup().addWidget(button).addGap(5).addWidget(fpsCounter).addGap(5));\r
\r
- gui = TwlRenderer.createGUI(layout, "data/widgets.xml", FileType.Internal); \r
- guiInputListener = new TwlInputListener(gui);\r
+ twl = new TwlRenderer();\r
+ gui = new GUI(layout, twl, null);\r
+ twl.applyTheme(gui, "data/widgets.xml", FileType.Internal);\r
+\r
+ guiInputListener = new TwlInputProcessor(gui);\r
}\r
- \r
- @Override\r
- public void resize(int width, int height) {\r
- gui.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); \r
+\r
+ @Override public void resize (int width, int height) {\r
+ gui.setSize();\r
+ twl.setSize();\r
}\r
\r
- @Override\r
- public void render () {\r
- Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); \r
- \r
+ @Override public void render () {\r
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
+\r
Gdx.input.processEvents(guiInputListener);\r
- gui.update(); \r
+ gui.update();\r
}\r
\r
- @Override\r
- public void dispose() {\r
+ @Override public void dispose () {\r
gui.destroy();\r
}\r
\r
- @Override\r
- public void pause() {\r
+ @Override public void pause () {\r
}\r
\r
- @Override\r
- public void resume() {\r
+ @Override public void resume () {\r
}\r
}\r
\r
package com.badlogic.gdx.twl.tests;\r
\r
-import com.badlogic.gdx.backends.jogl.JoglApplication;\r
+import com.badlogic.gdx.backends.desktop.LwjglApplication;\r
\r
public class ButtonTestDesktop {\r
public static void main (String[] argv) {\r
- new JoglApplication(new ButtonTest(), "Button Test", 480, 320, false);\r
+ new LwjglApplication(new ButtonTest(), "Button Test", 480, 320, false);\r
}\r
}\r
import com.badlogic.gdx.Gdx;\r
import com.badlogic.gdx.Files.FileType;\r
import com.badlogic.gdx.graphics.GL10;\r
-import com.badlogic.gdx.twl.renderer.TwlInputListener;\r
+import com.badlogic.gdx.twl.renderer.TwlInputProcessor;\r
import com.badlogic.gdx.twl.renderer.TwlRenderer;\r
\r
import de.matthiasmann.twl.DialogLayout;\r
\r
public class TextAreaTest implements ApplicationListener {\r
GUI gui;\r
- TwlInputListener guiInputListener;\r
+ TwlRenderer twl;\r
+ TwlInputProcessor guiInputListener;\r
\r
- @Override\r
- public void create () {\r
+ @Override public void create () {\r
if (gui != null) return;\r
\r
final HTMLTextAreaModel htmlText = new HTMLTextAreaModel();\r
layout.setHorizontalGroup(layout.createParallelGroup().addWidgets(scrollPane, fpsCounter));\r
layout.setVerticalGroup(layout.createSequentialGroup().addWidget(scrollPane).addGap(5).addWidget(fpsCounter).addGap(5));\r
\r
- gui = TwlRenderer.createGUI(layout, "data/widgets.xml", FileType.Internal);\r
+ twl = new TwlRenderer();\r
+ gui = new GUI(layout, twl, null);\r
+ twl.applyTheme(gui, "data/widgets.xml", FileType.Internal);\r
\r
textArea.addCallback(new TextArea.Callback() {\r
Timer timer;\r
speed = -speed;\r
}\r
});\r
- \r
- guiInputListener = new TwlInputListener(gui);\r
+\r
+ guiInputListener = new TwlInputProcessor(gui);\r
}\r
- \r
- @Override\r
- public void resize(int width, int height) { \r
- TwlRenderer.updateSize(gui);\r
+\r
+ @Override public void resize (int width, int height) {\r
+ gui.setSize();\r
+ twl.setSize();\r
}\r
\r
- @Override\r
- public void render () {\r
+ @Override public void render () {\r
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
Gdx.input.processEvents(guiInputListener);\r
gui.update();\r
}\r
\r
- @Override\r
- public void dispose () {\r
+ @Override public void dispose () {\r
gui.destroy();\r
}\r
\r
- @Override\r
- public void pause() {\r
+ @Override public void pause () {\r
}\r
\r
- @Override\r
- public void resume() {\r
+ @Override public void resume () {\r
}\r
}\r
\r
package com.badlogic.gdx.twl.tests;\r
\r
-import com.badlogic.gdx.backends.jogl.JoglApplication;\r
+import com.badlogic.gdx.backends.desktop.LwjglApplication;\r
\r
public class TextAreaTestDesktop {\r
public static void main (String[] argv) {\r
- new JoglApplication(new TextAreaTest(), "Twl Test", 480, 320, false); \r
+ new LwjglApplication(new TextAreaTest(), "Twl Test", 480, 320, false); \r
}\r
}\r
<classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx"/>\r
<classpathentry kind="lib" path="libs/xpp3-1.1.4c.jar"/>\r
<classpathentry exported="true" kind="lib" path="libs/twl.jar"/>\r
+ <classpathentry combineaccessrules="false" kind="src" path="/gdx-backend-lwjgl"/>\r
<classpathentry kind="output" path="bin"/>\r
</classpath>\r
package com.badlogic.gdx.twl.renderer;\r
\r
import com.badlogic.gdx.InputProcessor;\r
+import com.badlogic.gdx.backends.desktop.LwjglInput;\r
\r
import de.matthiasmann.twl.GUI;\r
\r
/**\r
* @author Nathan Sweet <misc@n4te.com>\r
*/\r
-public class TwlInputListener implements InputProcessor {\r
+public class TwlInputProcessor implements InputProcessor {\r
private final GUI gui;\r
\r
- public TwlInputListener (GUI gui) {\r
+ public TwlInputProcessor (GUI gui) {\r
this.gui = gui;\r
}\r
\r
public boolean keyDown (int keycode) {\r
+ keycode = LwjglInput.getKeyCodeReverse(keycode);\r
return gui.handleKey(keycode, (char)0, true);\r
}\r
\r
public boolean keyUp (int keycode) {\r
+ keycode = LwjglInput.getKeyCodeReverse(keycode);\r
return gui.handleKey(keycode, (char)0, false);\r
}\r
\r
}\r
}\r
\r
- static public void updateSize (GUI gui) {\r
- Renderer renderer = gui.getRenderer();\r
- if (!(renderer instanceof TwlRenderer)) throw new IllegalArgumentException("gui's renderer must be a TwlRenderer.");\r
- ((TwlRenderer)renderer).spriteBatch.getProjectionMatrix().setToOrtho(0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(),\r
- 0, 0, 1);\r
- gui.setSize();\r
+ public void setSize () {\r
+ spriteBatch.getProjectionMatrix().setToOrtho(0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), 0, 0, 1);\r
}\r
\r
- static public GUI createGUI (Widget root, String themeFile, final FileType fileType) {\r
- TwlRenderer renderer = new TwlRenderer();\r
- GUI gui = new GUI(root, renderer, null);\r
+ public void applyTheme (GUI gui, String themeFile, final FileType fileType) {\r
File file = new File(themeFile);\r
final File themeRoot = file.getParentFile();\r
final String themeFileName = file.getName();\r
\r
public InputStream getInputStream () {\r
if (!path.endsWith(".xml")) return null; // Only theme files are loaded through the URL.\r
- return fileHandle.getInputStream();\r
+ return fileHandle.readFile();\r
}\r
};\r
}\r
});\r
- gui.applyTheme(ThemeManager.createThemeManager(themeURL, renderer));\r
+ gui.applyTheme(ThemeManager.createThemeManager(themeURL, this));\r
} catch (IOException ex) {\r
throw new GdxRuntimeException("Error loading theme: " + themeFile, ex);\r
- } \r
- return gui;\r
+ }\r
}\r
}\r