生态桌面应用

多窗口

在同一应用事件循环中管理独立窗口、控件树与焦点。

同一应用可以创建多个窗口。每个窗口拥有独立控件树、焦点、指针捕获、绘制表面和 DPI 状态,但共享应用级字体、图片、主题和事件循环。

「包:言界」 界面;

 应用  界面.应用「多窗口」);
 主窗  应用.窗口({「标题」「主窗口」「宽」560「高」360});
 副窗  应用.窗口({「标题」「第二窗口」「宽」440「高」280});

主窗.({「内边距」20}).文字「两个窗口共享一个事件循环」);
副窗.({「内边距」20}).输入框({「内容」「独立焦点与控件树」});

 关闭处理(所事件) 
    应用.退出();

主窗.关闭时(关闭处理);
副窗.关闭时(关闭处理);
主窗.显示();
副窗.显示();
应用.运行();

示例选择任一窗口关闭就退出。真实编辑器通常只关闭目标窗口,并在窗口数归零或收到应用退出请求时退出。系统关闭最后一个窗口会在同一批次产生窗口关闭请求和应用退出请求;应用可以保存、确认、关闭或取消。

窗口可位于不同 DPI 显示器。移动跨屏时,每个窗口独立收到DPI变化并重新布局,不应把主窗口比例因子缓存给其他窗口。