Merge pull request #24 from Eugene8388608/patch-1

Поправка документации
This commit is contained in:
Igor Timofeev 2017-04-08 19:45:13 +03:00 committed by GitHub
commit 82f45ff7e1

View File

@ -31,7 +31,7 @@ GUI - многофункциональная графическая библио
Standalone-методы Standalone-методы
====== ======
Библиотека имеет несколько полезных независимых методов, упрощающих разработку программ. К таковым относятся, к примеру, котекстное меню и информационное alert-окно. Библиотека имеет несколько полезных независимых методов, упрощающих разработку программ. К таковым относятся, к примеру, контекстное меню и информационное alert-окно.
GUI.**contextMenu**( x, y ): *table* contextMenu GUI.**contextMenu**( x, y ): *table* contextMenu
------------------------------------------------------------------------ ------------------------------------------------------------------------
@ -40,13 +40,13 @@ GUI.**contextMenu**( x, y ): *table* contextMenu
| *int* | x | Координата меню по оси x | | *int* | x | Координата меню по оси x |
| *int* | y | Координата меню по оси y | | *int* | y | Координата меню по оси y |
Открыть по указанным координатам котекстное меню и ожидать выбора пользователя. При выборе какого-либо элемента будет вызыван его callback-метод .**onTouch**, если таковой имеется. Открыть по указанным координатам контекстное меню и ожидать выбора пользователя. При выборе какого-либо элемента будет вызван его callback-метод .**onTouch**, если таковой имеется.
| Тип свойства | Свойство |Описание | | Тип свойства | Свойство |Описание |
| ------ | ------ | ------ | | ------ | ------ | ------ |
| *function* | :**addItem**( *string* text, *boolean* disabled, *string* shortcut, *int* color )| Добавить в контекстное меню элемент с указанными параметрами. При параметре disabled элемент не будет реагировать на клики мышью. Каждый элемент может иметь собственный callback-метод .**onTouch** для последующей обработки данных | | *function* | :**addItem**( *string* text, *boolean* disabled, *string* shortcut, *int* color )| Добавить в контекстное меню элемент с указанными параметрами. При параметре disabled элемент не будет реагировать на клики мышью. Каждый элемент может иметь собственный callback-метод .**onTouch** для последующей обработки данных |
| *function* | :**addSeparator**()| Добавить в контекстное меню визуальный разделитель | | *function* | :**addSeparator**()| Добавить в контекстное меню визуальный разделитель |
| *table* | .**items** | Таблица элементов котекстного меню | | *table* | .**items** | Таблица элементов контекстного меню |
Пример реализации контекстного меню: Пример реализации контекстного меню:
@ -110,7 +110,7 @@ GUI.**container**( x, y, width, height ): *table* container
Каждый контейнер - это объект-группировщик для других объектов, описанных ниже. К примеру, при изменении позиции контейнера на экране все его дочерние элементы будут также смещены на соответствующие координаты. Контейнер также содержит все основные методы по добавлению дочерних элементов (виджетов) и работе с ними. Каждый контейнер - это объект-группировщик для других объектов, описанных ниже. К примеру, при изменении позиции контейнера на экране все его дочерние элементы будут также смещены на соответствующие координаты. Контейнер также содержит все основные методы по добавлению дочерних элементов (виджетов) и работе с ними.
Все дочерние элементы контейнера имеют свою *localPosition* в контейнере (к примеру, *{x = 4, y = 2}*), при добавлении нового элемента в контейнер используются именно локальные координаты. Для получения глобальных (экранных) координат дочернего элемента необходимо обращаться к *element.x* и *element.y*. Глобальная (экранная) позиция дочерних элементов рассчитывается при каждой отрисовке содержимого контейнера. Таким образом, изменяя глобальные координаты дочернего элемента вручную, вы, в сущности, ничего не добьетесь. Все дочерние элементы контейнера имеют свою *localPosition* в контейнере (к примеру, *{x = 4, y = 2}*), при добавлении нового элемента в контейнер используются именно локальные координаты. Для получения глобальных (экранных) координат дочернего элемента необходимо обращаться к *element.x* и *element.y*. Глобальная (экранная) позиция дочерних элементов рассчитывается при каждой отрисовке содержимого контейнера. Таким образом, изменяя глобальные координаты дочернего элемента вручную, вы, в сущности, ничего не добьётесь.
Наглядно система иерархии и позиционирования контейнеров и дочерних элементов представлена на следущем изображении: Наглядно система иерархии и позиционирования контейнеров и дочерних элементов представлена на следущем изображении:
@ -137,7 +137,7 @@ GUI.**window**( x, y, width, height ): *table* window
| *int* | width | Ширина объекта | | *int* | width | Ширина объекта |
| *int* | height | Высота объекта | | *int* | height | Высота объекта |
Создание объекта типа "окно" для дальнейшей работы. Каждое окно - это наследник объекта объекта типа "контейнер" (см. выше), содержащий дополнительные методы обработки системных событий и возврата данных окна. Создание объекта типа "окно" для дальнейшей работы. Каждое окно - это наследник объекта типа "контейнер" (см. выше), содержащий дополнительные методы обработки системных событий и возврата данных окна.
Некоторые методы обработки событий могут иметь аргумент *eventData*, представляющий собой нумерически индексированную таблицу с данными метода computer.pullSignal. Подробнее об ивентах (сигналах, событиях) можно прочесть по [ссылке](http://ocdoc.cil.li/component:signals). Некоторые методы обработки событий могут иметь аргумент *eventData*, представляющий собой нумерически индексированную таблицу с данными метода computer.pullSignal. Подробнее об ивентах (сигналах, событиях) можно прочесть по [ссылке](http://ocdoc.cil.li/component:signals).
@ -179,7 +179,7 @@ GUI.**object**( x, y, width, height ): *table* object
| ------ | ------ | ------ | | ------ | ------ | ------ |
| *function* | :**draw**() | Обязательный метод, вызываемый для отрисовки виджета на экране. Он может быть определен пользователем любым удобным для него образом. Повторюсь, что данный метод осуществляет отрисовку только в экранный буфер, а не на экран. | | *function* | :**draw**() | Обязательный метод, вызываемый для отрисовки виджета на экране. Он может быть определен пользователем любым удобным для него образом. Повторюсь, что данный метод осуществляет отрисовку только в экранный буфер, а не на экран. |
| *function* | :**isClicked**( *int* x, *int* y ): *boolean* isClicked | Метод для проверки валидности клика на объект. Используется родительскими методами контейнеров и удобен для ручной проверки пересечения указанных координат с расположением объекта на экране | | *function* | :**isClicked**( *int* x, *int* y ): *boolean* isClicked | Метод для проверки валидности клика на объект. Используется родительскими методами контейнеров и удобен для ручной проверки пересечения указанных координат с расположением объекта на экране |
| *boolean* | .**isHidden** | Является ли объект скрытым. Если объект скрыт, от его отрисовка и анализ системных событий игнорируются | | *boolean* | .**isHidden** | Является ли объект скрытым. Если объект скрыт, то его отрисовка и анализ системных событий игнорируются |
После добавления виджета-объекта в контейнер с помощью метода *:addChild* он приобретает дополнительные свойства для удобства использования: После добавления виджета-объекта в контейнер с помощью метода *:addChild* он приобретает дополнительные свойства для удобства использования:
@ -196,7 +196,7 @@ GUI.**object**( x, y, width, height ): *table* object
При желании вы можете сделать абсолютно аналогичные или технически гораздо более продвинутые виджеты без каких-либо затруднений. Подробнее о создании собственных виджетов см. практические примеры в конце документации. Однако далее перечислены виджеты, уже созданные мной на основе описанных выше инструкций. При желании вы можете сделать абсолютно аналогичные или технически гораздо более продвинутые виджеты без каких-либо затруднений. Подробнее о создании собственных виджетов см. практические примеры в конце документации. Однако далее перечислены виджеты, уже созданные мной на основе описанных выше инструкций.
GUI.**panel**( x, y, width, height, color, transparency ): *table* panel GUI.**panel**( x, y, width, height, color, [transparency] ): *table* panel
------------------------------------------------------------------------ ------------------------------------------------------------------------
| Тип | Аргумент | Описание | | Тип | Аргумент | Описание |
| ------ | ------ | ------ | | ------ | ------ | ------ |
@ -205,7 +205,7 @@ GUI.**panel**( x, y, width, height, color, transparency ): *table* panel
| *int* | width | Ширина объекта | | *int* | width | Ширина объекта |
| *int* | height | Высота объекта | | *int* | height | Высота объекта |
| *int* | color | Цвет панели | | *int* | color | Цвет панели |
| [*byte* | transparency] | Опциональная прозрачность панели | | [*byte*] | [transparency] | Опциональная прозрачность панели |
Создать объект типа "панель", представляющий собой закрашенный прямоугольник с определенной опциональной прозрачностью. В большинстве случаев служит декоративным элементом, однако способен обрабатывать индивидуальный метод *.onTouch()*. Создать объект типа "панель", представляющий собой закрашенный прямоугольник с определенной опциональной прозрачностью. В большинстве случаев служит декоративным элементом, однако способен обрабатывать индивидуальный метод *.onTouch()*.
@ -259,7 +259,7 @@ GUI.**button**( x, y, width, height, buttonColor, textColor, buttonPressedColor,
| *callback-function* | .**onTouch**( *table* eventData )| Метод, вызываемый после нажатия кнопки в обработчике событий | | *callback-function* | .**onTouch**( *table* eventData )| Метод, вызываемый после нажатия кнопки в обработчике событий |
| *function* | :**press**()| Изменить состояние кнопки на "нажатое" | | *function* | :**press**()| Изменить состояние кнопки на "нажатое" |
| *function* | :**release**()| Изменить состояние кнопки на "отжатое" | | *function* | :**release**()| Изменить состояние кнопки на "отжатое" |
| *function* | :**pressAndRelease**( *float* time )| Нажать и отжать кнопку в течение указанного временного периода. Примечание: этот метод использует отрисовку содержимого двойного буфера | | *function* | :**pressAndRelease**( *float* time )| Нажать и отжать кнопку в течение указанного временного периода. Примечание: этот метод использует отрисовку содержимого тройного буфера |
Пример реализации кнопки: Пример реализации кнопки:
```lua ```lua
@ -332,11 +332,11 @@ GUI.**inputTextBox**( x, y, width, height, backgroundColor, textColor, backgroun
| *int* | backgroundFocusedColor | Цвет поля ввода в состоянии *focused* | | *int* | backgroundFocusedColor | Цвет поля ввода в состоянии *focused* |
| *int* | textFocusedColor |Цвет текста поля ввода в состоянии *focused* | | *int* | textFocusedColor |Цвет текста поля ввода в состоянии *focused* |
| *string* | text | Введенный на момент создания поля текст | | *string* | text | Введенный на момент создания поля текст |
| [*string* | placeholderText] | Текст, появляющийся при условии, что *text* == nil | | [*string*] | [placeholderText] | Текст, появляющийся при условии, что *text* == nil |
| [*boolean* | eraseTextOnFocus] | Необходимо ли удалять текст при активации ввода | | [*boolean*] | [eraseTextOnFocus] | Необходимо ли удалять текст при активации ввода |
| [*string* | textMask] | Символ-маска для вводимого текста. Полезно для создания поля ввода пароля | | [*string*] | [textMask] | Символ-маска для вводимого текста. Полезно для создания поля ввода пароля |
| [*boolean* | highlightLuaSyntax] | Режим подсветки синтаксиса Lua для вводимой строки. Цвет текста при этом игнорируется | | [*boolean*] | [highlightLuaSyntax] | Режим подсветки синтаксиса Lua для вводимой строки. Цвет текста при этом игнорируется |
| [*boolean* | autocompleteVariables] | Режим автодополнения текстовых данных на основе поиска таковых переменных в оперативной памяти | | [*boolean*] | [autocompleteVariables] | Режим автодополнения текстовых данных на основе поиска таковых переменных в оперативной памяти |
Создать объект типа "поле ввода текста", предназначенный для ввода и анализа текстовых данных с клавиатуры. Объект универсален и подходит как для создания простых форм для ввода логина/пароля, так и для сложных структур наподобие интерпретаторов команд. К примеру, окно *палитры* выше целиком и полностью основано на использовании этого объекта. Создать объект типа "поле ввода текста", предназначенный для ввода и анализа текстовых данных с клавиатуры. Объект универсален и подходит как для создания простых форм для ввода логина/пароля, так и для сложных структур наподобие интерпретаторов команд. К примеру, окно *палитры* выше целиком и полностью основано на использовании этого объекта.
@ -388,9 +388,9 @@ GUI.**horizontalSlider**( x, y, width, primaryColor, secondaryColor, pipeColor,
| *float* | minimumValue | Минимальное значение слайдера | | *float* | minimumValue | Минимальное значение слайдера |
| *float* | maximumValue | Максимальное значение слайдера | | *float* | maximumValue | Максимальное значение слайдера |
| *float* | value | Значение слайдера | | *float* | value | Значение слайдера |
| [*bool* | showCornerValues] | Показывать ли пиковые значения слайдера по сторонам от него | | [*bool*] | [showCornerValues] | Показывать ли пиковые значения слайдера по сторонам от него |
| [*string* | currentValuePrefix] | Префикс для значения слайдера | | [*string*] | [currentValuePrefix] | Префикс для значения слайдера |
| [*string* | currentValuePostfix] | Постфикс для значения слайдера | | [*string*] | [currentValuePostfix] | Постфикс для значения слайдера |
Создать объект типа "горизонтальный слайдер", предназначенный для манипуляцией числовыми данными. Значение слайдера всегда будет варьироваться в диапазоне от минимального до максимального значений. Опционально можно указать значение поля *слайдер.**roundValues** = true*, если необходимо округлять изменяющееся число. Создать объект типа "горизонтальный слайдер", предназначенный для манипуляцией числовыми данными. Значение слайдера всегда будет варьироваться в диапазоне от минимального до максимального значений. Опционально можно указать значение поля *слайдер.**roundValues** = true*, если необходимо округлять изменяющееся число.
@ -474,7 +474,7 @@ GUI.**colorSelector**( x, y, width, height, color, text ): *table* colorSelector
| *int* | width | Ширина объекта | | *int* | width | Ширина объекта |
| *int* | height | Высота объекта | | *int* | height | Высота объекта |
| *int* | color | Текущий цвет селектора | | *int* | color | Текущий цвет селектора |
| *string* | text] | Текст селектора | | *string* | text | Текст селектора |
Создать объект типа "селектор цвета", представляющий собой аналог кнопки, позволяющей выбрать цвет при помощи удобной палитры. Создать объект типа "селектор цвета", представляющий собой аналог кнопки, позволяющей выбрать цвет при помощи удобной палитры.
@ -648,7 +648,7 @@ window:handleEvents()
![enter image description here](http://i91.fastpic.ru/big/2017/0402/80/3b0ec81c3b2f660b9a4c6f18908f4280.png) ![enter image description here](http://i91.fastpic.ru/big/2017/0402/80/3b0ec81c3b2f660b9a4c6f18908f4280.png)
GUI.**progressBar**( x, y, width, primaryColor, secondaryColor, valueColor, value, thin, showValue, valuePrefix, valuePostfix ): *table* progressBar GUI.**progressBar**( x, y, width, primaryColor, secondaryColor, valueColor, value, [thin, showValue, valuePrefix, valuePostfix] ): *table* progressBar
------------------------------------------------------------------------ ------------------------------------------------------------------------
| Тип | Аргумент | Описание | | Тип | Аргумент | Описание |
| ------ | ------ | ------ | | ------ | ------ | ------ |
@ -659,10 +659,10 @@ GUI.**progressBar**( x, y, width, primaryColor, secondaryColor, valueColor, valu
| *int* | secondaryColor | Вторичный цвет шкалы прогресса | | *int* | secondaryColor | Вторичный цвет шкалы прогресса |
| *int* | valueColor | Цвет текста значений шкалы прогресса | | *int* | valueColor | Цвет текста значений шкалы прогресса |
| *float* | value | Значение шкалы прогресса | | *float* | value | Значение шкалы прогресса |
| [*bool* | thin] | Активировать ли режим отрисовки "тонкого" объекта | | [*bool*] | [thin] | Активировать ли режим отрисовки "тонкого" объекта |
| [*bool* | showValue] | Показывать ли значение шкалы прогресса | | [*bool*] | [showValue] | Показывать ли значение шкалы прогресса |
| [*string* | valuePrefix] | Префикс для значения шкалы прогресса | | [*string*] | [valuePrefix] | Префикс для значения шкалы прогресса |
| [*string* | valuePostfix] | Постфикс для значения шкалы прогресса | | [*string*] | [valuePostfix] | Постфикс для значения шкалы прогресса |
Создать объект типа "шкала прогресса", значение которой меняется от 0 до 100. Создать объект типа "шкала прогресса", значение которой меняется от 0 до 100.