From b6abdd56ff3a071adedf123eb502a7bf8f9c5009 Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Sun, 2 Apr 2017 00:23:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B7=D0=B0=D0=B3?= =?UTF-8?q?=D0=BE=D0=BB=D0=BE=D0=B2=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation/GUI.md | 64 +++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/Documentation/GUI.md b/Documentation/GUI.md index 4f9bfe62..b0abfd2f 100644 --- a/Documentation/GUI.md +++ b/Documentation/GUI.md @@ -1,9 +1,11 @@ -#О библиотеке + +О библиотеке +------------ GUI - многофункциональная графическая библиотека, отлаженная под использование маломощными компьютерами с максимально возможной производительностью и удобством для конечного пользователя. Она поддерживает множество элементов интерфейса: от привычных кнопок, слайдеров, текстовых полей и картинок до графиков и инструментов работы с цветовыми режимами. Быстродействие достигается за счет использования тройной буферизации и сложных группировочных алгоритмов. -#Установка - +Установка +--------- | Зависимость | Функционал | | ------ | ------ | | *advancedLua* | Дополнение стандартных библиотек Lua особыми функциями, такими как быстрая сериализация таблиц, перенос строк, округление чисел и т.д. | @@ -17,11 +19,12 @@ GUI - многофункциональная графическая библио pastebin run 0nm5b1ju -#Методы для создания контейнеров +Методы для создания контейнеров +------------------------------- Вся библиотека делится на две основные кострукции: контейнеры и виджеты. Контейнер предназначен для группировки нескольких виджетов в единую структуру и их конвеерной обработки. В первую очередь необходимо изучить особенности работы с контейнерами и окнами. -#GUI.**container**( x, y, width, height ): *table* container - +GUI.**container**( x, y, width, height ): *table* container +----------------------------------------------------------- | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -44,8 +47,8 @@ GUI - многофункциональная графическая библио | :**getClickedObject**(*int* x, *int* y): *table* object or *nil*| Получить объект по указанным координатам, используя иерархический порядок расположения элементов. Вложенные контейнеры для данного метода являются **невидимыми** | | :**draw**() | Рекурсивная отрисовка содержимого контейнера в порядке очереди его дочерних элементов. Обращаю внимание на то, что данный метод осуществляет отрисовку только в экранный буфер. Для отображения изменений на экране необходимо использовать метод библиотеки тройного буфера *.draw()* | -#GUI.**window**( x, y, width, height ): *table* window - +GUI.**window**( x, y, width, height ): *table* window +----------------------------------------------------- | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -67,7 +70,8 @@ GUI - многофункциональная графическая библио | :**returnData**(...)| Закрыть окно и вернуть множество данных любого типа | | :**close**() | Закрыть окно без возврата данных| -#Методы для создания виджетов +Методы для создания виджетов +---------------------------- После понимания концепции контейнеров можно с легкостью приступить к добавлению виджетов в созданное окно или контейнер. Каждый виджет - это наследник объекта типа GUI.**object**(x, y, width, height) со своими особенностями отрисовки и поведения, описанными разработчиком. Однако имеются универсальные методы, имеющиеся у каждого виджета: | Метод виджета |Описание | @@ -89,11 +93,10 @@ GUI - многофункциональная графическая библио | *function* | :**moveToBack**() | Передвинуть виджет в начало иерархии виджетов контейнера | | *function* | :**getFirstParent**() | Получить первый родительский контейнер для рассматриваемой системы родительских контейнеров. К примеру, при существовании множества вложенных контейнеров метод вернет первый и "главный" из них | - Ниже перечислены виджеты, уже созданные мной на основе описанных выше инструкций. При желании вы можете сделать абсолютно аналогичные или гораздо более технически продвинутые виджеты без каких-либо затруднений. -#GUI.**button**( x, y, width, height, buttonColor, textColor, buttonPressedColor, textPressedColor, text ): *table* button - +GUI.**button**( x, y, width, height, buttonColor, textColor, buttonPressedColor, textPressedColor, text ): *table* button +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -122,8 +125,8 @@ GUI - многофункциональная графическая библио | :**release**()| Изменить состояние кнопки на "отжатое" | | :**pressAndRelease**( *float* time )| Нажать и отжать кнопку в течение указанного временного периода. Примечание: этот метод использует отрисовку содержимого двойного буфера | -#GUI.**panel**( x, y, width, height, color, transparency ): *table* panel - +GUI.**panel**( x, y, width, height, color, transparency ): *table* panel +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -139,8 +142,8 @@ GUI - многофункциональная графическая библио | ------ | ------ | | .**onTouch**( *table* eventData )| Метод, вызываемый после нажатия на панель в обработчике событий | -#GUI.**label**( x, y, width, height, textColor, text ): *table* label - +GUI.**label**( x, y, width, height, textColor, text ): *table* label +-------------------------------------------------------------------- | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -158,8 +161,8 @@ GUI - многофункциональная графическая библио | :**setAlignment**( *enum* GUI.alignment.vertical, *enum* GUI.alignment.horizontal )| Выбрать вариант отображения текста относительно границ лейбла | -#GUI.**inputTextBox**( x, y, width, height, backgroundColor, textColor, backgroundFocusedColor, textFocusedColor, text, [placeholderText, eraseTextOnFocus, textMask, highlightLuaSyntax, autocompleteVariables] ): *table* inputTextBox - +GUI.**inputTextBox**( x, y, width, height, backgroundColor, textColor, backgroundFocusedColor, textFocusedColor, text, [placeholderText, eraseTextOnFocus, textMask, highlightLuaSyntax, autocompleteVariables] ): *table* inputTextBox +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -184,8 +187,8 @@ GUI - многофункциональная графическая библио | .**validator**( *string* text )| Метод, вызывающийся после окончания ввода текста в поле. Если возвращает *true*, то текст в текстовом поле меняется на введенный, в противном случае введенные данные игнорируются. К примеру, в данном методе удобно проверять, является ли введенная текстовая информация числом через *tonumber()* | | .**onInputFinished**( *string* text, *table* eventData )| Метод, вызываемый после ввода данных в обработчике событий | -#GUI.**horizontalSlider**( x, y, width, primaryColor, secondaryColor, pipeColor, valueColor, minimumValue, maximumValue, value, [showCornerValues, currentValuePrefix, currentValuePostfix] ): *table* horizontalSlider - +GUI.**horizontalSlider**( x, y, width, primaryColor, secondaryColor, pipeColor, valueColor, minimumValue, maximumValue, value, [showCornerValues, currentValuePrefix, currentValuePostfix] ): *table* horizontalSlider +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -208,8 +211,8 @@ GUI - многофункциональная графическая библио | ------ | ------ | | .**onValueChanged**( *float* value, *table* eventData )| Метод, вызывающийся после изменения значения слайдера | -#GUI.**switch**( x, y, width, primaryColor, secondaryColor, pipeColor, state ): *table* switch - +GUI.**switch**( x, y, width, primaryColor, secondaryColor, pipeColor, state ): *table* switch +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -226,8 +229,8 @@ GUI - многофункциональная графическая библио | ------ | ------ | | .**onStateChanged**( *boolean* state, *table* eventData )| Метод, вызывающийся после изменения состояния переключателя | -#GUI.**colorSelector**( x, y, width, height, color, text ): *table* colorSelector - +GUI.**colorSelector**( x, y, width, height, color, text ): *table* colorSelector +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -243,9 +246,8 @@ GUI - многофункциональная графическая библио | ------ | ------ | | .**onTouch**( *table* eventData )| Метод, вызываемый после нажатия на селектор цвета в обработчике событий | - -#GUI.**comboBox**( x, y, width, height, backgroundColor, textColor, arrowBackgroundColor, arrowTextColor, items ): *table* comboBox - +GUI.**comboBox**( x, y, width, height, backgroundColor, textColor, arrowBackgroundColor, arrowTextColor, items ): *table* comboBox +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -264,8 +266,8 @@ GUI - многофункциональная графическая библио | :**addSeparator**()| Добавить визуальный в комбо-бокс разделитель | | .**onItemSelected**( *table* item, *table* eventData )| Метод, вызывающийся после выборе какого-либо элемента комбо-бокса | -#GUI.**menu**( x, y, width, backgroundColor, textColor, backgroundPressedColor, textPressedColor, backgroundTransparency ): *table* menu - +GUI.**menu**( x, y, width, backgroundColor, textColor, backgroundPressedColor, textPressedColor, backgroundTransparency ): *table* menu +------------------------------------------------------------------------ | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x | @@ -284,8 +286,8 @@ GUI - многофункциональная графическая библио | :**addItem**( *string* text, *int* color )| Добавить в меню элемент с указанными параметрами | | .**onItemSelected**( *table* item, *table* eventData )| Метод, вызывающийся после выборе какого-либо элемента комбо-бокса | -#GUI.**image**( x, y, loadedImage ): *table* image - +GUI.**image**( x, y, loadedImage ): *table* image +------------------------------------------------- | Тип | Аргумент | Описание | | ------ | ------ | ------ | | *int* | x | Координата объекта по оси x |