CN105493019A - 基于输入上下文的输入处理 - Google Patents

基于输入上下文的输入处理 Download PDF

Info

Publication number
CN105493019A
CN105493019A CN201380077445.3A CN201380077445A CN105493019A CN 105493019 A CN105493019 A CN 105493019A CN 201380077445 A CN201380077445 A CN 201380077445A CN 105493019 A CN105493019 A CN 105493019A
Authority
CN
China
Prior art keywords
input
parts
graphic element
component
contract
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.)
Pending
Application number
CN201380077445.3A
Other languages
English (en)
Inventor
B.布林扎
T.M.巴顿
M.皮特拉萨克
T.E.施赖纳
C.M.布洛德斯坦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105493019A publication Critical patent/CN105493019A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

描述了用于基于输入上下文的输入处理的技术。在至少一些实施例中,显示区的区域包括可以通过不同部件生成和/或管理的多个图形元素。这样的部件的例子包括应用、插件模块、图形框架等等。本文讨论的技术使得对图形元素的输入能够以各种方式(比如通过将所述输入路由到适当的部件)被操纵。进一步地,可以指定定制的输入上下文,如此使得可以解读特定类型的输入和/或输入的组合。

Description

基于输入上下文的输入处理
背景技术
今天的计算设备可以访问各种各样的可视内容(visualcontent)。例如,web浏览应用可以在设备的关联的显示区内显示不同类型的内容。为了使可视内容能够被处理和显示,可以采用一系列不同的图形功能性。这样的功能性的例子包括再现引擎、图形应用编程接口(API)、图形编辑器等等。
尽管不同图形功能性的可利用性为处理和显示可视内容提供了各种各样的选项,但是使得实现在图形功能性之间的交互仍给出了挑战。例如,显示区域可以包括由不同的图形功能性管理的可视内容。如果用户提供对该显示区域的可视元素的输入,则保证该输入被路由到正确的图形功能性可能是有挑战性的。进一步地,利用当前的输入路由技术可能难以解读影响多个显示区域的复杂的输入(例如基于触摸的手势)。
发明内容
本概要被提供来以简化的形式介绍概念的选择,这些概念在下文的详细说明中被进一步描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算用于帮助确定所要求保护的主题的范围。
描述了用于基于输入上下文的输入处理的技术。在至少一些实施例中,显示区的区域包括可以通过不同部件生成和/或管理的多个图形元素。这样的部件的例子包括应用、插件模块、图形框架等等。本文讨论的技术使得对图形元素的输入能够以各种方式(例如通过将所述输入路由到适当的部件)被操纵。进一步地,可以指定定制的输入上下文,如此使得可以解读特定类型的输入和/或输入的组合。
附图说明
参考附图来描述详细说明。在图中,参考标号的最左侧数字标识该参考数字首次在其中出现的图。在说明书和图中的不同实例中对相同参考标号的使用可以表明相似的或相同的项目。
图1是在可操作来采用本文所讨论技术的示例性实现中的环境的例示。
图2举例说明依照一个或多个实施例的示例性实现情形。
图3举例说明依照一个或多个实施例的示例性实现情形。
图4举例说明依照一个或多个实施例的示例性实现情形。
图5举例说明依照一个或多个实施例的示例性实现情形。
图6是描述在依照一个或多个实施例的方法中的步骤的流程图。
图7是描述在依照一个或多个实施例的方法中的步骤的流程图。
图8举例说明如参考图1描述的示例性系统和计算设备,其被配置成实施本文描述的技术的实施例。
具体实施方式
综述
描述了用于基于输入上下文的输入处理的技术。在至少一些实施例中,显示区的区域包括可以通过不同部件生成和/或管理的多个图形元素。这样的部件的例子包括应用、插件模块、图形框架等等。本文讨论的技术使得对图形元素的输入能够以各种方式(例如通过将所述输入路由到适当的部件)被操纵。
例如,考虑其中对于应用的图形用户界面(GUI)包括主窗口和在该主窗口内的图形元素的情形。图形元素的示例包括横幅(banner)、控制按钮、菜单、可填充域等等。在至少一些实施例中,GUI的主窗口可以由第一部件管理,而在主窗口内的图形元素可以由第二部件管理。依照一个或多个实施例,可以指定各种输入处理行为来操纵对图形元素和/或主窗口的输入,比如该输入要被路由到哪个部件。
在至少一些实施例中,可以生成用于第一部件和第二部件的输入契约(inputcontract)。输入契约可以指定对应于可能发生的不同输入上下文的各种输入处理行为。例如,输入契约可以指定对图形元素的输入要被路由到哪个部件。作为另一个示例,输入契约可以指定用于既对主窗口又对图形元素发生的输入(诸如既在图形元素内又在主窗口内该图形元素之外发生的多触点触摸手势)的操纵指令。因此,输入契约可以基于各种各样的不同的输入上下文指定各种各样的不同的输入处理行为。
在下面的讨论中,首先描述可操作来采用本文描述的技术的示例性环境。其次,题为“示例性实现情形”的章节描述依照一个或多个实施例的一些示例性实现情形。在这之后,题为“示例性过程”的章节描述依照一个或多个实施例的一些示例性方法。最后,题为“示例性系统和设备”的章节描述依照一个或多个实施例的、可操作来采用本文所讨论的技术的示例性系统和设备。
已经给出依照一个或多个实施例的示例性实现的综述后,现在考虑可在其中采用示例性实现的示例性环境。
示例性环境
图1是在示例性实现中的环境100的例示,其可操作来采用本文描述的用于基于输入上下文的输入处理的技术。环境100包括可以以各种各样的方式配置的计算设备102。例如,计算设备102可以被配置为传统的计算机(例如台式个人计算机、膝上型计算机等等)、移动台、娱乐器具、可通信地耦合到电视的机顶盒、无线电话、上网本、游戏控制台、手持设备(例如图形输入板)等等,正如相对于图8进一步描述的。
计算设备102包括处理器104,其代表执行用于计算设备102的各种类型的数据处理的功能性。例如,处理器104可以代表计算设备102的中央处理单元(CPU)。处理器104的实现的进一步示例在下面参考图8讨论。
还图示了图形处理器106,其代表执行用于计算设备102的各种图形有关的任务的功能性。例如,图形处理器106可以代表计算设备102的图形处理单元(GPU)。
计算设备102进一步包括应用108,其代表经由计算设备102执行各种任务的功能性。应用108的示例包括文字处理软件应用、电子邮件应用、内容编辑应用、游戏应用等等。
应用108包括web平台应用110,其代表与web内容相结合地操作的应用。web平台应用110例如可以包括和利用许多不同类型的技术,作为示例而非限制,所述技术比如是统一资源定位符(URL)、超文本传输协议(HTTP)、表述性状态转移(REST)、超文本标记语言(HTML)、层叠式样式表(CSS)、JavaScript、文档对象模型(DOM)以及其他的技术。web平台应用110还可以与各种各样的数据格式一同工作,所述数据格式比如是可扩展的应用标记语言(XAML)、可扩展的标记语言(XML)、JavaScript对象标注(JSON)等等。web平台应用110的示例包括web浏览器、web应用(例如“webapp”)等等。按照各种实施例,web平台应用110被配置成呈现各种类型的web内容,比如网页、web文档、交互式web内容等等。
应用108进一步包括插件112,其代表扩展应用108的功能性的功能性。插件例如可以添加特征到应用108,和/或加强应用108的现有的特征。
进一步包括图形管理器模块114,其代表就本文讨论的用于基于输入上下文的输入处理的技术而言更进一步的执行各种任务的功能性。图形管理器模块114例如可以被实施为用于计算设备102的操作系统的部件。然而,实施例可以采用图形管理器模块114的各种各样的不同配置和实现。在下文讨论有关图形管理器模块114的实现的更多细节。
计算设备102进一步包括图形框架(framework)116,其代表用以执行用于计算设备102的图形处理的平台。图形框架116的示例包括再现引擎、图形应用编程接口(API)等等。图形框架116还包括图形有关的语言和用于处理该语言的功能性,比如可扩展的应用标记语言(XAML)、可扩展的标记语言(XML)、超文本标记语言(HTML)等等。因此,图形框架116通常代表图形平台,其可被各种部件(例如应用108)借力(leverage)来使得能够处理和/或显示图形。
还图示了显示设备118,其被配置为输出用于计算设备102的图形。显示在显示设备118上的是窗口120,其代表由特定的实体(比如应用108之一)生成和/或管理的图形元素。例如,窗口120可以代表用于特定应用的GUI。进一步显示的是图形元素122,其代表显示在窗口120内的图形元素。在本示例中,图形元素122代表带有可选择的菜单项的菜单。然而,依照所要求保护的实施例,可以采用多种多样的不同类型的图形元素。
计算设备102进一步包括输入契约124,其代表指定如何在计算设备102的各种部件当中操纵对窗口120的各种部分的输入的功能性。例如,在至少一些实施例中,可以由计算设备102的不同部件管理(例如生成)窗口120的不同部分,所述不同部件比如是应用108、插件112、图形框架116等等中的不同部件。因此,输入契约124指定用于在各种部件当中操纵输入的政策和/或规则,诸如各种输入要被路由到哪些部件、要如何解读不同类型的输入等等。
按照一个或多个实施例,输入契约使输入事件能够被各种部件理解,所述各种部件是诸如应用108、插件112、图形框架116等等的各种实例。输入契约124例如可以使输入事件能够在不同的输入框架之间转换,如此使得计算设备102的各种部件可以理解这些输入事件。例如,如果计算设备102的功能性(例如输入设备驱动程序、操作系统等等)按照特定的输入框架生成输入事件,则与该输入事件相关联的输入契约可以将该输入事件转换成不同的形式,如此使得不同的部件可以解读该输入事件。
在至少一些实施例中,可以为窗口120的不同部分指定输入契约124的不同实例。例如,输入契约124之一可以指定要如何操纵对窗口120的图形元素122之外的输入,而输入契约124的另一个可以指定要如何操纵在图形元素122之内的输入。输入契约124的又一个可以指定要如何操纵既对窗口120又对图形元素122的输入。因此,在至少一些实施例中,输入契约124的不同实例可以指定用于操纵不同类型输入和对窗口120的不同部分的输入的不同政策组。在下文讨论输入契约124的进一步实现。
已经描述了本文中所描述的技术可在其中操作的示例性环境,现在考虑依照一个或多个实施例的一些示例性实现情形。
示例性实现情形
以下的讨论描述了针对本文中所描述的用于基于输入上下文的输入处理的技术的一些示例性实现情形。示例性实现情形可以在图1的环境100、图8的系统800和/或任何其他的适当环境中实施。
图2举例说明依照一个或多个实施例的示例性实现情形200。情形200包括图形用户界面(GUI)202。GUI202例如可以通过应用、网站、基于web的资源等等显示在显示设备118上。例如,GUI202可以经由web平台应用110呈现。在这个特定的示例中,GUI202被呈现为购物网站的一部分,该购物网站使用户能够在线选购各种商品和/或服务。
GUI202包括各种可视元素,诸如文本、图像、窗口等等。例如,GUI202包括标识与该GUI202相关联的web资源的横幅204。GUI202进一步包括导航单元206,其是可选择的,以诸如经由导航到不同的GUI而呈现不同的内容。例如,选取导航单元206可以使得与购物网站相关联的另一网页被呈现。导航单元206例如可以代表可选择的超链接。
还图示了图形208,其代表作为GUI202的一部分被显示的各种图形元素。另外显示了支付窗口210,其包括可以从用户接收支付信息的各种标记。例如,支付窗口210包括可填充域,在其中用户可以提供各种信息,诸如用户名、运送地址、账户信息、信用卡信息等等。支付窗口210例如使用户能够经由GUI202提供就购买商品和/或服务而言的更多的信息。
作为GUI202的一部分来包括的可视元素只是为了示例的目的而被呈现的,并且要意识到,依照各种实施例可以实施可视元素的各种各样的不同类型和实例。
情形200进一步包括树状结构212,其是代表GUI202的各种可视元素的数据结构。树状结构212例如包括不同的节点,其对应于GUI202的相应的可视元素。例如,节点可以代表对应于GUI202的可视元素的图形对象。
树状结构212包括根节点214,其代表GUI202的主窗口,例如在其内显示GUI202的其他的可视元素的主窗口。树状结构212进一步包括代表导航单元206的子节点216,和代表图形208的子节点218。
按照各种实施例,根节点214和子节点216、218由部件220管理。部件220例如代表上文讨论到的应用108和/或图形框架116的特定的实例。在至少一些实现中,部件220负责实例化和管理GUI202。
树状结构212进一步包括节点组222,其代表支付窗口210。节点组222例如代表支付窗口210的可视和/或功能元素。节点组222包括子节点224,其总体上代表支付窗口210。节点组222进一步包括代表支付窗口210的子元素的子女节点226和子女节点228。子女节点226、228例如代表在支付窗口210内的不同的可视元素,诸如不同的可填充域、可选择的控件等等。
树状结构212的配置和节点只是为了示例的目的而被呈现的,并且要意识到,依照各种实施例可以采用数据结构的不同配置和安排来用于可视和/或功能元素的表示。
按照一个或多个实施例,节点组222由部件230管理。部件230例如代表上文讨论到的应用108、插件112和/或图形框架116的特定的实例。在至少一些实现中,部件230负责实例化和管理支付窗口210和它的特定的子元素。部件230例如可以生成节点组222,且在有来自部件220的许可时将节点组222的节点附加到树状结构212以便使支付窗口210能够被显示为GUI202的一部分。
因此,部件220和部件230代表可以(单独地和/或独立地)管理GUI202的不同可视和/或功能元素的不同部件。
按照各种实施例,本文讨论的技术使得与GUI202的各种可视元素的交互(例如对GUI202的各种可视元素的用户输入)能够被路由到适当的部件。例如对由部件220管理的可视元素(例如横幅204、导航单元206、图形208等等)的输入可以被路由到部件220并由部件220操纵。参考树状结构212,例如,对由部件220管理的节点的输入可以被路由到部件220并由部件220操纵。类似地,对由部件230管理的可视元素(例如支付窗口210)的输入可以被路由到部件230并由部件230操纵。
就这样的实施例而言进一步的,情形200包括输入契约232,其代表指定如何在各种部件当中操纵对GUI202的各种部分的输入的功能性。输入契约232例如可以指定对支付窗口210的输入要被路由到部件230。输入契约232可以进一步指定对支付窗口210的输入不被路由到部件220,例如要阻止被部件220访问。因此,敏感信息可以被保护以免由不被信任的和/或未被验证的进程访问。在至少一些实施例中,输入契约232可以被链接到树状结构212的特定节点以指定要如何操纵对这些节点的输入。
因此对各种实施例,可以在将输入路由到各种部件时利用输入契约。例如,考虑以下的示例性实现情形。
图3举例说明依照一个或多个实施例的示例性实现情形300。情形300包括以上在图2的讨论中介绍的带有支付窗口210的GUI202和树状结构212。
就情形300而言进一步的,考虑用户提供输入到支付窗口210。例如,用户可以将各种类型的与支付有关的信息提供到支付窗口210内所包括的域。输入被基于输入契约232来处理。输入契约232例如指定输入要被路由到部件230。部件230可以与基于web的支付处理器相关联,所述支付处理器可以对作为购买商品和/或服务的一部分的输入执行各种处理任务。
在至少一些实施例中,输入契约232内所包括的政策指定:对节点组222的输入要被路由到部件230,同时这样的输入不被路由到部件220。例如,对节点组222的输入可以被路由到部件230,而不被沿树状结构212进一步向上传递,例如到节点组222之外的其他节点。进一步地,对节点组222之外的节点(例如节点214、216、218)的输入可以被路由到部件220,而不被路由到和/或暴露给部件230。
在一个或多个实施例中,输入契约232可以进一步指定:对支付窗口210的输入要被保护,如此使得输入不能由部件220和/或除部件230之外的其他功能性访问。保护这样的输入可以诸如通过防止对数据的未被授权的和/或恶意的访问而增强数据安全性。然而,在一些替换实施例中,对节点组222的输入可以被路由到多个部件,例如既到部件220又到部件230。
为了使对支付窗口210的输入能够被路由到部件230,情形300包括输入对象302。通常,输入对象302是数据结构(例如,部件对象模型(COM)对象),其可以被链接到各种图形元素,如此使得对这些图形元素的输入可以被适当地路由。
在至少一些实施例中,输入对象302包括将输入路由到适当的部件的功能性,和/或与这样的功能性相关联。输入对象302可以由诸如部件230、应用108、图形管理器模块114等等的各种实体生成和/或由这样的实体管理。因此,输入对象可被用于创建定制的输入通道,如此使得对图形元素的输入可以被路由到各种功能性和/或位置,诸如图形框架、应用、服务、存储单元等等。
按照一个或多个实施例,输入对象302可以经由用于支付窗口210的标识符而被链接到支付窗口210,所述标识符例如是由部件230为支付窗口210生成的标识符。替换地或附加地,输入对象302可以通过与在其中显示支付窗口210的显示区域(例如像素区域)相关联而被链接到支付窗口210。例如,代替“基于窗口”的输入路由,本文讨论的技术可以采用“基于可视(visual)”的输入路由,其基于与关联于图形元素的像素的关联而路由输入。
按照各种实施例,输入契约232可以指定对支付窗口210的输入要经由输入对象302来路由。例如,输入契约232可以将输入对象302标识为用于对支付窗口210的输入的路由机制。
在至少一些实施例中,输入契约232可以指定要如何基于输入的类型和/或GUI202的在其中接收该输入的区域来解读不同类型的输入。例如,考虑以下的示例性情形。
图4举例说明依照一个或多个实施例的示例性实现情形400。情形400包括带有支付窗口210的GUI202。正如上文讨论的,对支付窗口210的输入典型地被路由到部件230,同时对GUI202的支付窗口210之外的输入典型地被路由到部件220。例如,对GUI202的各种区域的输入可以经由与相应的区域相关联的输入对象来被路由。
在至少一些实施例中,影响显示区的多个区域的输入可以基于在所述区域之间的输入契约来被处理。例如,在情形400中,用户提供对GUI202的输入402。输入402代表诸如经由计算设备102的触摸屏功能性来检测的在GUI202上的两手指触摸手势。输入402例如可以对应于在GUI202上的捏(pinch)手势。
正如举例说明的,输入402的输入部分404发生在支付窗口210内,而输入402的输入部分406发生在支付窗口210之外。因此,在部件220和部件230之间的输入契约408指定当在GUI202中既在支付窗口210之外又在支付窗口210之内接收到输入时,要应用特别的输入处理政策。输入契约408例如可以指定包括既在支付窗口210之内又在支付窗口210之外的部分的输入要作为组合的输入被路由到部件220。
参考输入402,该输入可以被解读为GUI202上的捏手势,其既包括输入部分404又包括输入部分406。因此,输入402可以被路由到部件220以供处理。部件220例如可以将输入402解读为缩放(zoom)手势,且因此可以使得缩放操作作为整体来在GUI202上执行。
因此,在至少一些实施例中,输入402不被解读为两个单独的输入,例如对支付窗口210的输入部分404,和在支付窗口210之外的单独的输入部分406。替代地,输入402的上下文被依照输入契约408解读为单个整合的输入,且被据此路由。
输入402只是为了示例的目的而被呈现的,并且要意识到,可以依照本文讨论的技术来识别和处理多种多样的形式和类型的输入。
图5举例说明依照一个或多个实施例的示例性实现情形500。情形500包括GUI502,其包括主窗口504和内部窗口506。主窗口504由部件508管理,而内部窗口506由部件510管理。部件508、510例如代表应用108、插件112、图形框架116等等的相应的实例。
在至少一些实施例中,对主窗口504的输入可以被路由到部件508,而对内部窗口506的输入可以被路由到部件510。在部件508、510之间的输入契约512指定:在一定的环境中,输入可以在相应的部件之间共享和/或转移。
例如,考虑用户诸如经由滚动条514在内部窗口506内滚动。输入契约512可以指定当在内部窗口506内的滚动操作到达内部窗口506的上边界或下边界而滚动输入继续时,可以启动主窗口504的滚动。因此,输入契约512可以指示在部件510和部件508之间的滚动输入移交(handoff)。例如,当在内部窗口506内的滚动到达内部窗口506的上边界或下边界且滚动输入继续时,滚动输入可以被从对于部件510的输入对象重定向到对于部件508的输入对象。
类似地,平移(panning)内部窗口506到最右或最左边的边界可以启动主窗口504的平移。因此,在至少一些实施例中,将内部窗口506导航到特定的边界可以启动主窗口504的导航(例如滚动、平移等等)。
因此,正如在上面的情形中举例说明的,可以生成定制的输入路由通道。此外,可以指定定制的输入上下文,如此使得可以解读特定类型的输入和/或输入的组合。
已经讨论了一些示例性实现情形,现在考虑对依照一个或多个实施例的一些示例性过程的讨论。
示例性过程
以下的讨论描述了依照一个或多个实施例的、用于基于输入上下文的输入处理的一些示例性过程。示例性过程可以在图1的环境100、图8的系统800和/或任何其他的适当环境中采用。
图6是描述在依照一个或多个实施例的方法中的步骤的流程图。步骤600接收对图形元素的输入。可以接收各种类型的用户输入,其示例在上文和下文中讨论。图形元素可以包括显示在显示器的区域中的各种视觉表示,诸如窗口、图像、文本等等。图形元素例如可以包括至少GUI的一部分。
步骤602识别由图形元素代表的部件。部件的示例包括应用108、插件112、图形框架116等等的实例。在至少一些实施例中,部件可以通过以下方式被识别,即:识别在其中接收到输入的像素区域,然后确定在该像素区域中哪个部件被表示。按照一个或多个实施例,显示区域的在其中接收到输入的部分可以在逐个像素的基础上被识别。因此,用于显示区域的该部分的部件可以通过使像素区域与该部件相关而被识别,而不是简单地基于与该部件相关联的显示区域的窗口。
步骤604基于该部件确定用于该输入的上下文。上下文例如可以指哪个部件由在其中接收到输入的像素区域表示。
按照各种实施例,用于输入的“上下文”可以指输入要被解读的方式,和/或输入要被路由到的部件。正如在上文和下文中讨论的,可以基于用于这样的一个和/或一些部件的输入契约来确定上下文,即:该一个和/或一些部件由在其中接收到输入的显示区域代表。
步骤606基于该上下文来处理该输入。处理输入例如可以包括将输入路由到与显示区域的该部分相关联的部件,和/或基于输入契约路由到不同的部件。正如在下文讨论的,处理输入可以包括添加上下文信息到该输入,以便由部件驱动对该输入的解读。
图7是描述在依照一个或多个实施例的方法中的步骤的流程图。步骤700接收输入,其包括对第一图形元素的第一输入部分和对第二图形元素的第二输入部分。正如上文讨论的,例如,输入可以触摸和/或影响显示区域的多个部分,诸如多个区域、多个窗口、多个图形图像等等。在至少一些实施例中,第一图形元素和第二图形元素可以由诸如不同的应用、插件等等的不同部件来管理。
这样的输入的示例包括多触点触摸手势、无触摸手势(例如,如由摄像机检测的)等等。这样的输入还可以包括单触点触摸手势,诸如各种类型的轻扫(swipe)手势,其接触多个图形元素。这样的输入可以进一步包括不同形式的输入的组合,诸如键盘输入同鼠标输入相组合、笔输入同触摸输入相组合,以及各种其他类型输入的组合。
步骤702基于与第一图形元素和第二图形元素相关联的输入契约来确定用于该输入的上下文。正如上文讨论的,输入契约可以指定用于要如何操纵影响多个图形元素(例如显示器的区域)的输入的参数。
例如,在其中第一图形元素和第二图形元素由不同的部件管理的实施例中,输入契约可以指定输入要被路由到哪个部件。附加地或替换地,输入契约可以指定要如何解读输入,诸如通过将输入部分的各种组合映射到具体的命令来进行。例如,输入的不同组合可以使得发生不同的动作。因此,输入契约可以指定对于输入的特定的组合(例如,如在不同的图形元素处检测到的)要发生特定的动作。
步骤704基于该上下文来处理该输入。处理输入例如可以包括将输入路由到用于第一图形元素和/或第二图形元素的部件。在至少一些实施例中,输入可以与上下文信息一起被路由,上下文信息向部件表明输入要被如何解读、处理等等。上下文信息例如可以指定:该输入请求在主窗口上的缩放操作、该输入请求以特定的方向平移窗口、该输入要被保护以免由其他部件访问等等。因此,上下文信息可以提供参数,接收输入的部件要通过这些参数来解读和/或操纵该输入。在至少一些实施例中,为输入确定的输入契约可以包括上下文信息。
已经讨论了一些示例性过程,现在考虑对依照一个或多个实施例的示例性系统和设备的讨论。
示例性系统和设备
图8举例说明总地标为800的示例性系统,其包括示例性计算设备802,计算设备802代表可以实施本文描述的各种技术的一个或多个计算系统和/或设备。例如,上面参考图1讨论的计算设备102可以被具体化为计算设备802。计算设备802可以例如是服务提供者的服务器、与客户机相关联的设备(例如客户机设备)、芯片上系统(on-chipsystem)和/或任何其他适当的计算设备或计算系统。
所举例说明的示例性计算设备802包括可通信地从一个耦合到另一个的处理系统804、一个或多个计算机可读介质806和一个或多个输入/输出(I/O)接口808。虽然并未示出,但计算设备802可以进一步包括将各种部件一个耦合到另一个的系统总线或其他数据和命令传送系统。系统总线可以包括不同总线结构的任何一种或组合,所述不同总线结构诸如是存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种各样的总线体系结构中的任何总线体系结构的处理器或局部总线。还预期有各种各样的其他示例,诸如控制和数据线。
处理系统804代表使用硬件执行一个或多个操作的功能性。因此,处理系统804被图示为包括硬件单元810,其可以被配置为处理器、功能块等等。这可以包括以硬件实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件单元810不受形成它们所用的材料或在其中所采用的处理机制的限制。例如,处理器可以由(一个或一些)半导体和/或晶体管(例如电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子地可执行指令。
计算机可读介质806被图示为包括存储器/存储装置812。存储器/存储装置812表示与一个或多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储装置812可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪速存储器、光盘、磁盘等等)。存储器/存储装置812可以包括固定的介质(例如RAM、ROM、固定的硬驱动机等等)以及可拆卸的介质(例如闪速存储器、可拆卸的硬驱动机、光碟等等)。计算机可读介质806可以以各种各样的其他方式被配置,正如在下文中进一步描述的。
(一个或一些)输入/输出接口808代表以下的功能性,即:允许用户送入命令和信息到计算设备802,以及还允许使用各种输入/输出设备将信息呈现给用户和/或其他部件或设备。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风(例如用于话音识别和/或口头的输入)、扫描仪、触摸功能性(例如被配置成检测物理触摸的电容性的或其他的传感器)、摄像机(例如其可以采用诸如红外频率的可见的或非可见的波长来将并未牵涉到触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等等。因此,计算设备802可以以如下文中进一步描述的各种各样的方式被配置来支持用户交互。
在本文中,各种技术可以是在软件、硬件单元或者程序模块的一般上下文中被描述的。通常,这样的模块包括用来执行特定的任务或者实施特定的抽象数据类型的例程、程序、对象、单元、部件、数据结构等等。当在本文中使用时,术语“模块”、“功能性”和“部件”通常代表软件、固件、硬件或者其组合。本文中描述的技术的特征是与平台无关的,这意味着这些技术可以在具有各种各样处理器的各种各样商用计算平台上实施。
所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上,或者可以跨某种形式的计算机可读介质被传送。计算机可读介质可以包括可由计算设备802访问的各种各样的介质。作为例子而不是限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”可以指与仅仅信号传输、载波或者信号本身相对比、使得能够持久性存储信息的介质和/或设备。因而计算机可读存储介质不包括信号本身。计算机可读存储介质包括以适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或者其他数据的信息的方法或者技术而实施的硬件,诸如易失性和非易失性的、可拆卸和不可拆卸的介质和/或存储设备。计算机可读存储介质的例子可以包括但不局限于RAM、ROM、EEPROM、闪速存储器或者其他存储技术、CD-ROM、数字通用盘(DVD)或者其他光学存储装置、硬盘、盒式磁带、磁带、磁盘存储装置或者其他磁存储设备,或者其他存储设备、有形的介质、或者适合于存储所希望的信息且可被计算机访问的制造品。
“计算机可读信号介质”可以指被配置来诸如经由网络而传送指令到计算设备802的硬件的信号承载介质。信号介质典型地可以使计算机可读指令、数据结构、程序模块或者其他数据具体化为已调制的数据信号,诸如载波、数据信号或者其他输送机构。信号介质还包括任何信息传递介质。术语“已调制的数据信号”是指这样的信号,即:使它的特性中的一个或多个以如此方式设置或改变,以致将信息编码在该信号中。作为例子而不是限制,通信介质包括有线介质,诸如有线网络或者直接连线的连接;以及包括无线介质,诸如声学、射频(RF)、红外和其它无线介质。
正如先前描述的,硬件单元810和计算机可读介质806代表以硬件形式实施的指令、模块、可编程器件逻辑和/或固定器件逻辑,其可以在一些实施例中被采用来实施本文中描述的技术的至少一些方面。硬件单元可以包括集成电路或者芯片上系统的部件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂的可编程逻辑器件(CPLD),以及其它以硅或者其他硬件设备的实现。在这个上下文中,硬件单元可以作为处理设备操作,其执行由指令、模块和/或通过硬件单元体现的逻辑所定义的程序任务,以及作为被利用来存储指令以供执行的硬件设备(例如先前描述的计算机可读存储介质)操作。
也可以采用前述的组合来实施本文中描述的各种技术和模块。相应地,软件、硬件或者程序模块以及其它程序模块可以被实施为在某种形式的计算机可读存储介质上体现的和/或通过一个或多个硬件单元810体现的一个或多个指令和/或逻辑。计算设备802可以被配置来实施与软件和/或硬件模块对应的特定的指令和/或功能。相应地,可由计算设备802作为软件来执行的模块的实现可以至少部分地以硬件来达到,例如通过使用计算机可读存储介质和/或处理系统的硬件单元810达到。指令和/或功能可以是可由一个或多个制造品(例如,一个或多个计算设备802和/或处理系统804)执行/操作以实施本文中描述的技术、模块和例子的。
正如在图8中进一步举例说明的,示例性系统800使得当在个人计算机(PC)、电视设备和/或移动装置上运行应用时实现用于无缝用户体验的泛在(ubiquitous)环境。当在利用应用、玩视频游戏、观看视频等等的时候从一个设备过渡到下一个设备时,服务和应用基本上在全部三个环境中相似地运行,以求共同的用户体验。
在示例性系统800中,多个设备通过中央计算设备互连。中央计算设备对于所述多个设备可以是本地的,或者可以距所述多个设备远程地定位。在一个实施例中,中央计算设备可以是一个或多个服务器计算机的云,其通过网络、因特网或者其他的数据通信链路连接到所述多个设备。
在一个实施例中,这种互连体系结构使得功能性能够跨多个设备地递送,以向多个设备的用户提供共同的和无缝的体验。多个设备中的每一设备可以具有不同的物理要求和能力,且中央计算设备使用平台来使得能够向设备递送既是对该设备剪裁的然而又对所有设备而言是共同的体验。在一个实施例中,创建目标设备的类且针对设备的类属类(genericclass)来剪裁这些体验。设备的类可以通过设备的物理特征、使用类型或者其他共同特性来定义。
在各种实现中,计算设备802可以假定各种各样的不同配置,诸如用于计算机814、移动装置816和电视818用途的配置。这些配置中的每一种配置包括可能通常具有不同构造和能力的设备,且因此计算设备802可以依照不同设备类的一个或多个设备类来配置。例如,计算设备802可以被实施为设备的计算机814类,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等等。
计算设备802还可以被实施为设备的移动装置816类,其包括诸如移动电话的移动设备、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等等。计算设备802还可以被实施为电视818类的设备,其包括具有在休闲的观看环境中通常更大的屏幕或者连接到这样的屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等等。
本文描述的技术可以通过计算设备802的这各种配置而被支持,且不局限于本文描述的技术的具体示例。例如,参考图形管理器模块114和/或图形框架116讨论的功能性可以全部或者部分地通过使用分布式系统来实施,诸如经由平台822在“云”820上被实施,正如下文所述的。
云820包括和/或代表对于资源824的平台822。平台822抽象云820的硬件(例如服务器)和软件资源的底层的(underlying)功能性。资源824可以包括应用和/或数据,其可以当计算机处理在远离计算设备802的服务器上执行时被利用。资源824还可以包括在因特网上和/或通过订户网络提供的服务,订户网络诸如是蜂窝网络或者Wi-Fi网络。
平台822可以抽象资源且起作用来将计算设备802与其他的计算设备连接。平台822还可以用来抽象资源的缩放(scaling),以提供与对于经由平台822实施的资源824的所遇到的需求相对应的规模水平。因此,在互连设备实施例中,本文中描述的功能性的实现可以遍及系统800来分布。例如,功能性可以部分地被实施在计算设备802上以及经由抽象云820的功能性的平台822来实施。
本文讨论了可以被实施来执行本文所讨论的技术的许多方法。这些方法的一些方面可以以硬件、固件、或者软件、或者其组合来实施。这些方法被示为一组步骤,其指定由一个或多个设备执行的操作,且不是必然地局限于所示出的用以由相应的块执行这些操作的顺序。此外,依照一个或多个实现,相对于特定的方法示出的操作可以与不同方法的操作相组合和/或互换。这些方法的一些方面可以经由在上面参考环境100讨论到的各种实体之间的交互而被实施。
结论
描述了用于基于输入上下文的输入处理的技术。虽然以特定于结构特征和/或方法动作的语言来描述实施例,但是要理解,在所附权利要求中限定的这些实施例不是必然地局限于所描述的这些特定的特征或者动作。而是,这些特定的特征和动作是作为实施所要求保护的实施例的示例性形式而公开的。

Claims (10)

1.一种系统包括:
至少一个处理器;和
一个或多个计算机可读存储介质,包括存储在其上的指令,所述指令响应于由至少一个处理器执行,使得该系统实施以下的功能性,包括:
图形用户界面(GUI),其包括主窗口和在该主窗口内的图形元素;和
至少一个模块,其被配置成基于在由主窗口代表的第一部件和由该图形元素代表的第二部件之间的输入契约而处理对该图形元素的输入。
2.如权利要求1所述的系统,其中第一部件是应用、插件或者图形框架的实例,并且其中第二部件是应用、插件或者图形框架的不同实例。
3.如权利要求1所述的系统,其中第一部件包括web平台应用,而第二部件包括对于该web平台应用的插件。
4.如权利要求1所述的系统,其中该输入契约指定对该图形元素的输入要被路由到第二部件。
5.如权利要求1所述的系统,其中该输入契约指定对该图形元素的输入要被保护以免被第一部件访问。
6.一种或多种计算机可读存储介质,包括存储在其上的指令,所述指令响应于由计算设备执行,使得该计算设备执行以下操作,包括:
接收包括对第一图形元素的第一输入部分和对第二图形元素的第二输入部分的输入;以及
基于与第一图形元素和第二图形元素相关联的输入契约而确定用于该输入的上下文;以及
基于该上下文处理该输入。
7.如权利要求6中所述的一种或多种计算机可读存储介质,其中第一图形元素由第一部件管理,第二图形元素由第二部件管理,并且其中该上下文指定该输入要作为单个输入事件而被路由到该第一部件或者该第二部件之一。
8.一种计算机实施的方法,包括:
接收对图形元素的输入;
通过使对于图形元素的像素区域与部件相关而识别由该图形元素代表的部件;以及
按照基于该部件确定的上下文来处理该输入。
9.如权利要求8所述的方法,其中该输入契约指定该输入要被路由到该部件而非不同的部件。
10.如权利要求8中所述的方法,其中该输入包括对该图形元素的第一输入部分和对由不同部件管理的不同图形元素的第二输入部分,并且其中该上下文表明该输入要作为单个输入事件被路由到该部件或者该不同部件之一。
CN201380077445.3A 2013-06-14 2013-09-21 基于输入上下文的输入处理 Pending CN105493019A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/918,840 US20140372935A1 (en) 2013-06-14 2013-06-14 Input Processing based on Input Context
US13/918840 2013-06-14
PCT/US2013/061075 WO2014200549A1 (en) 2013-06-14 2013-09-21 Input processing based on input context

Publications (1)

Publication Number Publication Date
CN105493019A true CN105493019A (zh) 2016-04-13

Family

ID=49305183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077445.3A Pending CN105493019A (zh) 2013-06-14 2013-09-21 基于输入上下文的输入处理

Country Status (4)

Country Link
US (1) US20140372935A1 (zh)
EP (1) EP3008569A1 (zh)
CN (1) CN105493019A (zh)
WO (1) WO2014200549A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170315849A1 (en) * 2016-04-29 2017-11-02 Microsoft Technology Licensing, Llc Application target event synthesis

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6677933B1 (en) * 1999-11-15 2004-01-13 Espial Group Inc. Method and apparatus for operating a virtual keyboard
US20120166522A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Supporting intelligent user interface interactions
US20120304081A1 (en) * 2011-05-27 2012-11-29 Mirko Mandic Navigation User Interface in Support of Page-Focused, Touch- or Gesture-based Browsing Experience
CN102918491A (zh) * 2010-06-10 2013-02-06 微软公司 在用户界面内再现不兼容内容
US20130063446A1 (en) * 2011-09-10 2013-03-14 Microsoft Corporation Scenario Based Animation Library

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633313B1 (en) * 1997-05-08 2003-10-14 Apple Computer, Inc. Event routing mechanism in a computer system
US6871348B1 (en) * 1999-09-15 2005-03-22 Intel Corporation Method and apparatus for integrating the user interfaces of multiple applications into one application
US6801224B1 (en) * 2000-09-14 2004-10-05 International Business Machines Corporation Method, system, and program for generating a graphical user interface window for an application program
US7007025B1 (en) * 2001-06-08 2006-02-28 Xsides Corporation Method and system for maintaining secure data input and output
US7512892B2 (en) * 2005-03-04 2009-03-31 Microsoft Corporation Method and system for displaying and interacting with paginated content
US20070294635A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Linked scrolling of side-by-side content
US7805730B2 (en) * 2006-09-21 2010-09-28 Reuters America, Llc Common component framework
US8645827B2 (en) * 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8416196B2 (en) * 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US8713470B2 (en) * 2008-05-02 2014-04-29 International Business Machines Corporation Automated user interface adjustment
US9268483B2 (en) * 2008-05-16 2016-02-23 Microsoft Technology Licensing, Llc Multi-touch input platform
DE112008003965T5 (de) * 2008-08-29 2011-07-14 Hewlett-Packard Development Co., L.P., Tex. Kombinieren von Schnittstellen von Shell-Anwendungen und Unteranwendungen
US20100107116A1 (en) * 2008-10-27 2010-04-29 Nokia Corporation Input on touch user interfaces
US9684521B2 (en) * 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8812975B2 (en) * 2009-09-30 2014-08-19 Adobe Systems Incorporated Managing windows through policies
US8438473B2 (en) * 2011-01-05 2013-05-07 Research In Motion Limited Handling of touch events in a browser environment
US20140365861A1 (en) * 2011-04-25 2014-12-11 Google Inc. Prefetching binary data for use by a browser plugin
CN102436507B (zh) * 2011-12-28 2014-07-16 奇智软件(北京)有限公司 一种浏览网页的方法及装置
WO2013169845A1 (en) * 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
US9443331B2 (en) * 2013-06-06 2016-09-13 Microsoft Technology Licensing, Llc Input object for routing input for visual elements

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6677933B1 (en) * 1999-11-15 2004-01-13 Espial Group Inc. Method and apparatus for operating a virtual keyboard
CN102918491A (zh) * 2010-06-10 2013-02-06 微软公司 在用户界面内再现不兼容内容
US20120166522A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Supporting intelligent user interface interactions
US20120304081A1 (en) * 2011-05-27 2012-11-29 Mirko Mandic Navigation User Interface in Support of Page-Focused, Touch- or Gesture-based Browsing Experience
US20130063446A1 (en) * 2011-09-10 2013-03-14 Microsoft Corporation Scenario Based Animation Library

Also Published As

Publication number Publication date
EP3008569A1 (en) 2016-04-20
US20140372935A1 (en) 2014-12-18
WO2014200549A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
US20210182948A1 (en) Product browsing method and apparatus, device and storage medium
EP3191941B1 (en) Parametric inertia and apis
CN107027327A (zh) web内容加标签和过滤
JP2017523515A (ja) アイコンサイズ変更
CN102937861B (zh) 用于显示环境的共享边缘
CN108369456A (zh) 用于触摸输入设备的触觉反馈
CN107748740A (zh) 电子表格对象的无代码共享
CN107111470A (zh) 浏览器显示投射技术
US10691880B2 (en) Ink in an electronic document
CN104350495A (zh) 在全景显示中管理对象以导航电子表格
US8977966B1 (en) Keyboard navigation
CN109074375A (zh) web文档中的内容选择
CN107924263A (zh) 触摸热图
EP3485376A1 (en) Cloud content states framework
JP2017526068A (ja) 混合ビューへのジェスチャベースのアクセス
CN105518618B (zh) 将针对视觉元素的输入路由到图形框架的方法和系统
WO2017160603A1 (en) File workflow board
KR102351420B1 (ko) 단일 뷰에서의 검색 결과-기반 리스팅 생성
WO2017222841A1 (en) Deconstructing and rendering of web page into native application experience
JP7254393B1 (ja) 情報処理装置、方法、プログラム、およびシステム
CN105493019A (zh) 基于输入上下文的输入处理
CN113688345A (zh) 一种页面切换方法、装置及计算设备
CN110325957B (zh) 内容作为导航
CN111339223B (zh) 兴趣点的展示方法/系统、计算机可读存储介质及终端
WO2016024623A1 (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160413

WD01 Invention patent application deemed withdrawn after publication