Flexible Windowing Toolkit for use with LibGDX game engine.
FWT is a lightweight UI toolkit built on top of libGDX. It provides a window manager, XML-driven UI layouts, and a set of reusable UI components intended for game UIs.
- Window manager with focus, layering, and input routing
- XML-driven UI definitions and default component styling
- Built-in components (window, button, label, slider, scrollable, text field, toggle, etc.)
- Texture atlas and font support for UI rendering
- Java 17
- libGDX (core)
- libGDX freetype (for TTF font generation)
This repository does not currently publish a standalone artifact. If you split FWT into its own module, add the dependency using your chosen coordinates. Example:
dependencies {
implementation "com.arboreantears:fwt:<version>"
}- Implement
FWTControlInterfaceto connect FWT to your game (logging, rendering, assets, input). - Initialize FWT:
FWTController.initialize(fwtControlInterface, customFactory);
FWTWindowManager manager = FWTController.createWindowManager();- Load UI definitions from XML and create components using
XMLUIReaderandFWTComponentFactory.
FWT reads XML UI definitions, fonts, and a UI texture atlas via the paths provided by
FWTControlInterface. A typical layout looks like:
assets/
ui/
UI_defaults.xml
tooltipBar.xml
font/
<font>.ttf
image/
uiimage.atlas
The default UI definitions reference these atlas regions:
button,buttonh,buttonptoggle,toggleh,togglechkclosebtncursor
If you provide custom UI XML, include any additional regions referenced by those files.
If FWT is still in this repo, you can build with:
./gradlew buildTBD. Add your chosen license file and update this section.