< User:Glatzemann
Wiimote1.svg WiiMote2.svg Wiimote3.svg Wiimote4.svg SensorBar.svg Loads files from the Front SD slot Loads files from SDHC cards in the Front SD slot

libGUI is a GUI rendering library ported from a pc project of me to the wii. It uses GX and is written in C++ and makes the creation of graphical user interfaces very easy.

For assisting the development of your GUI theres a simulation modus for Win32 systems using OpenGL with emulation of up to four wiimotes with your mouse.

After releasing a stable version of libGUI I will start to make some changes on my gui/skin editor (sorry, windows only, too) TeEd. It is a wysiwyg application for creating and editing gui's for libGUI.

libGUI is under heavy development. See the current development progress under Current Progress. The changelog and Usage will be filled after the initial release of libGUI. I will post some tutorials and the download links when a first usable version is finished. Expect these to be in not more than two weeks.

If you have questions what libGUI can do and what is planned or want to give hints, suggestions or if you have wishes for libGUI features, feel free to write to the talk page.

If you are a gfx-artist and able to create skins and gui's with a paint program and if you want to help to create some "standard layouts" please contact me.


  1. install devkitpro
  2. extract the libGUI archive to your development path
  3. include the libGUI header file


Tutorials will follow upon release of libGUI

Current Progress

green lines are finished and red lines are still open

  • Event-/Message-Handler (100%)
    • managing of messages for the gui and the widgets
    • raising of events (Key, Pointer, ...)

  • Base Widgets (90%)
    • Static Element (base widget for most of the other widgets, has states, color, text, image and pointer events)
    • Image (display of images from Resource-Manager-Textures)
    • Button (Toggle- and Click-Buttons)
    • Textbox (input and editing of text)
    • Multiline-Textbox (same as Textbox but with more than one line of text)

  • Resource-Manager (75%)
    • manages Textures, Materials, Fonts and Skins (dynamic loading, unpacking and unloading)
    • loading of png, bmp, jpg and raw
    • loading of xml configuration files with all informations to create "multi screen guis"
    • loading of binary files with all data for guis (textures, materials, gui definitions)
    • loading of linked data for guis (textures, materials, gui definitions)

  • Log-Manager (75%)
    • logging of (debug) messages to screen (depends on Multiline-Textbox or Multiline-Label)
    • logging of (debug) messages to files
    • logging of (debug) messages to TCP

  • Font-Manager (50%)
    • managing dynamic bitmap fonts
    • managing truetype fonts (dynamic generation of textures)

  • Input-Manager (50%)
    • managing input (windows)
    • managing input from wiimote(s), On-Screen-Keyboard and/or USB-Keyboard

  • Animation-Manager (25%)
    • Button-Animations (PointerOver, OnClick, OnMove, ...)
    • animated guis (like the "from left to right scrolling buttons" in HBC)

  • Derived Widgets (15%)
    • Progress-Bar
    • Listbox
    • Radio-Buttons
    • Checkbox
    • On-Screen-Keyboard (numeric and alphanumeric)

  • Localization-Manager (15%)
    • planning phase of a localization manager for multi-language gui's

and much more ;-)


currently working on first release


will be release after the initial release of libGUI


to be defined, but will be free even for commercial use. Source will maybe released at some time. I need to rewrite some parts, because I used some code from a commercial project I've done some time ago and I'm not able to release these sources.