mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2026-01-06 19:22:40 +01:00
Merge pull request #24 from Eugene8388608/patch-1
Поправка документации
This commit is contained in:
commit
82f45ff7e1
@ -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()
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user