diff --git a/lib/ECSAPI.lua b/lib/ECSAPI.lua index e2aa4d5c..9ba1daab 100644 --- a/lib/ECSAPI.lua +++ b/lib/ECSAPI.lua @@ -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, то в возвращенном массиве этот объект указываться не будет. - Готовые примеры использования функции указаны ниже и закомментированы. - Выбирайте нужный и раскомментируйте. + Готовые примеры использования функции указаны ниже и закомментированы. + Выбирайте нужный и раскомментируйте. ]] --Функция-демонстратор, показывающая все возможные объекты в одном окне. Код окна находится выше.