gtGUISystem
abstract class : gtRefObject

Класс gtGUISystem управляет графическим пользовательским интерфейсом.
Чтобы получить указатель на него, нужно вызвать метод gtMainSystem::getGUISystem с указанием графической системы которая будет использоваться для рисования.
auto gui = gtMainSystem::getInstance()->getGUISystem( gs.data() );

Дополнительные константы
constexpr unsigned char gtBuiltInFontBytes[]
Массив данных встроенного шрифта.

constexpr unsigned char gtBuiltInFontXML[]
Массив XML данных встроенного шрифта.


Методы

gtGUISystem::addToUserInput
virtual void addToUserInput( gtGUIObject *, u32 id ) = 0;
Добавить GUI объект в обработчик для обработки GUI событий.
Параметр id это идентификатор, по которому можно будет определить, какой GUI объект задействован.

gtGUISystem::clearUserInput
virtual void clearUserInput() = 0;
Очистить обработчик событий GUI.

gtGUISystem::createBuiltInFont
virtual gtPtr createBuiltInFont() = 0;
Создать базовый шрифт который вшит в движок.
Вернётся gtPtr который автоматически освободит ресурс.

gtGUISystem::createFont
virtual gtPtr<gtGUIFont> createFont( const gtString& fontName, gtImage * fromImage = nullptr ) = 0;
Создать шрифт из файла.
Вернётся gtPtr который автоматически освободит ресурс.
Можно получить указатель на первую картинку шрифта. Тогда придётся её удалять вручную.

gtGUISystem::createMenu
virtual gtPtr<gtGUIMenu> createMenu( const gtGUIMenuParameters& params ) = 0;
Создать меню. Необходимо использовать параметры.
Вернётся gtPtr который автоматически освободит ресурс.

gtGUISystem::createShapeRectangle
virtual gtPtr<gtGUIShape> createShapeRectangle( const v4i& rect, const gtColor& color, bool useGradient = false, const gtColor& first_color = gtColorBlack, const gtColor& second_color = gtColorBlack, bool useVerticalGradient = false ) = 0;
Создать квадратныю фигуру. Можно использовать градиентную заливку.
Вернётся gtPtr который автоматически освободит ресурс.

gtGUISystem::createStaticText
virtual gtPtr<gtGUIStaticText> createStaticText( const gtString& text, s32 positionX, s32 positionY, gtGUIFont* font ) = 0;
Вернётся gtPtr который автоматически освободит ресурс.

gtGUISystem::createTextField
virtual gtPtr<gtGUITextField> createTextField( const v4i& rect, gtGUIFont* font, bool fixedHeight = true, bool fixedWidth = true ) = 0;
Создать текстовое поле, которое будет иметь границы (рамку), и в случае необходимости текст будет переходить на новые строчки.
fixedHeight и fixedWidth означают использовать ли фиксированную ширину или высоту. Если не использовать, то текстовое поле само растянется для правильно видимости. Чаще понадобиться использовать фиксированную ширину, а высота сама настроится, в зависимости от количества текста.
Вернётся gtPtr который автоматически освободит ресурс.

gtGUISystem::removeFromUserInput
virtual void removeFromUserInput( gtGUIObject * ) = 0;
Удалит объект из обработки GUI событий.

gtGUISystem::replaceUserInput
virtual void replaceUserInput( gtGUIObject * object_to_replace, gtGUIObject * new_object, u32 id ) = 0;
Если объект уничтожается и создаётся заново, можно заменить старый указатель на новый.

gtGUISystem::setCurrentRenderDriver
virtual void setCurrentRenderDriver( gtGraphicsSystem * driver ) = 0;
Установить текущий видеодрайвер.

gtGUISystem::update
virtual void update() = 0;
Обновить GUI систему.
Так-же произойдёт обработка GUI событий.