The widget manager is used to create self contained UI's, each called a widget, which can be opened via a web API or via the widget:// protocol. Example scenes like 'Windows', 'Fading the screen' and 'Pause menu' all make use of the widget manager. Widgets can stack on top of each other and fire a range of events so you can easily know when they're ready to go.
A widget has two parts:
- A template which describes its appearance. These are designed to be highly reusable.
- Optionally some content to display within it. For example, you might have a template for a window and inside that window you display e.g. stats, worn clothing, an inventory etc.
You'll find that it's very often useful to pass some extra information to an opening widget. For example, maybe you have a widget which asks the player to type in a number of items between some given range. It can be done with both the widget:// protocol and the web API; both have the same outcome. See their wiki pages for more information on how to do it in each specific case.
The widget manager is designed to be used to describe any kind of self contained widget or component of a UI. For example, the dialogue system uses it to display speech and every context menu is also a widget. Screen fading is also a more abstract use of the widget system.
The visual appearance of a widget is described by a widget template. PowerUI has a few built in templates for different kinds of widget. Ideally these templates can be shared or sold to maximize the value of the widget manager.