wxAUI: Advanced User Interface for wxWidgets

Design Overview

Summary

wxAUI is an Advanced User Interface library for the wxWidgets toolkit that allows developers to quickly create high-quality, cross-platform user interfaces with:

  • Native, dockable floating frames
  • Perspective saving and loading
  • Native toolbars incorporating real-time, "spring-loaded" dragging
  • Customizable floating/docking behavior
  • Completely customizable look-and-feel
  • Optional transparent window effects (while dragging or docking)
  • Splittable notebook control

Vision and Design Principles

wxAUI attempts to encapsulate the following aspects of the user interface:

  • Frame Management: Frame management provides the means to open, move and hide common controls that are needed to interact with the document, and allow these configurations to be saved into different perspectives and loaded at a later time.
  • Toolbars: Toolbars are a specialized subset of the frame management system and should behave similarly to other docked components. However, they also require additional functionality, such as "spring-loaded" rebar support, "chevron" buttons and end-user customizability.
  • Modeless Controls: Modeless controls expose a tool pallete or set of options that float above the application content while allowing it to be accessed. Usually accessed by the toolbar, these controls disappear when an option is selected, but may also be "torn off" the toolbar into a floating frame of their own.
  • Look and Feel: Look and feel encompasses the way controls are drawn, both when shown statically as well as when they are being moved. This aspect of user interface design incorporates "special effects" such as transparent window dragging as well as frame animation.

wxAUI adheres to the following principles:

  • Use native floating frames to obtain a native look and feel for all platforms
  • Use existing wxWidgets code where possible, such as sizer implementation for frame management
  • Use classes included in wxCore and wxBase only
  • Use standard wxWidgets coding conventions

Further Information

wxAUI is incorporated into the wxWidgets library and may be obtained from the wxWidgets download page.  For a quick look at wxAUI, please view the wxAUI video demonstration or download the sample application.  If you have any questions or comments, please post them in the wxAUI forums.