Getting Started =============== Before actually getting started, it is important to understand the motivation and mechanics behind SUIT: - **SUIT is an immediate mode GUI library** - **Less is more** - **Layouting must be easy** Immediate mode? --------------- With classical (retained) mode libraries you typically have a stage where you create the whole UI when the program initializes. After that point, the GUI is expected to not change very much. With immediate mode libraries, on the other hand, the GUI is created every frame from scratch. There are no widget objects, only functions that draw the widget and update some internal GUI state. This allows to put the widgets in their immediate conceptual context (instead of a construction stage). It also makes the UI very flexible: Don't want to draw a widget? Simply remove the call. Handling the mutable data (e.g., text of an input box) of each widget is your responsibility. This separation of data and behaviour gives you greater control of what is happening when an where, but can take a bit of time getting used to - especially if you have used retained mode libraries before. What SUIT is ^^^^^^^^^^^^ SUIT is simple: It provides only the most important widgets for games: - :func:`Buttons