专利名称:在已改变取向的显示器上自动显示视窗内容的方法和系统的制作方法
技术领域:
本发明涉及用来在已改变取向的显示器上自动显示视窗内容的方法和系统。
背景技术:
个人掌上设备正在变得越来越流行。显示屏旋转正在变成许多掌上设备的通用特征。显示屏旋转使得用户能够把显示屏的取向从竖直的(即立式)改变为水平的(即卧式),反之亦可。当改变显示屏的取向时,可能会看不到诸如对话框的视窗中内容。因而,用户可能在新取向上不能访问整个视窗。所需要的是一种方法,当改变显示屏取向时,能自动显示视窗的内容使得全部内容可被访问。
发明内容
本发明涉及用来在已改变取向的显示器上自动显示视窗内容的方法和系统。该方法包括在第一取向的显示器上定位视窗;调整视窗位置使得在第二取向的显示器上可见到最大部分视窗;调整视窗尺寸使得在第二取向的显示器上可见到视窗;确定在第二取向的显示器上是否可见到全部视窗;如果看不到全部视窗则在视窗上添加滚动条,从而可访问看不到的视窗部分。
系统包括一种自动视窗调节机制,这种机制使用外壳组件(shell)和视窗管理器功能操作以在启动取向改变时自动调整视窗尺寸、取向和特征。外壳组件确定在新取向上是否能看到整个视窗。如果在新取向上看不到整个视窗,外壳组件调整视窗的位置和尺寸。调整视窗的位置和尺寸以提供新取向上视窗的最大可见度。如果调整了视窗的位置和尺寸之后仍然不能在新取向上看到整个视窗,视窗管理器在视窗上添加滚动条。
图1显示了本发明可在其中实现的示例性计算环境。
图2示出了根据本发明在把显示屏从立式改成卧式之前和之后,在显示屏内都能看到的视窗。
图3示出了根据本发明在把显示屏的取向从立式改成卧式时,在显示屏上能看到部分的视窗,以及位置经过调整的视窗。
图4示出了根据本发明在把显示屏的取向从立式改成卧式时,在显示屏上看不到的视窗,以及位置经过调整的视窗。
图5示出了根据本发明在把显示屏的取向从立式改成卧式时,在显示屏上能看到部分的全屏视窗,以及尺寸经过调整并包括滚动条的视窗。
图6示出了根据本发明当显示屏的取向是立式或卧式时,在显示屏上不能看到全部的视窗,以及尺寸和位置经过调整并包括滚动条的视窗。
图7示出了根据本发明当显示屏的取向是立式时在显示屏上能看到部分,而在卧式时看不到的视窗,以及尺寸和位置经过调整并包括滚动条的视窗。
图8示出了根据本发明用来在已改变取向的显示器上自动显示视窗内容的系统的示例性功能框图。
图9是示出根据本发明用来在已改变取向的显示器上自动显示视窗内容的过程的操作性流程图。
图10示出了根据本发明用以在已改变取向的显示器上自动显示视窗内容的机制的示例性代码。
具体实施例方式
简言之,本发明涉及用来在已改变取向的显示器上自动显示视窗内容的方法和系统。诸如对话框的示出内容,可能是按特定取向(例如立式)上的特定尺寸和位置而制作的。本发明提供对视窗位置和尺寸的调整,从而当显示屏取向改变时(例如从立式变为卧式)可看到视窗的全部。可添加滚动条以便能够访问在显示屏内看不到的全部内容。同样地,如果在新取向上不再需要滚动条,也可移除该滚动条。无需中断其它操作系统应用,视窗位置/尺寸的调整以及滚动条的添加/移除就可发生。
示例性操作环境参照图1,用来实现本发明的一示例性系统包括诸如计算装置100的计算装置。基本配置包括虚线102内的那些组件。在基本配置中,计算装置100通常包括至少一个处理单元104和系统存储器106。取决于计算装置的准确配置和类型,系统存储器106可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)、或两者的某些组合。系统存储器106通常包括操作系统108、一个或多个应用110,也可包括程序数据112。
计算装置100可具有附加特征或功能。例如,计算装置100还可包括诸如磁盘、光盘、或存储棒的其它数据存储装置(可移动和/或不可移动)。这种附加存储器在图1由可移动存储114和不可移动存储116示出。计算机存储介质可以包括用来存储诸如计算机可读指令、数据结构、程序模块、或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。系统存储器106、可移动存储114和不可移动存储116都是计算机存储介质的示例。计算机存储介质包括,但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多用盘(DVD)或其它光学存储、磁卡、磁带、磁盘存储或其它磁性存储装置、或可用来存储所需信息并可由计算装置100访问的任何其它介质。任何这种计算机存储介质可以是装置100的一部分。计算装置100还可具有诸如键盘、鼠标、笔、语音输入装置、触摸输入装置等等的输入装置118。还可包括诸如显示器、扬声器、打印机等等的输出装置120。这些装置都是本领域技术人员众所周知的,在此不用赘述。
计算装置100还可包含使装置能与其它计算装置124诸如经网络进行通信的通信连接122。通信连接122是通信介质的一个示例。通信介质通常体现为计算机可读指令、数据结构、程序模块、或其它诸如载波或其它传输机制的已调制数据信号中的信号,并包括任何信息传递介质。作为示例,而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外的无线介质和其它无线介质。在此所用的术语计算机可读介质包括存储介质和通信介质。
自动视窗调整机制图2-7示出了当取向开始改变时在特定位置上有特定尺寸的视窗示例。所示示例显示了从立式到卧式的改变。可以理解,本发明也可在从卧式到立式的取向改变中利用,而不背离本发明的精神或范围。
图2-7的每个图都示出了包括视窗(例如200)的显示屏的立式图(例如210)和卧式图(例如220)的覆盖图。覆盖图中也示出了视窗的尺寸和位置。在图2-7中某些视窗的尺寸和位置说明在某些环境中,改变取向之后不再能看到整个视窗。
相应地,图2-7也示出了由本发明所实现的新视窗尺寸、位置和特征。本发明自动调整(由大箭头所指示)原始视窗(例如200)的尺寸、位置和特征,以产生新视窗(例如230)。
还由图2-7可见,取决于其尺寸和位置,某些视窗可能需要加入滚动条用来显示内容。图2-4显示了位置和尺寸都不需要插入滚动条的视窗。相对地,图5-7示出位置和尺寸需要插入滚动条的视窗。
图2示出了在把显示屏从立式改成卧式之前和之后,在显示屏内都能看到的视窗。当显示屏为立式取向210时,视窗200位于显示屏的上部。当显示屏为卧式取向220时,视窗200位于显示屏的左部。在两种显示屏取向210和220中,都能看到全部的视窗200。因而,当取向从卧式改为立式时,不需要任何动作来使视窗吻合显示屏。因此为了获得新视窗230,本发明不需调整视窗属性。新视窗230指示不需要利用本发明以在新取向上观看视窗。
图3示出了当把显示屏取向从立式改成卧式时,在显示屏上能看到部分的视窗。当显示屏为立式取向310时,视窗300位于显示屏中部。当显示屏为卧式取向330时,虚线320以上的部分视窗300位于显示屏左下部。当显示屏为卧式取向330时,看不到虚线320以下的部分视窗300。因而,根据本发明,在卧式取向330的显示屏上调整视窗300以便看到整个视窗。例如,可把视窗300的位置调整为如图3下部所示的视窗340的位置。
图4示出了当把显示屏从立式改成卧式时,在显示屏上看不到的视窗。当显示屏为立式取向410时,视窗400位于显示屏下部。当显示屏为卧式取向420时,在显示屏上看不到视窗400。为了使用户能够访问视窗400,调整视窗400的位置以在卧式取向420的显示屏上重新进行定位。例如,可把视窗400的位置重新调整为如图4下部所示的视窗430的位置。
图5示出了当把显示屏取向从立式改成卧式时,在显示屏上能看到部分的全屏视窗。视窗500基本上填满了立式取向510的显示屏。然而,当显示屏的取向变为卧式取向530时,因为显示屏现在的高度较小,看不到虚线520以下的部分视窗500。
为了在显示屏为卧式取向时使用户能够访问视窗500的隐藏部分,重新调整视窗500的尺寸使其形状为如图5下部所示的视窗540的形状。根据本发明,在视窗540上添加了垂直滚动条550。滚动条550使得用户能够访问在显示屏上不能立即看到的部分视窗540。
图6示出了当显示屏取向是立式或卧式时,在显示屏上不能看到全部的视窗。视窗600不吻合立式取向610的显示屏。看不到虚线620以下的部分视窗600。同样地,视窗600不吻合卧式取向630的显示屏。看不到虚线640以下的部分视窗600。为了使用户能够访问全部视窗600,重新调整视窗600的位置和尺寸以吻合卧式取向630的显示屏,并添加滚动条。例如,可重新调整视窗600的位置和尺寸,使其形式为如图6下部所示的新视窗650(包括滚动条660)。
图7示出了根据本发明当显示屏取向是立式时在显示屏上能看到部分,而在卧式时看不到的视窗。视窗700不吻合立式取向710的显示屏。看不到虚线720以下的部分视窗700。同样地,在卧式取向730的显示屏上看不到视窗700。为了使用户能够访问全部视窗700,重新调整视窗700的位置和尺寸以吻合卧式取向730的显示屏,并添加滚动条。例如,可重新调整视窗700的位置和尺寸,使其形式为如图7下部所示的新视窗740(包括滚动条750)。
本发明参照显示屏取向从立式到卧式的改变进行描述,然而可以理解所述系统可支持显示屏取向上的任何改变。
图8示出了根据本发明用来在开始改变取向时自动调整显示器上视窗的尺寸、取向和特征的系统的示例性功能框图。系统包括显示屏800、外壳组件810、视窗管理器820、以及自动视窗特征模块830。外壳组件810和视窗管理器820是操作系统840的组件。显示屏800是用户接口的可视部分。自动视窗特征模块830是提供代码用来在已改变取向的显示器上自动显示视窗内容的应用。
外壳组件810包括探试法(heuristics)以确定由调整视窗位置应用所应用的规则。探试法陈述当取向改变时显示屏800的“查看并感觉”(“look&feel”)。在另一实施例中,探试法可被包括在操作系统840的不同组件中。
视窗管理器820管理视窗的可见区域以及显示屏800上滚动条的添加/移除。视窗管理器820在用户想在新取向上对视窗进行向上或向下的滚动时,控制滚动条的操作。
当显示屏800的取向改变时,操作系统840向外壳组件发送通知。外壳组件810搜索新取向上的所有顶层视窗。搜索由类执行,以便列举所有可用的顶层视窗。例如,顶层视窗850由外壳组件810定位。
在一实施例中,移除了顶层视窗限制以便找到下层视窗。例如,如果视窗包括嵌套视窗,移除顶层视窗限制。嵌套视窗是驻留于视窗内的视窗。
外壳组件810确定在显示屏800的新取向上是否可看到视窗850。如果在新取向上能见到整个视窗,不采取任何动作。如果在新取向上看不到视窗850的全部或部分,外壳组件810重新调整视窗850的位置,并且如果有必要重新调整其尺寸。
当视窗管理器820从外壳组件810收到显示屏800取向改变的通知时,视窗850在显示屏800旧取向和新取向上的尺度被确定。在重新调整视窗850的位置和尺寸之前,调用应用程序接口(API)以确定视窗的尺度。例如,外壳组件810调用自动视窗调整模块830中的GetWindowRect以列举视窗850的尺寸。
外壳组件810通过计算新取向上显示屏800的可见区域来调整视窗850的位置和尺寸。可调整视窗850的尺寸以覆盖显示屏800区域的任何部分。在一实施例中,调整位置和尺寸是外壳组件810从自动视窗调节模块830调用调整位置/调整尺寸应用导致的。调用了调整位置/调整尺寸应用之后,外壳组件810从视窗管理器820请求视窗850可见区域的垂直高度。然后外壳组件810确定新视窗的尺度,并将新尺度传送到视窗管理器820中。视窗管理器820基于视窗850的位置和显示屏800的取向执行适当的调整尺寸和位置的计算。然后新视窗在具有新取向的显示屏800内的位置被确定。
如果新视窗需要滚动条,外壳组件810向视窗管理器820发送滚动条通知。滚动条通知包含有关显示屏800上可见区域的任何限制的信息。滚动条通知也控制滚动条的移除或添加。由于滚动条通知是定制的,用户可定义可见区域的边界且视窗管理器820可向上或向下滚动到达所需位置。
外壳组件810包含在取向改变后新视窗位于其中的显示屏800可见区域的有关信息。显示屏800的可见区域不是一设定参数。在一实施例中,对于掌上计算设备,视窗850的最大的可用可见空间比显示屏800的尺度稍小,以留出菜单条(menuchrome)的空间。菜单条可包括用户常常访问的任务栏或其它工具。外壳组件810包含有关菜单条的内容和位置的信息。在菜单条所处的位置,通常不显示视窗850,但是如果需要则视窗850能遮盖菜单条。调整位置/尺寸的应用程序提供了灵活性,使得可调整视窗850为任何所需尺度。
外壳组件810是原始设备制造商(OEM)能定制以符合设计规格的外部组件。对菜单条尺度而言外壳组件810并非是固定的,这增加了系统的灵活性。在一实施例中,不显示菜单条。本发明参照掌上计算设备的外壳组件进行描述,然而可以理解所述系统能支持许多不同的外壳组件。
用来自动显示已改变取向的显示器上视窗内容的示例性过程参照图9进行描述。过程从方框900开始,在那里配置显示屏为某个取向,诸如卧式或立式。
在方框905,开始改变显示屏的取向。取向的改变可以是用户启动或自动的。在一实施例中,取向的改变是从0°到90°。在一示例中,显示屏取向的改变是从卧式到立式。过程移到方框910。在方框910,操作系统通知外壳组件取向已改变,然后过程移到方框915。
在方框915,外壳组件搜索当前在系统上打开的顶层视窗。然而,在一实施例中,也可定位其它下层视窗。例如,在嵌套视窗情形中,顶层视窗限制被移除。过程移到判决框920。
在判决框920,确定整个视窗是否位于显示屏内。如果整个视窗位于显示屏内(如图2所示),过程移到判决框950。然而,如果视窗的任一部分都不在显示屏内,则过程继续到方框925。
在方框925,重新调整视窗的位置和尺寸使其在显示屏的限制内可见。如图3和4所示,如果位置经调整后整个视窗位于显示屏内,则仅需要调整位置。同样地,也可能仅需要调整尺寸。例如,如图5所示,视窗已经位于显示屏的左上角所以不需要调整位置。当显示屏的取向从立式变为卧式时,而视窗的垂直长度比显示屏的垂直宽度大并且视窗的位置不在显示屏左上角时,如图6和7所示,位置和尺寸都需要进行调整。当显示屏的取向从卧式变为立式时,而视窗的水平长度比显示屏的水平宽度大并且视窗的位置不在显示屏左上角时,位置和尺寸也都需要进行调整。过程继续到判决框930。
在判决框930,确定整个视窗是否位于显示屏内。如果整个视窗未位于显示屏内,过程移到框935。然而,如果整个视窗都位于显示屏内,则过程继续到判决框940。
在方框935,将滚动条添加到视窗中。滚动条使得用户能访问不能立即在显示屏内看到的视窗部分。然后过程移到判决框950。
在判决框930,确定滚动条是否存在于视窗内。如果滚动条未在视窗内出现,过程移到判决框950。然而,如果滚动条在视窗内出现,则过程继续到方框945。
在方框945,因为不需要滚动条,它被移除。参照图6的下半部分,带有滚动条的视窗在卧式取向的显示屏内显示。将取向变为立式将导致图6右上部分所示的配置。如图所示,可在显示屏中看到整个视窗。因而,不需要滚动条来显示全部的视窗内容。过程移到判决框950。
在判决框950,确定是否还有任何视窗打开着。如果打开的视窗需要重新调整位置/尺寸或者添加/移除滚动条,过程返回方框915以重复该过程。如果没有打开的视窗,则过程在方框955结束。
图10示出了根据本发明用以在已改变取向的显示器上自动显示视窗内容的机制的示例性代码。需要重新调整尺寸和/或位置的用以找到视窗的命令被执行(例如1000)。视窗管理器接收要调整尺寸和/或位置的视窗(例如1010)。确定是否应当添加滚动条(例如1020)。视窗的尺寸被确定(例如1030)。指针被放置在视窗上(例如1040)。然后改变视窗的尺寸。在所示示例中,视窗的尺寸变小80个象素(例如1050)。然后可添加滚动条(例如1060)。
以上说明书、示例和数据提供了本发明组成的制作和使用。可制作本发明的许多实施例而不背离部分发明的精神和范围。
权利要求
1.一种方法,响应于显示器取向从第一取向到第二取向的改变用来自动调整在显示屏内显示的视窗,其特征在于,所述方法包括当所述显示器取向对应于所述第一取向时,确定所述视窗的位置;确定随着显示器取向的所述改变,所述视窗是否能全部显示;随着显示器取向的所述改变所述视窗未全部显示时,调整所述视窗的尺寸和位置中的至少一个;以及当所述显示器取向对应于所述第二取向时,根据所述经调整的尺寸和经调整的位置中的至少一个在所述显示屏内显示所述视窗。
2.如权利要求1所述的方法,其特征在于,所述第一取向为立式而所述第二取向为卧式。
3.如权利要求1所述的方法,其特征在于,所述第一取向为卧式而所述第二取向为立式。
4.如权利要求1所述的方法,其特征在于,还包括当在具有所述第二取向的所述显示屏内未全部显示所述视窗时把滚动条添加到所述视窗。
5.如权利要求1所述的方法,其特征在于,还包括当在所述第一取向的所述视窗内存在滚动条时,而所述第二取向的所述显示屏内所述整个视窗全部显示时,从所述视窗移除所述滚动条。
6.如权利要求1所述的方法,其特征在于,调整所述视窗的至少一个尺寸和位置还包括调整所述视窗的至少一个尺寸和位置使得在所述第二取向的所述显示屏上能看到最大部分的所述视窗。
7.一种系统,响应于显示器取向从第一取向到第二取向的改变用来自动调整在显示屏内显示的视窗,其特征在于,所述系统包括与所述显示屏耦合的外壳组件,所述外壳组件被配置用来当所述显示器取向对应于所述第一取向时,确定所述视窗的位置;确定随着显示器取向的所述改变,所述视窗是否能全部显示;以及随着显示器取向的所述改变所述视窗未全部显示时,调整所述视窗的尺寸和位置中的至少一个;以及与所述显示屏和所述外壳组件耦合的视窗管理器,所述视窗管理器被配置为用来在所述显示器取向对应于所述第二取向时,根据所述经调整尺寸和经调整位置中的至少一个在所述显示屏内显示所述视窗。
8.如权利要求7所述的系统,其特征在于,所述第一取向为立式而所述第二取向为卧式。
9.如权利要求7所述的系统,其特征在于,所述第一取向为卧式而所述第二取向为立式。
10.如权利要求7所述的系统,其特征在于,所述视窗管理器被配置用来在所述第二取向的所述显示屏内未全部显示所述视窗时把滚动条添加到所述视窗。
11.如权利要求7所述的系统,其特征在于,所述视窗管理器被配置用来在所述第一取向的所述视窗内存在滚动条时,并且所述第二取向的所述显示屏内所述整个视窗全部显示时,从所述视窗移除所述滚动条。
12.如权利要求7所述的系统,其特征在于,当所述整个视窗未在具有第二取向的所述显示屏内全部显示时所述外壳组件向所述管理器发送经定制的滚动条,使得所述显示屏上可见区域的边界可调整。
13.如权利要求7所述的系统,其特征在于,所述外壳组件是这样的一种外部组件,从而使原始设备制造商能定制关联于所述外壳组件的设计属性。
14.一种带有计算机可执行指令的计算机可读介质,所述指令用来把为第一取向显示器设计的视窗内容自动显示在第二取向显示器上,其特征在于,所述指令包括当所述显示器取向对应于所述第一取向时,确定所述视窗的位置;随着显示器取向的所述改变确定,所述视窗是否能全部显示;当随着显示器取向的所述改变所述视窗未全部显示时,调整所述视窗尺寸和位置中的至少一个;以及当所述显示器取向对应于所述第二取向时,根据所述至少一个经调整的尺寸和经调整的位置在所述显示屏内显示所述视窗。
15.如权利要求14所述的计算机可读介质,其特征在于,所述第一取向为立式而所述第二取向为卧式。
16.如权利要求14所述的计算机可读介质,其特征在于,所述第一取向为卧式而所述第二取向为立式。
17.如权利要求14所述的计算机可读介质,其特征在于,还包括当所述第二取向的所述显示屏内未全部显示所述视窗时把滚动条添加到所述视窗。
18.如权利要求14所述的计算机可读介质,其特征在于,还包括当在所述第一取向的所述视窗内存在滚动条时,并且在所述第二取向的所述显示屏内所述整个视窗全部显示时,从所述视窗移除所述滚动条。
19.一种系统,用来把为立式和卧式取向的其中一个取向设计的视窗内容,自动显示在所述立式和卧式取向的另一个取向的显示器上,其特征在于,所述系统包括用来在所述显示器取向对应于立式和卧式取向的其中一个取向时,确定所述视窗位置的装置;用来确定随着显示器取向的所述改变,所述视窗是否能全部显示的装置;用来随着显示器取向的所述改变所述视窗未全部显示时,调整所述视窗的尺寸和位置中的至少一个的装置;以及用来当所述显示器取向对应于立式和卧式取向的另一个取向时,根据所述经调整的尺寸和经调整的位置中的至少一个在所述显示屏内显示所述视窗的装置。
20.如权利要求19所述的系统,其特征在于,还包括用来在所述立式和卧式取向的另一个取向的所述显示屏内未全部显示所述视窗时把一滚动条添加到所述视窗的装置。
21.如权利要求19所述的系统,其特征在于,还包括用来在所述立式和卧式取向的其中一个取向的所述视窗内存在滚动条时,并且在所述立式和卧式取向的另一个取向的所述显示屏内所述整个视窗全部显示时,从所述视窗移除所述滚动条的装置。
全文摘要
描述了用来在已改变取向显示器上自动显示视窗内容的方法和系统。被制作为特定尺寸的诸如对话框的视窗内容,其位置和尺寸可作调整使得在显示屏取向改变时(例如从立式变为卧式)可看到整个视窗。在必要时可添加滚动条以便完全访问显示屏内看不到的内容。同样地,当在新取向上不再需要滚动条时,可移除滚动条。无需中断其它操作系统应用,视窗位置和尺寸的重新调整以及滚动条的添加或移除就可发生。
文档编号G06F1/16GK1658150SQ20051000918
公开日2005年8月24日 申请日期2005年2月5日 优先权日2004年2月6日
发明者J·N·非格尔罗阿, M·J·汤姆森, M·S·那古萨那瓦拉 申请人:微软公司