InnerCore/Введение в GUI/Многооконный интерфейс

Материал из mineprogramming wiki
Перейти к: навигация, поиск

Третий тип окон это Многооконный. Также он называется WindowGroup.

Его объект описания такой же как и у обычных Однооконных Интерфесйов. Но имеет другой вид использования.

var group = new UI.WindowGroup();
var container = new UI.Container();
// задаем описание 1 окна ...
var window1 = new UI.Window({
     location: { x: число, y: число },
     drawing: [/* элементы отрисовки фона */],
     elements: {/* описание элементов */}
});
// задаем описание 2 окна ...
var window2 = new UI.Window({
     location: { x: число, y: число },
     drawing: [/* элементы отрисовки фона */],
     elements: {/* описание элементов */}
});
group.addWindow("name1", window1);
group.addWindow("name2", window2);
group.setBlockingBackground(true); // блокировать ли фон при нажатии за окнами
сontainer.openAs(group); // откроет все добавленные в group окна

// также можно открыть/закрыть любое окно
group.getWindow("name1").close(); // закрытие окна с именем name1
group.getWindow("name1").open(); // открытие окна с именем name2

// получение описания интерфейса
var content = group.getWindowContent("name1");
// задать описание интерфейса
group.setWindowContent("name1", window2);

// обновить окно
group.refreshWindow("name2");
// обновить все окна
group.refreshAll();
// также окна можно удалять
group.removeWindow("name2"); // автоматически закроется и удалится