This page has been translated automatically.
Setting Up Development Environment
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
Double Precision Coordinates
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes
This version of documentation is OUTDATED! Please switch to the latest one.

User Interfaces for Unigine::Widgets

You can use user interface files (*.ui) to describe how widgets are laid out. Such UI files are created manually in Unigine UI syntax. They are handled by using Unigine::Widgets::UserInterface class.

How to Load Unigine UI

To load a Unigine-native user interface file, take the following steps:

  1. Include the UserInterface header. All other Unigine::Widgets headers are already included in it.
    Source code (UnigineScript)
    #include <core/systems/widgets/widget_interface.h>
  2. Declare UserInterface and the root widgets from the UI file in the global scope.
    Source code (UnigineScript)
    #include <core/systems/widgets/widget_interface.h>
    Unigine::Widgets::UserInterface ui;
    Unigine::Widgets::Window window;
  3. Load the user interface file. You also need to add root widgets to the rendered GUI for them to become visible.
    Source code (UnigineScript)
    int init() {
    	// You can declare the namespace for convenience
    	using Unigine::Widgets;
    	// Load UI file in Unigine syntax
    	ui = new UserInterface("samples/systems/widgets/widgets_01.ui");
    	// Render the root widget
    	addChild(window,ALIGN_OVERLAP | ALIGN_CENTER);
    	return 1;
    int shutdown() {
    	// Delete UserInterface with all widgets loaded from it
    	delete ui;
    	return 1;
Last update: 2017-07-03
Build: ()