В случае, когда ZuluGIS автоматически создает панель для внедряемого окна модуля (например, если модуль выполнен в виде элемента ActiveX), поведением этого окна можно управлять. Для этого служит элемент controlbar:
<plugin id="myplugin" name="My Plugin"> <controlbar allowdockable="1|0" dockable="1|0" hideonclose="1|0" showhidecommand="Имя_команды" initialsize="cx,cy" caption="Заголовок окна" sizeable="1|0" /> ...
Можно задать заголовок окна с помощью атрибута caption. Этот же заголовок будет иметь плавающая панель, куда внедрено окно модуля, а также будет отображаться среди вкладок, когда панель будет «придокирована».
Начальные габариты окна можно задать с помощью атрибута initialsize. В нем через запятую указывается ширина и высота клиентской области окна в пикселах:
initialsize="200,200"
Также можно задавать размеры в единицах twips. Это удобно, когда встраиваемое окно разрабатывается как UserControl в Microsoft Visual Basic, где размеры обычно задаются в twips. Например:
initialsize="twips:4095,3735"
По-умолчанию пользователь может менять размеры окна с помощью рамки панели, однако это можно запретить, чтобы габариты окна оставались неизменными. Для этого нужно задать атрибут sizeable со значением 0:
sizeable="0"
Если не указано иначе, при нажатии на кнопку «Закрыть» окна модуля, это окно закрывается и уничтожается. Это поведение можно изменить.
Для того, чтобы окно не уничтожалось, а лишь скрывалось, можно воспользоваться атрибутом hideonclose:
hideonclose="1"
В этом случае команда кнопки «Закрыть» меняется на «Скрыть», при нажатии на кнопку окно становится невидимым и может быть вновь отображено при вызове какой-либо команды модуля.
Также операцию скрытия/отображения окна модуля можно синхронизировать с какой-либо командой модуля. Для этого служит строковый параметр showhidecommand:
showhidecommand="ShowForm"
При указании этого параметра, окно модуля ведет себя также как и встроенные рабочие окна ZuluGIS, такие как «Сообщения», «Свойства», «Навигатор» и др. С помощью указанной команды модуля окно скрывается или вновь отображается, при этом внешний вид кнопки инструментов или пункта меню отражает текущее состояние окна (видимое/невидимое).