CN1300684C - 确定图形用户界面中窗口剪切关系的方法 - Google Patents
确定图形用户界面中窗口剪切关系的方法 Download PDFInfo
- Publication number
- CN1300684C CN1300684C CNB2005100492971A CN200510049297A CN1300684C CN 1300684 C CN1300684 C CN 1300684C CN B2005100492971 A CNB2005100492971 A CN B2005100492971A CN 200510049297 A CN200510049297 A CN 200510049297A CN 1300684 C CN1300684 C CN 1300684C
- Authority
- CN
- China
- Prior art keywords
- window
- shearing
- territory
- rectangular area
- preface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种确定图形用户界面中窗口剪切关系的方法。本发明的方法通过记录和维护各个窗口的剪切域中各矩形区域其上层遮盖窗口数量的计数值,在图形用户界面系统每次发生影响窗口剪切关系事件时,本发明不需要重新计算所有窗口的剪切关系,而仅计算实际受影响的窗口的剪切关系,因而减少了计算复杂度,缩短响应时间。
Description
技术领域
本发明涉及计算机图形学领域,特别是涉及一种用于计算机系统确定图形用户界面中窗口剪切关系的方法。
背景技术
随着便携移动设备的普及,例如个人数字助手(PDA),手机等,基于便携移动设备的带有人机交互的图形界面应用软件大量涌现,图形界面的应用程序的界面也日趋复杂。而由于便携移动设备的计算能力弱,复杂的图形界面程序在窗口切换的响应速度方面难以满足用户的需求。因此,对传统桌面计算机的图形界面的相关关键技术进行改造,可以提高图形界面程序的响应性能,改善用户的使用体验。
在任何一个多窗口的图形用户界面系统中,必须确保一个窗口中的显示输出不会影响到其它窗口。因此处理窗口之间的互相剪切关系是至关重要的问题。由于任何窗口位置的改变,都会影响到剪切关系的重新计算,因此窗口剪切关系的计算方法,也成为制约。
多窗口系统通常利用Z序来管理窗口之间的互相剪切关系。Z序实际定义了窗口之间的层叠顺序。屏幕上的所有窗口使用通常原点在左上角,X轴水平向右,Y轴垂直向下的基准坐标系。Z序就是相对于一条假想的从屏幕内指向屏幕外的Z轴而言的。窗口在这个Z轴上的值,就确定了其Z序。Z序值大的窗口,覆盖了Z序值小的窗口。
根据窗口在Z序中所处的位置,图形用户界面系统要计算每个窗口和桌面受剪切的区域(桌面可以看成特殊的窗口),即剪切域。窗口的剪切域定义为互不相交的矩形集合。屏幕上没有任何窗口时,桌面的剪切域由一个矩形组成,即屏幕矩形;当屏幕上只有一个窗口时,该窗口的剪切域由包围该窗口的最小矩形组成,而桌面的剪切域是由桌面的矩形被该窗口的分割成的个数尽可能少的矩形组成的集合。当屏幕上有新的窗口出现,将按照上述规则,同时剪切已有的窗口和桌面,从而改变已有窗口和桌面的剪切域。
图形用户系统的底层图形引擎在进行向显示设备的输出时,要根据当前输出的剪切域进行输出的剪切操作,从而保证窗口的绘制输出不会互相影响。因为任何一个窗口的创建、销毁、隐藏、显示均有可能影响其他窗口的剪切域,因此剪切域维护方法的效率是决定图形用户界面效率的关键。
现有的图形用户系统,在每次可能影响剪切域的事件发生——即窗口的创建、销毁、隐藏、显示、切换时,使用的方法是将所有窗口和桌面的剪切域清空,再重新按照Z序依次计算之,该方法实现简单,在桌面计算机的图形用户界面系统中广泛运用,但其效率不高,在计算能力弱而性能要求高的嵌入式系统中无法满足要求。
因此,如果能提出更高效的剪切关系确定方法,可以提高整个图形用户界面系统的运行效率,减少响应时间。
发明内容
本发明的目的在于提供一种用于确定计算机系统图形界面窗口的剪切关系的方法。
本发明采用的技术方案如下:
多窗口图形用户界面的各窗口发生剪切域改变的事件包括新窗口的创建、已创建窗口的显示、已显示窗口的隐藏、已显示窗口的移动、已显示窗口间的切换、已创建窗口的销毁共计六种情况。在这六种情况下确定窗口剪切关系:
1)每次创建新的窗口时,其窗口的剪切域集合只有一个矩形,矩形为窗口大小,矩形标记值为0,然后按照其Z序插入到所有窗口列表的合适位置,计算该窗口被Z序大于它的所有窗口剪切而形成的剪切域,对剪切域这一集合中的各矩形区域进行标记,标记方法是:如果该矩形区域其上不被任何窗口遮盖,则标记为0,否则,其上如有N个窗口遮盖,则标记为-N;
2)每次显示已经创建的窗口时,遍历所有Z序小于它的窗口的原有剪切域中各矩形区域,如果某个矩形区域和待显示窗口相交,则计算该矩形区域被待显示窗口剪裁的剪切域,该矩形区域所属窗口的剪切域为原有剪切域减去该矩形区域后和该矩形区域剪切域的并集,也按照1)中的叙述标记规则进行标记;
3)每次隐藏已经显示的窗口时,遍历所有Z序小于它的窗口的原有剪切域中各矩形区域,如果某个矩形区域和隐藏示窗口相交,则将该矩形区域的标记加一,如果标记达到0,则意味着该矩形区域将被显示;
4)每次移动已经显示的窗口时,在移动过程中只重画,不修改剪切域,当移动结束后,将利用3)的步骤隐藏原位置窗口,利用2)的步骤在新位置显示窗口;
5)每次在已显示的窗口中切换,则利用3)的步骤,将该窗口隐藏,修改该窗口的Z序到最顶层,重新初始化该窗口的剪切域,并按照2)的步骤显示该窗口,但只需要遍历所有Z序大于该窗口原有Z序的窗口;
6)每次销毁已有的窗口时,如果该窗口已经被显示,则先利用3)的步骤隐藏该窗口,再将该窗口从窗口列表中移除;如果该窗口已经被隐藏,则直接将该窗口从窗口列表中移除。
本发明和已有技术相比具有的有益的效果是:它不需要重新计算所有窗口的剪切关系,而仅计算实际受影响的窗口的剪切关系,因而减少了计算复杂度,缩短响应时间。
附图说明
图1是用来说明本发明的图例是初始状态的两个窗口(窗口1,窗口2);
图2是增加的窗口3的图例;
图3是在图1中增加了窗口3之后的图例;
图4是在图3中移动窗口3结束时的图例;
图5是在图3状态下,切换窗口2到最顶层的图例。
具体实施方式
在图形用户界面系统中实现该方法时,可以用链表数据结构按照Z序依次存放各个窗口的描述结构,在各个窗口的描述结构中,用链表数据结构存放该窗口的剪切域,链表的每个结点,包含该窗口一个被剪切的矩形区域的位置信息,以及一个用来执行上述操作步骤的标记。每次发生需要改变窗口剪切关系的时候,按照上述方法遍历窗口描述结构链表,以及位于窗口描述结构链表中的剪切域进行修改标记等操作,而不需像传统方法那样清空所有窗口的剪切域再重新计算。
用一个例子来说明如何用本发明解决各窗口发生剪切域的情况:
情况1:图1有两个窗口,分别为窗口1(由区域X,Y,B组成),窗口2(由区域Y,Z组成),它们的Z序分别为1,2,表示窗口1被窗口2遮盖。
在当前情况下,两个窗口相应的剪切域和矩形标记值分别为(用链表存贮)
窗口1的剪切域为X(0)→B(0)→Y(-1)(其中括号中的数字为矩形标记值)
窗口2的剪切域为(Y+Z)(0)(其中(Y+Z)表示区域Y和Z组成的矩形)
然后采用技术方案(1)增加窗口3,窗口3的Z序为3。
由于没有Z序大于3的窗口,所以这时窗口3的剪裁域和矩形标记值分别为:
窗口3的剪裁域为M(0) (见图2)
情况2:采用技术方案(2)显示已经创建的窗口3。
这时,窗口1和窗口2的Z序都小于窗口3的Z序,所以遍历窗口1和窗口2原有剪切域中的各个矩形,采用技术方案(2)进行操作。窗口1的剪切域中的矩形X(0)跟窗口3相交,矩形X(0)被窗口3剪裁的剪切域为A(0)→D(-1),矩形B(0)跟窗口3不相交,矩形Y(-1)跟窗口3相交,矩形Y被窗口3剪裁的剪切域为C(-1)→E(-2)→F(-1),根据技术方案(2),此时窗口1的剪切域和矩形标记值分别为:
窗口1的剪切域:A(0)→D(-1)→B(0)→C(-1)→E(-2)→F(-1) (见图3)
窗口2的剪切域中的矩形(Y+Z)(0)跟窗口3相交,矩形(Y+Z)(0)被窗口3剪裁的剪切域为C(0)→(E+H)(-1)→(F+G)(0),所以窗口2的剪切域和矩形标记值分别为:
窗口2的剪切域:C(0)→(E+H)(-1)→(F+G)(0) (见图3)
情况3:在图3隐藏窗口2时,采用技术方案(3),由于窗口1的Z序小于窗口2的Z序,所以遍历窗口1的剪切域集合中的各个矩形。矩形A,D,B跟窗口2不相交,保持原样,矩形C(-1),E(-2),F(-1)跟窗口2相交,所以分别将它们的矩形标记值加1。这时窗口1的剪切域和矩形标记值分别为:
窗口1:A(0)→D(-1)→(B)(0)→C(0)→E(-1)→F(0)
情况4:在图3移动窗口3结束时,采用技术方案(4),先利用技术方案(3)把窗口3隐藏掉,这时窗口1和窗口2的剪切域就跟图1的情况一样,然后利用技术方案(2)把窗口3在移动到的新的位置显示出来。这时候,窗口1,窗口2和窗口3的剪切域和矩形标记值分别为:
窗口1的剪切域:A(0)→D(-1)→B(0)→C(-1)→E(-2)→F(-1)
窗口2的剪切域:C(0)→(E+H)(-1)→(F+G)(0)
窗口3的剪切域:(D+E+H+I)(0) (见图4)
情况5:在图3状态下,切换窗口2到最顶层,采用技术方案(5),先利用技术方案(3)把窗口2隐藏掉,可以参考情况3。然后修改窗口3的Z序值为2,窗口2的Z序值为3,再利用技术方案(2)重新初始化窗口2的剪切域,并显示窗口2,但只需要遍历窗口3的剪裁域集合中的各个矩形。窗口3的剪裁域中矩形(D+E+I+H)(0)跟窗口2相交,被窗口2剪裁的剪切域为(D+Ia)(0)→(E+H)(-1)→(Ib)(0),所以窗口3的剪裁域和矩形标记值分别为:
(D+Ia)(0)→(E+H)(-1)→(Ib)(0) (其中Ia,Ib组成原来区域I)
窗口1的剪切域不需要改变。
窗口2的剪裁域和矩形标记值重新初始化为:(C+E+F+H+G)(0) (见图5)
情况6:在图3情况下删除窗口3,采用技术方案(6)。由于窗口3已经被显示,所以先利用技术方案(3)隐藏窗口3,然后从窗口列表中移除窗口3,最后结果如图1所示。
Claims (1)
1一种确定图形用户界面中窗口剪切关系的方法,其特征在于:
1)每次创建新的窗口时,按照其Z序插入到所有窗口列表的合适位置,计算该窗口被按Z序大于它的所有窗口剪切而形成的剪切域,对剪切域这一集合中的各矩形区域进行标记,标记方法是:如果该矩形区域其上不被任何窗口遮盖,则标记为0,否则,其上如有N个窗口遮盖,则标记为-N;
2)每次显示已经创建的窗口时,遍历所有Z序小于它的窗口的原有剪切域中各矩形区域,如果某个矩形区域和待显示窗口相交,则计算该矩形区域被待显示窗口剪裁的剪切域,该矩形区域所属窗口的剪切域为原有剪切域减去该矩形区域后和该矩形区域剪切域的并集,也按照1)中的叙述标记规则进行标记;
3)每次隐藏已经显示的窗口时,遍历所有Z序小于它的窗口的原有剪切域中各矩形区域,如果某个矩形区域和待隐藏窗口相交,则将该矩形区域的标记加一,如果标记达到0,则意味着该矩形区域将被显示;
4)每次移动已经显示的窗口时,在移动过程中只重画,不修改剪切域,当移动结束后,将利用3)的步骤隐藏原位置窗口,利用2)的步骤在新位置显示窗口;
5)每次在已显示的窗口中切换,则利用3)的步骤,将该窗口隐藏,修改该窗口的Z序到最顶层,按照2)的步骤显示该窗口,但只需要遍历所有Z序大于该窗口原有Z序的窗口;
6)每次销毁已有的窗口时,如果该窗口已经被显示,则先利用3)的步骤隐藏该窗口,再将该窗口从窗口列表中移除;如果该窗口已经被隐藏,则直接将该窗口从窗口列表中移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100492971A CN1300684C (zh) | 2005-01-31 | 2005-01-31 | 确定图形用户界面中窗口剪切关系的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100492971A CN1300684C (zh) | 2005-01-31 | 2005-01-31 | 确定图形用户界面中窗口剪切关系的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1645320A CN1645320A (zh) | 2005-07-27 |
CN1300684C true CN1300684C (zh) | 2007-02-14 |
Family
ID=34876564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100492971A Expired - Fee Related CN1300684C (zh) | 2005-01-31 | 2005-01-31 | 确定图形用户界面中窗口剪切关系的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1300684C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762524B1 (en) | 2022-05-25 | 2023-09-19 | Microsoft Technology Licensing, Llc | End-user created cropped application window |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487465B2 (en) * | 2006-01-06 | 2009-02-03 | International Business Machines Corporation | Application clippings |
CN103959246B (zh) * | 2012-08-22 | 2017-03-08 | 华为技术有限公司 | 窗口图像的传输方法、显示方法、终端、服务器及系统 |
CN107783883B (zh) * | 2017-10-10 | 2018-11-16 | 叶雅敏 | 一种检测窗口是否被遮挡的方法 |
CN109167808B (zh) * | 2018-07-18 | 2022-03-01 | 北京小蓦机器人技术有限公司 | 一种数据处理方法、装置和系统 |
CN112306588A (zh) * | 2019-07-26 | 2021-02-02 | 浙江宇视科技有限公司 | 一种窗口叠层方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1044718A (zh) * | 1989-02-06 | 1990-08-15 | 国际商业机器公司 | 窗口管理中的深度缓存器剪取 |
US5191644A (en) * | 1990-10-10 | 1993-03-02 | Fuji Xerox Co., Ltd. | Multiwindow control system |
US5386505A (en) * | 1990-11-15 | 1995-01-31 | International Business Machines Corporation | Selective control of window related overlays and underlays |
US5475812A (en) * | 1992-09-11 | 1995-12-12 | International Business Machines Corporation | Method and system for independent control of multiple windows in a graphics display system |
US5515494A (en) * | 1992-12-17 | 1996-05-07 | Seiko Epson Corporation | Graphics control planes for windowing and other display operations |
CN1510568A (zh) * | 2002-12-26 | 2004-07-07 | 英业达股份有限公司 | 屏幕刷新的方法 |
-
2005
- 2005-01-31 CN CNB2005100492971A patent/CN1300684C/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1044718A (zh) * | 1989-02-06 | 1990-08-15 | 国际商业机器公司 | 窗口管理中的深度缓存器剪取 |
US5191644A (en) * | 1990-10-10 | 1993-03-02 | Fuji Xerox Co., Ltd. | Multiwindow control system |
US5386505A (en) * | 1990-11-15 | 1995-01-31 | International Business Machines Corporation | Selective control of window related overlays and underlays |
US5475812A (en) * | 1992-09-11 | 1995-12-12 | International Business Machines Corporation | Method and system for independent control of multiple windows in a graphics display system |
US5515494A (en) * | 1992-12-17 | 1996-05-07 | Seiko Epson Corporation | Graphics control planes for windowing and other display operations |
CN1510568A (zh) * | 2002-12-26 | 2004-07-07 | 英业达股份有限公司 | 屏幕刷新的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762524B1 (en) | 2022-05-25 | 2023-09-19 | Microsoft Technology Licensing, Llc | End-user created cropped application window |
Also Published As
Publication number | Publication date |
---|---|
CN1645320A (zh) | 2005-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1300684C (zh) | 确定图形用户界面中窗口剪切关系的方法 | |
US6487565B1 (en) | Updating animated images represented by scene graphs | |
CN1991744A (zh) | 一种在即时通讯工具聊天窗口查看消息记录的实现方法 | |
JP4771431B2 (ja) | オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム | |
CN101075173A (zh) | 显示装置及显示方法 | |
CN101390081A (zh) | 用于在带有选项卡的浏览器内选择一选项卡的系统和方法 | |
CN1291355C (zh) | 用于区域渲染的深度写禁止 | |
CN1669055A (zh) | 用于区域渲染的自动存储器管理 | |
CN103809896A (zh) | 一种页面切换方法及装置 | |
CN1390322A (zh) | 三维图形用户界面窗口 | |
CN1831766A (zh) | 用于管理计算机程序代码的开发对象的方法和系统 | |
CN102567399B (zh) | 一种访问数据库的方法和装置 | |
Banach et al. | Engineering and theoretical underpinnings of retrenchment | |
Singh et al. | The anatomy of big data: concepts, principles and challenges | |
CN1928870A (zh) | 彻底粉碎ntfs卷中文件数据的方法 | |
CN1811775A (zh) | 计算机中建立树状文件结构的方法 | |
CN101783022A (zh) | 基于画家算法的道路网整体符号化方法 | |
CN102880382A (zh) | 一种界面展示系统、方法和设备 | |
Liu et al. | Moving block sequence and organizational evolutionary algorithm for general floorplanning with arbitrarily shaped rectilinear blocks | |
CN102065336A (zh) | 数字电视接收机及其确定多级窗口剪切关系的方法 | |
CN1471052A (zh) | 用于在认可阿尔法通道的环境中使用非阿尔法通道图像数据的系统和方法 | |
CN1256456A (zh) | 用于在显示器的显示区之间切换的接口控制 | |
CN1311330C (zh) | 在利用界面显示信息的过程中处理信息的方法 | |
CN1725211A (zh) | 一种显示和操作电子表格中工作薄的装置 | |
CN1684033A (zh) | 智能仪表界面自动生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070214 Termination date: 20160131 |
|
EXPY | Termination of patent right or utility model |