Last modified 4 years ago Last modified on 09/13/08 16:20:55

Betawidget is the name given to the new GUI library currently in development.

Design

Betawidget is loosely based off of several different GUI toolkits.

  • The object model is based off of GObject (minus a few unnecessary features).
  • The events system was inspired by that of the W3C DOM (JavaScript).
  • The layout mechanism for widgets is taken from Qt.
  • Drawing is done using Cairo; with SVG files being used to define the visual appearance of widgets.

This gives Betawidget several advantages over the current widget library.

  • It will be scriptable (so modders can create/modify their own GUIs)
  • It is scaleable (so the GUI size can change depending on the users screen-resolution)
  • It will support much more complex widgets, including but not limited to
    • multi-line text entry fields
    • scrollable widgets
  • It will have reasonable unicode support (UTF-8); allowing for non-English language input.

Limitations

The current design of betawidget has one main limitation: # If a widget includes any OpenGL content (e.g. a rotating PIE model) then it will be on-top, even if the widget is covered by other widgets. (A valid, however, unpractical solution would be to use FBOs.)

{{Template:Betawidget}} Category:Betawidget ?