Текстовый интерфейс для сценарного языка OneScript.
Цель данной разработки - создать простой инструмент для построения текстового интерфейса (TUI) на сценарном языке OneScript. Библиотека основана на кроссплатформенной библиотеке Terminal.Gui , распространяемой под лицензией MIT License. Название OneScriptTerminalGui составлено из названий библиотеки, положенной в основу кода, и сценарного языка, для которого она адаптирована. У пользователей появляется возможность взаимодействовать со сценарием с помощью окон, кнопок меню, флажков и других элементов, которые недоступны в чистом интерфейсе командной строки. Это визуализация данных и действий за счёт использования элементов управления и цветовых решений.
- Доступно управление как с клавиатуры, так и с помощью мыши, включая перетаскивание.
- Есть таймеры (для них поддерживается многопоточность).
- Обработка событий с получением аргументов события.
- Использование буфера обмена. Можно вырезать, копировать и вставлять фрагменты текста.
- Видимые элементы могут содержать произвольное количество дочерних элементов.
- Можно создать панель меню в верхней части экрана и строку состояния в нижней части экрана.
- Можно создать всплывающее контекстное меню.
- Кросс-платформенность, консольные приложения будут работать там, где возможно запустить сценарий OneScript.
- Выбор цвета для элементов управления по своему усмотрению.
- Поддерживается абсолютная и вычисляемая система макетов, что облегчает расположение элементов.
- Следующие элементы управления предположительно будут реализованы (те что с переводом уже реализованы):
- Кнопка (Button)
- CheckBox
- ColorPicker
- ComboBox
- Dialog
- OpenDialog
- SaveDialog
- FrameView
- GraphView
- Hex viewer/editor
- Label
- ListView
- ПанельМеню (MenuBar)
- ОкноСообщений (MessageBox)
- ProgressBar
- RadioGroup
- ScrollView
- ScrollBarView
- СтрокаСостояния (StatusBar)
- TableView
- TimeField
- TextField
- TextView
- Таймер (Timer)
- Верхний (Toplevel)
- TreeView
- Элемент (View)
- Окно (Window)
Вы можете создать приложение, которое:
- Будет написано на сценарном языке OneScript (читай - языке 1С).
- Будет запускаться в окне терминала.
- Использует событийно-ориентированный подход.
- Предоставляет элементы управления, созданные в текстовом режиме.
При подключении библиотеки в коде сценария она будет искать и определять терминал, в котором выполняется сценарий, подключит соответствующий драйвер и создаст приложение с элементом управления Верхний (Toplevel). Это элемент верхнего уровня, который действует как контейнер. Его подэлементами и будут все элементы управления. Этот Верхний займет собой весь экран терминала. Завершить работу приложения можно методом Завершить (Shutdown) в коде сценария, закрыв окно терминала или нажав назначенную свойством КлавишаВыхода (QuitKey) клавишу.
- Установите на компьютере OneScript.
- Скачайте библиотеку OneScriptTerminalGui.dll из данного репозитория (находится в релизе). Или скачайте из каталога docs архив с именем формата OneScriptTerminalGuiх_х_х_х.zip. Скачайте последнюю версию. Поместите находящуюся в архиве библиотеку, в какой либо каталог на диске. Возможно будет необходимо правой кнопкой мыши вызвать свойства распакованных файлов и разблокировать их.
- Напишите сценарий приложения (статья на инфостарте).
ПодключитьВнешнююКомпоненту("ВашКаталогНаДиске\OneScriptTerminalGui.dll");
ТФ = Новый ТерминалФормыДляОдноСкрипта();
ТФ.Активировать();
Окно1 = ТФ.Окно("Окно1");
Окно1.Текст = "Когда я был маленький – очень, очень давно, – я читал одну книжку:
|она называлась «Пиноккио, или Похождения деревянной куклы»
|(деревянная кукла по-итальянски – буратино).";
Окно1.Ширина = ТФ.Величина.Процент(80);
Окно1.Высота = ТФ.Величина.Процент(80);
Окно1.Центр();
ТФ.Верхний.Добавить(Окно1);
ТФ.Запуск();- Запустите сценарий на исполнение. В среде Windows просто кликните (или дважды кликните) по файлу сценария. В среде Linux сначала запустите терминал, а затем выполните команду формата:
oscript.exe <script_path>Не получится запустить сценарий на исполнение непосредственно из редакторов, которые имеют какую либо реализацию консоли. Например Notepad++ с помощью плагина NppExec создает консоль. Вы получите сообщение об ошибке: Unable to initialize the console. This can happen if the console is already in use by another process or in unit tests. Обойти это можно написав сценарий запуска (назовем его Старт.os), в котором запустите уже МойСценарий.os такой строкой:
ЗапуститьПриложение("C:\444\МойСценарий.os", , Истина);Старт.os уже можно будет запускать из Notepad++ по F5 (или какая там будет назначена для запуска клавиша).
На странице справки для каждого метода-свойства-события есть примеры кода и тестовые примеры. Это ускорит написание сценария вашего приложения. Тестирование проведено для односкрипта v1.8.4.5 в Windows 10 и в Linux Mint.
Работа только начата. Пишите замечания и пожелания. Контакт указан на сайте по ссылке вверху.