图形用户界面管理的制作方法

文档序号:6566783阅读:238来源:国知局
专利名称:图形用户界面管理的制作方法
图形用户界面管理
背景
诸如个人数字助理(PDA)、袖珍PC、蜂窝电话、手持式游戏系统、手持式 电子测试设备等手持式计算设备通常包括显示器。这些手持式计算设备中的许多在 其显示器上提供图形用户界面(GUI)。遗憾的是,由于这些手持式计算设备中的 显示器尺寸较小,使得在诸如台式计算机用显示器等较大显示器上使用的图形用户 界面对于这些手持式设备往往并不是最优的。在GUI包括多个窗口时该问题尤为 尖锐。
附图简述


图1示出了包括其上绘制有图形用户界面(GUI)的显示器的计算设备的一个示例。
图2示出了图1的显示器和GUI以及用于控制该GUI的GUI管理模块的一个 示例。
图3示出了图2的GUI管理模块的子窗口模块的一个示例。 图4示出了图2的GUI管理模块的窗口管理模块的一个示例。 图5示出了用于控制图1和2的GUI的操作流程的一个示例。 图6示出了用于控制图1和2的GUI的操作流程的另一示例。 图7示出了用于控制图1和2的GUI的操作流程的另一示例。
说明
以下说明对可在于计算设备的显示器上呈现并管理图形用户界面(GUI)时使 用或可与其结合使用的各种工艺及技术的实现及其它进行了阐述。
根据在此说明的一些实现,GUI以具有界定的子窗口呈现区域的父窗口的形 式被绘制在计算设备的显示器上。绘制在子窗口呈现区域内的是若干子窗口。子窗 口呈现区域内的每个子窗口与一特定过程相关联。如在此使用的,过程可以是通过 子窗口接收和/或传递信息和/或通过子窗口与用户交互和/或为用户所控制的任何程序、进程、服务等。即,每个子窗口为其相关联的过程呈现一GUI。例如, 一个 子窗口可呈现用于数据库程序的GUI,另 一子窗口可呈现用于自动股票行情服务的
GUI,另一子窗口可呈现用于电子邮件程序的收件箱的GUI,而又一子窗口 GUI 可呈现用于电子邮件程序中的搜索功能的GUI等。
每个子窗口可以用若干视觉/功能模式中的一种来显示。g卩,在任意给定时间, 子窗口将根据从其可用的若干视觉/功能模式中选出的一种视觉/功能模式来显示。 每种模式可指定以下内容,诸如该子窗口中窗口控件(例如,工具栏、按钮等)的 数目和放置、该子窗口将显示的信息的格式和类型、该子窗口的大小或大小的范围、 该子窗口的大小是否可变、以及通过该子窗口将对用户可用的功能等。例如,用于 电子邮件程序的子窗口可具有显示接收到的电子邮件消息的列表的第一模式、显示 用于改变该电子邮件程序的运行参数的各种窗口控件的第二模式、以及显示电子邮 件消息的可选列表和用于查看所选的单个电子邮件消息的内容的可滚动窗口的第 三模式等。
在一个实现中,各子窗口根据预定的显示方案排列在子窗口呈现区域内。一 般而言,显示方案指定所要求的该子窗口呈现区域内各子窗口之间的空间关系。例 如,但不构成限定地,根据在此被称为"全显示区域方案"的一个显示方案,各子 窗口以使该子窗口呈现区域内所有可用领地(real estate)被其中所呈现的各子窗口 完全占据、并且各子窗口之间互不重叠的方式排列在子窗口呈现区域内。
当这些子窗口中的一个的大小被改变时,诸如当子窗口的模式被改变时,将 需要调整其它子窗口中一个或多个的大小,以使当前显示方案得以维持。例如,根 据该全显示区域方案,当一个子窗口的大小被改变时,其它子窗口中一个或多个的 大小随之被改变,从而使所有子窗口继续以完全占据子窗口呈现区域的非重叠方式 被显示。
在一个实现中,以使得给定显示方案得以维持的方式改变子窗口模式是由窗 口管理模块来执行的。在这些实现中,窗口管理模块确定每个子窗口将处于哪种模 式以维持特定的显示方案。
在一些实现中,窗口管理模块使用"子窗口分级次序"来维持显示方案。如 在此使用的,"子窗口分级次序"是基于某些预定准则的子窗口顺序分级。子窗口 分级次序指定各子窗口的重要性的相对次序。该重要性次序随后被用于确定哪些子 窗口 (若有)将改变其模式以维持显示方案。例如,在一个实现中,当确定有一子 窗口需要转换到需要较少显示领地的模式时,优选地,具有较低重要性次序的子窗口而不是具有较高重要性次序的子窗口将被转换到需要较少显示领地的模式。
在一些实现中,窗口管理模块对每个子窗口使用"子窗口模式升级/降级序列" 来维持显示方案。如在此使用的,"子窗口模式升级/降级序列"是一给定子窗口 的各模式的顺序排序。通常,但并不一定,各模式根据每种模式将需要多大显示领 地来排序成一子窗口模式序列。在将子窗口从一种模式改为另一种模式时,该子窗 口随即根据需要较多还是较少的显示领地从其当前模式转换到其模式序列中下一 较高或较低模式。
在一些实现中,窗口管理模块使用子窗口分级次序和子窗口模式升级/降级序 列两者来维持显示方案。
现在转到图1,其中示出了可在其中实现在此所描述的GUI呈现和管理的一 种可能的计算设备100。具体而言,图1示出了手持式计算设备100。应该理解的
是,虽然以下说明是针对图1所示的手持式计算设备ioo进行的,然而在此所描述 的GUI呈现和管理可在包括或可访问用于呈现GUI的适当软件和硬件的任何计算 设备、计算系统等中实现。
可在其中实现在此所描述的GUI呈现和管理的其它类型的计算设备的示例包 括,但并不限于,个人计算机、基于微处理器或可编程的消费者或汽车用电子产品、 网络PC、机顶盒、微型计算机、游戏机、大型计算机、电子测试设备等。在此所 描述的GUI呈现和管理还可在其中操作的执行以及数据的存储可分布在通过通信 网络链接的各处理设备上的分布式计算环境中实现。
如图1所示,计算设备100包括处理器102,其上绘制有GUI 106的显示器 104、控制面板107、以及计算机可读介质108。显示器104或可物理地集成到计算 设备100中或可物理地与计算设备100分开。在任一情形中,显示器104都将具有 用于显示GUI 106的适当机构和功能。显示器104还可包括诸如触摸屏、软键、指 示笔传感器等用户可籍其与GUI 106交互的机构。例如,如图所示,显示器104 包括触摸屏110和指示笔112,用户可用其与呈现在GUI 106中的各种视觉和功能 元素(例如,窗口、窗口控件等)交互。
控制面板107包括方便用户与GUI 106交互的键盘和各种其它用户输入机构。 除了显示器104和控制面板107以外,计算设备100还可包括、或被可操作地连接 至其它输入设备(例如,鼠标、话筒等)以及其它输出设备(例如,扬声器、打印 机、以及其它外围设备等)。计算设备100还可包括方便与其它计算机、计算机网 络、外围设备、输入设备等进行基于无线或有线的通信的通信连接。
如在此使用的,计算机可读介质108可以是能够存储或包含以能被计算机访 问和理解的形式编码的信息的任何介质。计算机可读介质的典型形式包括,但并不 限于,易失性和非易失性存储器两者、包括可移动和/或不可移动介质的数据存储 设备、以及通信介质。
通信介质将计算机可读信息包含在诸如载波或其它传输机制等已调制数据信 号中,并且包括任何信息传送介质。术语"已调制数据信号"是指这样的信号,其 一个或多个特性被以将信息编码在该信号中的方式设置或改变。作为示例,但并无 限定性意义,通信介质包括诸如有线网络或直线连接等有线介质、以及诸如声波、RF、红外等无线介质以及其它无线介质。
在图1所示的实现中,计算机可读介质108包括一个或多个过程116、 GUI 管理模块118、以及窗口化子系统122。在于此所述的各种实现中,过程116、 GUI 管理模块118、以及窗口化子系统122由包含在计算机可读介质108中的软件模块 组成或构成。软件模块可包括或包含各种形式和/或格式的计算机可执行指令、和/ 或数据。软件模块可包括执行特定任务或实现特定抽象数据类型的各种子模块、例 程、程序、对象、组件、数据结构等。
虽然在此被描述为包含在计算机可读介质108中并在处理器102上执行的软 件模块,然而将可认识到的是,过程116、 GUI管理模块118和窗口化子系统122 可替换地被全部或部分地实现为硬件、固件、或者软件、硬件、和/或固件的各种 组合。另外,虽然在此被描述为在计算设备100中实现,但是在一些实现中,过程 116、 GUI管理模块118、以及窗口化子系统122中的任意一个或所有都可全部或 部分地在其中操作的执行和数据的存储可分布在通过通信网络链接的各处理设备 上的分布式计算环境中实现。
一般而言,窗口化子系统122处理与在显示器104上管理和呈现窗口和窗口 控件有关的各种操作。窗口化子系统122可处理以下操作,诸如但并不限于,将用 户与计算设备100和GUI 106的交互(例如,击键、指示笔移动、以及控件选择等) 翻译成用于过程116和/或计算设备100的操作系统(未示出)的消息、消息排队、 创建和管理GUI 106的各个方面。例如,窗口化子系统122可定义和管理GUI 106 的典型视觉元素和功能特征,诸如窗口、窗口控件、图形、文本、API和/或其它 资源等。
本领域的技术人员将认识到,有许多不同类型的用于提供或方便GUI在显示 器上的呈现的窗口化子系统。通常,这类窗口化子系统是操作系统的一部分或者与操作系统相关联。提供这类窗口化子系统的操作系统的一些示例包括,但并不限于,MICROSOFT WINDOWS 操作系统的各种版本(例如,WINDOWS⑧XP、 WINDOWS⑧CE等),UNIX⑧操作系统的各种版本、以及其它操作系统。在一些 实现中,窗口化子系统122可以是这些窗口化操作系统之一的一部分,或者与其相 关联。在其它实现中,窗口化子系统122可包括作为操作系统一部分或与操作系统 分开的其它专有、非专有、当前可用或以后开发的窗口化系统。
本领域的技术人员还将认识到,窗口化子系统通常不直接在显示器上绘制 GUI的视觉元素。确切而言,计算设备通常包括基于从窗口化子系统或操作系统接 收到的数据在显示器上绘制GUI的各种硬件和/或软件组件(例如,图形卡、加速 器等)。
如图1所示,根据一个实现,GUI 106包括具有界定的子窗口呈现区域132 的父窗口 130。绘制在子窗口呈现区域132内的是若干子窗口 134- 144。需要注意 的是,虽然在子窗口呈现区域132中示出了 6个子窗口 134 - 144,然而可在子窗 口呈现区域132中呈现更少或更多的子窗口。
在一些实现中,每个子窗口 134- 144与一特定过程相关联并呈现用于该过程 的GUI。如前所述地,如在此使用的,过程可以是通过子窗口接收和/或传递信息、 和/或通过子窗口与用户交互和/或为用户所控制的任何程序、进程、服务等。
父窗口 130可以用各种视觉样式(例如,窗口形状、边界类型、以及颜色等) 来显示,并且可包括任意数目的窗口控件。窗口控件的示例包括,但并不限于,工 具栏、按钮、文本框、对话框、列表框、组合框、编辑框、复选框、向导、属性表 单、单选按钮、日历、进度条、滚动条、调色板、菜单、选项卡、插入符(carrots)、 子窗口等。例如,在图1中所示的实现里,父窗口 130是矩形的,包括工具条124, 并包括各种窗口控件126。在其它实现中,父窗口 130可以是矩形之外的其它形状、 没有工具栏或具有另外一个或多个类型的工具栏,并且具有其它的窗口控件。如下所述,在一些实现中,父窗口 130的视觉和功能属性由父窗口模块250 (图2)来 定义。
子窗口呈现区域132包括父窗口 130内其中绘制有子窗口 134-144的视觉区 域。子窗口呈现区域132可具有各种视觉属性或特征,诸如分隔各子窗口 134 - 144 的外边界或内边界等。反之,子窗口呈现区域132也可没有视觉属性或特征。如下 所述,在一些实现中,子窗口呈现区132的视觉和功能属性(若有)由父窗口模块 250 (图2)定义。
在于此所描述的各种实现中,每个子窗口 134-144根据与该子窗口相关联的
多种视觉/功能模式中的一种来显示。 一般而言,每种模式为其关联子窗口指定窗 口的视觉布局。例如, 一种模式可指定其关联子窗口的大小、形状、和/或颜色、 以及其关联子窗口内的窗口控件的类型、数目、和/或排列。
另外,每种模式可指定通过呈现在其关联子窗口中的窗口控件将对用户可用 的功能或功能组合。 一种模式可指定文本或图形信息将如何在其关联子窗口中显 示。 一种模式可指定其关联子窗口是否大小可调,以及在该子窗口可调的情况下指 定调整该子窗口的方式和该可调子窗口的大小范围。 一种模式可指定其关联子窗口 是否是用户和/或系统可选的。 一种模式还可指定子窗口是否将被隐藏,即不被显
示。如下所述,在一些实现中,子窗口的模式由作为GUI管理系统118的一部分 或被其引用的子窗口模块(图2)定义。
在一些实现中,子窗口 133- 144根据预定的显示方案排列在子窗口呈现区域 132内。 一般而言,显示方案指定所要求的子窗口呈现区域132内各子窗口之间的 空间关系。例如,但不限于,显示方案可指定子窗口是否可彼此重叠、子窗口是否 需要占据整个子窗口呈现区域、子窗口将相互垂直还是水平地排列在子窗口呈现区 域中等。
例如,根据在此被称为"全显示区域方案"的一种显示方案,所有子窗口以 完全占据子窗口呈现区域132内所有可用显示领地并且没有子窗口相互重叠的方 式排列在子窗口呈现区域内。
根据在此被称为"平铺方案"的另一显示方案,所有子窗口都是多边形形状 并且以没有子窗口相互重叠的方式排列在子窗口呈现区域内。
根据在此被称为"垂直矩形平铺方案"的又一显示方案,所有子窗口都是矩 形形状并且以没有子窗口重叠的方式垂直排列在子窗口呈现区域132内。图1示出 了垂直矩形平铺方案。
本领域的技术人员将认识到,有许多可能的各种形状和大小窗口的组合和排 列,它们可由显示方案来指定。
通常,当一个或多个子窗口 134 - 144的大小被改变时,诸如当子窗口134-144中一个的模式改变时,将需要调整其它子窗口中一个或多个的大小,从而使所 有子窗口将继续根据当前显示方案来显示。例如,根据图1所示的垂直矩形平铺方 案,当一个子窗口 134- 144的大小被改变时,将需要改变其它子窗口中一个或多 个的大小,从而使所有子窗口 134- 144继续以完全占据子窗口呈现区域132的非
重叠方式来显示。
根据在此所述的一些实现,维持显示方案是GUI管理模块118的功能。如将 认识到的,GUI管理模块118维持显示方案的确切方式可能根据诸如被维持的显示 方案的类型、正在使用的窗口化系统的类型等内容、以及其它因素而变化。然而, 根据在此所述的各种实现,GUI管理模块118通过以使得子窗口 134- 144在子窗 口呈现区域132内的排列遵照该显示方案的方式改变一个或多个子窗口 134 -144 的大小和/或模式,或者策动它们的改变,来维持显示方案。
根据一些实现,GUI管理模块118使用子窗口分级次序来确定哪个或哪些子 窗口 134- 144应该改变其大小和/或模式。 一般而言,子窗口分级次序指定选择子 窗口以进行模式改变的优选次序。
现在转到图2,其中显示了示出GUI管理模块118的一个具体实现的各种细 节的框图。如图所示,GUI管理模块118包括或引用显示方案管理模块248、多个 (N个)子窗口模块252-262,以及父窗口模块250。
如图2所示,每个子窗口模块252 - 262与单个子窗口 134 - 144相关联,并 且包括定义与该子窗口模块相关联的子窗口的视觉和/或功能特性的信息。例如, 在一个实现中,每个子窗口模块包括指定与该子窗口模块相关联的子窗口的所有可 能的视觉模式。此外,每个子窗口模块可包括在定义每种可能的模式的视觉呈现时 使用的各种数据、数据结构、和/或逻辑。如前所述的,在一些实现中,这些数据 和逻辑由窗口化子系统122在于子窗口呈现区域132中显示子窗口时全部或部分地 使用。
在一些实现中,每个子窗口模块252-262包括或引用包含用于指定其关联子 窗口的绘制的过程、功能、例程、数据等的计算机可执行指令(即,"代码")。 然而,在现在将描述的实现中,每个子窗口模块252-262包括或引用在绘制子窗 口时由GUI管理模块118和/或窗口化子系统122访问或使用的各种数据和/或逻 辑。
一般而言,父窗口模块250包括定义父窗口 130的视觉和/或功能特性的信息。 例如,在一个实现中,父窗口模块250包括指定通过呈现在父窗口 130中的窗口控 件将对用户可用的功能或功能组合的信息。父窗口模块250可指定文本或图形信息 在父窗口 250中将如何呈现。父窗口模块250可指定父窗口 250是否大小可调,以 及在父窗口 250可调时指定调整父窗口 250的方式。父窗口模块250还可指定输入 方法,例如是否及如何实行自诸如键盘、指示笔和/或鼠标等设备的输入。父窗口模块250当然还可指定父窗口 130的其它视觉和/或功能特性。
图3示出了子窗口模块252的一个示例性实现。将会认识到的是,子窗口模块252在此被描述为代表性子窗口模块。关于子窗口模块242描述的相同特征和功能可能出现在子窗口模块252 - 262的任意一个中,或出现在作为GUI管理模块118之外的系统的一部分或与其结合使用的子窗口模块中。
图3所示的子窗口模块252的实现包括,但并不限于,子窗口模式升级/降级序列308、当前模式指针310、子窗口呈现数据312、子窗口属性数据314、以及模式数据316。
子窗口模式升级/降级序列308指定与子窗口模块252相关联的子窗口的所有 可用模式。例如,但不限于,图3所示的该示例性子窗口模式升级/降级序列310 指示与子窗口模块252相关联的子窗口具有5种可能模式模式1U、模式2b、模 式3S、模式5M以及模式6。
子窗口模式升级/降级序列310还指定了该子窗口的各模式的升级和降级次 序,这在图3中由在各模式之间延伸的箭头线指示。例如,子窗口模式升级/降级 序列310指示如果与子窗口模块300相关联的子窗口当前处于模式2b,则在降一 级时可降级到模式1U,或者在升一级时可升级到模式3S。类似地,如果与子窗口 模块252相关联的子窗口当前处于模式5M,则子窗口模式升级/降级序列310指示 该子窗口在降一级时可降级到模式3S,或在升一级时可升级到模式6。
当前模式指针310指定与子窗口模块252相关联的子窗口的当前模式。例如, 图3所示的当前模式指针310指示与子窗口模块252相关联的子窗口当前是根据模 式2b来显示的。当与子窗口模块252相关联的子窗口的模式升级或降级时,当前 模式指针310随后被适当地修改以指示该变化。
通常但并不一定,各模式根据每种模式可能或将会需要多大的显示领地排序 成子窗口模式序列252。在这些实现中,需要较大量显示领地的模式将被认为是比 需要较少显示领地的模式"排序更高"的模式。在一些情形中, 一种或多种模式可 以大小不一。在这些情形中,各模式的最大大小可被用于确定或指定升级/降级序 列中各模式的相对排序。例如,在一些实现中,最大可变大小大于第二模式的固定 或最大可变大小的第一模式可被认为比第二模式的排序更高。
通常但并不一定,在将子窗口从一种模式变为另一种模式时,该子窗口随后 根据需要更多还是更少显示领地来从其当前模式转换到其模式序列中下一更高或 更低的模式。
子窗口呈现区域312包括定义子窗口呈现区域132中子窗口的当前大小和位 置的各种数据。子窗口属性数据314包括在如下所述的确定子窗口分级时使用的各 种数据。这些数据可包括但并不限于,该子窗口何时为焦点窗口时,该子窗口作为 焦点窗口有多长时间,该子窗口作为焦点窗口有多频繁等、或各种其它数据。
模式数据316包括定义该子窗口每种模式的特征和功能的数据。该数据可包 括为每种模式定义诸如将要绘制的窗口控件的数目和排列、该子窗口是否大小可 调、大小可调窗口的最大和/或最小大小等的参数。
模式数据316还可指定一给定模式是否为用户可选和/或系统可选。用户可选 模式(例如,模式1U)是可基于用户与计算设备100的交互所作的动可使子窗口 升级或降级到的模式。反之,系统可选模式(例如,模式3S)是单纯基于用户与 计算设备100的交互所作的动作不能使子窗口升级或降级到的模式。确切而言,系 统可选模式是子窗口基于由调整大小逻辑460 (以下关于图4所述)定义或实现的 指令被升级或降级到的模式。
根据一些实现,每个子窗口模块的子窗口模式升级/降级序列由在主模式升级/ 降级序列中指定的模式序列的子集构成。例如,子窗口模式升级/降级序列310由 图3所示的主模式升级/降级序列320的模式的子集构成。
子窗口模块可以用多种方式来实现。例如,子窗口模块可实现为面向对象环 境中的对象,并被包含在一个或多个计算机可读介质中。然而,应该理解的是,在 此关于子窗口模块所描述的功能还可以用非面向对象的方式来实现,并且可在面向 对象及非面向对象等许多类型的系统上实现。
现在转到图4,其中示出了窗口管理模块248的一个示例性实现。窗口管理模 块248包括,但并不限于,子窗口分级次序420、子窗口分级430、像素池440、 分级逻辑450、以及调整大小逻辑460,现在将对其分别进行描述。
子窗口分级次序420指定显示和隐藏的子窗口的次序。例如,子窗口 134-144 (CW(l)-CW(6))在子窗口分级次序420中被示出。 一般而言,子窗口分级次序 420在诸如需要一个或多个窗口的模式改变以维持显示方案时指定各子窗口被选 择进行模式改变的次序。
子窗口分级次序420中各子窗口的次序可以各种方法来确定。例如,但不限 于,子窗口分级次序420中各子窗口的次序可根据对子窗口使用的历史分析、对子 窗口模式改变的历史分析、或各种其它分析、算法、和/或探试来确定。确定子窗 口分级次序420中各子窗口的次序的确切方式可根据诸如,但并不限于,要遵守的特定显示方案、其中采用GUI 106的计算设备、计算设备100的预期用途等、以及
各种其它功能要求而变化。
在一些实现中,子窗口分级次序420是使用子窗口分级430来确定的。 一般 而言,子窗口分级430包括子窗口的一个或多个分级432 - 436。和子窗口分级次 序420 —样,每个子窗口分级432-436可使用各种分析、算法、和/或探试以各种 方法来确定。
作为一个示例,子窗口分级432被示为是根据每个子窗口最近被使用是多久 以前来确定。更具体地,在该实现中,子窗口分级432从最近使用时间最远的子窗 口 (CW(l))到最近使用时间最近的子窗口 (CW(5))来排序。与之相对,子窗口 分级434被示为根据各子窗口的使用频率来确定。更具体地,在该实现中,子窗口 分级434是从最不常使用的子窗口 (CW(2))到最常使用的子窗口 (CW(l))来排 序。在该实现中,子窗口分级436是基于其子窗口排序次序308中每个子窗口的当 前模式的位置来确定的。如将可认识到的,子窗口排序可基于各种其它准则。
在一些实现中,子窗口分级中的每个子窗口基于该分级中各子窗口的位置被 分配一分级值。如下所述,这些分级值可被用于确定子窗口分级次序420。在一个 实现中,分级值是从子窗口分级中的第一等级窗口到子窗口分级中最末等级窗口以 降序向各子窗口分级中的各窗口分配的。作为一个示例,子窗口分级430的每个子 窗口分级中的第一子窗口被示为具有分级值6 (即,RV=6),每个子窗口分级中 的第二子窗口被示为具有分级值5,以降序依此类推到每个子窗口分级中被示为具 有分级值1的第6个子窗口。将会认识到的是,关于图4示出和描述的分级值仅是 示例性的。
在一些实现中,每个子窗口分级具有相关联的分级权重。例如,子窗口分级 432被示为具有权重5 (W产5),子窗口分级434被示为具有权重3 (W2=3),并 且子窗口分级434被示为具有权重1 (WN=1)。将会认识到的是,关于图4示出 和描述的分级权重仅是示例性的。
如下所述,分级权重可用于确定子窗口分级次序420。与每个子窗口分级相关 联的分级权重可以用各种方法确定。例如,但不限于,分级权重可使用各种分析、 算法、和/或探试来确定。在一些实现中,与每个子窗口分级相关联的分级权重与 在确定子窗口分级次序420时每个子窗口分级的相对重要性成比例。
一经确定,分级权重可以是静态或动态的。例如,在一个实现中,分级权重 可以被"硬编码"。在另一实现中,分级权重可以主导是确定的,但可由诸如用户或管理员、或由远程权重更新机制调节。在又一实现中,分级权重可以由监视GUI
106、计算设备100的各种属性及与它们的交互、和/或计算设备100内部或外部的 其它属性或交互的算法动态地调整。
如上所述,在一些实现中,子窗口分级次序420是使用分级权重和/或分级值 来确定的。例如,但不限于,在一个实现中,子窗口分级次序420是通过基于分级 权重和分级值为每个窗口建立分级分数来确定的。子窗口分级次序420然后通过根 据该分级分数将各窗口排序来确定。
有许多使用分级权重和分级值来建立分级分数的方法。例如,但不限于,在 一个实现中,是通过将子窗口的分级值乘以与包括该子窗口的子窗口分级相关联的 分级权重来确定每个子窗口分级中每个子窗口的加权分级值。然后每个子窗口的分 级分数将可通过累加该子窗口在每个子窗口分级中的加权分级来确定。
例如,使用图4中所给出的示例性数字,子窗口分级432中的CW1具有加权 分级值三十(30),这是通过将CW(1)在子窗口分级432中的分级值六(6)乘以 子窗口分级432的权重五(5)来确定的。子窗口分级434中的CW1具有加权分 级值三(3),这是通过将CW(1)在子窗口分级434中的分级值一 (1)乘以子窗口 分级434的权重三(3)来确定的。最后,子窗口分级436中的CW1具有加权分 级值六(6),这是通过将CW(1)在子窗口分级436中的分级值六(6)乘以子窗口 分级436的权重三(1)来确定的。最后,累加CW1对应于每个子窗口分级的加 权分级值得到CW1的分级分数三十九(39)(即,30 + 6 + 6 = 39)。
可对每个子窗口进行类似计算,从而得到CW2的分级分数三十(30) 、 CW3 的分级分数三十四(34) 、 CW4的分级分数三十(31) 、 CW5的分级分数十五(15)、 以及CW6的分级分数四十四(44)。使用这些算出的分级分数,然后根据这些子 窗口的分级分数按降序将它们排列在子窗口分级次序420中。
根据一些实现,子窗口分级次序420、子窗口分级430、分级权重、分级值、 和/或加权分级值的确定可全部或部分地由分级逻辑450来执行。
根据在以下具体描述的一些实现,窗口管理模块248使用像素池440来维持 显示方案。 一般而言,像素池440提供用于跟踪子窗口呈现区域122内显示领地的 机制。更具体地,在一些实现中,像素池440提供用于跟踪子窗口呈现区域122 内被分配给各子窗口的显示领地的量。
有许多可使用像素池440来跟踪显示领地的分配的方法。例如,但不限于, 在一个实现中,像素池440指定子窗口呈现区域122内的显示领地是"欠分配"、"过分配"、还是"平衡"。如在此所使用的,"欠分配"是指分配给各子窗口的 显示领地小于子窗口呈现区域122内显示领地的总量。如在此所使用的,"过分配"
是指分配给各子窗口的显示领地大于子窗口呈现区域122内显示领地的总量。在一 些实现中,像素池440可指定欠分配显示领地的量或过分配显示领地的量。如在此 所使用的,"平衡"是指分配给各子窗口的显示领地等于子窗口呈现区域122内显 示领地的总量。
关于像素池440使用以表达显示领地单位可以改变。例如,在一些实现中, 显示领地可以用像素的形式来表达。在其它实现中,显示领地可以用像素行的形式 来表达。以像素行表达显示领地对于其中子窗口呈现区域122的宽度和/或高度保 持恒定的显示方案尤其有用。在其它实现中,显示领地可以用与像素无关的单位来 表达。由此,虽然以像素或像素行的形式描述了各种实现,然而应该认识到的是, 这些实现同样地也可使用像素或像素行之外的单位。
根据一些实现,窗口管理模块248使用调整大小逻辑460来维持显示方案。 一般而言,调整大小逻辑460指定用于维持显示方案的各种操作、算法、例程等。 例如,根据一些实现,调整大小逻辑460实现图5-7中所示的全部或部分操作流 程及操作,现在将对其各自进行描述。
图5 - 7示出了包括可在管理和呈现GUI时执行的各种操作的操作流程。以下 参照图1的计算设备IOO对图5-7进行描述。具体地,参照GUI管理模块118对 图5-7进行描述。然而,应该理解的是,在图5-7中阐述的操作流程并不旨在限 定于由GUI管理模块118执行或在计算设备100中执行。在图5 -7中阐述的任何 操作流程、或在这些操作流程中描述的任何个别操作可在包括分布式系统在内的各 种其它系统中实现。另外,应该理解的是,虽然在图5-7中示出的每个操作流程 指示特定次序的操作执行,然而,在其它实现中,这些操作可以被不同地排序。
图5示出了包括可由窗口管理模块248响应于检测到或发生窗口调整大小事 件506所执行的各种操作的操作流程500。根据一些实现,操作流程500由调整大 小逻辑460 (图4)定义和/或实现。
一般而言,窗口调整大小事件可以是导致向窗口化子系统122或GUI管理模 块118请求改变窗口大小的各种事件中的任何一种。例如,但不限于,在父窗口 130或子窗口 134 - 144之一包括某种窗口调整大小控件的情形中,用户对该控件 的调用或与该控件的交互可导致窗口调整大小事件。在另一示例中,由用户交互或 由GUI管理模块118导致的子窗口模式改变可导致或请求子窗口大小的改变,由此导致窗口调整大小事件。
根据一些实现,当调整大小事件发生时,像素池440将被更新以反映将由该
调整大小事件导致的显示领地的变化。在调整大小事件与调整父窗口 130大小有关 的情形中,父窗口模块250中定义父窗口 130大小的一个或多个参数将被更新以反 映该调整大小,并且像素池440将被相应地更新。在调整大小事件与调整子窗口大 小有关的情形中,与该子窗口相关联的子窗口模块中定义该子窗口大小的一个或多 个参数将被更新以反映该调整大小,并且像素池440将被相应地更新。如下所述, 操作流程500中此时通常将不发生显示器104上子窗口或父窗口的实际调整大小。 确切而言,显示器104上子窗口或父窗口的实际调整大小通常发生在以下重画操作 526。
如图所示,当调整大小事件发生时,在操作508作出关于该窗口调整大小事 件与父窗口 130还是与子窗口 134- 144之一有关的判定。如果判定该窗口调整大 小事件与父窗口 130有关,则操作流程500进入如下所述的操作518。然而,如果 在操作508判定该窗口调整大小事件与子窗口 134- 144有关,则操作流程500进 入分级更新操作510。
在分级更新操作510,子窗口分级430 (图4)根据任何确定或定义分级432-436的分析、算法、和/或探试被更新。接下来,在加权分级值操作512,为每个子 窗口确定加权分级值。然后在分级分数操作514为每个子窗口确定分级分数。然后 子分级次序420 (图4)根据在分级分数操作516确定的分级分数在分级次序操作 516被更新。在次序操作516之后,操作流程500进入操作518。
根据其它实现,操作510-516可在操作流程500之外发生。例如,在一些实 现中,操作510-516可在子窗口的大小已改变时,诸如在该子窗口被调整大小或 其模式已被改变时发生。在其它实现中,操作510-516可以不管在操作508对是 关于父窗口 130还是子窗口 134- 144发生了调整大小事件的判定,或在该判定之 外,在定期间隔发生。在其它实现中,操作510-516的执行可由某些其它事件或 调度来触发。
在操作518,作出关于像素池440中像素是过分配还是欠分配的判定。如果判 定像素池400中像素为欠分配,则操作流程500进入如下所述的分布像素操作520。 如果判定像素池400中像素为过分配,则操作流程500进入如下所述的获取像素操 作522。
在分布像素操作520,执行各种操作以选择要接收过分配的像素的一个或多个子窗口,并将这些像素分配给所选窗口。换言之,在操作520, 一个或多个子窗口
被选择以增大其大小,并从像素池440取出像素以适应该增大。
如上所述,根据一些实现,增大所选子窗口的大小包括增大所选子窗口模块
的子窗口呈现数据312 (图3)中定义所选子窗口大小的一个或多个参数。
分布像素操作520可以用多种方法来执行。执行分布像素操作520的确切方
式可取决于,但并不限于,诸如正被使用的特定显示方案和特定程序/硬件环境以
及GUI管理模块118的实现等。然而,在一个实现中,分布像素操作520根据以
下关于图6所述的操作流程600来实现。
在分布像素操作520之后,在操作524作出关于像素池440是否过分配的判
定。如果在操作524判定像素池440过分配,则操作流程500进入获取像素操作
522。如果在操作524判定像素池440没有过分配,则操作流程500进入如下所述
的调整操作524。
在获取像素操作522,执行各种操作以选择要从其获取欠分配像素的一个或多 个子窗口,并为像素池440获取这些像素。换言之,在操作522, 一个或多个子窗 口被选择以减小其大小,并且从所选子窗口取出像素并将这些像素给像素池。
如上所述,根据一些实现,减小所选子窗口大小包括减小所选子窗口模块的 子窗口呈现数据312中定义所选子窗口大小的一个或多个参数。
获取像素操作522可以用多种方法来执行。执行获取像素操作522的确切方 式可取决于,但并不限于,诸如正被使用的特定显示方案和特定编程/硬件环境以 及GUI管理模块118的实现。然而,在一个实现中,获取像素操作522根据以下 关于图7所述的操作流程700来实现。
在获取像素操作522之后,在操作526作出关于像素池440是否欠分配的判 定。如果在操作526判定像素池440欠分配,则操作流程500进入如上所述的分布 像素操作520。如果在操作526判定像素池440没有欠分配,则操作流程500进入 如下所述的调整操作524。
在调整操作524,调整所有子窗口 134- 144的位置。在一些实现中,调整子 窗口的位置包括改变与该子窗口相关联的子窗口模块252 (图2)的子窗口呈现数 据312 (图3)中定义该子窗口位置的一个或多个参数。
在调整操作524之后,在子窗口呈现区域132中重画所有子窗口,操作流程 500结束。
现在转到图6,如上所述,其中示出了包括可在实现操作流程500的分布像素
操作520时执行的各种操作的操作流程600。根据一些实现,操作流程500由调整 大小逻辑460 (图4)定义和/或实现。
如图所示,在操作流程600的开始,子窗口选择操作610选择子窗口分级次 序420 (图4)中最高分级的子窗口。接着,在操作612,作出所选子窗口是否为 焦点子窗口的判定。如在此所使用的,焦点子窗口是活动的接收用户输入的子窗口。 根据图6所示的分布像素操作520的实现,在一时刻仅有一个子窗口将为活动的以 接收用户输入。因此,在一时刻将仅有一个用户窗口为焦点子窗口。
在一些实现中,关于所选子窗口是否为焦点子窗口的判定是通过查询窗口化 子系统122来作出的。在一些实现中,该判定是通过检查所选窗口的子窗口属性数 据314中的焦点属性来作出的。在其它实现中,可以用其它方法作出关于所选子窗 口是否为焦点子窗口的判定。
如果在操作612判定所选子窗口是焦点子窗口,则操作流程600进入子窗口 选择操作630,在此子窗口分级次序420中次最高分级的子窗口被选择。换言之, 在操作630检查子窗口分级次序420,并且选择在操作流程600中先前选择的子窗 口上分级次最高的子窗口。应该理解的是,在一时刻仅有一个子窗口被选中。由此, 当新的子窗口被选中时,先前选中的子窗口不再被认为是选中的子窗口。
然而,如果在操作612判定所选子窗口不是焦点子窗口,则操作流程600进 入操作614。在操作614,作出关于所选子窗口的当前模式是否指定该所选子窗口 的大小可变的判定。换言之,作出关于所选子窗口的大小在其当前模式中是否可变 的判定。在一个实现中,该判定是通过检查与所选窗口相关联的子窗口模块的模式 数据316中的大小属性来作出的。
如果判定所选子窗口的大小在其当前模式中可变,则操作流程600进入如下 所述的操作616。然而,如果在操作614判定所选子窗口的大小在其当前模式中不 可变,则操作流程600进入如下所述的操作620。
在操作616,作出关于所选子窗口是否处于其可变大小的最大限度的判定。在 一个实现中,该判定是通过检查与所选窗口相关联的子窗口模块的模式数据316 中的大小属性来作出的。如果在操作616判定所选子窗口不是处于其可变大小的最 大限度,则操作流程600进入如下所述的调整大小操作618。如果在操作616判定 所选子窗口处于其可变大小的最大限度,则操作流程600进入如下所述的操作620。
在调整大小操作618,检查像素池440以确定其中欠分配像素的量。如果欠分 配像素的量等于或大于将所选子窗口的大小增大为其可变大小的最大限度所需的像素数,则所选子窗口的大小被增大到其可变大小的最大限度。然而,如果欠分配 像素的量小于将所选子窗口的大小增大到其可变大小的最大限度所需的像素数,则 所选子窗口的大小被增大到可用的欠分配像素所允许的最大量。在一些实现中,以
上关于图5所述的操作510-516中的任何或所有操作可在子窗口的调整大小之后 或与其相结合地来执行。在调整大小操作618之后,操作流程600进入如下所述的 操作622。
在操作620,作出所选子窗口是否能被升级到另一模式的判定。即,作出关于 所选子窗口是否能被升级到比所选子窗口的当前模式需要更多显示领地的更高次 序模式的判定。如果在操作620判定所选子窗口不能被升级到更高次序模式,则操 作流程进入操作622。如果在操作620判定所选子窗口不能被升级到更高次序模式, 则操作流程进入升级操作624。
在升级操作624,所选子窗口被升级到所选子窗口的升级/降级序列308中其 排序次最高的模式。在一些实现中,将所选子窗口升级到其次最高模式包括改变 与所选窗口相关联的子窗口模块中的当前模式指针310;改变子窗口呈现数据312 中的适当的大小属性;以及更新像素池440以反映分配给所选子窗口的像素量。在 一些实现中,以上关于图5所述的操作510-516中的任何或所有操作可在所选子 窗口的升级之后或与其结合地来执行。应该认识到的是,在升级操作624之后,像 素池440可能仍然保持欠分配,或者可能会过分配。在升级操作624之后,操作流 程600进入操作622。
在操作622,作出关于像素池是否欠分配的判定。如果判定像素池440欠分配, 则操作流程600进入如上所述的子窗口选择操作630。如果判定像素池440没有欠 分配,则操作流程600结束。
现在转到图7,如上所述,其中示出了包括可在实现操作流程500的获取像素 操作522时执行的各种操作的操作流程700。根据一些实现,操作流程500由调整 大小逻辑460 (图4)定义和/或实现。
如图所示,在操作流程700的开始,子窗口选择操作710选择子窗口分级次 序420 (图4)中最低分级的子窗口。接着,在操作712,作出关于所选子窗口是 否为焦点子窗口的判定。
如果在操作712判定所选子窗口是焦点窗口,则操作流程700进入子窗口选 择操作730,在此子窗口分级次序420中次最低分级的子窗口被选择。然而,如果 判定所选子窗口不是焦点窗口,则操作流程进入操作714。
在操作714,作出关于所选子窗口的当前模式是否指定该子窗口的大小可'变的 判定。在一个实现中,该判定是通过检查与所选窗口相关联的子窗口模块的模式数据316中的大小属性来作出的。
如果在操作714判定所选子窗口的大小在其当前模式中可变,则操作流程700 进入操作716。然而,如果在操作714判定所选子窗口的大小在其当前模式中不可 变,则操作流程700进入操作720。
在操作716,作出关于所选子窗口是否处于其可变大小的最大限度的判定。在 一个实现中,该判定是通过检查与所选窗口相关联的子窗口模块的模式数据316 中的大小属性来作出的。如果在操作716判定所选子窗口不是处于其可变大小的最 大限度,则操作流程700进入调整大小操作718。如果在操作716判定所选子窗口 处于其可变大小的最大限度,则操作流程700进入操作720。
在调整大小操作718,所选子窗口的大小被减小为其最小可变大小。在一些实 现中,以上关于图5所述的操作510-516中的任何或所有操作可在所选子窗口的 调整大小之后或与其相结合地来执行。在调整大小操作718之后,操作流程700 进入如下所述的操作722。
在操作720,作出关于所选子窗口是否能被降级到另一模式的判定。即,作出 关于所选子窗口是否能被进级到比其当前模式需要更少显示领地的较低次序模式 的判定。如果在操作720判定所选子窗口不能被进级到较低次序模式,则操作流程 700进入操作722。如果在操作720判定所选子窗口能被降级到较低次序模式,则 操作流程进入降级操作724,在此所选子窗口被降级到升级/降级序列308中其排序 次最低的模式。
在一些实现中,将所选子窗口降级到其次最低次序模式包括改变与所选窗 口相关联的子窗口模块中的当前模式指针310;改变子窗口呈现数据312中适当的 大小属性;以及更新像素池440以反映从所选子窗口获取的像素量。在一些实现中, 以上关于图5所述的操作510 - 516中的任何或所有操作可在所选子窗口的降级之 后或与其相结合地来执行。应该认识到的是,进级操作724之后,像素池440可能 仍然保持过分配,或者可能会欠分配。
在操作722,作出关于像素池是否过分配的判定。如果判定像素池440过分配, 则操作流程700进入如上所述的子窗口选择操作730。如果判定像素池440没有过 分配,操作流程700结束。
虽然在附图和以上具体说明中对一些具体示例性实现进行了示出和描述,但将会理解的是,在此所描述的主题并不限于所述的具体实现。确切而言,在此所描述的主题能够进行大量的重新布置、修改和替换而不会背离由所附权利要求阐述和定义的精神实质。相应地,本发明的范围不应由以上讨论的具体示例性实现来限定, 而应该仅由以下阐述的权利要求及其等效方案来定义。
权利要求
1.一种方法,包括根据一显示方案在父窗口中显示多个子窗口,每个子窗口可以用与该子窗口相关联的一组经排序模式中的一种模式来显示,每种模式指定该模式所相关联的子窗口的显示大小;以及响应于所述多个子窗口中第一子窗口的显示大小的变化,改变所述多个子窗口中第二子窗口的模式以维持所述预定显示方案。
2. 如权利要求1所述的方法,其特征在于,所述改变第二子窗口的模式包括: 存取一像素池,所述像素池指示所述父窗口内被分配给所述多个子窗口的显示领地 的总量。
3. 如权利要求l所述的方法,其特征在于,每组模式中的各模式被排序成一 子窗口升级/降级序列。
4. 如权利要求l所述的方法,其特征在于,所述第二子窗口的各模式被排序 成一子窗口升级/降级序列,并且改变所述多个子窗口中的至少第二子窗口的模式 是基于该子窗口升级/降级序列来执行的。
5. 如权利要求l所述的方法,其特征在于,每组模式包括主模式升级/降级序 列中的模式的子集。
6. 如权利要求1所述的方法,其特征在于,每种模式还指定该模式所相关联的子窗口的窗口控件。
7. 如权利要求l所述的方法,其特征在于,所述根据一显示方案在父窗口中 显示多个子窗口包括以使所述多个子窗口共同占据所述父窗口的预定部分、并且 没有子窗口与另一子窗口重叠的方式来显示所有子窗口。
8. 包含处理器可执行指令的一个或多个计算机可读介质,所述指令在由一个或多个处理器执行时实现一方法,所述方法包括在显示器上呈现图形用户界面GUI,所述GUI包括含父窗口以及在所述父窗口内的多个子窗口的多个视觉元素,每个子窗口以与该子窗口相关联的多种视觉模 式中的一种视觉模式来显示,每个子窗口相对于其它子窗口以子窗口分级次序分级;以及响应于所述多个视觉元素中一个视觉元素的显示大小的变化,基于所述子窗口分级次序以及指示被分配给各子窗口的显示领地的量的像素池,改变所述多个子 窗口中的一个子窗口的显示大小。
9. 如权利要求8所述的一个或多个计算机可读介质,其特征在于,所述子窗 口分级次序是基于子窗口的使用频率来确定的。
10. 如权利要求8所述的一个或多个计算机可读介质,其特征在于,所述子窗口分级次序是基于子窗口的使用次数来确定的。
11. 如权利要求8所述的一个或多个计算机可读介质,其特征在于,所述子 窗口分级次序是基于多个子窗口分级来确定的。
12. 如权利要求8所述的一个或多个计算机可读介质,其特征在于,所述子 窗口分级次序是基于多个加权的子窗口分级来确定的。
13. 如权利要求8所述的一个或多个计算机可读介质,其特征在于,改变所 述多个子窗口中的一个子窗口的显示大小包括改变所述多个子窗口中的所述一个 子窗口的模式。
14. 如权利要求8所述的一个或多个计算机可读介质,其特征在于,与每个 子窗口相关联的多种视觉模式被排序成一升级/降级序列。
15. —种系统,包括 包括显示器的计算设备;用于在所述显示器上呈现图形用户界面GUI的装置,所述GUI包括含父窗口 以及在所述父窗口内的多个子窗口的多个视觉元素,每个子窗口以与该子窗口相关 联的多种视觉模式中的一种视觉模式来显示;以及用于响应于所述多个视觉元素中的一个视觉元素的显示大小的变化,基于所 述多个子窗口的分级次序改变子窗口的大小。
16. 如权利要求15所述的系统,其特征在于,所述用于呈现GUI的装置包括 多个子窗口模块,每个子窗口模块指定与该子窗口模块相关联的模式的升级/降级 序列。
17. 如权利要求15所述的系统,其特征在于,所述用于呈现GUI的装置包括 多个子窗口模块,每个子窗口模块指定与该子窗口模块相关联的子窗口是否大小可 变。
18. 如权利要求15所述的系统,其特征在于,所述用于改变的装置包括含指 定子窗口的排序的子窗口分级次序的窗口管理模块。
19. 如权利要求15所述的系统,其特征在于,所述用于改变的装置包括含子窗口分级次序和多个子窗口分级的窗口管理模块,每个子窗口分级指定子窗口的基 于某一准则的唯一排序,所述子窗口分级次序指定基于所述多个子窗口分级的所述 多个子窗口的排序。
20.如权利要求15所述的系统,其特征在于,所述用于改变的装置包括含子 窗口分级次序、多个子窗口分级、以及像素池的窗口管理模块,每个子窗口分级指 定子窗口基于某一准则的唯一排序,所述子窗口分级次序指定基于所述多个子窗口 分级的所述多个子窗口的排序,所述像素池指定被分配给所述多个子窗口的显示领 地的量。
全文摘要
图形用户界面(GUI)被呈现在包括父窗口以及根据显示方案绘制在该父窗口内的多个子窗口的显示器上。当这些子窗口中一个的大小被改变时,其它子窗口中的一个或多个的大小被改变以维持该显示方案。
文档编号G06F3/048GK101208651SQ200680007339
公开日2008年6月25日 申请日期2006年3月29日 优先权日2005年4月1日
发明者R·罗西, T·斯沃恩森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1