应用窗口的基于区的大小调整和定位的制作方法

文档序号:11160814阅读:252来源:国知局
应用窗口的基于区的大小调整和定位的制造方法与工艺

提供本背景是为了一般性地呈现用于本公开的上下文的目的。除非本文另外指明,否则背景中描述的材料既不明确地也不隐含地被承认为是对于本公开或随后的权利要求的现有技术。

常规的操作系统允许用户通过窗口来查看多个计算应用。这些窗口中的每一个通常包括边框或控件以用于选择哪个窗口是主要的或要移动、调整大小、或以其它方式管理窗口相对于工作空间和其他窗口的放置。然而,这些边框或控件常常只使得当前选择的窗口能够被移动或调整大小,这可以导致窗口之间的非故意的遮挡和交叠。另外,移动或调整多个窗口的大小常常需要用户执行一连串冗余任务以按所期望的去反复地移动或调整每个窗口的大小。因此,以这种方式管理多个窗口的布局对于用户来说可能是过于复杂、耗时并且烦人的。



技术实现要素:

本文档描述了使得能在多应用环境中对应用窗口进行基于区(region)的大小调整(size)和定位的技术和装置。本文描述的多应用环境呈现一个或多个应用窗口,其可以被调整大小、定位或分层以提供优化的布局。在一些实施例中,这些技术和装置使得能基于另一应用窗口的边缘来确定某个应用窗口的大小或位置。此外,在一些实施例中,这些技术和装置使得能基于对多应用环境的区的选择来将应用窗口的大小调整到预定义区域。另外,一些实施例使能接合处分隔器(joint divider)或接合处转角控件(joint corner control),其使得能同时对多个应用窗口进行大小调整或定位。而且,一些实施例识别多应用环境的可用区,并且使得能选择应用窗口以经由该可用区呈现。

提供本概要以介绍将在以下的详细说明中进一步描述的简化的概念。本概要既不打算标识所要求保护的主题的必要特征,也不打算用于确定所要求保护的主题的范围。当上下文允许时,使得能进行应用窗口的基于区的大小调整和定位的技术和/或装置在本文中也被单独地或者联合地称为“技术”,尽管技术可以包括或代替性地代表本文描述的其他方面。

附图说明

参考以下附图来描述使能多应用环境的实施例。贯穿附图使用相同的标号来引用同样的特征和部件:

图1图示了示例性系统,在其中可以实现使得能进行应用窗口的基于区的大小调整和定位的技术。

图2图示了具有呈现沉浸式界面的触敏显示器的示例性平板计算设备。

图3图示了对应用的窗口进行大小调整或定位以填充多应用环境的区的方法。

图4图示了多应用环境的区的示例性布局。

图5图示了用于基于多应用环境的其他应用窗口来对某个应用窗口进行大小调整和定位的方法。

图6图示了对应用窗口进行大小调整和/或定位以便在多应用环境中呈现的示例。

图7图示了展现对应用窗口进行大小调整和/或定位以便在多应用环境中呈现的附加示例。

图8图示了在多应用环境的各个区中对分屏(snapped)的应用窗口重新调整大小的示例。

图9图示了用于基于多应用环境的区来调整应用窗口的大小的方法。

图10图示了与多应用环境的各个区相关联的示例性选择区域。

图11图示了用于基于应用窗口的状态来选择多应用环境的区的方法。

图12图示了用于实现图12的方法的示例性状态机。

图13图示了多应用环境的示例性放落区域(drop area)。

图14图示了使用接合处分隔器来同时调整多个应用窗口的大小的方法。

图15图示了在各种应用窗口之间建立的示例性接合处分隔器。

图16图示了根据一个或多个实施例的接合处控制分隔器的呈现。

图17图示了使用接合处分隔器来调整应用窗口大小的示例。

图18图示了用于在移动另一应用窗口的同时重新调整应用窗口大小的方法。

图19图示了图18的方法的示例性应用,包括将应用窗口逐出到多应用环境的另一层。

图20图示了可以在应用窗口之间建立的示例性接合处分隔器。

图21图示了可以在应用窗口之间建立的接合处转角的示例。

图22图示了接合处分隔器和应用窗口边缘的详细示例。

图23图示了毗邻和非毗邻的应用窗口边缘的详细示例。

图24图示了用于使得能选择用以在可用区中呈现的应用窗口的方法。

图25图示了具有用于呈现应用窗口的可用区的示例性多应用环境。

图26图示了用于在可用区中呈现所选择的应用窗口的方法。

图27图示了通过选择应用窗口而创建的示例性应用窗口布局。

图28图示了在其中可以实现使能多应用环境的技术的示例性设备。

具体实施方式

概述

本文档描述了使得能进行应用窗口的基于区的大小调整和定位的技术和装置。这些装置和技术可以使得多应用环境的应用窗口能够被方便地和有效地定位或调整大小,以便提供应用窗口的优化布局。在一些实施例中,这些技术和装置使得能基于另一应用窗口的边缘来确定某个应用窗口的大小或位置。此外,在一些实施例中,所述技术和装置使得能基于对多应用环境的区的选择来将应用窗口的大小调整到预定义区域。另外,一些实施例使能接合处分隔器或接合处转角控件,其使得能同时对多个应用窗口进行大小调整或定位。还有,一些实施例识别多应用环境的可用区,并且使得能选择应用窗口来经由该可用区呈现。在一些实施例中,通过多应用环境的区或预定义区域来使能这些和其他形式的应用窗口管理。这些仅是其中这些技术使得能进行应用窗口的基于区的大小调整和定位的许多方式的几个示例,其它方式在下面描述。

示例性系统

图1图示了在其中可以具体化使得能进行应用窗口的基于区的大小调整和定位的技术的示例性系统100。系统100包括计算设备102,其通过四个示例来图示,即:智能电话计算机104、平板计算设备106、膝上型计算机108和游戏设备110,但是也可以使用其他计算设备和系统,比如机顶盒、服务器和上网本。

计算设备102包括(一个或多个)计算机处理器112和计算机可读存储介质114(介质114)。介质114包括操作系统116、多应用环境模块118、系统接口模块120、输入模块122、(一个或多个)应用124、包括或可访问应用队列130的应用管理器128和窗口管理器132,每个应用124具有一个或多个应用用户接口126((一个或多个)应用UI 126))。

计算设备102还包括或可访问一个或多个显示器134和输入机构136。图1图示了四个示例性显示器,其可以是单独的,或者与计算设备102集成的。输入机构142可以包括手势敏感传感器和设备,仅举几个例子,诸如基于触摸的传感器和运动跟踪传感器(例如,基于照相机的),以及鼠标(独立式的(free-standing)或与键盘集成的)、触控笔、触摸板、加速度计和具有伴随的话音识别软件的麦克风。输入机构136可以与显示器134分离或集成;集成的示例包括具有集成的触敏或运动敏感传感器的手势敏感显示器。

操作系统116管理计算设备102的资源,并且可以使用任何合适的指令格式来实现,诸如64位、32位、精简指令集计算(RISC)、复杂指令集计算(CISC)等等。在一些情况下,操作系统116可以通过虚拟化来使得能执行具有不同指令格式的模块或应用。操作系统116使得计算设备102的其他模块能够访问计算设备102的资源,诸如多应用环境模块118和应用124。

多应用环境模块118提供多应用环境,借助于该多应用环境,用户可以通过经由相应应用窗口呈现的应用UI 126来查看应用124中的一个或多个并与之交互。在一些情况下,多应用环境是交叠的窗口化环境或工作空间,其使得能管理或操纵非交叠窗口或交叠窗口的位置、大小和/或前后排序(统称为“放置”)(例如,窗口的z排序(z-ordering))。可以经由多应用环境模块118的z堆栈来维持工作空间中的每个应用窗口的排序或“深度”。典型地,主应用或无遮挡的应用窗口驻留在z堆栈的顶部。其他应用窗口,例如非主要或被遮挡的应用窗口驻留在z堆栈中更深的位置。这些非主应用窗口可以基于它们在z堆栈内的各自位置而彼此交叠或遮挡。

多应用环境模块118可以通过有边框的应用窗口来呈现应用UI 126。这些边框可以提供通过其与应用交互的控件和/或使得用户能够定位和调整窗口大小的控件。替换地或附加地,多应用环境模块118可以通过具有很少或没有窗口边框的应用窗口和/或在不呈现可视控件(例如,在窗口边框上或在遮蔽内容的窗口中的永久控件)的情况下来呈现应用UI 126。

由多应用环境模块118使能的多应用环境可以在不使用基于窗口的桌面环境的情况下被宿有(host)和/或被表面化(surface),但不要求如此。因此,在一些情况下,多应用环境模块118将多应用环境呈现为沉浸式环境,并且排除对桌面样的显示(例如,任务栏)的使用。此外,在一些实施例中,这个多应用环境类似于操作系统,因为其不可关闭或不能够被卸载。尽管不要求,但是在一些情况下,这个多应用环境使得能由多应用环境内的应用使用显示器的所有或几乎所有像素。

系统接口模块120提供一个或多个接口,通过该接口使能与操作系统116的交互,仅举几个例子,诸如应用启动接口、应用管理用户接口(应用管理UI)、开始菜单、控制面板或者系统工具或选项菜单。输入模块122通过应用窗口、输入机构136或多应用环境的其他控件和功能可见性(affordance)来接收输入。

应用124可以包括任何合适类型的应用,诸如生产力应用、web浏览器、媒体查看器、导航应用、多媒体编辑应用等。操作系统116或多应用环境模块118可以本机地(natively)或通过虚拟化来支持变化类型或指令集的应用。例如,多应用环境模块118可以同时呈现变化类型或指令集的多个应用124,诸如32位、64位、运行时环境(例如,Java或Silverlight、插件(例如 Flash)、RISC、CISC、运行时语言等。

每个应用124包括一个或多个应用UI 126,其使得能观看应用的内容或与之交互。应用UI 126可以包括用于呈现应用124的预定义属性或偏好(例如,默认值或设置),比如纵横比、最大尺寸、最小尺寸、位置、首要性(primacy)、显示取向等。在至少一些实施例中,与应用124相关联的应用编程接口(API)使得能访问应用124或相应应用UI 126的属性或偏好。

应用管理器128使得能管理应用124,诸如启动、切换和跟踪活动的应用。在一些情况下,应用管理器128使得能建立和维持应用之间的关系,诸如在彼此紧密的接近度内被频繁地启动、定位或使用的应用。应用管理器128还可以访问或维持应用队列130,应用队列130可以包括活动的应用、最小化的应用或先前与之交互的应用。应用队列130的应用可以以任何合适的方式组织,诸如最新近使用的、最频繁使用的、按字母顺序地、通过应用关联或通过应用分组。

在至少一些实施例中,窗口管理器132使能定位或调整应用窗口大小的技术,以便在多应用环境中提供应用窗口的优化布局。下面提供这些技术和应用窗口的布局的示例,其中一些示例是基于多应用环境的区来呈现的,但是它们不是详尽的或意在限制本文所描述的技术。

操作系统116、多应用环境模块118、系统接口模块120、输入模块122、(一个或多个)应用124、应用管理器128和窗口管理器132中的任何一个或全部可以彼此分离地、或以任何合适的形式组合地或集成地被实现。

示例性方法

示例性方法300、500、900和1100致力于基于另一应用窗口或多应用环境的区来对某个应用窗口进行大小调整或定位,示例性方法1400和1800致力于使得接合处分隔器能够用于对应用窗口进行大小调整或定位,而示例性方法2400和2600致力于在多应用环境的可用区域中呈现应用窗口。

本文所述的方法可以整体地或部分地、单独地或彼此组合地使用。这些方法被示为诸如通过一个或多个实体或模块执行的操作(或动作)集合,并且不一定限于所示出的用于执行操作的顺序。例如,所述技术可以在多应用环境的某个区中呈现应用窗口,并且在多应用环境的另一区中自动呈现另一应用窗口。这些技术还可基于多应用环境的所选区来对应用窗口进行大小调整和定位,在所选区中呈现经大小调整的应用窗口,且接着建立接合处分隔器,其使得该应用窗口和接触该应用窗口的另一应用窗口被同时重新调整大小。此外,这些技术可以在多应用环境的某个区中呈现应用窗口,然后呈现关于可选择来填充多应用环境的一个或多个可用区的其他应用窗口的提示。

图2图示了在其中可以执行本文所描述的技术的示例性操作环境200。在该特定示例中,平板计算设备106经由多应用环境模块118、经由显示器134呈现多应用环境202。这里,也可以称为工作空间的多应用环境202包括应用窗口204和应用窗口206,它们中的每一个占据多应用环境202的大约一半,如通过应用窗口分隔器208所示的。

如上所述,应用窗口可以包括使得应用窗口能够被调整大小、定位、最小化、关闭等的控件(例如,应用窗口204)。替换地,应用窗口可以不包括控件,这使得应用的用户界面或内容能够完全占据多应用环境202的区或区域(例如,应用窗口206)。应当注意,没有控件的应用窗口仍然可以通过衔接(engage)应用窗口的边缘或内容而被调整大小、定位或以其它方式操纵。

替代地或附加地,多应用环境202可以被实现为桌面,虚拟的或别样的,并且包括被示为应用管理UI 210或开始菜单(未示出)的控制区域。例如,当被实现为桌面时,多应用环境202可以提供基于窗口的工作空间,其中应用窗口可以被个体地移动、被调整大小或被选择为主窗口(例如,移动到z堆栈的顶部)。

多应用环境202还可以提供一个或多个虚拟桌面,通过其可以呈现或访问不同组的应用窗口。作为示例,用户可以配置具有基于工作的或生产力应用窗口的一个虚拟桌面和具有媒体消费应用窗口的另一个虚拟桌面。通过这样做,用户可以通过在两个虚拟桌面之间切换或枢转(pivot)而与两组不同的应用窗口交互。在一些情况下,用户可以将应用窗口从另一个虚拟桌面切换到当前选择的虚拟桌面,从而排除了在虚拟桌面之间枢转的需要。在至少一些实施例中,多应用环境202或其某个区段(section)完全占据显示器的屏幕或可见区域。这样,多应用环境202的边缘可以与显示器的屏幕或可见区域的相应边缘对准。

应用管理UI 210使得能访问计算设备102的操作系统116、系统接口模块120或其他应用124的特征和功能。例如,应用窗口可以从应用管理UI 210被启动或切换。使用本文中的技术,可以在多应用环境202中对应用窗口进行有效地添加、切换、定位、调整大小或其他方式的操纵,以便提供应用窗口的优化布局。

应用窗口的自适应大小调整和定位

图3描绘了用于基于另一应用窗口来对应用窗口进行大小调整或定位的方法300,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在302,接收对多应用环境的区的选择。可以经由任何合适的输入来选择区,所述输入比如是经由应用窗口接收的热键组合或方向输入(例如,窗口拖动)。在一些情况下,经由被添加到多应用环境中、被切换到多应用环境中或在多应用环境内被移动的应用窗口来接收对区的选择。该区可以包括多应用环境的任何合适的区段或区域,诸如沿着屏幕边缘的区段或者处于屏幕中心的区段。在一些情况下,用户可以将多应用环境内的特定区域(例如,屏幕区域的一些区段或条带)定义或配置为用户定义的区。

该区可以是固定的、预定义的或动态的,诸如由于显示器的取向或接收的输入类型而改变大小或位置的区。在一些情况下,区可以与诸如“分屏(snap)”操作这样的对应操作相关联,该操作以预定义大小或预定义位置用应用窗口填充该区。这些预定义大小或预定义位置可以对应于多应用环境的预定义区域,其可以包括工作空间的水平和/或垂直象限(quadrant)或分数,例如一半、四分之一、三分之一及其任意组合。替换地或附加地,多应用环境的预定义区域可以由用户来定义,诸如通过划分工作空间或通过保存应用窗口的大小、位置或在z堆栈内的位置而定义为预定义区域。

作为示例,考虑图4,其图示了示例性工作空间400、402和404,其中每个工作空间图示了区的各种布局。这里,工作空间400的应用窗口406、408、410和412最初被分屏到工作空间的象限区域。当应用窗口接触或触到工作空间或屏幕的两个或更多个相邻边缘时,可以认为应用窗口被分屏。类似地,应用窗口414和416最初被分屏到工作空间402的半区域。

在304,识别与所选区相邻的另一应用窗口的边缘。另一应用窗口可以占据多应用环境的相邻区。在一些情况下,另一应用窗口的边缘与所选区互补(complimentary)。替换地或附加地,可以识别非相邻应用窗口的边缘(例如,互补或非互补的)。

例如,沿着源自转角424的轴来考虑工作空间404的区418、区420和区422。这里,区418和区420与转角424相邻,而区422与转角424不相邻。此外,各区的边缘可以沿着各个轴被分类为互补或非互补的。从转角424起且沿着X轴,边缘426和边缘428是互补的,而边缘430是非互补的。类似地,从转角424起且沿着Y轴,边缘432和边缘434是互补的,而边缘436是非互补的。

在工作空间400的上下文中,假设将窗口438拖动到工作空间400的转角区中。这里,窗口管理器132识别应用窗口410的、与应用窗口438正移动到的区相邻的边缘。另外,在工作空间402的上下文中,应用窗口440正被拖动到工作空间402的侧区(side region)中。这里,窗口管理器132识别应用窗口416的、与应用窗口440正移动到的区相邻的边缘。

在306,基于另一应用窗口的边缘为该应用窗口确定大小或位置。可以把应用窗口的大小或位置确定成使得该应用窗口填充该区直到另一应用窗口的边缘。在一些情况下,把大小或位置确定成使得应用窗口的边缘与相邻应用窗口的互补边缘对准。在这种情况下,该应用窗口和相邻应用窗口可以具有相同的宽度或相同的高度。替代地或附加地,所确定的大小或位置可以对应于多应用环境的预定义区域,例如工作空间的象限区域或半区域。

返回到示例性工作空间400,窗口管理器为应用窗口438把大小确定成使得应用窗口438的边缘与应用窗口410和应用窗口408的边缘对准。另外,在工作空间402的上下文中,窗口管理器为应用窗口440把大小确定成使得应用窗口440的边缘与应用窗口416的边缘对准。

在308,以所确定的大小或所确定的位置在多应用环境的所选区中呈现该应用窗口。在一些情况下,在占据所选区的另一应用窗口之上呈现该应用窗口。在这样的情况下,其他应用窗口可以被降级到多应用环境的另一个主要层(primacy layer)(例如,在z堆栈中更深)。替换地或附加地,该应用窗口可以被分屏到该区中。

结束参考工作空间400的示例,窗口管理器在工作空间400的象限中呈现应用窗口438,其将应用窗口438抵靠着工作空间400的其他被分屏的窗口放置。另外,在工作空间402的上下文中,窗口管理器将应用窗口440抵靠着半分屏的应用窗口414放置。

图5描绘了用以基于多应用环境的其他应用窗口来对应用窗口进行大小调整和定位的方法500,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在502,接收输入以发起在多应用环境的区中放置应用窗口。应用窗口的放置可以响应于用以在多应用环境中添加、切换或移动应用窗口的输入。在一些情况下,输入是手势或边缘触发动作,其中应用窗口或它的可视表示被拖动到多应用环境的边缘或抵靠着多应用环境的边缘移动。在这样的情况下,应用窗口的接触或移动到多应用环境的边缘中可以“触发”应用窗口的放置或其他变换。

在504,确定多应用环境中的其他应用窗口的各自大小和位置。在一些情况下,其它应用窗口的相应边缘被识别为对该区互补的或非互补的边缘。在这样的情况下,可以基于每个轴,诸如垂直轴或水平轴,来识别这些相应的边缘。当沿着两个轴(例如,两个相邻的应用窗口)识别出其它应用的互补边缘时,可以忽略水平轴的边缘。

可选地,在506,确定其他应用窗口的各自状态。未在多应用环境中被分屏或被其他窗口遮挡的应用窗口可以从方法500的其他操作中忽略。替代地或附加地,被最小化、最大化或经由另一显示器呈现的应用窗口也可以从方法500的其它操作中忽略。通过这样做,当对应用窗口进行大小调整或定位以便提供应用窗口的优化布局时,考虑的是多应用环境的当前分屏的窗口或主窗口。在一些情况下,创建或维持描述其他应用窗口(例如,屏幕上应用窗口)的信息及其相应状态信息的数据结构。可以访问或查阅此数据结构以确定在优化应用窗口的布局时要考虑哪些应用窗口。

在508,基于其他应用窗口的各自大小和位置来确定用于该应用窗口的大小和位置。在一些情况下,还基于该应用窗口的属性或偏好(诸如默认的纵横比或最小尺寸)来确定该窗口的大小和位置。在其他情况下,可以考虑其他应用窗口的属性或偏好,诸如以便维持其他应用窗口之一的最小尺寸。

在一些实施例中,对应用窗口进行大小调整和定位以便与其他应用窗口对齐,所述其他应用窗口邻近该应用窗口被选择来在其中呈现的区。例如,应用窗口的大小可以被调整成与相邻应用窗口的互补边缘对齐。当其他应用窗口中的两个与该区相邻时,应用窗口的大小可以被调整到某垂直相邻窗口的两个互补边缘。其示例在图6的示例性工作空间600中图示,其包括与转角区606相邻的应用窗口602和604。这里,为应用窗口608确定大小和位置,使得该应用窗口与应用窗口604对准。

替换地,如果另一应用窗口不是垂直相邻的,则应用窗口的大小可以被调整大小到某水平相邻的窗口。这由示例性工作空间610图示,其包括与半区614水平相邻的应用窗口612。这里,为应用窗口616确定大小和位置,使得该应用窗口与应用窗口612的互补边缘对准。

此外,当相邻应用窗口在该区中不具有互补边缘时,可以对应用窗口进行大小调整和定位以便与相邻窗口的非互补边缘对齐。这由示例性工作空间618图示,其包括与转角622相邻的应用窗口620。这里,为应用窗口624确定大小和位置,以将该应用窗口与应用窗口620的非互补边缘对准。

另外,当另一应用窗口不与该区相邻时,应用窗口可以被调整大小直到某非相邻区的互补边缘。这由示例性工作空间626图示,其包括不与转角630相邻的应用窗口628。这里,为应用632确定大小和位置,以使该应用窗口与应用窗口628的互补边缘对准。

替换地,当不存在其它边缘或应用窗口时,可以将应用窗口大小调整和定位到多应用环境的预定义区域,比如象限区域或半区域。这在图7的示例性工作空间700和702中图示,其不包括相邻的应用窗口或那些具有互补边缘的应用窗口。在工作空间700中,应用窗口704被分屏到工作空间的一半,并且位于转角706的对面。这样,确定大小和位置,使得应用窗口708半分屏到工作空间700的上部区。在工作空间702中,当应用窗口710移动到半区中时没有其他应用窗口。因此,确定大小和位置,使得窗口710可以被分屏到工作空间708的半分屏区域中。

可选地,在510,更改其他应用窗口之一的相应大小或位置。在一些情况下,基于其他应用窗口的属性或偏好(诸如默认的纵横比或最小尺寸)来确定另一应用窗口的大小或位置。更改其他应用窗口可以包括移动其他应用窗口或调整其大小以适合或填充多应用环境的预定义区域,诸如象限区域或半区域。

在一些实施例中,这在使能应用窗口交换(例如,当应用窗口和另一应用窗口被类似地调整大小时)时可以是有效的。这样的示例在图7的工作空间712和714中图示,其中分别响应于半分屏和四分之一分屏边缘触发动作(触发)而发起应用窗口交换。在工作空间712中,经由应用窗口718接收半分屏边缘触发716,以将该应用窗口移动到工作空间712的右边缘。

这里,应用窗口720和722被重新定位到工作空间712的左边缘,从而使能与应用窗口718的位置交换。在工作空间714中,经由应用窗口726接收四分之一分屏边缘触发724,以移动应用窗口到工作空间714的左上角。这里,应用窗口728被重新定位到工作空间714的左下角,从而使能与应用窗口726的位置交换。

用于确定何时发起应用窗口交换的示例性算法是基于移动应用窗口之一的输入。当垂直于移动的应用窗口的边缘分量相同时,可以交换应用窗口。换句话说,当沿着X轴移动应用窗口时,Y轴上的应用窗口边缘必须匹配​​。对于对角线移动(diagonal movement),此算法可以被应用两次,每个轴方向一次。可以通过将移动映射回边缘触发或其他方向输入来确定沿着每个轴的基于矢量的运动。

在512,以所确定的大小和位置呈现应用窗口以完成窗口的放置。在一些情况下,在占据所选区的另一应用窗口之上呈现该应用窗口。在这样的情况下,另一应用窗口可以被降级到多应用环境的另一个主要层(例如,在z堆栈中更深)。替换地或附加地,应用窗口可以以预定义的大小被分屏到该区中,诸如以便占据多应用环境的象限区域或半区域。

此外,方法300或500可以被实现来对现有的被分屏窗口或最大化窗口重新调整大小。可以使用任何合适的输入,诸如半分屏或四分之一分屏边缘触发,来发起对这些窗口的大小的重新调整。在一些情况下,除了边缘触发或窗口拖动输入之外,还响应于接收到附加输入(诸如鼠标按钮或键盘输入(例如,ALT键))而使能这些操作。

图8图示了重新调整被分屏的应用窗口的大小的示例,其是参考工作空间800和802而示出的。工作空间800包括应用窗口804和应用窗口806,应用窗口806在工作空间中最初被最大化。这里,半分屏边缘触发808将应用窗口810定位和大小调整到工作空间800的半区域。响应于此,窗口管理器132将应用窗口806的大小重新调整到工作空间800的另一半区域。

作为另一示例,考虑工作空间802,其包括应用窗口810和占据工作空间802的半区域的应用窗口812。这里,象限分屏边缘触发811将应用窗口810定位和大小调整到工作空间802的象限区域。响应于此,窗口管理器132将应用窗口812的大小重新调整到工作空间802的相邻象限区域。这些仅仅是可以如何实现方法300和500以便对被分屏的应用窗口进行定位或大小调整的几个示例。

应用窗口的基于区的大小调整和定位

图9描绘了用于应用窗口的基于区的大小调整的方法900,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在902,在具有预定义区域的用户界面中呈现应用窗口。应用窗口可以在预定义区域之一中或在预定义区域之上呈现。每个预定义区域对应于用户界面的区。在一些情况下,用户界面的区(例如,边缘)被用来触发将应用窗口放置到这些预定义区域(例如,象限)的对应一个中。用户界面的这些区可以是默认区,诸如屏幕边缘、或包括屏幕的任何区段的用户定义区。在一些情况下,预定义区域可以在用户界面内具有相关联的大小或位置,诸如象限大小、一半大小、最大化大小、最小化大小等等。用户界面可以被实现为多应用环境。

作为示例,考虑图10,其图示了示例性预定义区域和对应区。仅作为示例,预定义区域被图示为分屏区域,其可以跨工作空间的各区段被均匀地或不均匀地分割开。例如,图10的工作空间1000包括半分屏区域1002和半分屏区域1004,其分别对应于边缘区1006和边缘区1008。

示例性工作空间1010包括象限区域,比如象限分屏区域1012、1014、1016和1018,其分别对应于转角区1020、1022、1024和1026。转角区可以被定义为正方形或圆形(例如,转角区1026),并且可以具有预定义的大小,例如大约25像素的宽度或半径。在工作空间1028中示出了其它示例性半区域,其包括半分屏区域1030和半分屏区域1032。边缘区1034可以对应于工作空间的最大化区域,或者在纵向取向的显示器的情况下,可以对应于半分屏区域1030。最后,半分屏区域1032对应于沿着工作空间1028的底部设置的边缘区1036。

在一些实施例中,可以取决于期望的输入的类型来更改区的大小。例如,当接收到诸如鼠标输入这样的更精确的输入时,区可以具有更小的大小,因为用户可以容易地衔接(engage)预期的区。在其它情况下,当接收到比如触摸输入或手势输入这样的不太精确的输入时,可增加区(例如,边缘区或转角边缘)的大小。替换地或附加地,可以基于显示器拓扑来更改区的大小,诸如提供显示器的边缘在那里相遇的更大的区,以使得能进行更准确的区选择。

在904,基于预定义区域之一来更改应用窗口的大小。响应于将应用窗口移动到与预定义区域相对应的区中的输入,更改应用窗口的大小。在一些情况下,应用窗口被定位为占据预定义区域的一部分或全部。移动应用窗口的输入可以包括任何合适的输入,诸如通过应用窗口接收的边缘触发或方向输入(例如,拖动)。例如,将应用窗口拖动到转角区中会把该应用窗口的大小调整到对应于该转角区的象限中。因此,可以通过将应用窗口移动到对应区来将该应用窗口的大小调整到工作空间的任何预定义区域。

图11描绘了用于应用窗口的基于区的大小调整和定位的方法1100,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在1102,接收输入以在具有预定义区域的用户界面内移动应用窗口。接收的输入可以包括任何合适类型的输入,诸如键击、方向输入、手势输入等。例如,输入可以包括经由鼠标或一个或多个键击(比如WindowsTM键和箭头键)来选择和拖动该应用。在其他实例中,可以将应用拖动到与预定义区域之一相对应的区中。

在1104,基于该输入和应用窗口的状态来选择用户界面的预定义区域。应用窗口的状态可以包括当前大小、当前位置、在z堆栈中的当前深度、或应用窗口占据的当前预定义区域。预定义区域可以包括任何预定义区域,诸如用户定义的区域、或本文所描述的其他预定义区域,比如分屏区域。在一些实施例中,预定义区域也可以是交叠的,并且在窗口的z堆栈中具有可定制的深度。通过这样做,可以创建有变化的首要性或深度的应用窗口布局。

使用应用窗口的状态可以使得能进行应用窗口的动态大小调整和定位。作为示例,可以使用状态机来确定对预定义区域或应用窗口状态的选择。在一些情况下,基于应用窗口的当前状态和所接收的输入来访问状态机可以为应用窗口选择下一预定义区域或下一状态。

考虑图12,其图示了用于为应用窗口动态选择预定义区域或状态的示例性状态机1200。这里,图例1202指示响应于接收到的相应输入——诸如在按住WindowsTM键的同时按下箭头键——而发生哪些状态转移。如状态机1200的状态所示,可以通过输入一系列键击来选择预定义区域,以达到相应的状态。在该特定示例中,状态机1200包括用于半区域的状态,半区域诸如是左半部1204、右半部1206、分裂(split)顶部1208和分裂底部1210。状态机还包括用于象限区域的状态,象限区域诸如是左上四分之一1212、左下四分之一1214、右上四分之一1216和右下四分之一1218。此外,状态机1200的其它预定义区域或状态也是可选择的,并且包括最小化1220、还原1222和最大化1224。替换地或附加地,用户可以将一个或多个状态或其他按键组合映射到工作空间的定制的用户定义区域。

返回到手边的方法,在1106处,更改应用窗口的大小和位置,使得应用窗口将填充预定义区域。在一些情况下,应用窗口的大小被调整成填充用户界面的象限区域或半区域。在其他情况下,应用窗口可以被最小化或者在当前呈现的应用窗口的z堆栈中更深地降级。如上所述,预定义区域可以是用户定义的,诸如在用户界面或多应用环境的中心的放落区。

作为示例,考虑图13的工作空间1300,其图示了定制的放落区域1302、1304和1306。这些定制的放落区域可以由用户定义并且映射到区(例如,在工作空间中间的区)或按键组合,使得应用窗口的大小和位置被更改成填充该放落区域。这些放落区域可以以任何合适的方式来配置,诸如通过存储应用窗口的大小、位置或在z堆栈中的深度来作为工作空间的用户定义区域。

可选地,在1108,预览应用窗口以可视地指示该应用窗口的更改的大小和位置。应用窗口的预览可以被示为应用窗口或其内容的非不透明(或部分透明)表示。在一些情况下,接收附加输入,其确认应用窗口在该预定义区域中的被预览的放置。在这样的情况下,方法500可以响应于用来承诺(commit)如预览的应用窗口的输入而前进到操作1110。

替换地,附加输入可以选择预定义区域中的另一个来在其中呈现该应用界面。这可以有效地使得方法500返回到操作1102来用于选择另一预定义区域。在另外的其他情况下,可以以施加在应用窗口或其预览上的持续拖动或惯性的形式来接收附加输入。响应于这种持续的拖动或惯性(例如,进入边缘区),可以在预定义区域中重新调整应用窗口的预览的大小,或将其大小调整到另一预定义区域。

在1110,以更改的大小和位置在用户界面的预定义区域中呈现应用窗口。在一些情况下,根据与用户界面的预定义区相关联的深度,以z堆栈中的特定深度来呈现应用窗口。以更改的大小和位置呈现应用可以有效地填充预定义区域。这个的示例由工作空间1308图示,其中搜索应用1310被调整大小和定位为填充放落区域1302。在图13的上下文中,可以重复方法1100的操作以分别用图像应用1312和记事本应用1314来填充放落区域1304和1306。

用于应用窗口的动态接合处分隔器

图14描绘了用于在应用窗口之间建立接合处分隔器的方法1400,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在1402,在多应用环境的第一应用窗口和第二应用窗口之间建立接合处分隔器。响应于第一应用窗口的边缘接触(例如,无交叠地触到)第二应用窗口的边缘而建立接合处分隔器。在一些情况下,接合处分隔器沿着每个应用窗口的接触中的相应区段建立。在其他情况下,接合处分隔器沿着每个相应的应用窗口的整个长度建立,而不管应用窗口之间的接触量。应用窗口的边缘之间的接触可以由任何合适的操作引起,诸如对多应用环境中的应用窗口之一进行移动、分屏、添加或大小调整。接合处分隔器还可以沿着应用窗口的任何可见边缘建立。在一些情况下,建立接合处分隔器可以限于被分屏的应用窗口并且排除未被分屏或浮动的应用窗口。

在一些实施例中,接合处分隔器在沿着一个或多个边缘彼此接触的多个应用窗口之间建立。例如,当两个应用窗口的相应边缘接触第三应用窗口的边缘时,可以建立单个接合处分隔器。替换地,当应用窗口在应用窗口的相应转角处彼此接触时,可以形成复杂的接合处分隔器。替代地或附加地,建立接合处分隔器将应用窗口聚集(group)(或相关)在一起,使得能对被聚集的应用窗口执行操作。例如,被聚集的应用窗口可以被一起打开、关闭、最小化、重新调整大小、被切换到/从其切换或者移动。此外,对被聚集的应用窗口取消聚集可以使先前被聚集的应用窗口返回到它们各自的原始状态。在一些情况下,在切换功能可见性(affordance)中一起呈现被聚集的应用窗口,切换功能可见性诸如是开始菜单、应用管理UI或热键切换器(例如,ALT + Tab或WindowsTM + Tab)。

可以在彼此接触的两个或更多个应用窗口的相应边缘上随时随地建立接合处分隔器。作为示例,考虑图15,其图示了在工作空间1500、1502和1504中的各种接合处分隔器。工作空间1500包括建立在象限分屏的应用窗口之间的接合处分隔器1506和建立在象限分屏的应用窗口和半分屏的应用窗口之间的接合处分隔器1508。也可以在如工作空间1502中所示的被遮挡的应用窗口之间建立接合处分隔器,其中应用分隔器1510被建立在部分被遮挡且被分屏的应用窗口之间。此外,在被遮挡且浮动的应用窗口之间建立应用分隔器1512,所述被遮挡且浮动的应用窗口不是处在应用窗口的z堆栈中的最高级别。

在1404,呈现由第一应用窗口和第二应用窗口共享的接合处分隔器。呈现接合处分隔器可以包括提供接合处分隔器的视觉或触觉指示。例如,在共享接合处分隔器的应用窗口的边缘上呈现视觉指示。在其他情况下,接合处分隔器在共享该接合处分隔器的两个应用窗口之间呈现。在这样的情况下,可以减小一个或两个应用窗口的大小,以提供用于呈现接合处分隔器的空间。替换地或附加地,触觉反馈(例如,凸起或起伏)可以被用来指示接合处分隔器的存在。在一些情况下,接合处分隔器响应于接近接合处分隔器的输入或光标移动而被呈现。

在一些实施例中,还呈现接合处分离控件或功能可见性以使得接合处分隔器能够被禁用。接合处分离控件可以呈现在接合处分隔器的某个区段上、接合处控件的某个边缘上或接合处控件的两个边缘上。在一些情况下,接合处分离控件使得用户能够“解开(unbuckle)”接合处分隔器,这使得能对先前共享接合处分隔器的应用窗口个别地进行大小调整或移动。接合处分隔器也可以通过其他操作而被禁用,其他操作诸如是双击接合处分隔器、在按住键(例如,CTRL)的同时点击接合处分隔器,或者通过经由不是接合处分隔器的组成部分的边缘来对应用窗口进行大小调整或移动而被禁用。

接合处分隔器可以响应于在应用窗口之间建立接合处分隔器而被呈现。替换地,接合处分隔器可以存在而不被呈现,直到接收到接近接合处分隔器的输入或光标移动。图16图示了响应于光标移动而呈现接合处分隔器的示例。光标的移动在开始于工作空间1600的所图示工作空间的连续系列中示出,工作空间1600包括应用窗口1602、应用窗口1604和光标1606。

如工作空间1608中所示,可以基于接近度阈值1610来检测光标1606的移动。接近度阈值1610可以被配置为具有任何合适的尺度,诸如距接合处分隔器10个像素,并且接近度阈值1610可以基于被接收的输入的类型来重新配置。当光标1606越过接近度阈值1610时,如工作空间1612中所示,接合处分隔器1614和接合处分离控件1616被呈现在应用窗口1602和1604的接触的边缘上。

在1406,经由接合处分隔器接收关于更改第一应用窗口和第二应用窗口各自的大小的输入。接收的输入可以包括任何合适类型的输入,诸如经由光标移动接收的方向输入、触摸输入或箭头键。作为示例,考虑图17的示例性工作空间1700,其包括由应用窗口1704和1706共享的接合处分隔器1702。在这个特定示例中,接合处分隔器1702还包括接合处分离控件,以使得能对应用窗口1704和1706个别地进行大小调整。这里,关于在横向上对应用窗口1704和1706进行大小调整的输入经由光标1710被接收。

在1408,响应于输入,同时更改第一应用窗口和第二应用窗口各自的大小。应用窗口各自的大小可以随着接收到输入(诸如定向的光标移动)而被更改。例如,可以通过沿着接收到输入的轴滑动接合分隔器而在视觉上指示应用窗口的更改的大小。因此,滑动接合处分隔器可以在视觉上指示第一和第二应用窗口的同时的大小调整。

替换地或附加地,接合处分隔器可以对于沿着工作空间的边缘的中点展现吸引力或亲和力(例如,磁性)。这可以有效地帮助用户在对称布局中调整窗口大小。在一些情况下,可以响应于键输入(例如,按住CTRL键)而禁用对于沿着工作空间的边缘的点的吸引。

在图17的上下文中,基于接合处分隔器1702到工作空间1712中所示的某个位置的移动来对应用窗口1704和1706调整大小。在这个特定示例中,还图示了接合处分离控件的特征。这里,经由接合处分离控件1708接收关于独立地调整应用窗口1704大小的附加输入。如图所示,从光标1710接收的输入在相反的横向上调整应用窗口1704的大小。结果,如工作空间1714中所示,应用窗口1704与应用窗口1706分离,从而禁用接合处分隔器,并且大小被调整为显露先前被遮挡的应用窗口1716。

图18描绘了用于利用接合处分隔器来对应用窗口进行大小调整和定位的方法1800,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在1802,在多应用环境中呈现在第一应用窗口和第二应用窗口之间共享的接合处分隔器。呈现接合处分隔器可以包括提供接合处分隔器的视觉或触觉指示。例如,在共享接合处分隔器的应用窗口的边缘之间或之上呈现视觉指示。替换地或附加地,触觉反馈(例如,凸起或起伏)可以被用来指示接合处分隔器的存在。作为示例,考虑图19的工作空间1900,其中应用窗口1902和应用窗口1904共享接合处分隔器1906。这里,接合处分隔器1906在应用窗口1902和应用窗口1904的接触的边缘上被在视觉上指示。

在1804,经由接合处分隔器接收关于增加第一应用窗口大小的输入。在一些情况下,关于增加第一应用窗口大小的输入可以指示在朝向第二应用窗口的方向上增加第一应用窗口的大小。在这样的情况下,取决于第二窗口相对于工作空间的边缘的位置,输入可以指示调整第二应用的大小、移动第二应用或者在窗口的z堆栈中将第二应用更深地降级。例如,不接触多应用环境的边缘的应用窗口可以被移动而不是被调整大小。

接收的输入可以包括任何合适类型的输入,诸如经由光标移动、触摸输入或箭头键而接收的方向输入。在当前示例的上下文中,经由如图19的工作空间1900中所示的应用分隔器接收方向输入。在这里要注意,应用窗口1904不与工作空间1900的边缘接触,并且因此可移动而不被调整大小。

在1806,响应于接收到的输入,增加第一应用窗口的大小。当第一应用窗口的大小增加时,第二应用窗口同时被移动以便有效地维持第二应用窗口的大小。第二应用窗口的移动可以继续,直到遇到多应用环境的边缘。继续正在进行的示例,应用窗口1902的大小被增加,同时应用窗口1904朝向工作空间1908的边缘移动。

操作1808、1810和1812是可选的,并且可以响应于附加输入或对第一应用窗口的大小的进一步增加而被执行。在1808,响应于第二应用窗口的边缘遇到多应用环境的边缘,减小第二应用窗口的大小。当第一应用窗口的大小继续增加时,发生第二应用窗口大小的减小。可以减小第二应用窗口的大小,直至达到最小窗口大小。在图19的上下文中,这在层视图1908中图示,其中接合处分隔器1906的继续移动增加了应用窗口1902的大小,并且减小了应用窗口1904的大小。

在1810,响应于第二应用窗口的大小达到最小尺寸,允许第一应用窗口与第二应用窗口交叠。一旦达到第二应用窗口的最小尺寸,第一应用的前进边缘开始与第二应用窗口交叠。应用窗口的最小尺寸可以由与应用用户界面相关联的应用、操作系统来定义,或通过用户输入来定义。继续正在进行的示例,如层视图1910所示,通过接合处分隔器1906而达到应用窗口1904的最小尺寸。响应于此并且如在层视图1912中所示,应用窗口1902的前进边缘开始交叠应用窗口1904 。

在1812,响应于接合处分隔器遇到多应用环境的边缘,将第二应用窗口降级到多应用环境的另一层。在一些情况下,第二应用窗口被更深地推入到应用窗口的z堆栈中。替换地或附加地,第二应用窗口的大小可以被还原到默认大小或者被移动之前的大小。这可以有效地使得第二应用窗口能够被还原或被切换到,而不重新调整大小。总结本示例,应用窗口1904以还原的大小被降级到工作空间的下一层。因此,应用窗口1904可以被还原或被切换到,而不重新调整大小。

也可以在多个应用窗口之间建立接合处分隔器,并且可以将其称为复合式接合处分隔器。多个应用窗口的大小调整或移动可以通过相对于方法1400或1800描述的操作来实现。作为示例,考虑图20,其包括示例性工作空间2000和2002,图示了在多个应用窗口之间建立的接合处分隔器。在工作空间2000的上下文中,接合处分隔器2004使得能调整彼此相邻并且共享接合处分隔器2004的应用窗口2006和2008的大小。在应用窗口2006、2008和2012的边缘之间共享的接合处分隔器2010使得能调整所有三个应用窗口的大小。

这个方面可以被扩展到如工作空间2002中所示的四个应用窗口,工作空间2002包括应用窗口2014、2016、2018和2020。在该示例中,接合处分隔器2022、2024、2026和2028每个都使得能调整它们的共享边缘的相应相邻窗口的大小。例如,接合处分隔器2022调整应用窗口2014和2016的大小,但是不调整应用窗口2018或2020的大小。替换地或附加地,当调整多个窗口的大小时,接合处分隔器可以响应于将多个窗口之一的大小调整到最小尺寸而解除(separate)或“解开”。

复合式接合处分隔器还可以被实现来维持窗口的独立性或者将改变局限于特定窗口。例如,考虑图20的工作空间2030、2032和2034,其图示了共享接合处分隔器的三个浮动应用窗口。这里,应用窗口2036、2038和2040共享接合处分隔器2042。如工作空间2030所示,经由由应用窗口2036和2040共享的接合处分隔器2042的某个区段接收的输入2044调整那些应用窗口的大小,但是不调整应用窗口2038的大小。在工作空间2032中示出了这种独立的大小调整的另一示例,其中输入2046在应用窗口2036和2038之上对应用窗口2040进行大小调整。替换地,经由由应用窗口2038和2040共享的接合处分隔器的某个区段接收的输入2048可以对这些应用窗口进行大小调整,正如工作空间2034所示的。

接合处分隔器还可以组合地被实现来提供接合处转角。接合处转角使得能在一个或两个轴上进行应用窗口的大小调整,并且可以调整共享该接合处转角的至少两个应用窗口的大小。图20图示了转角接合处的各种示例,正如工作空间2100和2102中所示的。在工作空间2100中,转角接合处2104使得应用窗口2106、2108、2110和2112能够在两个轴上被调整大小。

在一些情况下,当两个应用窗口共享转角而不是公共边缘时,可以建立接合处转角。这个的示例由工作空间2102图示,其中应用窗口2114和2116在转角处相遇并且共享接合处转角2118。这里,接合处转角2118使得能在两个轴上调整应用窗口2114和2116的大小。如同接合处分隔器一样,可以响应于到达应用窗口最小尺寸或其他合适的输入(诸如键输入或从不是接合处转角的一部分的边缘拖动应用窗口)来禁用接合处转角。

每当应用窗口的转角接触或触到彼此时,可以建立接合处转角。窗口管理器132可以通过跟踪各个窗口的转角或两个相邻边缘来建立或维持接合处转角。返回图21,考虑包括应用窗口2122、2124和2126的示例性工作空间2120。这些窗口中的每一个包括一转角,它们各自的边缘中的两个在该转角处相遇。这里,窗口管理器132跟踪边缘2128、2130和2132以建立或维持用于这些应用窗口的接合处转角。

窗口管理器132还可以跟踪各个应用窗口的边缘以建立或维持接合处分隔器。作为示例,考虑图22,其中工作空间2200包括应用窗口2202和2204。应用窗口2202和2204共享接合处分隔器2206,并且因此可以通过经接合处分隔器接收的输入来调整大小。为了使能调整大小或其他接合处分隔器操作,窗口管理器132可以构建依赖链(dependency chain)来跟踪应用窗口的各个边缘。

在图22的上下文中并且如详细视图2208所示,接合处分隔器2206包括应用窗口2202的边缘2210和应用窗口2204的边缘2212。这里,光标2214悬停在应用窗口2204的边缘2212上,并且窗口管理器132可以构建相对于边缘2212和光标2214的位置的依赖链。从边缘2212开始,窗口管理器确定哪些其它应用窗口边缘与边缘2212接触。这里,如详细视图2216所示,边缘2210被确定为接触边缘2212,且因此受到接合处分隔器2206的影响。

替换地或附加地,当执行接合处分隔器操作时,可忽视并忽略非毗邻边缘。例如,在详细视图2218中,窗口管理器132确定应用窗口2220和2222的边缘与边缘2212接触。然而,应用窗口2224的边缘由于居间的应用窗口2226而被确定为不与边缘2212接触,并且可以被忽视。如详细视图2228所示,应用窗口2226也可以被确定为不接触边缘2212,并且对于接合处分隔器操作也可以被忽视。

图23进一步图示了详细视图2300处的边缘依赖性的示例,其中应用窗口2304的边缘2302被确定为与应用窗口2308的边缘2306接触。从应用窗口2304,窗口管理器132可以从边缘依赖链中的下一个应用窗口的角度确定接触。这里,应用窗口2312的边缘2310被确定为与应用窗口2308的边缘2306接触。在详细视图2314中,由输入2316发起的大小调整操作通过依赖链传播,并且使得每个接触的应用窗口相应地调整大小或移动。

应用窗口的辅助呈现

图24描绘了用于在多应用环境的可用区中呈现可选应用窗口的方法2400,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在2402,在多应用环境的可用区中呈现应用窗口的可视表示。可视表示对应于可选择来或适于在可用区域中呈现的应用窗口,诸如可以被调整大小以完全占据可用区的应用窗口。应用窗口的可视表示可以包括应用窗口的文本、图标或缩小尺寸的图像,诸如缩略图图像。这些缩小尺寸的图像可以可视地指示应用窗口内容或先前呈现的内容的预览。

在一些实施例中,经由可用区中的提示或其他应用选择界面来呈现应用窗口的可视表示。在一些情况下,响应于在多应用环境的另一区中呈现另一应用——诸如在象限区域或半区域中呈现另一应用的分屏操作——而呈现该可视表示。在其他情况下,响应于经由应用选择控件(诸如用来调用提示或应用选择界面的控件)接收的输入而呈现该可视表示。应用选择控件可以被实现为接近地沿着可用区域的边缘的悬停区或图形标签。

应用选择控件还可以响应于光标移动或“推”入多应用环境的边缘区的其他输入而被呈现。推移动可以包括双推移动或在工作空间或屏幕区域的某个距离上的移动。在一些情况下,使用特定准则来检测推移动,以避免把与边缘的无意中的接触(例如,滚动滚动条)认作为推移动。例如,一旦光标的移动停留在边缘区处或恰好在边缘区内,则进一步进入边缘区的后续“推”(例如,双推)可以调用应用选择控件。替换地,如果光标离开边缘区、暂停的时长未能满足预定义阈值或光标继续移动穿过边缘区而不暂停,则可以不调用应用选择控件。

在一些实施例中,还可以考虑在遇到边缘区之前光标的移动。可以跟踪光标移动的垂直和水平分量以确定光标是否以足够的角度跨工作空间行进得足够远或行进到边缘区中。作为示例,当遇到水平边缘时,可以响应于确定光标行进了至少150个垂直像素并且在边缘区内相比于水平移动被更多地垂直移动,而调用应用选择控件。类似的准则可以被应用于垂直边缘区,比如通过确定光标在边缘区内相比于垂直地移动被更多地水平移动。替换地或附加地,光标移动或其他输入可以由状态机跟踪,该状态机被配置为响应于这些准则被满足而调用或触发应用选择控件的呈现。

作为示例,考虑图25,其中图示了多应用环境的示例性工作空间2500。工作空间2500包括应用窗口2502、可用区2504和任务栏2506。在这个特定示例中,应用选择提示2508被呈现在可用区2504中,该可用区还包括应用选择控件2510。应用选择控件2510的更详细视图在2512处提供并且包括解除(dismiss)控件2514。

应用选择控件2510被实现为沿着可用区2504的边缘的悬停区,并且响应于接近光标2516(或触摸输入)而出现。悬停区可以具有沿着工作空间的边缘的预定义宽度或区域,例如10到25个像素。应用选择控件2510使得用户能够触发或调用应用选择提示2508,其然后可以以上下文方式向用户呈现所有活动的应用窗口。替换地或附加地,解除控件2415使得应用选择提示2508能够被暂时地解除(或隐藏),或被解除(或隐藏)直到随后与光标接近或其他输入。这里,假设用户已经轻敲应用选择控件2510以调用应用选择提示2508。响应于该输入,应用选择提示2508被呈现,并且包括最新近被用户访问过的应用窗口的可视表示(例如,缩略图)。

替换地或附加地,可以响应于在多应用环境的另一区中呈现另一应用窗口而呈现该应用窗口的可视表示。这可以有效地使用户能够容易地为可用区选择应用窗口之一,以完成多应用环境中的应用窗口的布局。

在图25的工作空间2518中示出了这个的示例,其中边缘触发2520经由应用窗口2522被接收。边缘触发2520将应用窗口2522半分屏到工作空间2518的边缘,并且应用窗口2522在半分屏区中呈现。此示例图示了其中边缘触发或与边缘的其他接触可以有效地使得应用窗口呈现或“分屏”到与该边缘对应的预定义区域中的仅一个实例。这里,注意,未分屏的(例如浮动的)应用窗口2524在应用窗口2522的半分屏操作之前被部分地遮挡。响应于应用窗口2522在半分屏区中的呈现,对应于未分屏的应用窗口2524的可视表示2528在应用选择提示2528中呈现。

在2404,在可用区中呈现应用窗口之一。响应于接收关于选择可视表示之一的输入,呈现对应的应用窗口。在一些情况下,经由诸如应用管理UI、开始菜单或基于键的应用切换器(例如,ALT + Tab键)这样的其他应用选择用户界面来接收选择可视表示的输入。

应用窗口被调整大小和定位为填充或完全占据可用区。在呈现应用窗口之前,可以呈现应用窗口的预览以可视地指示可用区内的应用窗口的大小和位置。在图25和工作空间2500的上下文中,用户轻敲电子邮件应用图块2530将使对应的电子邮件应用填充可用区2504。因此,通过单个轻敲输入,用户能够方便地优化工作空间的布局。

图26描绘了用于识别在其中呈现应用窗口的多应用环境的可用区的方法2600,包括由窗口管理器132或多应用环境模块118执行的操作。在以下讨论的一些部分中,可以对图1的系统100、图2的操作环境200以及在本文其他地方描述的其他方法和示例性实施例进行参考,对它们进行参考仅是为了示例。

在2602,识别多应用环境的可用区。可用区可以包括能在其中呈现应用界面的任何合适的区,诸如工作空间或屏幕的矩形区。可以响应于在多应用环境的另一区中呈现另一应用窗口而执行可用区的识别。可以经由任何合适的操作,诸如分屏操作、经由动态接合处分隔器的大小调整或基于区的大小调整,而在其他区中呈现其他应用窗口。在一些情况下,可用区被识别为不包括未遮挡窗口的区或可以被应用窗口完全占据的区。替换地或附加地,针对多应用环境的主要的或最前面的一层(例如,z堆栈的顶部)来识别可用区。

考虑图27,其中工作空间2700总地在2702处呈现,并且包括应用窗口2702、2704、2706和2708,后三个被应用窗口2702部分地遮挡。这里,假设半分屏边缘触发2710经由应用窗口2702被接收,应用窗口2702然后被分屏到工作空间2700的右半部分,如2712处所示。响应于这个分屏操作,窗口管理器132将工作空间2700的左半部分识别为可用区域2714。

可选地,在2604,确定可选择用于在可用区中呈现的应用窗口。这些应用窗口可以包括任何合适的应用窗口,诸如被遮挡的、被部分遮挡的、最小化的或与另一活动或打开的应用窗口聚集的应用窗口。供选择的候选应用窗口还可以进行大小调整以便填充可用区,因此可以排除固定大小的应用窗口和被分屏到其他区的应用窗口。

在2606,在可用区中呈现应用窗口的可视表示。这些应用窗口包括那些可选择用于在可用区中呈现的应用窗口。应用窗口的可视表示可以包括应用窗口的文本、图标或缩小尺寸的图像,诸如缩略图图像。这些缩小尺寸的图像可以可视地指示应用窗口内容或先前呈现的内容的预览。在本示例的上下文中并且如2712处所示,窗口管理器132在工作空间2700的可用区2714中呈现应用窗口2704、2706和2708的可视表示,比如缩小尺寸的图像。

替换地或附加地,确定应用窗口的可视表示的顺序或布局。这种顺序或布局可以基于应用窗口的任何特性或属性来确定,诸如最频繁使用的、最新近使用的、名称、标题、大小、在z堆栈中的位置或者与另一个活动或打开的应用窗口聚集。

在2608,经由可视表示之一来接收对于选择应用窗口的相应一个的输入。输入可以包括任何合适的输入,诸如光标输入、手势输入或触摸输入。在一些情况下,触摸输入包括轻敲或象限分屏或半分屏到可用区。继续正在进行的示例,经由应用窗口2706的可视表示来接收象限分屏触发2716。

在2610,在可用区的至少一部分中呈现所选择的应用窗口。应用窗口被大小调整和定位为填充或完全占据可用区。在呈现应用窗口之前,可以呈现应用窗口的预览以可视地指示可用区内的该应用窗口的大小和位置。可选地,可以重复执行方法2600的操作以填充多应用环境的其他可用区。通过这样做,可以以最小的用户交互提供应用窗口的优化布局。

在一些实施例中,可以在没有用户输入的情况下为用户选择应用窗口并且在可用区中呈现该应用窗口。例如,如果应用窗口与另一区中的另一应用窗口配对,则可以响应于在另一区中呈现另一应用窗口而呈现该配对的应用窗口。还可以基于用以确定哪些应用是可选择用于呈现的准则来自动地选择应用窗口,准则诸如是最新近用户使用的或最频繁使用的应用窗口。

总结本示例,窗口管理器132对应用窗口2706进行大小调整和定位以填充工作空间2700的象限,如2718所示。此外,窗口管理器132然后可以识别工作空间2700的可用区2720,在其中呈现应用窗口2704和2708的可视表示。这里,假设经由应用窗口2708的可视表示接收到轻敲输入2722。作为响应,窗口管理器132对应用窗口2708进行大小调整和定位,以填充工作空间2700的象限区,如2724所示。因此,仅使用三个输入实例,便已在工作空间2700中提供了应用窗口的布局。

这些方法的各方面可以在硬件(例如,固定的逻辑电路)、固件、片上系统(SoC)、软件、手动处理或其任何组合中实现。软件实现表示当由计算机处理器执行时完成指定任务的程序代码,诸如软件、应用、例程、程序、对象、组件、数据结构、过程、模块、函数等。程序代码可以被存储在相对于计算机处理器本地的和/或远程的一个或多个计算机可读存储器设备中。这些方法还可以在分布式计算环境中由多个计算设备来实践。

示例性设备

图28图示了示例性设备2800的各种组件,示例性设备2800可以被实现为如参考前面的图1-28所描述的任何类型的客户端、服务器和/或计算设备,以实现使得能进行应用窗口的基于区的大小调整和定位的技术。在实施例中,设备2800可以被实现为有线和/或无线设备之一或者其组合,被实现为以下形式:电视客户端设备(例如,电视机顶盒、数字录像机(DVR)等)、消费者设备、计算机设备、服务器设备、便携式计算机设备、用户设备、通信设备、视频处理和/或再现设备、电器设备、游戏设备、电子设备,和/或被实现为另外类型的设备。设备2800还可以与操作该设备的用户(例如,人)和/或实体相关联,使得设备描述包括用户、软件、固件和/或设备组合的逻辑设备。

设备2800包括使能进行设备数据2804(例如,接收的数据、正被接收的数据、被调度用于广播的数据、数据的数据分组等)的有线和/或无线通信的通信设备2802。设备数据2804或其他设备内容可以包括设备的配置设置、存储在设备上的媒体内容和/或与设备的用户相关联的信息。存储在设备2800上的媒体内容可以包括任何类型的音频、视频和/或图像数据。设备2800包括一个或多个数据输入2806,经由其可以接收任何类型的数据、媒体内容和/或输入,诸如用户可选输入、消息、音乐、电视媒体内容、记录的视频内容和从任何内容和/或数据源接收的任何其他类型的音频、视频和/或图像数据。

设备2800还包括通信接口2808,其可以被实现为串行和/或并行接口、无线接口、任何类型的网络接口、调制解调器中的任何一个或多个,以及可以被实现为任何其他类型的通信接口。通信接口2808提供在设备2800和通信网络之间的连接和/或通信链路,其他电子、计算和通信设备通过所述通信网络与设备2800进行数据通信。

设备2800包括一个或多个处理器2810(例如,微处理器、控制器等中的任一个),其处理各种计算机可执行指令以控制设备2800的操作并使能那些使能多应用环境的技术。替换地或附加地,设备2800可利用硬件、固件或固定逻辑电路中的任一个或其组合来实施,其被结合总地以2812标识的处理和控制电路来实施。虽然未示出,但设备2800可包括用来耦合设备内的各种组件的系统总线或数据转移系统。系统总线可以包括不同总线结构中的任何一个或其组合,比如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种各样总线架构中的任一种的处理器或局部总线。

设备2800还包括计算机可读存储介质2814,诸如使得能进行持久和/或非暂态数据存储(即,对比于仅仅信号传输)的一个或多个存储器设备,其示例包括随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存、EPROM、EEPROM等中的任何一个或多个)以及盘存储设备。盘存储设备可以被实现为任何类型的磁或光存储设备,诸如硬盘驱动器、可记录和/或可重写压缩盘(CD)、任何类型的数字通用盘(DVD)等。设备2800还可以包括大容量存储介质设备2816。

计算机可读存储介质2814提供数据存储机制来存储设备数据2804以及各种设备应用2818和与设备2800的操作方面相关的任何其他类型的信息和/或数据。例如,操作系统2820可以利用计算机可读存储介质2814作为计算机应用来被维持,并且在处理器2810上执行。设备应用2818可以包括设备管理器,诸如任何形式的控制应用、软件应用、信号处理和控制模块、对于特定设备是本机的(native)代码、用于特定设备的硬件抽象层等等。

设备应用2818还包括用来实现这些技术的任何系统组件或模块,诸如设备应用2818包括多应用环境模块118、系统接口模块120、输入模块122、(一个或多个)应用124、应用管理器128以及窗口管理器132。

结论

虽然已经以特定于特征和/或方法的语言描述了使得能进行应用窗口的基于区的大小调整和定位的技术和装置的实施例,但是应当理解,所附权利要求的主题不一定限于所描述的具体特征或方法。相反,这些具体特征和方法是作为使得能进行应用窗口的基于区的大小调整和定位的示例性实现而被公开的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1