Update ECSAPI.lua

This commit is contained in:
Igor Timofeev
2015-09-21 07:33:51 +03:00
parent e3f617ce46
commit 8bf24e591b

View File

@@ -1654,6 +1654,7 @@ function ECSAPI.universalWindow(x, y, width, background, closeWindowAfter, ...)
ECSAPI.border(x + 1, objects[number].y, width - 2, objectsHeights.input, background, objects[number][2])
--Текстик
gpu.set(x + 3, objects[number].y + 1, ECSAPI.stringLimit("start", objects[number][4], width - 6))
ECSAPI.inputText(x + 3, objects[number].y + 1, width - 6, objects[number][4], background, objects[number][2], true, objects[number][5])
end
newObj("Inputs", number, x + 1, objects[number].y, x + width - 2, objects[number].y + 2)
@@ -1984,55 +1985,101 @@ end
--[[
Функция universalWindow(x, y, width, background, closeWindowAfter, ...)
Это универсальная модульная функция для максимально удобного и быстрого
отображения необходимой вам информации. С ее помощью вводить данные
с клавиатуры, осуществлять выбор из предложенных вариантов, рисовать
красивые кнопки, отрисовывать обычный текст, отрисовывать текстовые
поля с возможностью прокрутки, рисовать разделители и прочее.
Любой объект выделяется с помощью клика мыши, после чего функция
приступает к работе с этим объектом.
Аргументы функции:
x и y:
Это числа, обозначающие стартовые координаты левого верхнего угла
данного окна.
Вместо цифр вы также можете написать "auto" - и программа
автоматически разместит окно по центру экрана по выбранной
координате. Или по обеим координатам, если вам угодно.
width:
Это ширина окна, которую вы можете задать по собственному желанию.
Если некторые объекты требуют расширения окна, то окно будет
автоматически расширено до нужной ширины. Да, вот такая вот тавтология ;)
background:
Базовый цвет окна (цвет фона, кому как понятнее).
closeWindowAfter:
Если true, то окно по завершению функции будет выгружено, а на его месте отрисуются пиксели,
которые имелись на экране до выполнения функции. Удобно, если не хочешь париться
с перерисовкой интерфейса.
Это универсальная модульная функция для максимально удобного и быстрого отображения
необходимой вам информации. С ее помощью вводить данные с клавиатуры, осуществлять выбор
из предложенных вариантов, рисовать красивые кнопки, отрисовывать обычный текст,
отрисовывать текстовые поля с возможностью прокрутки, рисовать разделители и прочее.
Любой объект выделяется с помощью клика мыши, после чего функция приступает к работе
с этим объектом.
Аргументы функции:
...:
Многоточием тут является перечень объектов, указанных через запятую.
Каждый объект является массивом и имеет собственный формат.
Ниже перечислены все возиожные типы объектов:
{"Button", {Цвет кнопки1, Цвет текста на кнопке1, Сам текст1}, {Цвет кнопки2, Цвет текста на кнопке2, Сам текст2}, ...}
{"Input", Цвет рамки и текста, Цвет при выделении, Стартовый текст, Маскировать символом}
{"Selector", Цвет рамки, Цвет при выделении, Выбор 1, Выбор 2, Выбор 3 ...}
{"Select", Цвет рамки, Цвет галочки, Выбор 1, Выбор 2, Выбор 3 ...}
{"TextField", Высота, Цвет фона, Цвет текста, Цвет скроллбара, Цвет пимпочки скроллбара, Сам текст}
{"CenterText", Цвет текста, Сам текст}
{"Separator", Цвет разделителя}
{"Slider", Цвет линии слайдера, Цвет пимпочки слайдера, Значения слайдера ОТ, Значения слайдера ДО, Текущее значение, Текст-подсказка ДО, Текст-подсказка ПОСЛЕ}
{"WrappedText", Цвет текста, Текст}
{"EmptyLine"}
Каждый из объектов рисуется по порядку сверху вниз. Каждый объект автоматически
увеличивает высоту окна до необходимого значения. Каждому объекту требуется
определенная ширина экрана, и если указанной при старте функции ширины не хватает,
то объект автоматически расширяет окно до необходимого значения.
x и y: это числа, обозначающие стартовые координаты левого верхнего угла данного окна.
Вместо цифр вы также можете написать "auto" - и программа автоматически разместит окно
по центру экрана по выбранной координате. Или по обеим координатам, если вам угодно.
width: это ширина окна, которую вы можете задать по собственному желанию. Если некторые
объекты требуют расширения окна, то окно будет автоматически расширено до нужной ширины.
Да, вот такая вот тавтология ;)
background: базовый цвет окна (цвет фона, кому как понятнее).
closeWindowAfter: eсли true, то окно по завершению функции будет выгружено, а на его месте
отрисуются пиксели, которые имелись на экране до выполнения функции. Удобно, если не хочешь
париться с перерисовкой интерфейса.
... : многоточием тут является перечень объектов, указанных через запятую. Каждый объект
является массивом и имеет собственный формат. Ниже перечислены все возможные типы объектов.
{"Button", {Цвет кнопки1, Цвет текста на кнопке1, Сам текст1}, {Цвет кнопки2, Цвет текста на кнопке2, Сам текст2}, ...}
Это объект для рисования кнопок. Каждая кнопка - это массив, состоящий из трех элементов:
цвета кнопки, цвета текста на кнопке и самого текста. Кнопок может быть неограниченное количество,
однако чем их больше, тем большее требуется разрешение экрана по ширине.
Интерактивный объект.
{"Input", Цвет рамки и текста, Цвет при выделении, Стартовый текст [, Маскировать символом]}
Объект для рисования полей ввода текстовой информации. Удобно для открытия или сохранения файлов,
Опциональный аргумент "Маскировать символом" полезен, если вы делаете поле для ввода пароля.
Никто не увидит ваш текст. В качестве данного аргумента передается символ, например "*".
Интерактивный объект.
{"Selector", Цвет рамки, Цвет при выделении, Выбор 1, Выбор 2, Выбор 3 ...}
Внешне схож с объектом "Input", однако в этом случае вы будете выбирать один из предложенных
вариантов из выпадающего списка. По умолчанию выбран первый вариант.
Интерактивный объект.
{"Select", Цвет рамки, Цвет галочки, Выбор 1, Выбор 2, Выбор 3 ...}
Объект выбора. Отличается от "Selector" тем, что здесь вы выбираете один из вариантов, отмечая
его галочкой. По умолчанию выбран первый вариант.
Интерактивный объект.
{"Slider", Цвет линии слайдера, Цвет пимпочки слайдера, Значения слайдера ОТ, Значения слайдера ДО, Текущее значение [, Текст-подсказка ДО] [, Текст-подсказка ПОСЛЕ]}
Ползунок, позволяющий задавать определенное количество чего-либо в указанном интервале. Имеются два
опциональных аргумента, позволяющих четко понимать, с чем именно мы имеем дело.
К примеру, если аргумент "Текст-подсказка ДО" будет равен "Съедено ", а аргумент "Текст-подсказка ПОСЛЕ"
будет равен " яблок", а значение слайдера будет равно 50, то на экране будет написано "Съедено 50 яблок".
Интерактивный объект.
{"CenterText", Цвет текста, Сам текст}
Отображение текста указанного цвета по центру окна. Чисто для информативных целей.
{"WrappedText", Цвет текста, Текст}
Отображение большого количества текста с автоматическим переносом. Прото режет слова на кусочки,
перенос символический. Чисто для информативных целей.
{"TextField", Высота, Цвет фона, Цвет текста, Цвет скроллбара, Цвет пимпочки скроллбара, Сам текст}
Текстовое поле с возможностью прокрутки. Отличается от "WrappedText"
фиксированной высотой. Чисто для информативных целей.
{"Separator", Цвет разделителя}
Линия-разделитель, помогающая лучше отделять объекты друг от друга. Декоративный объект.
{"EmptyLine"}
Пустое пространство, помогающая лучше отделять объекты друг от друга. Декоративный объект.
Каждый из объектов рисуется по порядку сверху вниз. Каждый объект автоматически
увеличивает высоту окна до необходимого значения. Если объектов будет указано слишком много -
т.е. если окно вылезет за пределы экрана, то программа завершится с ошибкой.
Что возвращает функция:
Возвратом является массив, пронумерованный от 1 до <количества объектов>.
К примеру, 1 индекс данного массива соответствует 1 указанному объекту.
Каждый индекс данного массива несет в себе какие-то данные, которые вы
@@ -2045,8 +2092,8 @@ end
с EmptyLine, CenterText, TextField или Separator, то в возвращенном
массиве этот объект указываться не будет.
Готовые примеры использования функции указаны ниже и закомментированы.
Выбирайте нужный и раскомментируйте.
Готовые примеры использования функции указаны ниже и закомментированы.
Выбирайте нужный и раскомментируйте.
]]
--Функция-демонстратор, показывающая все возможные объекты в одном окне. Код окна находится выше.