写在前面
窗口管理器和父窗口负责管理其他窗口,包括相应地处理来自应用程序和子窗口的事件。
窗口管理器和父窗口都会收到它们负责的窗口的事件。他们应该根据这些事件采取相应的行动。在大多数情况下,事件会触发窗口可见性、大小或位置的更新。窗口管理器和父窗口被赋予特殊权限,可以更改其组或层次结构中窗口的属性。
一,管理器
窗口管理器必须在 SCREEN_WINDOW_MANAGER_CONTEXT 上下文中创建。这个特权上下文允许一个上下文在创建或销毁新的应用程序窗口时控制系统中所有的窗口。当应用程序创建新的窗口、销毁现有的窗口或更改某些窗口属性时,这个上下文也会收到事件。窗口管理器必须处理这些事件,以正确管理布局和输入。
窗口管理器的主要功能是处理与窗口对象相关的事件,并控制窗口在显示器上的显示方式。复杂的窗口管理器可能包括管理输入或显示等附加功能。
窗口管理器必须处理来自其管理的窗口的以下事件
- SCREEN_EVENT_CREATE
- SCREEN_EVENT_CLOSE
- SCREEN_EVENT_POST
- SCREEN_EVENT_PROPERTY
二,父窗口
父窗口不需要在特权环境中创建。当子窗口加入或离开其组时,或者当某些窗口属性发生更改时,他们会收到事件。父窗口必须处理这些事件以正确管理布局。
三,组
组用于组织、显示和控制应用程序中的窗口。它们是一组没有任何层次含义的窗口。
组只是彼此之间存在某种关联(例如相关内容)的一组窗口。创建组的人是组的所有者。有一些属性可以应用于组,例如SCREEN_PROPERTY_IDLE_TIMEOUT。组属性应用于组的所有成员,你可以使用screen_set_group_property_()和screen_get_group_prope