CN109416638B - 可定制的紧凑叠加窗口 - Google Patents
可定制的紧凑叠加窗口 Download PDFInfo
- Publication number
- CN109416638B CN109416638B CN201780040068.4A CN201780040068A CN109416638B CN 109416638 B CN109416638 B CN 109416638B CN 201780040068 A CN201780040068 A CN 201780040068A CN 109416638 B CN109416638 B CN 109416638B
- Authority
- CN
- China
- Prior art keywords
- application
- computing system
- overlay window
- compact overlay
- display
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/12—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本文所公开的实施例涉及用于在显示器中实施可定制的紧凑叠加窗口的系统和方法。在一个实施例中,一种计算系统包括一个或多个处理器以及存储计算机可执行指令的存储设备,所述计算机可执行指令可以被所述处理器执行而使得所述计算系统实行以下内容。所述系统从在所述计算系统上运行的应用接收定义所述应用要如何在紧凑叠加窗口中配置的定制参数。所述系统生成紧凑叠加窗口而使得所述紧凑叠加窗口能够根据所述定制参数进行定制。所述系统将所述紧凑叠加窗口定位在所述计算系统的显示器的一部分中。
Description
背景技术
许多现有的计算系统平台,尤其是主要针对移动设备所设计的那些平台,不允许开发者和用户在计算系统的显示器中实现或使用完全可定制的紧凑叠加窗口。这些系统常常将紧凑叠加窗口限制于仅由系统平台所确定的几种控件,并且因此在紧凑叠加窗口中运行的应用不能够定制将增加至用户体验的控件和其他UI元素。另外,这些系统平台常常不允许多于一个的紧凑叠加窗口同时是活跃的,并且也不允许紧凑叠加窗口在用户开始在显示器的另一个窗口中执行任务的情况下保持活跃。
在本文中所请求保护的主题不限于解决任何缺点或者仅在诸如上文所描述的那些环境中操作的实施例。相反,该背景技术仅被提供以示出在本文中所描述的一些实施例可以在其中实践的一个示例性技术领域。
发明内容
提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
在本文中所描述的实施例涉及用于在显示器中实施可定制的紧凑叠加窗口的系统和方法。在一个实施例中,一种计算系统包括一个或多个处理器以及存储计算机可执行指令的存储设备,所述计算机可执行指令能够由所述处理器执行以使得所述计算系统实行以下内容。所述系统从在所述计算系统上运行的应用中接收定义该应用要如何在紧凑叠加窗口中配置的定制参数。所述系统生成紧凑叠加窗口以使得所述紧凑叠加窗口能够根据所述定制参数来定制。所述系统将所述紧凑叠加窗口定位在该计算系统的显示器的一部分中。
在另一个实施例中,一种计算系统包括一个或多个处理器以及存储计算机可执行指令的存储设备,所述计算机可执行指令能够被所述处理器执行以使得所述计算系统执行以下操作。所述系统接收可定制的紧凑叠加窗口的一个或多个分区(region)的定义,用户输入要在所述分区中被直接传递至使用该紧凑叠加窗口的应用。所述系统利用在所述计算系统的显示器中所定义的分区来生成可定制的紧凑叠加窗口。当用户输入被输入到所定义的分区中的一个中时,所述用户输入被直接传递至所述应用,所述用户输入可以在这里由该应用以该应用所确定的方式来解译。当用户输入被输入到所述可定制的紧凑叠加窗口中的不是所述一个或多个所定义的分区的一部分的分区中时,所述计算系统解译所述用户输入。
在另一个实施例中,一种计算系统包括一个或多个处理器以及存储计算机可执行指令的存储设备,所述计算机可执行指令能够由所述处理器执行以使得所述计算系统执行以下操作。所述系统在显示器中实现可定制的紧凑叠加窗口,其能够由使用所述紧凑叠加窗口的应用来定制。所述系统接收到所述紧凑叠加窗口的至少一部分中的输入。所述系统将所述输入直接传递至所述应用。如果所述应用已经定义了对到所述紧凑叠加窗口的至少一部分的输入的响应,则对所述输入的任何响应是由所述应用的所定义的响应所确定的。如果所述应用还没有定义响应,则所述系统确定对所述输入的响应。
另外的特征和优点将在随后的描述中阐述,并且将部分由于该描述而是显而易见的,或者可以通过本文中的教导的实践而被习得。本发明的特征和优点可以利用在所附权利要求中特别指出的手段和组合来实现和获得。本发明的特征将由于以下的描述和所附权利要求而变得更加显而易见,或者可以通过如在下文中所阐述的对本发明的实践而被习得。
附图说明
为了对能够获得上文所引用的以及其他的优点和特征的方式进行描述,将通过对在附图中所示出的具体实施例进行参考来渲染对在上文中简要描述的主题的更加特定的描述。所要理解的是,这些附图仅描绘了一般的实施例,并且因此不被认为是对范围进行限制,实施例将通过对附图的使用而以额外的特性和细节被描述和解释,其中:
图1示出了在本文中所描述的原理可以在其中实践的示例计算系统;
图2A-2E示出了紧凑叠加窗口的实施例;
图3示出了用于在显示器中实现可定制的紧凑叠加窗口的计算系统的实施例;
图4A-4D示出了在显示器中实现可定制的紧凑叠加窗口的实施例;
图5A和5B示出了具有用于将用户输入直接传递至应用的所定义的分区的可定制的紧凑叠加窗口的实施例;
图6示出了用于在显示器中实现将所有用户输入传递至应用的可定制的紧凑叠加窗口的计算系统的可替代的实施例;
图7示出了用于在显示器中实现紧凑叠加窗口的示例方法的流程图;
图8示出了用于在显示器中实现紧凑叠加窗口的可替代的示例方法的流程图;和
图9示出了用于在显示器中实现紧凑叠加窗口的可替代的示例方法的流程图。
具体实施方式
许多现有计算系统平台,尤其是主要针对移动设备所设计的那些平台,不允许开发者和用户在计算系统的显示器中实现或使用完全可定制的紧凑叠加窗口。这些系统常常将紧凑叠加窗口限制于仅由系统平台所确定的几种控件,并且因此在紧凑叠加窗口中运行的应用不能够定制将增加至用户体验的控件和其他UI元素。另外,这些系统平台常常不允许多于一个的紧凑叠加窗口同时是活跃的,并且也不允许紧凑叠加窗口在用户开始在显示器的另一个窗口中执行任务的情况下保持活跃。这些限制使得用户的体验有所减弱,这是由于应用不能够为用户提供可用于非紧凑叠加窗口的全部数量的控件和其他UI元素。有利地,在本文中所公开的实施例提供了紧凑叠加窗口的完全定制。
通过实现所公开实施例的方面能够获得各种技术效果和益处。作为示例,现在有可能提供紧凑叠加窗口的完全定制。另外,与所公开的实施例相关的技术效果还可以包括经改进的用户便利性和效率增加。
将关于图1来描述对计算系统的一些介绍性讨论。接着,将关于图2至9来描述用于实现紧凑叠加窗口的计算系统。
计算系统目前越来越多地采用宽泛的多种形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型计算机、分布式计算系统、数据中心,或者甚至是常规地尚未被认为是计算系统的设备,例如可穿戴设备(例如,眼镜)。在该描述以及权利要求中,术语“计算系统”被宽泛地定义为包括任何设备或系统(或者其组合),其包括至少一个物理且有形的处理器以及其上能够具有可以由处理器执行的计算机可执行指令的物理和有形存储器。所述存储器可以采用任何形式并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上并且可以包括多个组成计算系统。
如在图1中所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的,或者二者的一些组合。术语“存储器”在本文中还可以用来指代非易失性大容量存储,例如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也是分布式的。
计算系统100还具有常常被称为“可执行组件”的其上的多个结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是针对计算领域的普通技术人员普遍理解为可以是软件、硬件或者其组合的结构的一种结构名称。例如,当以软件来实现时,本领域技术人员将会理解的是,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法等,而无论这样的可执行组件是否存在于大量计算系统中,或者该可执行组件是否存在于计算机可读存储介质上。
在这样的情况下,本领域技术人员将会认识到,可执行组件的结构存在于计算机可读介质上,以使得在被计算系统的一个或多个处理器(例如,被处理器线程)所解译时,所述计算系统被使得执行一种功能。这样的结构可以是能够由处理器直接进行计算机读取的(就如同在可执行组件是二进制的情况下)。可替代地,所述结构可以被构造为是可解译和/或编译(无论在单个阶段或者多个阶段中),以便生成能够直接由处理器解译的这样的二进制码。在使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解在计算领域的普通技术人员的理解范围内是合适的。
术语“可执行组件”同样被本领域技术人员普遍理解为包括排他地或接近排他地以硬件来实现的结构,例如在现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或者任何其他专用电路内。由此,术语“可执行组件”是计算领域的普通技术人员普遍理解的一种结构的术语,而无论其是以软件、硬件还是组合来实现的。在该描述中,还可以使用术语“组件”、“代理”、“管理员”、“服务”、“引擎”、“模块”、“虚拟机”等。如在该描述中和该情况中所使用的,这些术语(无论是否表达有修改条款)也旨在与术语“可执行组件”是同义词,并且因此,也具有计算领域的普通计算人员所普遍理解的结构。
在以下的描述中,参考由一个或多个计算系统所执行的动作来描述实施例。如果这样的动作是以软件实现的,则(执行该动作的相关联的计算系统的)一个或多个处理器响应于已经执行了构成可执行组件的计算机可执行指令而引导所述计算系统的操作。例如,这样的计算机可执行指令可以被实施在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及对数据的操纵。
计算机可执行指令(以及经操纵的数据)可以被存储在计算系统100的存储器104中。计算系统100还可以包含允许计算系统100例如通过网络110与其他计算系统进行通信的通信信道108。
尽管不是所有计算系统都需要用户界面,但是在一些实施例中,计算系统100包括用于在与用户接合时使用的用户界面系统112。用户界面系统112可以包括输出机制112A以及输入机制112B。在本文中所描述的原理不限于精确的输出机制112A或输入机制112B,因为这将取决于设备的性质。然而,输出机制112A例如可以包括扬声器、显示器、触觉输出、全息影像等。输入机制112B的示例例如可以包括麦克风、触摸屏、全息影像、相机、键盘、其他指示器输入的鼠标、任何类型的传感器,等等。
如在下文中所描述的实施例可以包括或利用专用或通用计算机系统,其包括计算机硬件,例如一个或多个处理器和系统存储器,如以下更加详细地描述的。在本文中所描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是能够由通用或专用计算机系统访问的任何可用的介质。存储计算机可执行指令和的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例能够包括至少两个不同种类的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或者能够用来以计算机可执行指令或数据结构的形式存储期望的程序代码工具并且能够由通用或专用计算系统访问的任何其他物理和有形的存储介质。
“网络”被定义为使得能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬线的、无线的,或者硬线或无线的组合)被传输或提供至计算机系统时,该计算机系统适当地将该连接视为传输介质。传输介质可以包括网络和/或数据链路,其能够用来以计算机可执行指令或数据结构的形式承载程序代码并且能够由通用或专用计算机所访问。以上的组合也应当被包括在计算机可读介质的范围之内。
另外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置能够自动从传输介质传输至存储介质(或反之亦然)。例如,通过网络或数据链路所接收的计算机可执行指令或数据结构能够被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且接着最终被传输至计算机系统的RAM和/或计算机系统处的较不易失性的计算机存储介质。因此,应当理解的是,存储介质可以被包括在同样也(或甚至主要地)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括指令和数据,所述指令和数据当在一个或多个处理器处被执行时,使得通用计算机系统、专用计算机系统或专用处理设备执行某种功能或一组功能。可替代地或除此之外,计算机可执行指令可以配置计算系统以执行某种功能或一组功能。计算机可执行指令例如可以是二进制码或者甚至在被处理器直接执行之前经历一些转译(例如,编译)的指令,例如中间格式指令,例如汇编语言,或者甚至是源代码。
尽管已经用特定于结构特征和/或方法动作的语言对主题进行了描述,但是要理解的是,在所附权利要求中所定义的主题不一定限于以上所描述的特征和动作或者以上所描述动作的顺序。相反,所描述的特征和动作是作为实现权利要求的示例形式而公开的。
本领域技术人员将会意识到,本发明可以在具有许多类型的计算机系统配置的网络计算环境中进行实践,所述计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板计算机、寻呼机、路由器、交换机、数据中心、可穿戴设备(例如,眼镜)等。本发明还可以在分布式系统环境中实践,其中通过网络进行链接(通过硬线数据链路、无线数据链路,或者通过硬线和无线数据链路的组合之一)的本地和远程计算机系统二者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器的存储设备两者中。
本领域技术人员还将意识到的是,本发明可以在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。当是分布式时,云计算环境可以在组织内国际化地分布,和/或具有跨多个组织所拥有的组件。在该描述和以下的权利要求中,“云计算”被定义为一种用于使能对可配置的计算资源(例如,网络、服务器、存储、应用、和服务)的共享池进行按需网络访问的模型。“云计算”的定义不限于能够当被适当地部署时从这样的模型所获得的任何其他多种优势。
首先关注图2A-2D,它们将被用来解释紧凑叠加窗口的概念,所述紧凑叠加窗口也可以被普遍地称为画中画(Picture-in-Picture)或PIP窗口。如本文所使用的,紧凑叠加窗口被定义为表示处于计算系统的显示器中的至少一个其他计算机窗口“上方”的计算机窗口。术语“处于…上方”是从各个窗口如何在显示器中叠放的Z次序(Z-order)角度而言的。因此,紧凑叠加窗口在其“最接近于”观看显示器的用户的眼睛时被叠放在另一个窗口“上方”。在一些实施例中,紧凑叠加窗口可以是显示器的堆叠中最上方的窗口。在存在多个紧凑叠加窗口的其他实施例中,所述紧凑叠加窗口中的一个紧凑叠加窗口可以处于另一个的上方,但是可能在其上方有另一个紧凑叠加窗口。另外,可以存在通知或其他UI元素会出现在紧凑叠加窗口上方的实例。因此,紧凑叠加窗口通常是显示器堆叠中最上方的窗口,但是不需要始终如此。
将要意识到的是,图2A-2D中所示出的紧凑叠加窗口仅是为了便于解释而绘制的,并且因此,窗口之间的相对尺寸差异、每个窗口被示出在显示器中所占据的空间的量、或者显示器中未被占据的空间的量将不作为在本文中所公开的实施例的限制。另外,这些附图将窗口示出为矩形或者具有矩形分区。再一次,这仅仅是为了便于说明。将要意识到的是,紧凑叠加窗口可以具有任何合理的形状。另外,紧凑叠加窗口可以具有非矩形分区或者根本没有分区。
图2A示出了紧凑叠加窗口的一个实施例。在图中,示出了显示器210。显示器210可以是计算机、平板设备、智能电话等的显示器或监视器。窗口220被显示在显示器210中。窗口220可以由第一应用实现,以使得窗口220在该应用运行或者在被计算系统执行时示出该应用的视觉部分中的至少一些,例如用户界面(UI)元素。该显示器中还示出了紧凑叠加窗口230。在图2A的实施例中,紧凑叠加窗口230处于窗口220的一部分的上方或者覆盖窗口220的一部分。紧凑叠加窗口230可以由第一应用来实现,以使得紧凑叠加窗口230在该第一应用运行或者在被计算系统执行时示出该应用的视觉部分中的至少一些,例如用户界面(UI)元素。可替代的地,紧凑叠加窗口可以由第二应用来实现,以使得紧凑叠加窗口230在该第二应用运行或者在被计算系统执行时示出该应用的视觉部分中的至少一些,例如用户界面(UI)元素。将要注意的是,在本文中所公开的实施例中,即使紧凑窗口处于窗口220的上方或者叠加于其上,窗口220也保持“活跃”以使得第一应用能够与同样在紧凑叠加窗口230中运行的第一或第二应用同时地在窗口220中运行。这有利地允许用户按需要同时使用或查看两个窗口。
将要意识到的是,如在图2A中所示,紧凑叠加窗口230的尺寸通常小于显示器中诸如窗口220之类的至少一个其他窗口。然而,只要紧凑叠加窗口230如之前所描述的那样“处于上方”,它不需要一定是较小的。然而,将要意识到的是,如果紧凑叠加窗口230的尺寸与窗口220相同或接近于相同,则窗口220可能不能够由计算系统200的用户查看或使用。
图2B示出了紧凑叠加窗口的可替代的实施例。如在该图中所示,紧凑叠加窗口230不处于窗口220的一部分的上方。因此,紧凑叠加窗口230不一定要实际上处于另一个窗口的上方来成为紧凑叠加窗口。如果在之后的时间,一个窗口在空间240中被打开或者窗口220被扩展到空间240中,则紧凑叠加窗口230将保持“处于上方”。
图2C示出了紧凑叠加窗口的另外的实施例。如在该实施例中所示,紧凑叠加窗口230处于窗口220和第二窗口221的上方。因此,该实施例示出了紧凑叠加窗口可以处于多于一个窗口的上方。在该实施例中,所有窗口都可以同时是活跃的。
图2D示出了紧凑叠加窗口的另一个实施例。如在该图中所示,第二紧凑叠加窗口231连同紧凑叠加窗口230一起处于窗口220的上方。该实施例示出了在同一时间可以有多于一个在显示器210中实现的紧凑叠加窗口。与其他实施例一样,所有窗口可以同时是活跃的。
图2E示出了紧凑叠加窗口的另一个实施例。如该图中所示,第二紧凑叠加窗口231处于紧凑叠加窗口230的一部分的上方。如上文所讨论的,该实施例示出了在存在多个紧凑叠加窗口的情况下,所述紧凑叠加窗口中的一个紧凑叠加窗口可以处于另一个的上方。尽管没有示出。与其他实施例一样,所有窗口可以同时是活跃的。
现在关注图3,其示出了可以对应于先前所描述的计算系统100的计算系统300的实施例。计算系统300包括可以实现如将被解释的本文所公开的各个实施例的各种组件或功能模块。计算系统300的各种组件或功能模块可以在本地计算系统上被实现,或者可以在包括处于云端的部件或者实现云计算的多个方面的分布式计算系统上被实现。计算系统300的各种组件或功能模块可以被实现为软件、硬件,或者软件和硬件的组合。计算系统300可以包括比在图3中所示出的更多或更少的组件,并且可以根据情况需要组合组件中的一些组件。尽管不一定被示出,但是计算系统300的各个组件可以按照需要访问和/或利用处理器和存储器(例如,处理器102和存储器104)以执行其各种功能。
如在图3中所示,计算系统300可以包括应用310、应用320,以及如省略号330所表示的任何数量的额外应用。应用310、320和330可以是被配置为在计算系统300上运行或者可以由计算系统300执行的任何类型的程序或可执行代码。应用的示例包括但不限于视频流应用、音频流应用、其他媒体应用、浏览应用、游戏应用、和编码应用。因此,即使许多随后将更详细地讨论的实施例使用视频流应用作为示例应用,但将要意识到的是,任何类型的应用都可以被实现为紧凑叠加窗口,并且因此,在本文中所公开的实施例不限于视频、音频、或媒体流应用。由此,在本文中所公开的实施例不限于任何特定类型的应用。
应用310可以包括各种定制参数315A、315B、315C以及如省略号315D所表示的任何数量的额外定制参数,它们在下文中也被称为定制参数315。如随后将更详细地讨论的,定制参数315可以对应用310可以在计算系统的紧凑叠加窗口中渲染的各种特征进行定义。在一些实施例中,定制参数可以是定义给定特征的声明性语句。定制参数315可以根据情况需要来定义应用专用控件、应用专用品牌、或者任何类型的应用专用用户界面(UI)元素。
例如,针对视频或音频流应用的应用专用控件可以包括但不限于播放按钮、停止按钮、暂停按钮,或者移动至视频或音频流的期望部分的进度条。应用专用品牌包括但不限于开发该应用的公司或开发者的名字,或者其可以包括其他类型的广告。应用专用UI元素可以包括但不限于:诸如用于评价内容的拇指向上或向下之类的元素、用户的图片、有关应用的信息、工作窗格、或者应用执行其预期任务所需的任何其他类型的UI元素。由此,定制参数315允许应用310以任何期望的方式来定制紧凑叠加窗口。换句话说,如随后将更加详细地讨论的,定制参数315允许应用310具有对紧凑叠加窗口的完全或接近完全的控制或所有权。这是超越现有系统的优点,在现有系统中,应用不具有对紧凑叠加窗口的任何控制,而是限于由计算系统所确定的定制。
在一些实施例中,定制参数315还可以指定紧凑叠加窗口的期望的尺寸或者紧凑叠加窗口在计算系统的显示器中的期望的位置。在其他实施例中,如随后将更详细地解释的,定制参数315可以指定在计算系统的显示器中的非紧凑叠加窗口中运行的应用310应当变成紧凑叠加窗口或者应当启动新的紧凑叠加窗口。在另外的实施例中,如随后也将更详细地讨论的,定制参数315可以指定应用310作为紧凑叠加窗口来启动。
同样,应用320可以包括各种定制参数325A、325B、325C,以及如由省略号325D所表示的任何数量的额外的定制参数,它们在下文中也被称为定制参数325。定制参数325可以以先前关于定制参数315所描述的方式来定义应用320可以在计算系统的紧凑叠加窗口中渲染的各种特征。
计算系统300还可以包括紧凑叠加窗口管理器组件340(在下文中也被称为“紧凑叠加窗口管理器”)。紧凑叠加窗口管理器340可以包括用于允许所述应用中的一个应用生成或渲染紧凑叠加窗口并且接着在显示器中定位该紧凑叠加窗口的各种组件或模块。
例如,紧凑叠加窗口管理器340可以包括生成模块345。生成模块345可以包括或访问计算系统300中允许应用310、320和/或330生成紧凑叠加窗口的那些元件。例如,生成模块345可以包括或展现各种API,其允许应用访问或展现计算系统300中由应用在生成紧凑叠加窗口时使用的底层元件。在操作中,生成模块345可以从应用310接收定制参数315或者从应用320接收定制参数325。接着,生成模块345可以代表应用310或320生成紧凑叠加窗口或者使得紧凑叠加窗口被生成,以使得应用310或320可以在紧凑叠加窗口中运行或执行。
紧凑叠加窗口管理器340还可以包括系统约束管理器组件346,其包括各种系统约束347A、347B,以及如省略号347C所表示的任何数量的额外的系统约束,它们也可以被统称为系统约束347。系统约束347定义了这样的约束,其可以被应用于定制参数315和/或325以使得由定制所指定的紧凑叠加窗口以计算系统可接受的方式来配置。将要注意的是,系统约束347可以包括任何其他的合理约束,并且因此,在本文中所公开的实施例不受到任何特定类型的系统约束的限制。
例如,系统约束347A可以指定紧凑叠加窗口的最小和/或最大尺寸。如果定制参数315和/或325中的一个指定了大于指定的最大尺寸或者小于指定的最小尺寸的紧凑叠加窗口的尺寸,则生成模块345将不遵循该定制参数,而是将替代地生成在定义的最小和最大尺寸之内的紧凑叠加窗口。
同样,系统约束347B可以指定紧凑叠加窗口可以位于计算系统的显示器的什么部分中。如果定制参数315和/或325中的一个指定了违反显示器的指定部分的位置,则该定制参数将被忽略并且紧凑叠加窗口将被置于计算系统可接受的位置。例如,定制参数315和/或325可以指定显示器中已经被现有的紧凑叠加窗口所占据的位置,因此该紧凑叠加窗口将需要被置于显示器的另一个部分中。
由此,在紧凑叠加窗口的用户体验方面的装饰和感觉被留在应用310、320和/或330中,这是因为紧凑叠加窗口管理器340将允许应用渲染不与系统约束347相冲突的任何定制参数315或325。换句话说,紧凑叠加窗口管理器340可以仅在出现与系统约束347的冲突时才阻止对定制参数的渲染。
紧凑叠加窗口管理器340还可以包括定位组件348。在操作中,定位组件348可以将紧凑叠加窗口定位在计算系统的显示器中。如在上文中所提及的,如果定制参数指定了计算系统可接受的位置,则定位组件348会将紧凑叠加窗口定位在该位置处。另外,定位组件348可以响应于各种用户输入而将紧凑叠加窗口重新调整尺寸或重新定位。
在一些实施例中,定位组件348还可以被配置为解译各种用户输入并且接着使得紧凑叠加窗口管理器340相应地进行反应。如随后将更详细地解释的,一些用户输入可以指向各种控件或者如一个或多个定制参数315和/或325所指定的在紧凑叠加窗口中所渲染的其他UI元素。这样的输入可以被传递至应用从而以由该应用所确定的方式来解译,这通常是根据控件或UI元素的。例如,指向播放按钮的输入通常将由应用解译为表示用户想要激活该播放按钮以开始视频或音频流。然而,一些用户输入可以指向紧凑叠加窗口中不包括由定制参数所指定的UI元素的区域。如随后将更详细地解释的,定位组件348可以接着解译这样的用户输入并且确定对该输入的合适响应。
计算系统300还可以包括计算机系统显示器350、计算机系统显示器360,以及如省略号370所表示的任何数量的额外的计算机系统显示器。计算系统显示器可以是计算机、平板设备、智能电话等的显示器或监视器。因此,在本文中所公开的实施例不受到任何类型的计算系统显示器的限制。如随后将更详细地讨论的,一个或多个紧凑叠加窗口可以在计算系统显示器350、360或370的一个或多个中被实现。
在描述了计算系统300之后,现在将解释实现紧凑叠加窗口的具体实施例。图4A示出了在计算系统显示器350中显示的实现应用310的窗口410。在该实施例中,应用310可以是示出视频流411的视频流应用。如在该窗口中所示出的,定制参数315中的一些已经被渲染为视频流的以下特征:播放按钮412、停止按钮413、进度条414,以及有助于对视频流411的播放的其他UI元素415。另外,定制参数315可以使得应用开发者的名称“流视频服务(Streaming Video Service)”416在该窗口中被渲染。
在一些实施例中,定制参数315可以指定非标准视频控件417和418等也可以在紧凑叠加窗口410中被渲染。例如,非标准控制器417可以是允许用户标记他或她喜欢的视频或其部分以使得该视频或其部分在之后能够被容易地找到的喜欢按钮。非标准控制器418可以是允许用户评价视频流或者以其他方式留下有关该视频流的评论的拇指向上或向下的元素。由此,非标准视频控件417或418等可以是任何类型的控制器。因此,如先前所描述的,在本文中所公开的实施例的紧凑叠加窗口提供了如开发者或用户所期望的定制并且不限于定制的小的子集。
在一些实施例中,窗口410可以包括用户输入元素420。在这样的实施例中,用户可以将输入输入到用户输入元素420中以发起针对应用310的紧凑叠加窗口的生成。在其他实施例中,定制参数315中的一个可以通过指定应用310应当被配置为紧凑叠加窗口而发起紧凑叠加窗口430的生成,并且这可以被认为是发起针对应用310的紧凑叠加窗口的生成的输入。在其他的实施例中,诸如应用320的第二应用可以发起针对应用310的紧凑叠加窗口的生成。
在一个实施例中,在接收到在上文中所讨论的任何输入之后,定制参数315可以指定窗口410变成紧凑叠加窗口430。换句话说,应用310可以选择使其自己成为紧凑叠加窗口430。由此,如在图4B中所示,紧凑叠加窗口430是窗口410的尺寸较小的版本,其包括相同的用户接口元素或特征。以该方式,用户能够继续在紧凑叠加窗口430中观看视频流411。
如在上文中所提及的,定位组件348可以在显示器350中定位紧凑叠加窗口230和/或设置其尺寸,例如,如在图4B中所示的显示器350的右侧角落。定位和尺寸设置通常将由如应用310所确定的定制参数315中的一个来指定。然而,如果定制参数与系统约束347发生冲突,则定位组件348可以移动紧凑叠加窗口430和/或重新设置其尺寸。定位组件348还可以响应于用户输入而移动紧凑叠加窗口430和/或重新设置其尺寸。这在图4B中被示出,其中虚线窗口430已经被移动至显示器350的左侧角落。将要意识到的是,定位组件348可以根据情况需要动态地重新定位紧凑叠加窗口230和/或重新设置其尺寸,以确保紧凑叠加窗口430保持在任何其他窗口或者诸如可以在显示器350中出现的弹出窗口或通知之类的其他元素的上方。
在一些实施例中,在紧凑叠加窗口430实现应用310的同时,窗口440则可以实现应用310或应用320。如上文所讨论的,紧凑叠加窗口430和窗口440两者可以同时是活跃的。例如,假设应用320是在窗口440中实现的网络(web)浏览器。由此,当在窗口440中浏览互联网的同时,用户将能够活跃地观看紧凑叠加窗口430中的视频流411。
在一些实施例中,定制参数315可以指定在紧凑叠加窗口430存在时用于实现应用310的第二紧凑叠加窗口450也应当被生成。紧凑叠加窗口450可以包括由定制参数315所指定的UI元素451、452以及如省略号453所表示的任何数量的额外的UI元素。尽管没有示出,但紧凑叠加窗口450可以示出视频流411或者其可以示出应用310的其他方面,例如屏幕向导或演员介绍。在包括窗口440的那些实施例中,将要意识到的是,所有三个窗口430、440和450都可以是活跃的并且能够被用户同时使用。由此,在本文中所公开的实施例不限于可以由应用所实现的任何具体数量的紧凑叠加窗口,这是因为可以存在不违反系统约束348并且能够在显示器350的可用空间中被处理的任何合理的数量。
在另一个实施例中,在接收到上文所讨论的任何输入之后,定制参数315可以指定新的紧凑叠加窗口460被生成。换句话说,应用310可以选择在原始窗口保持在显示器中的同时生成新的紧凑叠加窗口,而不是使其自己成为紧凑叠加窗口。由此,如在图4C中所示,除了窗口410之外还实现针对应用310的紧凑叠加窗口460。在所示出的实施例中,紧凑叠加窗口460与窗口410的视频流相关并且示出由定制参数315所指定的各种UI元素,例如列出视频流411的演员的UI元素461、示出视频流411的画面向导的UI元素462、以及列出视频流411中所播放的音乐的名称的UI元素。当然,将要意识到的是,紧凑叠加窗口460可以示出应用310的其他方面,或者其甚至可以根据情况需要而示出窗口410的镜像。另外,与在本文中所公开的其他实施例一样,窗口410和紧凑叠加窗口460可以同时是活跃的,以使得用户可以同时使用它们。
在一些实施例中,应用320可以指定将在实现紧凑叠加窗口460的同时在显示器350中实现紧凑叠加窗口。由此,同样如在图4C中所示,在显示器350中实现针对应用320的紧凑叠加窗口470。换句话说,应用320可以作为紧凑叠加窗口470被启动。在该实施例中,应用320可以是示出体育事件的实景真人视频流471的视频流应用。紧凑叠加窗口470可以包括UI元素471、472,以及如省略号473所表示的任何数量的额外的UI元素,它们是由定制参数325所指定的。
由此,图4C示出了有可能同时具有实现不同应用的紧凑叠加窗口。因此,用户将能够同时观看视频流411和直播体育流417。另外,如果网络浏览器在窗口440中被实现,则用户将还能够在观看视频流411和直播体育流471的同时浏览互联网。
在图4D中所示出的另外的实施例中,显示器350可以是智能电话或智能平板设备的显示器。由此,该显示器相对小。假设用户正在观看如图4D所示出的显示器350中的视频流411,并且该用户还在作为计算机的监视器的显示器360的窗口480中写代码。如将要意识到的,对于该用户而言,在显示器360的窗口480中写代码同时观看显示器350的窗口410中的视频流将是不方便的。由此,由于显示器360通常将明显比显示器350大得多,因此在该实施例中,应用310可以结合紧凑叠加窗口管理器340在显示器360中生成紧凑叠加窗口430以便叠加在窗口480上或者处于其上方。在一个实施例中,这可以通过以下方式来实现:向与显示器360相关联的应用310的版本通知其应当作为紧凑叠加窗口启动并且还向该应用版本通知要渲染哪些UI元素以及在视频流中的何处开始。计算系统的定位组件248或者与显示器360相关联的定位组件接着可以将该紧凑叠加窗口定位在显示器360中的合适的地方。以该方式,该用户能够更加容易地继续观看视频流411同时还在窗口480中写代码。由此,在本文中所公开的实施例构想到在计算系统300的多个显示器上生成紧凑叠加窗口。
在一些实施例中,如在图3中所示,应用310可以生成对紧凑叠加窗口中用户输入要被紧凑叠加窗口管理器340直接传递至应用的具体分区或部分的定义316。定义316可以定义紧凑叠加窗口的任何数量的分区。在一些实施例中,通过以下方式结合定制参数315来使用定义316:将紧凑叠加窗口中任何用户输入要被直接传递至应用的那些分区定义为与定制参数以先前所描述的方式来定义控件和其他UI元素的那些分区相对应。在操作中,生成模块345接收定义316并且确保紧凑叠加窗口是用所定义的分区生成的。尽管没有示出,但应用320和330也可以根据情况需要而包括类似于定义316的定义。
图5A示出了实现或运行视频流511的紧凑叠加窗口510,其中已经定义了该窗口中任何用户输入都要被直接传递至应用(例如,应用310)的具体分区。将注意到,为了便于解释,在图中省略了显示器和其他窗口而仅示出了紧凑叠加窗口510。然而,紧凑叠加窗口510可以对应于紧凑叠加窗口的先前所描述的任何实施例,并且因此可以包括先前关于先前所描述的紧凑叠加窗口的任何实施例所讨论的任何属性和优点。
如在图5A中所示,在紧凑叠加窗口510中所定义的、任何用户输入都要被直接传递至应用的分区是由虚线框520、530、540、550和560表示的。所定义的分区520、530、540和550还可以对应于由定制参数315所指定的各种视频流特征的位置,例如播放按钮525、停止按钮535、其他UI元素545、和进度条555。然而,不是紧凑叠加窗口510的所有所定义的分区都需要对应于由定制参数所指定的特征的位置。由此,所定义的分区560不对应于由定制参数315所指定的任何特征的位置。
在操作中,所定义的分区520可以接收用户输入,该用户输入由箭头575表示并且此后被称作用户输入575。用户输入575(以及用户输入576和577以及在本文中所讨论的所有其他用户输入)可以对应于鼠标点击、手指或触笔的触摸、键盘输入,或者任何其他合理形式的用户输入。用户输入575接着可以直接被紧凑叠加窗口管理器340传递至应用310。这允许应用310以由该应用所确定的方式来解译用户输入375并且以由该应用所确定的方式来对该输入进行响应。例如,由于所定义区域520还包括播放按钮525,因此应用310将有可能把用户输入276解译为指示用户想要播放视频流511并且将相应地进行对应。在用户输入575被所定义的分区530、540和550接收的情况下也会出现类似的结果。
所定义的分区560可以接收由箭头576表示的输入(此后被称为用户输入576),其可以由紧凑叠加窗口管理器540直接传递至应用310。如先前所提及的,应用310接着可以以由该应用所确定的方式来解译该输入。例如,在一个实施例中,应用310可以在视频511播放的同时隐藏控件525、535、545和555,以通过不使得紧凑叠加窗口拥挤来提升用户体验。在这样的实施例中,应用310可以将用户输入376解译为关于用户想要查看一个或多个控件的指示。由此,应用310可以通过以下操作来进行响应:使得紧凑叠加窗口管理器340将控件变得能够被用户看到以使得用户可以使用所述控件。
图5B示出了紧凑叠加窗口5B的可替代的实施例。在该实施例中,除所定义的分区560之外的所定义的分区520、530、540和550不一定对应于由定制参数315所指定的特征的位置。相反,在该实施例中,当用户输入被诸如分区520之类的所定义的分区所接收并且被直接传递至应用310时,应用310可以动态地进行解译该输入并且对该输入进行响应。例如,在一个实例中,应用310可以以类似于图5A的实施例的方式将用户输入575解译为用于播放视频流511的请求,并且可以通过播放视频流511和/或使得播放按钮525被紧凑叠加窗口管理器340渲染在该分区中而进行响应。然而,在用户输入575在所定义的分区520中被接收并且被直接传递至应用310的第二实例中,该应用可以将用户输入575解译为用于停止或暂停视频流511的请求,并且可以通过停止或暂停该视频流和/或使得停止按钮535被紧凑叠加窗口管理器340渲染在所定义的分区520中来进行响应。以该方式,所定义的分区能够在应用310认为合适的情况下由该应用在任何时间以任何方式动态地进行解译。
在图5A和5B两者中,紧凑叠加窗口510中不是所定义的分区520、530、540、550和560的那些部分可以被认为是非定义分区580的部分。非定义的分区580可以包括窗口中不是所定义的分区的其余部分,或者其可以包括其余部分的子集。如在图5A和5B中所示,非定义分区580可以接收由箭头577所表示并且随后被称为用户输入577的用户输入。在操作中,当用户输入被非定义分区580接收时,该用户输入不被传递至应用310,而是由定位组件348或者紧凑叠加管理器340的某一其他部分来解译。基于该解译,定位组件348可以以合适的方式来对该输入进行响应。
例如,用户输入577可以是拖动紧凑叠加窗口510的鼠标或手指移动,并且因此指示用户想要将紧凑叠加窗口510移动至显示器的不同位置。假设这样的移动不违反系统约束347中的一个,则定位组件348可以将该紧凑叠加窗口移动至新的位置。
在另一个示例中,用户输入577可以是加宽紧凑叠加窗口510的捏合手指移动或鼠标缩放移动,并且因此指示用户想要重新设置紧凑叠加窗口510的尺寸。假设这样的尺寸重新设置不违反系统约束347中的一个,则定位组件348可以将紧凑叠加窗口510的尺寸重新设置为期望的新尺寸。
然而,可以存在其中在非定义分区580中所接收的用户输入577被定位组件348解译为通常不由计算系统来处理但更可能预期由应用310来解译且响应的类型的实例。紧凑叠加窗口管理器340可以向应用310通知用户输入577,以使得该应用可以以由该应用所确定的方式来解译并响应该输入。
例如,在一个实例中,用户输入577可以是在非定义分区580中的鼠标点击或手指敲击。这样的用户输入通常将不指示用户想要移动紧凑叠加窗口510或重新设置其大小或者是由紧凑叠加窗口管理器340所执行的一些其他典型的窗口动作。紧凑叠加窗口管理器340可以向应用310通知关于用户输入577,以使得该应用可以解译并响应该输入。例如,该鼠标点击或手指敲击可以指示用户想要以类似于关于所定义的分区560所讨论的方式来隐藏或显现控件525、535、545和555。由此,响应于该用户输入577,应用310可以使得所述控件被隐藏或显现。
图6表示计算系统300的可替代的实施例。在图6的实施例中,由紧凑叠加窗口的任何部分所接收的所有用户输入都直接被传递至应用310。应用310可以包括对各种用户输入的一个或多个所定义的响应。所定义的响应可以包括作为定义由应用310所渲染的控件的树形结构的一部分的一个或多个事件处理程序。如果所定义的响应中的一个对应于该用户输入,则该应用根据该所定义响应来确定对该输入的响应。然而,如果所定义的响应中的一个不对应于该用户输入,则该用户输入被传递至紧凑叠加窗口管理器340。紧凑叠加窗口管理器——特别是定位组件348——接着可以确定对该用户输入的合适响应。
例如,图6中示出了实现或运行视频流611的紧凑叠加窗口610。将注意的是,为了便于解释,在图中省略了显示器和其他窗口并且仅示出了紧凑叠加窗口610。然而,紧凑叠加窗口610可以对应于先前所描述的紧凑叠加窗口的任何实施例,并且因此可以包括先前关于先前所描述的紧凑叠加窗口的任何实施例所讨论的任何属性和优点。如在紧凑叠加窗口610中所示,定制参数315中的一些已经被渲染为针对视频流的以下特征:播放按钮620、停止按钮630、和进度条640。
如所示出的,由箭头661所表示的用户输入(此后被称为用户输入661)可以由播放按钮620接收。该用户输入可以如由箭头670所示直接被传递至应用310。
如以上所讨论的,应用310可以包括针对各种用户输入所定义的响应。例如,应用310可以包括各种事件处理程序671、672、673以及由省略号674所表示的任何数量的额外的事件处理程序。在本实施例中,事件处理程序671可以别配置为由针对播放按钮控件的用户输入所触发。由此,事件处理程序671可以由用户输入661所触发,并且应用310可以如箭头675所示的进行合适的响应,其在这种情况下将是播放视频流611。
同样,由箭头662所表示的用户输入(此后被称为用户输入662)可以被停止按钮630接收,并且箭头663所表示的用户输入(此后被称为用户输入663)可以被进度条640接收。用户输入662和663两者都可以如由箭头670所示的直接被传递至应用310。
在本实施例中,事件处理程序672可以被配置为由针对停止按钮控件的用户输入触发。由此,事件处理程序672可以由用户输入662触发,并且应用310可以如由箭头675所示的进行合适的响应,其在该情况下将是停止视频流611。同样,事件处理程序673可以被配置为由针对进度条控件的用户输入触发。由此,事件处理程序673可以由用户输入663触发并且应用310可以如由箭头675所示的进行合适的响应,其在该情况下将是使得视频流611根据进度条移动的量来前进。
还如所示出的,由箭头665所表示的用户输入(此后被称为用户输入665)可以被紧凑叠加窗口610中不包括由应用310所指定的控件的分区650接收。如同先前的用户输入,用户输入665可以如由箭头670所表示的直接被传递至应用310。然而,在该情况下,应用310不包括被配置为由用户输入665所触发的事件处理程序。由此,应用310可以如由箭头680所示的将用户输入665传递至紧凑叠加窗口管理器340。
定位组件348接着可以如由箭头685所示出的确定对该用户输入的合适响应。例如,如果用户输入577是拖动紧凑叠加窗口610的鼠标或手指移动,并且因此指示用户想要将紧凑叠加窗口610移动至显示器的不同位置,则定位组件348可以将紧凑叠加窗口移动至新的位置。可替代的地,如果用户输入577是加宽紧凑叠加窗口610的捏合手指移动或鼠标缩放移动,并且因此指示用户想要重新设置紧凑叠加窗口610的尺寸,则定位组件348可以将紧凑叠加窗口610的尺寸重新设置为期望的新尺寸。
以下讨论现在关于可以被执行的多种方法和方法动作。尽管方法动作可以以某种顺序被讨论或者在流程图中被示出为以特定顺序发生,但除非具体指出或者由于一个动作取决于被预期在该动作执行之前的另一个动作而被要求,否则不要求特定的顺序。
图7示出了用于在显示器中实施可定制的紧凑叠加窗口的示例方法700的流程图。方法700将关于先前所讨论的图2-6中的一个或多个进行描述。
方法700包括从在计算系统上运行的应用接收一个或多个定制参数的动作,所述定制参数定义该应用要如何在紧凑叠加窗口中被配置(动作710)。例如,如先前所描述的,应用310可以包括定制参数315,而应用320可以包括定制参数325。这些定制参数定义了应用要如何在诸如先前在各种实施例中所讨论的那些之类的紧凑叠加窗口中被配置。这些定制参数可以由紧凑叠加窗口管理器组件340以先前所描述的方式来接收。
方法700包括生成紧凑叠加窗口的动作,该紧凑叠加窗口能够根据定制参数来定制(动作720)。例如,如先前所描述的,应用310和/或应用320可以使得生成模块345生成紧凑叠加窗口。如先前所描述的,生成模块345可以包括或展现各种API,所述API允许该应用访问或展现出计算系统300中由该应用在生成紧凑叠加窗口时所使用的底层元件。
方法700包括在计算系统的显示器的一部分中定位该紧凑叠加窗口的动作(动作730)。例如,定位组件348可以以先前所描述的方式在显示器350或360中定位该紧凑叠加窗口。
图8示出了用于在显示器中实现可定制的紧凑叠加窗口的示例方法800的流程图。方法800将关于先前所讨论的图2-6中的一个或多个来被描述。
方法800包括接收紧凑叠加窗口的一个或多个分区的定义的动作,其中在所述一个或多个分区处的用户输入要被直接传递至使用该紧凑叠加窗口的应用(动作810)。例如,如之前所讨论的,紧凑叠加窗口管理器组件340可以接收紧凑叠加窗口中任何用户输入都要被紧凑叠加窗口管理器340直接传递至应用310的具体分区或部分的定义316。
方法800包括利用计算系统的显示器中的一个或多个所定义的分区来生成紧凑叠加窗口的动作(动作820)。例如,如先前所讨论的,生成组件345可以生成包括所定义的分区520、530、540、550和560的紧凑叠加窗口510。
方法800包括响应于用户输入被输入到一个或多个所定义的分区中的至少一个中而将该用户输入直接传递至应用的动作(动作830)。该用户输入能够由该应用以由该应用所确定的方式来解译。例如,如先前所讨论的,用户输入575和576可以被输入到所定义的分区520、530、540、550和560中的一个中,并且被紧凑叠加窗口管理器组件340直接传递至应用310。如同样讨论的,应用310能够以由应用310所确定的方式来解释并响应该用户输入。
方法800包括该计算系统响应于用户输入被输入到紧凑叠加窗口中不是一个或多个所定义的分区的一部分的分区中而解译该用户输入的动作(动作840)。例如,如先前所讨论的,用户输入577可以被输入到非定义分区580中。该用户输入不被传递至应用310,而是由定位组件348来解译。如先前所描述的,基于该解译,定位组件348可以以合适的方式来对该输入进行响应。
图9示出了用于在显示器中实施可定制的紧凑叠加窗口的示例方法900的流程图。方法900将关于先前所讨论的图2-6中的一个或多个而被描述。
方法900包括在计算系统的显示器中实现可定制的紧凑叠加窗口的动作,所述可定制的紧凑叠加窗口能够由使用该紧凑叠加窗口的应用来定制(动作910)。例如,如先前在本文所公开的各种实施例中所讨论的,可定制的紧凑叠加窗口能够由应用310和/或320来定制。在一个实施例中,可以实施紧凑叠加窗口610。
方法900包括接收到紧凑叠加窗口的一部分中的输入的动作(动作920)。例如,如先前所讨论的,可以在紧凑叠加窗口610的各个部分中接收用户输入661、662、663、和665。
方法900包括将该输入直接传递至应用的动作(动作930)。如果应用已经定义了针对对该紧凑叠加窗口的至少一个部分的输入的响应,则针对该输入的任何响应都由该应用的所定义响应来确定。例如,如先前所讨论的,用户输入661、662、663和665可以直接被传递至应用310。应用310可以包括可以被配置为由某些类型的用户输入所触发的事件处理程序671-674。如先前所讨论的,当用户输入661、662和663触发事件处理程序671-673时,该应用以由该事件处理程序所定义的方式来对该输入进行响应。
方法900包括:计算系统的响应于关于该应用还没有定义针对对该紧凑叠加窗口的至少一个部分的输入的响应的指示而确定针对该输入的响应的动作(动作940)。例如,如先前所描述的,当应用310不具有针对用户输入665的事件处理程序时,应用310将该用户输入传递至紧凑叠加窗口管理器组件340。定位组件348接着能够确定针对该用户输入的合适响应。
针对在本文中所公开的过程和方法,在该过程和方法中所执行的操作可以以不同顺序来实现。此外,所概括的操作仅仅是作为示例提供的,并且一些操作可以是可选的,被组合成较少的步骤和操作,被补充以另外的操作,或者被扩展为额外的操作,而不脱离所公开的实施例的实质。
本发明可以以其他的具体形式来实施而不脱离其精神或特性。所描述的实施例在各方面都被认为仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而非先前的描述所指示。落入权利要求等同形式的含义和范围之内的所有改变都要被涵盖在其范围之内。
Claims (10)
1.一种用于在显示器中实现可定制的紧凑叠加窗口的计算系统,所述计算系统包括:
至少一个处理器;以及
具有存储在其上的计算机可执行指令的至少一个存储设备,所述计算机可执行指令当由所述至少一个处理器执行时使得所述计算系统执行以下动作:
识别以第一组可执行代码的形式安装在所述计算系统上的第一应用;
使得所述第一应用在所述计算系统的所述显示器上在第一应用窗口内运行;
识别以第二组可执行代码的形式安装在所述计算系统上的第二应用,其中所述第一应用和所述第二应用是不同的应用;
使得所述第二应用在所述计算系统的显示器上运行;
基于使得所述第二应用在所述计算系统的显示器上运行,从与在所述计算系统上运行的所述第二应用相对应的所述第二组可执行代码中接收定义所述第二应用要如何在紧凑叠加窗口中被配置的一个或多个定制参数;
生成所述紧凑叠加窗口,所述紧凑叠加窗口能够根据所述定制参数来定制,其中显示所述第一应用的所述第一应用窗口和显示所述第二应用的所述紧凑叠加窗口同时在所述计算系统处显示;
将所述紧凑叠加窗口定位在所述计算系统的所述显示器的一部分中,所述显示器的所述一部分与所述第一应用窗口重叠;
接收指向所述紧凑叠加窗口中具有对应的应用专用控件的一部分的第一用户输入,所述对应的应用专用控件是在与所述第二应用相对应的所述第二组可执行代码的所述一个或多个定制参数内定义的;
基于接收到所述第一用户输入,将所述第一用户输入直接传递至所述第二应用以允许所述第二应用解译所述第一用户输入;
接收指向所述紧凑叠加窗口中不具有对应的应用专用控件的一部分的第二用户输入,所述对应的应用专用控件是在与所述第二应用相对应的所述第二组可执行代码的所述一个或多个定制参数内定义的;以及
基于接收到所述第二用户输入,由所述计算系统进行响应以对所述第二用户输入进行解译。
2.根据权利要求1所述的计算系统,其中,生成所述紧凑叠加窗口通过接收到激活所述紧凑叠加窗口的UI元素的用户输入而被发起,或者由指定所述第二应用应当何时在所述紧凑叠加窗口中被配置的定制参数中的一个或多个定制参数来发起。
3.根据权利要求1所述的计算系统,其中,生成所述紧凑叠加窗口还包括:
确保由所述第二应用的所述定制参数指定的对所述紧凑叠加窗口的定制符合一个或多个系统约束,所述系统约束管理所述紧凑叠加窗口将如何被配置。
4.根据权利要求1所述的计算系统,其中,所述计算系统的所述显示器是第一显示器,并且所述计算系统包括不同于所述第一显示器的第二显示器,其中,将所述紧凑叠加窗口定位在显示器的一部分中包括将所述紧凑叠加窗口定位在所述第二显示器中。
5.一种用于在显示器中实现可定制的紧凑叠加窗口的计算系统,所述计算系统包括:
至少一个处理器;以及
具有存储在其上的计算机可执行指令的至少一个存储设备,所述计算机可执行指令当由所述至少一个处理器执行时使得所述计算系统执行以下动作:
识别以第一组可执行代码的形式安装在所述计算系统上的第一应用;
使得所述第一应用在所述计算系统的所述显示器上在第一应用窗口内运行;
识别以第二组可执行代码的形式安装在所述计算系统上的第二应用,其中所述第一应用和所述第二应用是不同的应用;
使得所述第二应用在所述计算系统的所述显示器上运行;
基于使得所述第二应用在所述计算系统的所述显示器上运行,从与所述第二应用相对应的所述第二组可执行代码接收一个或多个定制参数,所述一个或多个定制参数定义可定制的紧凑叠加窗口的一个或多个分区,在所述分区中,用户输入要被直接传递至使用所述紧凑叠加窗口的所述第二应用;
根据所述计算系统的所述显示器中所定义的一个或多个分区来生成所述可定制的紧凑叠加窗口,其中显示所述第一应用的所述第一应用窗口和显示所述第二应用的所述紧凑叠加窗口在所述计算系统处同时显示;
响应于接收到被输入到所定义的一个或多个分区中的至少一个分区中的第一用户输入,将所述第一用户输入直接传递至所述第二应用,所述第一用户输入能够由所述第二应用以由所述第二应用所确定的方式来解译;以及
响应于接收到被输入到所述紧凑叠加窗口中不是所定义的一个或多个分区的一部分的分区中的第二用户输入,由所述计算系统对所述第二用户输入进行解译。
6.根据权利要求5所述的计算系统,其中,所述计算系统接收并解译所述第二用户输入包括:
确定所述第二用户输入指示所述紧凑叠加窗口要在所述显示器中被移动至新的位置或者要被重新设置尺寸;和
将所述紧凑叠加窗口移动至所述新的位置或者将所述紧凑叠加窗口重新设置尺寸。
7.根据权利要求5所述的计算系统,其中,所述计算系统接收并解译所述第二用户输入包括:
确定所述第二用户输入不是要由所述计算系统处理的输入类型;
向所述第二应用通知所述第二用户输入已经在所述紧凑叠加窗口中不是所定义的一个或多个分区的一部分的所述分区中发生了;以及
允许所述第二应用以由所述第二应用所确定的方式来对所述紧凑叠加窗口中不是所定义的一个或多个分区的一部分的所述分区中的所述第二用户输入进行响应。
8.一种用于在显示器中实现可定制的紧凑叠加窗口的计算系统,所述计算系统包括:
至少一个处理器;以及
具有存储于其上的计算机可执行指令的至少一个存储设备,所述计算机可执行指令当由所述至少一个处理器执行使得所述计算系统执行以下动作:
识别以第一组可执行代码的形式安装在所述计算系统上的第一应用;
使得所述第一应用在所述计算系统的所述显示器上在第一应用窗口内运行;
识别以第二组可执行代码的形式安装在所述计算系统上的第二应用,其中所述第一应用和所述第二应用是不同的应用;
使得所述第二应用在所述计算系统的所述显示器上运行;
基于使得所述第二应用在所述计算系统的所述显示器上运行,生成可定制的紧凑叠加窗口,所述可定制的紧凑叠加窗口能够由使用所述紧凑叠加窗口的所述第二应用来定制,其中,所述计算系统在从与所述第二应用相对应的所述第二组可执行代码接收到一个或多个定制参数时实现所述紧凑叠加窗口,所述一个或多个定制参数定义所述计算系统应如何实现所述紧凑叠加窗口;
将所述紧凑叠加窗口自动定位在所述计算系统的所述显示器的一部分中,所述显示器的所述一部分与所述第一应用窗口重叠;
接收到所述紧凑叠加窗口的至少一部分中的具有对应的应用专用控件的输入,所述对应的应用专用控件是在从与所述第二应用相对应的所述第二组可执行代码接收的所述一个或多个定制参数内定义的;
基于接收到具有对应的应用专用控件的所述输入,将所述输入直接传递至所述第二应用并且允许所述第二应用对所述输入进行响应;以及
响应于关于所述第二应用还没有定义针对对所述紧凑叠加窗口的所述至少一部分的所述输入的响应的指示,所述计算系统确定针对所述输入的响应。
9.根据权利要求8所述的计算系统,其中,所述计算系统确定针对所述输入的响应包括以下中的一个:
确定所述紧凑叠加窗口应当被重新设置尺寸;或者
确定所述紧凑叠加窗口应当被移动至所述显示器的不同部分。
10.根据权利要求8所述的计算系统,其中,关于所述第二应用还没有定义针对对所述紧凑叠加窗口的所述至少一部分的所述输入的响应的所述指示包括:
所述第二应用将所述输入传递至所述计算系统。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/199,647 | 2016-06-30 | ||
US15/199,647 US11295706B2 (en) | 2016-06-30 | 2016-06-30 | Customizable compact overlay window |
PCT/US2017/038887 WO2018005247A1 (en) | 2016-06-30 | 2017-06-23 | Customizable compact overlay window |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109416638A CN109416638A (zh) | 2019-03-01 |
CN109416638B true CN109416638B (zh) | 2022-04-01 |
Family
ID=59295334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780040068.4A Active CN109416638B (zh) | 2016-06-30 | 2017-06-23 | 可定制的紧凑叠加窗口 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11295706B2 (zh) |
EP (1) | EP3479220B1 (zh) |
CN (1) | CN109416638B (zh) |
WO (1) | WO2018005247A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10904325B2 (en) | 2018-05-04 | 2021-01-26 | Citrix Systems, Inc. | WebRTC API redirection with screen sharing |
US20220309424A1 (en) * | 2021-03-23 | 2022-09-29 | Citrix Systems, Inc. | Display of resources based on context |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230992A1 (en) | 1993-05-27 | 2004-11-18 | Gemstar Development Corporation | Method and apparatus for displaying video clips |
US5675755A (en) * | 1995-06-07 | 1997-10-07 | Sony Corporation | Window system preventing overlap of multiple always-visible windows |
DE69714712T3 (de) | 1996-03-15 | 2011-07-07 | E GUIDE, INC., Calif. | Verfahren zur anzeige von fernsehprogrammen und dazugehörigem text |
EP1192617A1 (en) | 1999-07-13 | 2002-04-03 | Sun Microsystems, Inc. | Methods and apparatus for creating a video window with parameters defining position and scaling factor |
US20020070957A1 (en) | 2000-12-12 | 2002-06-13 | Philips Electronics North America Corporation | Picture-in-picture with alterable display characteristics |
US7055169B2 (en) * | 2002-04-19 | 2006-05-30 | Opentv, Inc. | Supporting common interactive television functionality through presentation engine syntax |
EP1465047A1 (en) | 2003-04-03 | 2004-10-06 | Deutsche Thomson-Brandt Gmbh | Method for presenting menu buttons |
US8239453B2 (en) | 2005-02-25 | 2012-08-07 | Microsoft Corporation | System and method for providing one class of users of an application a view of what another class of users of the application is visually experiencing |
US7502545B2 (en) | 2005-04-28 | 2009-03-10 | Microsoft Corporation | Picture-in-picture window for video replay |
US7580080B2 (en) | 2005-11-22 | 2009-08-25 | Gateway, Inc. | Automatic launch of picture-in-picture during commercials |
KR100817315B1 (ko) | 2006-09-25 | 2008-03-27 | 삼성전자주식회사 | 터치 스크린을 갖는 디지털 방송 수신용 휴대 단말기 및그의 pip 화면 제어 방법 |
US8352881B2 (en) * | 2007-03-08 | 2013-01-08 | International Business Machines Corporation | Method, apparatus and program storage device for providing customizable, immediate and radiating menus for accessing applications and actions |
TR200804561A2 (tr) | 2008-06-23 | 2010-01-21 | Vestel Elektroni̇k Sanayi̇ Ve Ti̇caret A.Ş. | Televizyonun pıp benzeri yapılarının reklam veya bilgi içerikli yayınların gösteriminde kullanımı |
US20100188579A1 (en) | 2009-01-29 | 2010-07-29 | At&T Intellectual Property I, L.P. | System and Method to Control and Present a Picture-In-Picture (PIP) Window Based on Movement Data |
US9898675B2 (en) | 2009-05-01 | 2018-02-20 | Microsoft Technology Licensing, Llc | User movement tracking feedback to improve tracking |
US9639237B2 (en) * | 2010-10-28 | 2017-05-02 | Microsoft Technology Licensing, Llc | User-customizable context menus |
US9436928B2 (en) * | 2011-08-30 | 2016-09-06 | Google Inc. | User graphical interface for displaying a belonging-related stream |
US20130054692A1 (en) * | 2011-08-30 | 2013-02-28 | Google Inc. | Organizing and Tracking Belongings Using Social Graph Information |
KR101888457B1 (ko) * | 2011-11-16 | 2018-08-16 | 삼성전자주식회사 | 복수 개의 어플리케이션을 실행하는 터치스크린을 가지는 장치 및 그 제어 방법 |
US20140047413A1 (en) * | 2012-08-09 | 2014-02-13 | Modit, Inc. | Developing, Modifying, and Using Applications |
US9201563B2 (en) * | 2012-10-10 | 2015-12-01 | Google Inc. | Mobile device friendly window management for remote desktop |
US20140129457A1 (en) * | 2012-11-02 | 2014-05-08 | Stroz Friedberg, LLC | An interactive organizational decision-making and compliance facilitation portal |
US20140164935A1 (en) | 2012-12-12 | 2014-06-12 | Dror Frommer | System for rapid browsing of content |
JP6138274B2 (ja) * | 2012-12-29 | 2017-05-31 | アップル インコーポレイテッド | ユーザインタフェース階層をナビゲートするためのデバイス、方法、及びグラフィカルユーザインタフェース |
US20140195675A1 (en) * | 2013-01-09 | 2014-07-10 | Giga Entertainment Media Inc. | Simultaneous Content Data Streaming And Interaction System |
US20140201681A1 (en) * | 2013-01-16 | 2014-07-17 | Lookout, Inc. | Method and system for managing and displaying activity icons on a mobile device |
WO2014116542A1 (en) * | 2013-01-22 | 2014-07-31 | Tealium Inc. | Activation of dormant features in native applications |
US20140259079A1 (en) * | 2013-03-06 | 2014-09-11 | Eldon Technology Limited | Trick play techniques for a picture-in-picture window rendered by a video services receiver |
US9773264B2 (en) * | 2013-03-26 | 2017-09-26 | Blackberry Limited | Method for providing composite user interface controls and an online storefront for same |
US9817548B2 (en) * | 2013-05-20 | 2017-11-14 | Citrix Systems, Inc. | Providing enhanced user interfaces |
CN103338340B (zh) | 2013-06-18 | 2016-06-22 | 北京汉博信息技术有限公司 | 实现多视频流帧画面自定义组合的画中画模块和方法 |
US9973722B2 (en) | 2013-08-27 | 2018-05-15 | Qualcomm Incorporated | Systems, devices and methods for displaying pictures in a picture |
US9113039B2 (en) | 2013-09-20 | 2015-08-18 | Intel Corporation | Wireless sharing of content between computing devices |
US20150128042A1 (en) | 2013-11-04 | 2015-05-07 | Microsoft Corporation | Multitasking experiences with interactive picture-in-picture |
KR102262051B1 (ko) | 2014-08-01 | 2021-06-09 | 삼성전자 주식회사 | 디스플레이장치, 이를 포함하는 다중 디스플레이 시스템 및 그 제어방법 |
CN104994314B (zh) | 2015-08-10 | 2019-04-09 | 优酷网络技术(北京)有限公司 | 在移动终端上通过手势控制画中画视频的方法及系统 |
-
2016
- 2016-06-30 US US15/199,647 patent/US11295706B2/en active Active
-
2017
- 2017-06-23 WO PCT/US2017/038887 patent/WO2018005247A1/en unknown
- 2017-06-23 EP EP17736833.9A patent/EP3479220B1/en active Active
- 2017-06-23 CN CN201780040068.4A patent/CN109416638B/zh active Active
-
2022
- 2022-02-08 US US17/667,239 patent/US20220398996A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3479220A1 (en) | 2019-05-08 |
US20220398996A1 (en) | 2022-12-15 |
WO2018005247A1 (en) | 2018-01-04 |
EP3479220B1 (en) | 2021-08-18 |
US20180005602A1 (en) | 2018-01-04 |
CN109416638A (zh) | 2019-03-01 |
US11295706B2 (en) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301131B2 (en) | Method for split-screen display, terminal, and non-transitory computer readable storage medium | |
US10613701B2 (en) | Customizable bladed applications | |
US10303325B2 (en) | Multi-application environment | |
KR102004553B1 (ko) | 사용자 인터페이스에서의 작업 공간 관리 | |
US10762277B2 (en) | Optimization schemes for controlling user interfaces through gesture or touch | |
US9104440B2 (en) | Multi-application environment | |
KR102118223B1 (ko) | 크로스 윈도우 애니메이션 | |
US20130106888A1 (en) | Interactively zooming content during a presentation | |
US11868605B2 (en) | Application bar display method and electronic device | |
TW201617839A (zh) | 光解離管理器 | |
US20220398996A1 (en) | Customizable compact overlay window | |
US11592963B2 (en) | Terminal, control method therefor, and recording medium in which program for implementing method is recorded | |
KR102223554B1 (ko) | 단말기, 이의 제어 방법 및 상기 방법을 구현하기 위한 프로그램을 기록한 기록 매체 | |
KR102223553B1 (ko) | 단말기, 이의 제어 방법 및 상기 방법을 구현하기 위한 프로그램을 기록한 기록 매체 | |
CN117971220A (zh) | 控件显示方法、介质、装置和计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |