Project

General

Profile

Структура VID файла

В VID файле описывается внешний вид приложения, то есть какие окна (в дальнейшем OBJECTS) в каком порядке будут расположены на главном окне приложения MAIN FRAME).

С помощью команды: CFG_NAME "Имя" можно задать имя конфигурации. C помощью команды: CFG_COMMENT "Описание" Можно дать описание команды.

Положить OBJECT непосредственно на MAIN FRAME нельзя. На MAIN FRAME можно положить SPLITTER - таблицу с определяемым числом строк и колонок. В каждую ячейку SPLITTER’а обязательно нужно положить VIEW (табулятор или массив OBJECT’ов или просто контейнер для одного OBJECT’а), а уже на VIEW можно положить OBJECT. Вся эта процедура и описывается в VID файле.

CREATE_OBJ

Прежде, чем использовать OBJECT его необходимо создать. Для этого служит набор команд с префиксом CREATE_OBJ_. 

 Например

CREATE_OBJ_BROW                 OBJ_ID


создает файловый browser где OBJ_ID - идентификатор OBJECT’а (строчный)

CREATE_OBJ_PLAYLIST - окно просмотра расписания

CREATE_OBJ_DB - просмотр внешней БД

CREATE_OBJ_BROW_DB - окно БД

CREATE_OBJ_PLAIR - двойной player

CREATE_OBJ_JNGL - Джингл машина

CREATE_OBJ_BOOK - Папки

CREATE_OBJ_PLIST - Одиночный Player

CREATE_OBJ_SBJ - окно просмотра сюжетов

CREATE_OBJ_TIME - индикатор времени

CREATE_OBJ_LOG - канал логгера

CREATE_OBJ_PLAY_X - новый player (X-player) etc.

CREATE_SPLIT_BASE

Cоздать SPLITTER 

Например

CREATE_SPLIT_BASE SPLITTER_ID n_rows n_cols


создает SPLITTER у которого кол-во строк равно n_rows, а кол-во колонок равно n_cols и кладет его на MAIN FRAME, где SPLITTER_ID - идентификатор SPLITTER’а.

Например

CREATE_SPLIT_BASE SPLITTER_ID n_rows n_cols PARENT_SPLITTER_ID parent_splitter_row parent_splitter_col


создает SPLITTER у которого кол-во строк равно n_rows, а кол-во колонок равно n_cols и кладет его на SPLITTER c идентификатором PARENT_SPLITTER_ID в ячейку. (parent_splitter_row, parent_splitter_col)

CREATE_VIEW

Команды с префиксом CREATE_VIEW_ служат для создания различных типов VIEW.

Например

CREATE_VIEW_SINGLE VIEW_ID SPLITTER_ID  splitter_row splitter_col view_width view_height


создает VIEW с идентификатором VIEW_ID и располагает на SPLITTER’е с идентификатором SPLITTER_ID в ячейке (splitter_row, splitter_col) в созданную таком образом VIEW можно положить один OBJECT. view_width и view_height желаемая ширина и высота VIEW.

Например

  CREATE_VIEW_TAB VIEW_ID SPLITTER_ID splitter_row splitter_col view_width view_height


создает VIEW с идентификатором VIEW_ID и располагает на SPLITTER’е с идентификатором SPLITTER_ID в ячейке (splitter_row, splitter_col) в созданную таком образом VIEW можно положить любое кол-во OBJECT’ов. Внешне VIEW будет выглядеть, как табулятор с возможностью переключения OBJECT’ов.

Например

CREATE_VIEW_ARRAY VIEW_ID SPLITTER_ID   splitter_row splitter_col view_width view_height ojects_count objects_in_row


создает VIEW с идентификатором VIEW_ID и раполагает на SPLITTER’е с идентификатором SPLITTER_ID в ячейке (splitter_row, splitter_col) в созданную таком образом VIEW можно положить ojects_count OBJECT’ов, все они будут расположены в виде таблицы, где в одной строке objects_in_row OBJECT’ов.

SET_VIEW_SINGLE_OBJ VIEW_ID OBJ_ID 


Положить объект с идентификатором OBJ_ID на VIEW с идентификатором VIEW_ID. VIEW должна быть создана ранее при помощи CREATE_VIEW_SINGLE.

SET_VIEW_ARRAY_OBJ VIEW_ID NUMBER OBJ_ID 


Положитть объект с идентификатором OBJ_ID на VIEW с идентификатором VIEW_ID в ячейку под номером NUMBER. VIEW должна быть создана ранее при помощи CREATE_VIEW_ARRAY.

SET_VIEW_TAB_OBJ  VIEW_ID OBJ_ID NAME 


Положить объект с идентификатором OBJ_ID на VIEW с идентификатором VIEW_ID. VIEW должна быть создана ранее при помощи CREATE_VIEW_TAB NAME - название закладки табулятора.

#define

#define XXX YYY 


после того, как данная строка встретится в VID файле, при обнаружении текста XXX он будет заменен на YYY Обычно используется для предопределения численных идентификаторов OBJECT’ов, SPLITTER’ов etc.

#include

#include "filename.ext"


при разборе файла в это место будет вставлено содержимое файла "filename.ext"

#disable

#disable XXX


Все строки, в которых встречается XXX, при разборе будут пропущены SET_OBJ_BASE OBJ_ID x1 x2 x3 … Xn. Дополнительная настройка ранее созданного OBJECT’а с идентификатором OBJ_ID. Параметры x1 x2 x3 … Xn будут переданы OBJECT’у и он попытается понять, что это значит. Какие команды какому OBJECT’у можно давать будет описано позднее (долго с этим разбираться). Если в качестве операнда используется строчка, включающая пробелы, она пишется в кавычках.

SET_SPLIT_X и SET_SPLIT_Y

SET_SPLIT_X SPLITTER_ID x1 x2 x3 ... xi ... xn SET_SPLIT_Y SPLITTER_ID y1 y2 y3 ... yi ... yn


Каким образом делать начальное масштабирование SPLITTER’а с идентификатором SPLITTER_ID. Ширина ячейки номер i рассчитывается следующим образом (если ширина всего SPLITTER’а - splitter_width ) wi = (splitter_width * xi) / (x1 + x2 + x3 + … + xi + … + xn); аналогично для высоты.

Splitter внутри табулятора

В некоторых случаях есть необходимость положить splitter на страничку табулятора. Эта ситуация требует особого подхода.

Ниже описана последовательность действий, необходимых для создания на закладке табулятора сплиттера, содержащего несколько модулей.

1. Создать объект со сплиттером SPLIT_HOLDER

CREATE_OBJ_SPLIT_HOLDER     OBJID_SHOLDER1  SP_n  n_rows n_cols


Данная записть означает, что будет создан объект со сплиттером с идентификатором OBJID_SHOLDER1 и именем SP_n, состоящий из n_rows строк и n_cols колонок.

Допустим, что SPLITTER и VIEW уже созданы

CREATE_SPLIT_BASE SPLITTER_ID n_rows n_cols


создает сплиттер, у которого кол-во строк равно n_rows, а кол-во колонок равно n_cols и кладет его на MAIN FRAME, где SPLITTER_ID - идентификатор сплиттера

CREATE_VIEW_TAB VIEW_ID_X SPLITTER_ID splitter_row splitter_col view_width view_height


создает VIEW с идентификатором VIEW_ID_X и располагает на слиттере с идентификатором SPLITTER_ID в ячейке (splitter_row, splitter_col).

2. Положить созданный объект OBJID_SHOLDER1 на VIEW с именем NAME, где в NAME - имя закладки табулятора

SET_VIEW_TAB_OBJ VIEW_ID_X OBJID_SHOLDER1  NAME

3. Далее создаем VIEW с идентификатором VIEW_ID_Y и располагаем ее на объекте со сплиттером OBJID_SHOLDER1 с именем SP_n

CREATE_VIEW_SINGLE VIEW_ID_Y  SP_n  splitter_row splitter_col view_width view_height


VIEW располагается в ячейке (splitter_row, splitter_col). view_width и view_height желаемая ширина и высота VIEW.

4. После чего на созданную VIEW с идентификатором VIEW_ID_Y кладем какой-нибудь объект, например окно просмотра расписания

SET_VIEW_SINGLE_OBJ VIEW_ID_Y   OBJID_MAP

* Окно просмотра расписания должно быть создано заранее при помощи

CREATE_OBJ_PLAYLIST     OBJID_MAP

В качестве примера использования ниже прикреплен конфигурационный файл, в котором на одной из закладок располагается модуль расписания и плеер.

ZOOM_OBJ - модуль в полный экран (Fullscreen)

Модуль можно развернуть в полный экран сразу после запуска приложения.
Для этого служит команда ZOOM_OBJ. У нее два параметра - идентификатор модуля и номер монитора, на котором нужно развернуть модуль в полный экран, начиная с 1.
Если нужно развернуть несколько модулей на разные экраны - то команда может быть указана несколько раз.

Рекомендуется размещать в самом конце VID-файла.

Пример разворачивает модуль OBJID_MAP2 на весь экран первого монитора:

ZOOM_OBJ OBJID_MAP2 1

Выход из полноэкранного режима происходит по нажатию Alt+Enter.

Add picture from clipboard (Maximum size: 742 MB)