提供该
背景技术:
以用于大体呈现针对当前公开内容的上下文。除非在本文中以其它方式指示,否则在背景技术中描述的材料既不明确地也不暗含地对当前公开内容或之后的权利要求的现有技术的承认。
常规操作系统准许用户通过窗口查看多个计算应用。这些窗口中的每一个一般包括框架或控件以用于选择哪个窗口是主要的或要移动、定尺寸、或者以其它方式管理窗口关于工作空间和其它窗口的放置。然而,这些框架或控件通常仅使得当前所选窗口能够移动或定尺寸,其可能导致窗口之间的无意遮挡和重叠。附加地。对多个窗口进行移动或定尺寸通常要求用户执行一系列冗余任务,以便按照期望对每一个窗口反复移动或定尺寸。因此,以该方式管理多个窗口的布局对于用户而言可能过于复杂、耗时和讨厌。
技术实现要素:
本文档描述了使得能够实现多应用环境中的用于应用窗口的动态联合划分器的技术和装置。本文描述的多应用环境呈现一个或多个应用窗口,其可以定尺寸、定位或分层以提供最优布局。在一些实施例中,这些技术和装置使得应用窗口的尺寸或位置能够基于另一个应用窗口的边缘来定位。而且,在一些实施例中,技术和装置使得应用窗口能够基于多应用环境的区的选择而定尺寸到预限定的区域。进一步地,一些实施例使得能够实现联合划分器或联合角落控件,其使得能够对多个应用窗口同时定尺寸或定位。另外,一些实施例标识多应用环境的可用区,并且使得能够选择应用窗口以经由可用区进行呈现。
提供该发明内容来引入以下在具体实施方式中进一步描述的简化概念。该发明内容不意图标识所要求保护的主题的必要特征,也不意图用于确定所要求保护的主题的范围。使得能够实现用于应用窗口的动态联合划分器的技术和/或装置还在本文中单独地或者结合地称为通过上下文所准许的“技术”,尽管技术可以包括或者替代地表示本文描述的其它方面。
附图说明
参照以下附图,描述使得能够实现多应用环境的实施例。整个附图中使用相同标号来指代相同特征和组件:
图1图示了其中可以实现使得能够实现用于应用窗口的动态联合划分器的技术的示例系统。
图2图示了具有表示沉浸式接口触摸敏感显示器的示例平板计算设备。
图3图示了对应用的窗口定尺寸或定位以填充多应用环境的区的方法。
图4图示了用于多应用环境的区的示例布局。
图5图示了用于基于多应用环境的其它应用窗口对应用窗口定尺寸和定位的方法。
图6图示了对应用窗口定尺寸和/或定位以用于在多应用环境中呈现的示例。
图7图示了呈现对应用窗口定尺寸和/或定位以用于在多应用环境中呈现的附加示例。
图8图示了对多应用环境的各种区中的分屏(snapped)应用窗口重新定尺寸的示例。
图9图示了用于基于多应用环境的区对应用窗口定尺寸的方法。
图10图示了与多应用环境的各种区相关联的示例选择区域。
图11图示了用于基于应用窗口的状态选择多应用环境的区的方法。
图12图示了用于实现图12的方法的示例状态机。
图13图示了多应用环境的示例降下区域(drop area)。
图14图示了用于使用联合划分器对多个应用窗口同时定尺寸的方法。
图15图示了在各种应用窗口之间建立的示例联合划分器。
图16图示了依照一个或多个实施例的联合控制划分器的呈现。
图17图示了使用联合划分器对应用窗口定尺寸的示例。
图18图示了用于对应用窗口重新定尺寸而同时移动另一个应用窗口的方法。
图19图示了图18的方法的示例应用,包括应用窗口向多应用环境的另一层的逐出(eviction)。
图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、应用管理器128和窗口管理器132,每一个应用124具有一个或多个应用用户接口126((多个)应用UI 126),应用管理器128包括或者能够访问应用队列130。
计算设备102还包括或者能够访问一个或多个显示器134和输入机构136。图1图示了四个示例显示器,其可以是分离的或者与计算设备102集成。输入机构142可以包括手势敏感传感器和设备,诸如基于触摸的传感器和移动追踪传感器(例如,基于相机),以及鼠标(鼠标是自立式的或者与键盘集成的)、触笔、触摸板、加速度计和具有伴随的语音识别软件的麦克风,上述仅仅是几个示例。输入机构136可以是分离的或者与显示器134集成,集成的示例包括具有集成的触摸敏感或运动敏感传感器的手势敏感显示器。
操作系统116管理计算设备102的资源并且可以使用任何合适的指令格式实现,诸如64位、32位、简约指令集计算(RISC)、复杂指令集计算(CISC)等。在一些情况下,操作系统116可以使得通过虚拟化来执行具有不同指令格式的模块或应用。操作系统116使得计算设备102的其它模块能够访问计算设备102的资源,所述资源诸如是多应用环境模块118和应用124。
多应用环境模块118提供多应用环境,用户通过所述多应用环境可以查看应用124中的一个或多个并且通过应用UI 126与其交互,应用UI 126经由相应应用窗口呈现。在一些情况下,多应用环境是使得能够管理或者操控重叠窗口(例如,窗口的z排序)或非重叠窗口的位置、尺寸和/或前后次序(总体地,“放置”)的重叠窗口化环境或工作空间。工作空间中的每一个应用窗口的排序或“深度”可以经由多应用环境模块118的z堆叠而维持。典型地,主要应用或者非遮挡应用驻留在z堆叠的顶部。其它应用窗口,诸如非主要或遮挡应用窗口,在z堆叠中驻留于更深的位置。这些非主要应用窗口可以基于它们在z堆叠内的相应位置而彼此重叠或遮挡。
多应用环境模块118可以通过具有框架的应用窗口来呈现应用UI 126。这些框架可以提供通过其与应用交互的控件和/或提供使得用户能够对窗口定位和定尺寸的控件。可替换地或者附加地,多应用环境模块118可以通过具有很少窗口框架或者没有窗口框架的应用窗口和/或在没有呈现虚拟控件(例如,窗口框架上或者掩盖内容的窗口中的永久性控件)的情况下呈现应用UI 126。
通过多应用环境模块118使得能够实现的多应用环境可以在没有使用基于窗口的桌面环境的情况下托管和/或浮现,但是并不要求如此。因而,在一些情况下,多应用环境模块118将多应用环境呈现为沉浸式环境并且排除桌面式显示器(例如,任务栏)的使用。进一步地,在一些实施例中,这种多应用环境类似于操作系统,因为其不可闭合或者能够卸载。尽管并不要求,但是在一些情况下,这种多应用环境使得能够由多应用环境内的应用使用显示器的所有或者几乎所有像素。
系统接口模块120提供一个或多个接口,通过所述接口使得能够与操作系统116交互,诸如应用启动接口、应用管理用户接口(应用管理UI)、开始菜单、控制面板、或者系统工具或选项菜单,以上仅仅是几个示例。输入模块122通过应用窗口、输入机构136或者多应用环境的其它控件和可视件(affordance)接收输入。
应用124可以包括任何适合类型的应用,诸如生产力应用、web浏览器、媒体查看器、导航应用、多媒体编辑应用等。操作系统116或多应用环境模块118可以在本机或者经由虚拟化而支持变化类型的应用或者指令集。例如,多应用环境模块118可以同时呈现变化类型的多个应用124或指令集,诸如32位、64位、运行时间环境(例如,Java或Silverlight、插件(例如,Flash)、RISC、CISC、运行时间语言等)。
每一个应用124包括一个或多个应用UI 126,其使得能够查看应用的内容或者与其交互。应用UI 126可以包括用于呈现应用124的预限定的属性或偏好(例如,默认值或设置),诸如纵横比、最大尺寸、最小尺寸、位置、首要性、显示取向等。在至少一些实施例中,与应用124相关联的应用编程接口(API)使得能够访问应用124或相应应用UI 126的属性或偏好。
应用管理器128使得能够管理应用124,诸如启动、切换以及追踪有效应用。在一些情况下,应用管理器128使得能够建立和维护应用之间的关系,诸如在彼此的极接近范围(close proximity)内频繁启动、定位或使用的应用。应用管理器128还可以能够访问或者维护应用队列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,其中每一个占据如应用窗口划分器208示出的多应用环境202的大概一半。
如上文所指出,应用窗口可以包括控件(例如,应用窗口204),所述控件使得能够对应用窗口定尺寸、定位、最小化、关闭等。可替换地,应用窗口可以不包括控件(例如,应用窗口206),所述控件使得应用的用户接口或内容能够完全占据多应用环境202的区或区域。应当指出,没有控件的应用窗口仍旧可以通过紧密结合(engage)应用窗口的边缘或内容来定尺寸、定位或以其它方式操控。
可替换地或者附加地,多应用环境202可以实现为虚拟的或者以其它方式的桌面,并且包括控制区域,所述控制区域被示为应用管理UI 210或开始菜单(未示出)。例如,当实现为桌面时,多应用环境202可以提供基于窗口的工作空间,其中应用窗口可以独立地移动、定尺寸或者选择为主要窗口(例如,移动到z堆叠的顶部)。
多应用环境202还可以提供一个或多个虚拟桌面,通过所述虚拟桌面可以呈现或者访问应用窗口的不同集合。作为示例,用户可以配置具有基于工作或生产力应用窗口的一个虚拟桌面以及具有媒体消费应用窗口的另一个虚拟桌面。通过如此做,用户可以通过在两个虚拟桌面之间切换或枢转(pivot),与应用窗口的两个不同集合进行交互。在一些情况下,用户可能从另一个虚拟桌面向当前所选虚拟桌面切换应用窗口,由此排除在虚拟桌面之间枢转的需要。在至少一些实施例中,多应用窗口202或其区段完全占据显示器的屏幕或可见区域。因此,多应用环境202的边缘可以与显示器的屏幕或可见区域的相应边缘对准。
应用管理UI 210使得能够访问操作系统116、系统接口模块120或者计算设备102的其它应用124的特征和功能。例如,应用窗口可以从应用管理UI 210启动或切换。使用本文的技术,可以在多应用环境202中高效地添加、切换、定位、定尺寸或以其它方式操控应用窗口以提供应用窗口的最优布局。
应用窗口的自适应定尺寸和定位
图3描绘了用于基于另一个应用窗口对应用窗口定尺寸或定位的方法300,所述方法包括通过窗口管理器132或多应用环境模块118执行的操作。在以下讨论的部分中,可以引用图1的系统100、图2的操作环境200以及在本文其它地方描述的其它方法和示例实施例,但对上述的引用仅仅是以示例做出的。
在302处,接收多应用环境的区的选择。区可以经由任何适合的输入来选择,诸如热键组合或者经由应用窗口接收的方向输入(例如,窗口拖拽)。在一些情况下,区的选择经由在多应用环境内添加、切换或移动的应用窗口来接收。区可以包括多应用环境的任何适合的区段或区域,诸如沿屏幕边缘的区段或者在屏幕中心的区段。在一些情况下,用户可以限定或者配置多应用环境内的特定区域(例如,屏幕区域的区段或条带)来作为用户限定的区。
区可以是固定、预限定或动态的,诸如由于所接收的输入的显示或类型的取向而改变尺寸或位置的区。在一些情况下,区可以与对应操作相关联,诸如“分屏”操作,其为该区填充预限定尺寸或预限定位置处的应用窗口。这些预限定的尺寸或预限定的位置可以对应于多应用环境的预限定的区域,所述区域可以包括工作空间的水平和/或竖直四分之一或小部分,诸如一半、四分之一、三分之一及其任何组合。可替换地或者附加地,多应用环境的预限定的区域可以由用户限定,诸如通过划分工作空间或者通过保存应用窗口在z堆叠内的尺寸、位置或定位来作为预限定的区域。
作为示例,考虑图4,其图示了示例工作空间400、402和404,其中每一个图示了区的各种布局。此处,工作空间400的应用窗口406、408、410和412最初分屏到工作空间的四分之一区域。当应用窗口接触或者触碰工作空间或屏幕的两个或更多邻近边缘时,应用窗口可以被视为分屏的。类似地,应用窗口414和416最初分屏到工作空间402的一半区域。
在304处,标识邻近于所选区的另一个应用窗口的边缘。另一个应用窗口可以占据多应用环境的邻近区。在一些情况下,另一个应用窗口的边缘与所选区互补。可替换地或者附加地,可以标识非邻近应用窗口的边缘(例如,互补或非互补)。
例如,考虑沿源自于角落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的侧边区中。此处,窗口管理器132标识应用窗口416的边缘,所述边缘邻近于应用窗口440移动到的区。
在306处,基于另一个应用窗口的边缘,针对应用窗口确定尺寸或位置。应用窗口的尺寸或位置可以确定为使得应用窗口填充该区以到达另一个应用窗口的边缘。在一些情况下,尺寸或位置确定为使得应用窗口的边缘与邻近应用窗口的互补边缘对准。在这样的情况下,应用窗口和邻近应用窗口可以具有相同宽度或相同高度。可替换地或者附加地,所确定的尺寸或位置可以对应于多应用环境的预限定的区域,诸如工作空间的四分之一区域或一半区域。
返回到示例工作空间400,窗口管理器确定用于应用窗口438的尺寸,以使得应用窗口438的边缘与应用窗口410和应用窗口408的边缘对准。附加地,在工作空间402的上下文中,窗口管理器确定用于应用窗口440的尺寸,以使得应用窗口440的边缘与应用窗口416的边缘对准。
在308处,在所确定的尺寸或者所确定的位置,在多应用环境的所选区中呈现应用窗口。在一些情况下,应用窗口呈现在占据所选区的另一个应用窗口上。在这样的情况下,另一个应用窗口可以被降级到多应用环境的另一个首位(primacy)层(例如,在z堆叠中更深的层)。可替换地或者附加地,应用窗口可以分屏到区中。
总结引用工作空间400的示例,窗口管理器在工作空间400的四分之一中呈现应用窗口438,其紧靠工作空间400的其它分屏窗口放置应用窗口438。附加地,在工作空间402的上下文中,窗口管理器紧靠半分屏应用窗口414放置应用窗口440。
图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轴线上的应用窗口边缘必须匹配。对于对角运动,该算法可以应用两次,在每一个轴线方向上应用一次。沿每一个轴线的基于向量的运动可以通过将运动映射回边缘触发或者其它方向输入来确定。
在512处,以所确定的尺寸和位置来呈现应用窗口以完成窗口的放置。在一些情况下,应用窗口放置在占据所选区的另一个应用窗口上。在这样的情况下,另一个应用窗口可以被降级到多应用环境的另一个首位层(例如,在z堆叠中更深的层)。可替换地或者附加地,应用窗口可以以预限定的尺寸分屏到区中,以占据多应用环境的四分之一区域或一半区域。
另外,方法300或500可以实现为对现有分屏窗口或最大化窗口重新定尺寸。对这些窗口重新定尺寸可以使用任何适合的输入来发起,诸如半分屏或四分之一分屏边缘触发。在一些情况下,除边缘触发或窗口拖拽输入之外,响应于接收附加输入而启用这些操作,诸如鼠标按钮或键盘输入(例如,ALT按键)。
图8图示了对分屏应用窗口重新定尺寸的示例,其参照工作空间800和802示出。工作空间800包括应用窗口804和应用窗口806,其最初在工作空间中最大化。此处,半分屏边缘触发808将应用窗口810定位和定尺寸到工作空间800的一半区域。响应于此,窗口管理器132将应用窗口806重新定尺寸到工作空间800的另一个一半区域。
作为另一个示例,考虑工作空间802,其包括占据工作空间802的一半区域的应用窗口810和应用窗口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对应。
在一些实施例中,区的尺寸可以取决于预期的输入类型而更改。例如,当接收到更为精确的输入时,诸如鼠标输入,区可以具有较小的尺寸,因为用户可以容易地紧密结合意图的区。在其它情况下,当接收到较不精确的输入(诸如触摸输入或手势输入)时,区(例如,边缘区或者角落边缘)的尺寸可以增大。可替换地或者附加地,区的尺寸可以基于显示器拓扑而更改,诸如在显示器的边缘相遇的地方提供较大的区以使得能够实现更加精确的区选择。
在904处,基于预限定区域之一,更改应用窗口的尺寸。响应于将应用窗口移动到与预限定区域对应的区中的输入,而更改应用窗口的尺寸。在一些情况下,将应用窗口定位成占据预限定区域的部分或全部。移动应用窗口的输入可以包括任何适合的输入,诸如通过应用窗口所接收的边缘触发或者方向输入(例如,拖拽)。例如,将应用窗口拖拽到角落区中使得应用窗口定尺寸到对应于角落区的四分之一中。因而,应用窗口可以通过将该窗口移动到对应区而定尺寸到工作空间的任何预限定区域。
图11描绘了用于应用窗口的基于区的定尺寸和定位的方法1100,所述方法包括通过窗口管理器132或多应用环境模块118执行的操作。在以下讨论的部分中,可以参照图1的系统100、图2的操作环境200、以及在本文其它地方描述的其它方法和示例实施例,但对上述的引用仅仅是以示例做出的。
在1102处,接收输入以在具有预限定区域的用户接口内移动应用窗口。所接收的输入可以包括任何适合类型的输入,诸如键盘敲击、方向输入、手势输入等。例如,输入可以包括经由鼠标或者一个或多个按钮敲击的应用的选择和拖拽,诸如WindowsTM按键和箭头键。在其它实例中,应用可以被拖拽到与预限定区域之一对应的区中。
在1104处,基于应用窗口的状态和输入,来选择用户接口的预限定区域。应用窗口的状态可以包括当前尺寸、当前位置、在z堆叠中的当前深度、或者由应用窗口占据的当前预限定区域。预限定区域可以包括任何预限定区域,诸如用户限定的区域或者本文描述的其它预限定的区域,诸如分屏区域。在一些实施例中,预限定的区域还可以是重叠的并且具有窗口的z堆叠中的可定制的深度。通过这样做,可以创建变化的首位或深度的应用窗口布局。
使用应用窗口的状态可以使得能够实现应用窗口的动态定尺寸和定位。作为示例,应用窗口状态或预限定区域的选择可以使用状态机确定。在一些情况下,基于所接收的输入和应用窗口的当前状态,访问状态机可以选择用于应用窗口的下一预限定区域或下一状态。
考虑图12,其图示了用于动态地选择用于应用窗口的预限定区域或状态的示例状态机1200。此处,图例1202指示响应于所接收的相应输入而发生哪些状态转变,诸如箭头键被按压而同时按住WindowsTM键。如通过状态机1200的状态所示,预限定区域可以通过录入一系列键击以达到对应状态来选择。在该特定示例中,状态机1200包括用于一半区域的状态,诸如左半部1204、右半部1206、划分顶部1208和划分底部1210。状态机还包括用于四分之一区域的状态,诸如左上四分之一1212、左下四分之一1214、右上四分之一1216和右下四分之一1218。另外,状态机1200的其它预限定区域或状态也是可选择的并且包括最小化1220、恢复1222和最大化1224。可替换地或者附加地,用户可以映射一个或多个状态或者其它按键组合,以定制工作空间的用户限定区域。
返回到手头的方法,在1106处,应用窗口的尺寸和位置更改成使得应用窗口将填充预限定区域。在一些情况下,对应用窗口定尺寸以填充用户接口的四分之一区域或者一半区域。在其它情况下,应用窗口可以在当前呈现的应用窗口的z堆叠中最小化或者降级得更深。如上文所指出,预限定区域可以是用户限定的,诸如用户接口或者多应用环境的中心处的降下区。
作为示例,考虑图13的工作空间1300,其图示了定制降下区域1302、1304和1306。这些定制降下区域可以由用户限定并且映射到区(例如,工作空间中部的区)或按键组合使得应用窗口的尺寸和位置更改以填充降下区域。这些降下区域可以以任何适合的方式配置,诸如通过将应用窗口的尺寸、位置或z堆叠中的深度存储为工作空间的用户限定区域。
可选地,在1108处,预览应用窗口以明显地指示应用窗口的经更改的尺寸和位置。应用窗口的预览可以被示为应用窗口或其内容的透光(或部分透明)表示。在一些情况下,接收附加输入,其确认应用窗口在预限定区域中的所预览的放置。在这样的情况下,方法500可以响应于提交所预览的应用窗口的输入而前进到操作1110。
可替换地,附加输入可以选择预限定区域中的另一个,在限定区域中的另一个中呈现应用接口。这可以有效地使方法500返回到操作1102,以用于选择另一个预限定区域。在又其它情况下,附加输入可以以强加于应用窗口或其预览上的连续拖拽或不活动的形式接收。响应于这种连续拖拽或不活动(例如,进入边缘区中),应用窗口的预览可以在预限定区域中重新定尺寸或者定尺寸到另一个预限定区域。
在1110处,以更改的尺寸和位置在用户接口的预限定区域中呈现应用窗口。在一些情况下,依照与用户接口的预限定区相关联的深度,在z堆叠中以特定深度呈现应用窗口。以更改的尺寸和位置呈现应用可以有效地填充预限定区域。这样的示例通过工作空间1308图示,其中对搜索应用1310定尺寸和定位以填充降下区域1302。在图13的上下文中,方法1100的操作可以重复以分别利用图像应用1312和记事本应用1314填充降下区域1304和1306。
用于应用窗口的动态联合划分器
图14描绘了用于在应用窗口之间建立联合划分器的方法1400,所述方法包括通过窗口管理器132或多应用环境模块118执行的操作。在以下讨论的部分中,可以参照图1的系统100、图2的操作环境200以及在本文中其它地方描述的其它方法和示例实施例,但对上述的引用仅仅是以示例做出的。
在1402处,在多应用环境的第一应用窗口和第二应用窗口之间建立联合划分器。联合划分器响应于第一应用窗口的边缘接触(例如,在没有重叠的情况下触碰)第二应用窗口的边缘而建立。在一些情况下,联合划分器沿接触的每一个应用窗口的相应区段而建立。在其它情况下,联合划分器沿每一个相应应用窗口的整个长度来建立,而不管应用窗口之间的接触量如何。应用窗口的边缘之间的接触可以由任何适合的操作引起,诸如对多应用环境中的应用窗口之一进行移动、分屏、添加或者定尺寸。联合划分器还可以沿应用窗口的任何可见边缘而建立。在一些情况下,建立联合划分器可以限于分屏应用窗口并且排除非分屏或浮动的应用窗口。
在一些实施例中,联合划分器建立在沿一个或多个边缘彼此接触的多个应用窗口之间。例如,当两个应用窗口的相应边缘接触第三应用窗口的边缘时,可以建立单个联合划分器。可替换地,当应用窗口在应用窗口的相应角落处彼此接触时,可以形成复杂联合划分器。可替换地或者附加地,建立联合划分器将应用窗口分组(或相关)在一起,从而使得能够在分组式应用窗口上执行操作。例如,分组式应用窗口可以打开、关闭、最小化、重新定尺寸、向/自…切换或者一起移动。另外,对分组式应用窗口解除分组可以使之前分组的应用窗口返回到其相应原始状态。在一些情况下,分组式应用窗口一起呈现在切换可视件中,诸如开始菜单、应用管理UI或者热键切换器(例如,ALT+Tab或者WindowsTM+Tab)。
在两个或更多应用窗口的相应边缘彼此接触的任何时间和任何地方,可以建立联合划分器。作为示例,考虑图15,其图示了工作空间1500、1502和1504中的各种联合划分器。工作空间1500包括在四分之一分屏应用窗口之间建立的联合划分器1506以及在四分之一分屏应用窗口与半分屏应用窗口之间建立的联合划分器1508。如在工作空间1502中所示,联合划分器还可以建立在遮挡的应用窗口之间,其中应用划分器1510建立在部分遮挡和分屏的应用窗口之间。另外,应用划分器1512建立在遮挡和浮动的应用窗口之间,所述遮挡和浮动的应用窗口没有处于应用窗口的z堆叠中的最高层级。
在1404处,呈现了由第一应用窗口和第二应用窗口共享的联合划分器。呈现联合划分器可以包括提供联合划分器的视觉或触觉指示。例如,视觉指示呈现在共享联合划分器的应用窗口的边缘之上。在其它情况下,联合划分器呈现在共享联合划分器的两个应用窗口之间。在这样的情况下,一个或两个应用窗口的边缘可以减小,以提供在其中呈现联合划分器的空间。可替换地或者附加地,可以使用触觉反馈(例如,隆起或波浪)来指示联合划分器的存在。在一些情况下,响应于接近联合划分器的输入或光标运动而呈现联合划分器。
在一些实施例中,还呈现联合分离控件或可视件以使得能够禁用联合划分器。联合分离控件可以呈现在联合划分器的区段、联合控件的边缘或者联合控件的两个边缘之上。在一些情况下,联合分离控件使得用户能够“解开”联合划分器,这使得能够实现之前共享联合划分器的应用窗口的单独定尺寸或移动。联合划分器还可以通过其它操作而禁用,诸如双击联合划分器、点击联合划分器而同时按住按键(例如,CTRL),或者通过经由不是联合划分器的部分的边缘对应用窗口定尺寸或移动。
联合划分器可以响应于在应用窗口之间建立联合划分器而呈现。可替换地,联合划分器可以在没有呈现的情况下存在,直至接收到接近联合划分器的输入或光标移动。图16图示了响应于光标移动而呈现联合划分器的示例。光标的移动在开始于工作空间1600中的所图示的工作空间的进展中示出,其包括应用窗口1602、应用窗口1604和光标1606。
如工作空间1608中所示,光标1606的移动可以基于接近阈值1610来检测。接近阈值1610可以配置成具有任何适合的维度,诸如距联合划分器10个像素,并且可以基于所接收的输入的类型重新配置。如工作空间1612中所示,当光标1606跨过接近阈值1610时,联合划分器1614和联合分离控件1616呈现在应用窗口1602和1604的接触边缘之上。
在1406处,经由联合划分器接收更改第一应用窗口和第二应用窗口的相应尺寸的输入。所接收的输入可以包括任何适合类型的输入,诸如经由光标移动所接收的方向输入、触摸输入或箭头按键。作为示例,考虑图17的示例工作空间1700,其包括由应用窗口1704和1706共享的联合划分器1702。在该特定示例中,联合划分器1702还包括联合分离控件,以使得能够实现应用窗口1704和1706的单独定尺寸。此处,经由光标1710接收在横向方向上对应用窗口1704和1706定尺寸的输入。
在1408处,响应于输入而同时更改第一应用窗口和第二应用窗口的相应尺寸。应用窗口的相应尺寸可以在接收到输入(诸如,方向光标移动)时更改。例如,应用窗口的更改的尺寸可以通过沿其中接收输入的轴线滑动联合划分器而明显地指示。因而,滑动联合划分器可以明显地指示第一和第二应用窗口的同时定尺寸。
可替换地或者附加地,联合划分器可以展现针对沿工作空间的边缘的中点的吸引或亲和(例如,磁力)。这可以有效地帮助用户在对称布局中对窗口定尺寸。在一些情况下,对于沿工作空间的边缘的点的吸引可以响应于按键输入(例如,按住CTRL按键)而停用。
在图17的上下文中,基于联合划分器1702的运动而将应用窗口1704和1706定尺寸到在工作空间1712中示出的位置。在该特定示例中,还图示了联合分离控件的特征。此处,经由联合分离控件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处,响应于第二应用窗口的尺寸达到最小尺寸,准许第一应用窗口与第二应用窗口重叠。一旦达到第二应用窗口的最小尺寸,第一应用的前进边缘就开始与第二应用窗口重叠。应用窗口的最小尺寸可以通过与应用用户接口相关联的应用、操作系统或者用户输入来限定。继续进行中的示例,应用窗口1904的最小尺寸由在层视图1910中所示的联合划分器1906达到。响应于此,并且如在层视图1912中所图示的,应用窗口1902的前进边缘开始与应用窗口1904重叠。
在1812处,响应于联合划分器遇到多应用环境的边缘,将第二应用窗口降级到多应用环境的另一个层。在一些情况下,将第二应用窗口推进得更深到应用窗口的z堆叠中。可替换地或者附加地,第二应用窗口的尺寸可以恢复到默认尺寸或者移动之前的尺寸。这可以有效地使得第二应用窗口能够恢复或切换到没有重新定尺寸。总结当前示例,应用窗口1904以经恢复的尺寸降级到工作空间的下一层。因而,应用窗口1904可以恢复或者切换到没有重新定尺寸。
联合划分器还可以建立在多个应用窗口之间并且可以称之为复杂联合划分器。多个应用窗口的定尺寸或移动可以通过关于方法1400或1800描述的操作而实现。作为示例,考虑图20,其包括图示了建立在多个应用窗口之间的联合划分器的示例工作空间2000和2002。在工作空间2000的上下文中,联合划分器2004使得能够对应用窗口2006和2008定尺寸,其邻近彼此并且共享联合划分器2004。在应用窗口2006、2008和2012的边缘之间共享的联合划分器2010使得能够对所有三个应用窗口定尺寸。
该方面可以扩展到如在工作空间2002中示出的四个应用窗口,其包括应用窗口2014、2016、2018和2020。在该示例中,联合划分器2022、2024、2026和2028各自使得能够对共享边缘的其相应邻近窗口定尺寸。例如,联合划分器2022对应用窗口2014和2016定尺寸,但是不对应用窗口2018或2020定尺寸。可替换地或者附加地,当对多个窗口定尺寸时,联合划分器可以响应于将多个窗口之一定尺寸到最小尺寸而分离或“解开”。
复杂联合划分器还可以实现成维持窗口的独立性或者局部化对特定窗口的改变。例如,考虑图20的工作空间2030、2032和2034,其图示了共享联合划分器的三个浮动应用窗口。此处,应用窗口2036、2038和2040共享联合划分器2042。如在工作空间2030中所示,经由应用窗口2036和2038所共享的联合划分器2042的区段而接收的输入2044对那些应用窗口定尺寸,但是不对应用窗口2038定尺寸。这种独立定尺寸的另一个示例在工作空间2032中示出,其中输入2046对应用窗口2040,而不对应用窗口2036和2038定尺寸。可替换地,如在工作空间2034中所示的,经由应用窗口2038和2040所共享的联合划分器的区段而接收的输入2048可以对这些应用窗口定尺寸。
联合划分器还可以组合地实现以提供联合角落。联合角落使得能够实现一个或两个轴线上的应用窗口定尺寸并且可以对共享联合角落的至少两个应用窗口定尺寸。图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可以构建独立性链,以追踪应用窗口的各个边缘。
在图22的上下文中,并且如在详细视图2208中所示,联合划分器2206包括应用窗口2202的边缘2210和应用窗口2204的边缘2212。此处,光标2214悬停在应用窗口2204的边缘2212上,并且窗口管理器132可以关于边缘2212和光标2214的位置构建独立性链。从边缘2212开始,窗口管理器确定哪些其它应用窗口边缘与边缘2212接触。此处,如在详细视图2216中所示的,确定边缘2210在接触边缘2212,并且因而受联合划分器2206所影响。
可替换地或者附加地,当执行联合划分器操作时,可以忽略并且忽视非相邻边缘。例如,在详细视图2218中,窗口管理器132确定应用窗口2220和2222的边缘与边缘2212接触。然而,由于介入应用窗口2226,确定应用窗口2224的边缘不与边缘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。应用选择控件25010的更详细视图在2512处提供并且包括去除控件2514。
应用选择控件2510实现为沿可用区2504的边缘的悬停区并且响应于接近光标2516(或者触摸输入)而出现。悬停区可以具有预限定的宽度或区域,诸如沿工作空间的边缘的10到25个像素。应用选择控件2510使得用户能够触发或者调用应用选择提示2508,其然后可以以上下文方式将所有有效应用窗口呈现给用户。可替换地或者附加地,去除控件2415使得能够临时地去除(或隐藏)应用选择提示2508或者直至随后接近光标或其它输入。此处,假设用户已经轻击应用选择控件2510以调用应用选择提示2508。响应于该输入,呈现应用选择提示2508并且该提示包括用户最近访问的应用窗口的视觉表示(例如,缩略图像)。
可替换地或者附加地,应用窗口的视觉表示可以响应于在多应用环境的另一个区中呈现另一个应用窗口而呈现。这可以有效地使得用户能够容易地选择用于可用区的应用窗口之一,以完成多应用环境中的应用窗口的布局。
这样的示例在图25的工作空间2518中示出,其中经由应用窗口2522接收边缘触发2520。边缘触发2520使应用窗口2522半分屏到工作空间2518的边缘,并且应用窗口2252呈现在半分屏区中。该示例图示了仅仅一个示例,其中边缘触发或与边缘的其它接触可以有效地引起应用窗口向与边缘对应的预限定区域中的呈现或“分屏”。此处,注意非分屏(例如,浮动的)应用窗口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部分遮挡。此处,假设经由应用窗口2702接收半分屏边缘触发2710,应用窗口2702然后分屏到工作空间2700的右半部,如在2712处所示。响应于该分屏操作,窗口管理器132将工作空间2700的左半部标识为可用区域2714。
可选地,在2604处,确定可选择用于在可用区中呈现的应用窗口。这些应用窗口可以包括任何适合的应用窗口,诸如被遮挡、部分遮挡、最小化、或者与另一个有效或打开的应用窗口成组的应用窗口。用于选择的候选应用窗口还可以是可定尺寸的以填充可用区,所以可以排除固定尺寸的应用窗口和分屏到其它区的应用窗口。
在2606处,在可用区中呈现应用窗口的视觉表示。这些应用窗口包括可选择用于在可用区中呈现的那些应用窗口。应用窗口的视觉表示可以包括应用窗口的文本、图标或者减小尺寸的图像,诸如缩略图像。这些减小尺寸的图像可以明显地指示应用窗口内容或者之前呈现的内容的预览。在当前示例的上下文中,并且如在2712处所示,窗口管理器132在工作空间2700的可用区2714中呈现应用窗口2704、2706和2708的视觉表示(诸如减小尺寸的图像)。
可替换地或者附加地,确定用于应用窗口的视觉表示的次序或布局。该次序或布局可以基于应用窗口的任何特性或属性来确定,诸如最频繁使用、最近使用、名称、标题、尺寸、z堆叠中的位置、或者与另一个有效或打开的应用窗口成组。
在2608处,经由视觉表示中的对应一个接收选择应用窗口之一的输入。输入可以包括任何适合的输入,诸如光标输入、手势输入或触摸输入。在一些情况下,触摸输入包括轻击或四分之一分屏或半分屏到可用区中。继续进行中的示例,经由应用窗口2706的视觉表示来接收四分之一分屏触发2716。
在2610处,至少在可用区的部分中,呈现所选应用窗口。对应用窗口定尺寸和定位以填充或者完全地占据可用区。在呈现应用窗口之前,可以呈现应用窗口的预览以明显地指示应用窗口在可用区内尺寸和位置。可选地,方法2600的操作可以重复地执行以填充多应用环境的其它可用区。通过如此做,可以以最小用户交互提供应用窗口的最优布局。
在一些实施例中,应用窗口可以选择用于用户并且在没有用户输入的情况下呈现在可用区中。例如,如果应用窗口与另一个区中的另一个应用窗口配对,则可以响应于另一个区中的另一个应用窗口的呈现而呈现所配对的应用窗口。应用窗口还可以基于用于确定哪些应用可选择用于呈现的准则而自动地选择,诸如最近用户或者最频繁使用的应用窗口。
总结当前示例,如在2718处所示的,窗口管理器132对应用窗口2706定尺寸和定位以填充工作空间2700的四分之一。另外,窗口管理器132然后可以标识工作空间2700的可用区2720,其中要呈现应用窗口2704和2708的视觉表示。此处,假设经由应用窗口2708的视觉表示接收轻击输入2722。作为响应,如在2724处所示的,窗口管理器132对应用窗口2708定尺寸和定位以填充工作空间2700的四分之一区。因而,在输入的仅仅三个实例的情况下,已经在工作空间2700中提供应用窗口的布局。
这些方法的方面可以实现在硬件(例如,固定逻辑电路)、固件、片上系统(SoC)、软件、手动处理或者其任何组合中。软件实现表示程序代码,所述程序代码在由计算机处理器执行时实施指定任务,该软件实现诸如是软件、应用、例程、程序、对象、组件、数据结构、进程、模块、功能等。程序代码可以存储在一个或多个计算机可读存储器设备中,在计算机处理器本地和/或远离计算机处理器二者。方法还可以在分布式计算环境中通过多个计算设备来实践。
示例设备
图28图示了示例设备2800的各种组件,其可以实现为任何类型的客户端、服务器和/或如参照之前图1-28描述的计算设备以实现使得能够实现用于应用窗口的动态联合划分器的技术。在实施例中,设备2800可以实现为有线和/或无线设备中的一个或组合,作为电视客户端设备(例如,电视机顶盒、数字视频刻录机(DVR)等)、消费者设备、计算机设备、服务器设备、便携式计算机设备、用户设备、通信设备、视频处理和/或渲染设备、电器设备、游戏设备、电子设备的形式,和/或作为另一类型的设备。设备2800还可以与用户(例如,人)和/或操作设备的实体相关联,以使得设备描述包括用户、软件、固件和/或设备的组合的逻辑设备。
设备2800包括通信设备2802,所述通信设备使得能够实现设备数据2804(例如,所接收的数据、正接收的数据、安排广播的数据、数据的数据分组等)的有线和/或无线通信。设备数据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可以包括设备管理器,诸如任何形式的控制应用、软件应用、信号处理和控制模块、特定设备本机的代码、用于特定设备的硬件抽象层等。
设备应用2818还包括任何系统组件或模块以实现技术,诸如包括多应用环境模块118、系统接口模块120、输入模块122、(多个)应用124、应用管理器128和窗口管理器132的设备应用2818。
总结
尽管已经以具体到特征和/或方法的语言描述了使得能够实现用于应用窗口的动态联合划分器的技术和装置的实施例,但是要理解到,随附权利要求的主题未必限于所描述的具体特征或方法。相反,具体特征和方法被公开为使得能够实现用于应用窗口的动态联合划分器的示例实现。