5. Теги экранного графического интерфейса пользователя (GUI)
Как правило, любой отчет, в том числе и графический, подразумевает некоторый
начальный диалог с пользователем. Например, ввод интервала дат, за который
необходимо собрать отчет. Конечно, можно использовать для этих целей формы
языка HTML. Однако в этом случае входной контроль вводимых пользователем данных
придется выполнять либо на сервере отчетов, либо дополнительными средствами
типа JavaScript. Кроме того, этот подход возможен только при использовании
luagml в качестве апплета в среде WWW-броузера и невозможен при
использовании его в качестве приложения.
Таким образом, существует реальная потребность реализации в языке GML
тегов, позволяющих создавать диалоговые интерфейсы с пользователем. Тем
более, что идеология пользовательских интерфейсов естественно укладывается в
структуру языка GML, поскольку представляет собой дерево компонентов
различного назначения: панели, менджеры расположения, кнопки, списки, меню, поля
ввода и т.п.
-
frame [ window BOOL title STRING x resizable BOOL closable BOOL
maximizable BOOL iconifiable BOOL ...]
-
box [ type STRING title STRING style STRING ...]
-
label [ str STRING color STRING icon STRING halign STRNG valign STRNG
hstr STRING vstr STRING ]
-
combo [ name STRING index INT editable BOOL
item [ name STRING value STRING hstr STRING vstr STRING ]
...
]
-
radio [ name STRING index INT type STRING title STRING style STRING
item [ name STRING value STRING hstr STRING vstr STRING ]
...
]
-
check [ name STRING value STRING str STRING selected BOOL
hstr STRING vstr STRING ]
-
space [ type STRING w INT h INT ]
-
field [ type STRING name STRING value STRING len INT w INT h INT
tip STRING]
-
button [ type STRING str STRING src STRING
param [ name STRING value STRING ]
...
]
-
menubar [
menu [ str STRING icon STRING
item [ str STRING src STRING
param [ name STRING value STRING ]
...
]
...
]
...
]
-
list [ title STRING style STRING
item [ str STRING ]
...
]