User:Glatzemann/libGUI

From WiiBrew
Jump to navigation Jump to search
libGUI
libGUI
General
Author(s)Glatzemann
TypeLibrary
Versionalpha

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.


Installation

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


Usage

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 ;-)


Changelog

currently working on first release


Tutorials

will be release after the initial release of libGUI


License

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.