将主题信息从主机应用传播到主机扩展的制作方法
【专利摘要】本文描述了用于将主题定义从主机应用传播到主机扩展的机构,从而主机应用和主机扩展视觉上一致。可以在主题改变事件发生之后,归因于用户与主机应用的交互而更新主题定义。然后可以通过主机扩展使用主题定义,以更新由主机扩展呈现的一个或多个UI元素,以使得能够视觉一致。
【专利说明】
将主题信息从主机应用传播到主机扩展
【背景技术】
[0001]各种类型的软件应用提供允许使用主题的功能。例如,演示应用可以允许用户选择主题。响应于选择主题,演示应用可以基于所选的主题改变用户界面(UI)元素。所述UI元素可以包括例如背景、前景、字体和其它类型的UI元素。改变后的UI元素可以包括通过演示应用和/或在为了供演示应用编辑而打开的文档中的元件所显示的UI元素。演示应用还可以允许用户以不同方式改变主题,包括创建定制主题。
[0002]—些应用(这里称作“主机应用”)还可以允许使用以某种方式扩展应用的功能的扩展(这里称作“主机扩展”)。例如,文字处理应用可以使用词典扩展来允许用户发现所选词语的定义。主机扩展还可以提供其自身的UI元素和/或修改包含于为了在主机应用中编辑而打开的文档内的内容。另外,主机扩展可以是文档的一部分内容。然而,在主机应用内对主题的修改并不传播到主机扩展,并因此,由主机扩展呈现的UI和/或对文档的修改与主机应用呈现的UI视觉上可能不一致。
[0003]针对这些和其它考量而在这里呈现了本公开。
【发明内容】
[0004]本文描述的概念和技术用于将主题信息从主机应用传播到主机扩展。为了使能该功能,可以在发生主题改变事件之后,更新主题定义。主题定义可以包含默认主题。当更新默认的主题时,还可以更新主题定义。主题改变事件的例子可以是用户改变文档的主题。另夕卜,可以通过主题扩展使用主题定义来更新由主机扩展呈现的一个或多个UI元素。这样,由主机扩展呈现的UI和其它元素可以视觉上与主机应用呈现的UI和其它元素一致。
[0005]根据本文呈现的一个方面,提供一种用于将主题改变事件从主机应用传播到主机扩展的计算机实现方法。在一个实现方式中,所述方法包括:将主题定义从所述主机应用提供给所述主机扩展。所述主机扩展可以利用所述主题定义来更新由所述主机扩展呈现的一个或多个UI元素。所述方法还可以包括:通过所述主机应用来检测主题改变事件。响应于检测到所述主题改变事件,所述方法基于所述主题改变事件更新所述主题定义,以创建更新后的主题定义。另外,响应于检测到主题改变事件,所述方法将所述主题改变事件的通知从所述主机应用提供给所述主机扩展。然后,所述主机扩展可以利用更新后的主题定义来更新由所述主机扩展呈现的一个或多个UI元素。
[0006]根据另一方面,一种计算机可读存储介质具有计算机可执行指令,当所述指令被计算机执行时使得计算机用于:将主题定义从主机应用提供给主机扩展。所述主机扩展利用所述主题定义来更新由所述主机扩展呈现的一个或多个UI元素。在检测到主题改变事件之后,所述主机应用基于所述主题改变事件更新所述主题定义,以创建更新后的主题定义。另外,主机应用响应于检测到主题改变事件而将所述主题改变事件的通知提供给所述主题扩展。所述主机扩展利用更新后的主题定义来更新由所述主机扩展呈现的一个或多个UI元素。
[0007]根据再一方面,提供了一种用于将主题改变事件从主机应用传播到主机扩展的装置。所述装置包括:处理器以及存储器,所述存储器与所述处理器耦合且存储主机应用。所述主机应用来自所述存储器,在所述处理器中执行。所述装置向主机扩展提供主题定义,其包括应用级别主题和文档级别主题。所述应用级别主题定义由所述主机应用提供的UI元素的主题。所述文档级别主题定义由来自主机应用的文档提供的UI元素的主题。所述主机扩展利用所述主题定义来更新由所述主机扩展呈现的一个或多个UI元素。
[0008]所述装置还可以检测主题改变事件。响应于检测到所述主题改变事件,所述装置基于所述主题改变事件更新所述主题定义,以创建更新后的主题定义。所述装置还将所述主题改变事件的通知从所述主机应用提供给所述主机扩展。所述主机扩展利用更新后的主题定义来更新由所述主机扩展呈现的一个或多个UI元素,以使得由所述主机扩展呈现的一个或多个UI元素看起来与所述主机应用和文档一致。
[0009]可以理解的是,可以将上述主旨实现为计算机控制的装置、计算机过程、计算系统或诸如计算机可读存储介质的制品。根据阅读下述【具体实施方式】并查看相关联附图,这些和各种其它特征将变得清晰。
[0010]提供该“
【发明内容】
”来以简化形式引入将在下文“【具体实施方式】”中进一步描述的概念选择。该“
【发明内容】
”并不意图识别所要求保护主旨的关键特征或必要特征,并且该“
【发明内容】
”也不意图被用于限制所要求保护主旨的范围。此外,所要求保护主旨并不限于解决在本公开的任意部分中记叙的任意或所有缺点的实现方式。
【附图说明】
[0011 ]图1是提供本文呈现的实施例的方面的概观的框图;
[0012]图2是根据一些实施例示出用于初始化主机扩展的方法的方面的流程图;
[0013]图3是提供在本文中呈现的实施例的用于处理主题改变事件的方面的概观的框图;
[0014]图4是根据一些实施例示出响应于发生主题改变事件而更新主题定义的方法的方面的流程图;
[0015]图5是根据一些实施例示出用于更新主机扩展UI来反映更新后的主题定义的方法的方面的流程图;
[0016]图6是示出对于能够实现本文呈现的实施例的方面的计算系统的说明性计算机硬件和软件架构的计算机架构图;
[0017]图7是示出能够实现本文呈现的实施例的方面的分布式计算环境的图;以及
[0018]图8是示出能够实现本文呈现的实施例的方面的计算设备架构的计算机架构图。
【具体实施方式】
[0019]下述详细描述指向用于将主题信息从主机应用传播到一个或多个主机扩展的概念和技术。如上简述,主机应用可以以主题定义所定义的方式呈现UI元素。主题定义还可以定义由主机应用运行的文档所呈现的UI元素。类似地,配置为与主机应用一起使用的一个或多个主机扩展还可以呈现各种UI元素。主机应用配置为向主机扩展传播主题定义。这允许主机扩展更新其UI元素,从而主机扩展和主机应用呈现类似风格的UI元素。另外,主机扩展可以更新其UI元素,从而主机扩展呈现类似风格的UI元素,同时通过主机应用呈现或在主机应用中编辑文档。下文将结合图1-8提供关于该过程的额外细节。
[0020]虽然本文描述的主旨呈现于与操作系统和应用程序在计算机系统上的执行结合执行的程序模块的一般上下文中,但本领域技术人员将认识到可以结合其它类型的程序模块组合执行其它实现方式。一般而言,程序模块包括例程、程序、部件、数据结构和执行特定任务或实现特定抽象数据类型的其它类型的结构。此外,本领域的技术人员将理解的是,可以通过其它计算机系统配置实践本文描述的主旨,包括手持设备、多处理器系统、基于微处理器或可编程的消费者电子设备、微型计算机、大型计算机等。
[0021]在后续详细描述中,参考形成其一部分的附图,在附图中示出了图示具体实施例或例子。现在参考附图,其中贯穿多个附图类似的数字表示类似的元件,将呈现用于将主题改变事件从主机应用传播到主机扩展的计算机实现方法、计算机可读存储介质以及系统的方面。
[0022]图1是提供本文呈现的各个部件的操作的概观的框图。根据各个实施例,系统包括主机应用102,以及通过主机应用102呈现的一个或多个文档108。例如但不限于,主机应用102可以是文字处理应用,且文档108可以是文字处理文档。类似地,主机应用102可以是演示应用,且文档108可以是演示。主机应用102还可以是基于网络的应用,其提供用于查看和/或编辑文档108的功能,并包括本文公开的功能。主机应用还可以是电子表单应用、电子邮件应用、基于网络的文档管理和协作应用、或利用主题并允许使用扩展的其它类型应用。对此,可以理解的是,本文公开的实施例并不局限于与特定类型的主机应用102或文档108一起使用。
[0023]在一个实施例中,主题定义104定义供主机应用102和文档108使用的主题信息。主题定义104定义供主机应用102在呈现其UI时使用的视觉风格,并还可以定义呈现文档108的元素的视觉风格。对此,主题定义104可以定义颜色、字体名称、字体风格和其它视觉元素。通过示例而非限制,定义的颜色可以包括背景颜色、前景颜色和字体颜色。这些视觉元素的组合在这里可以称作“主题”。
[0024]在一些实施例中,主题定义104定义应用级别主题114和文档级别主题110。应用级别主题114定义用于由主机应用102呈现的UI元素的主题。例如,应用级别主题114可以定义如何呈现包含用于控制主机应用102的操作的UI元素的主机UI 116或者应用本身的框架风格。文档级别主题110定义用于呈现文档108内容的主题。
[0025]还可以提供一个或多个主机扩展106,其配置或安装为与主机应用102—起使用。主机扩展106可以用于扩展主机应用102提供的功能。为了提供该功能,主机扩展106可以配置为呈现主机扩展UI 112。主机扩展UI 112可以包括用于控制主机扩展106的操作的UI元素。
[0026]当主机扩展106开始执行时,主机扩展106可以获得当前由主机应用102暴露的主题定义104。主机扩展106可以利用主题定义104来呈现与应用级别主题114和文档级别主题110—致的主机扩展UI 112。例如但不限于,主机扩展106可以利用文档级别主题110来示出与主机应用102—致的背景颜色和字体类型。主机扩展106还可以利用文档级别主题110来呈现在文档108中的UI元素。在下文中将结合图2-8提供关于该过程的额外细节。
[0027]现在转向图2,将描述根据图示实施例的示出用于初始化主机扩展106的本文公开的一个机构的方面的图示流程200。应该理解的是,结合图2以及其它附图在下文描述的操作不必以任意特定顺序呈现,并且可以且构思以替代顺序执行一些或所有操作。以展示的顺序呈现的操作是为了易于描述和图示。可以添加、省略和/或同时或以与所描述不同的顺序执行操作,而不背离随附权利要求的范围。
[0028]还应该理解的是,图示例程200可以在任意时间结束,并不需要整体执行。例程200的一些或所有操作和/或本质等价的操作可以通过执行包含于计算机存储介质中的计算机可读指令而实施,如本文所定义的。为权利要求的目的,短语“计算机可读存储介质”及其变型不包括波、光和/或其它瞬态和/或有形通信介质本身。在说明书和权利要求书中使用的术语“计算机可读指令”及其变型在本文中被广泛使用以包括例程、应用、应用模块、程序模块、程序、部件、数据结构、算法等。计算机可读指令可以实现于各种系统配置上,包括单处理器或多处理器系统、迷你计算机、大型计算机、个人计算机、手持计算设备、基于微处理器、可编程消费者电子设备、其组合等。
[0029]因此,应该理解的是,本文描述的逻辑操作实现为(I)计算机实现动作或在计算系统上运行的程序模块的序列,和/或(2)在计算系统中的互连机器逻辑电路或电路模块。实现方式的问题在于取决于计算系统的性能和其它要求的选择。因此,本文描述的逻辑操作被不同地称作状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块能够被实现为软件、固件、专用数字逻辑和其任意组合。
[0030]例程200在操作202处开始,其中主机扩展106开始执行。作为前提条件步骤,假设主机应用102是主动的,且主机扩展106要么已经存在于文档108中要么是被插入的。从操作202起,例程200继续到操作204,其中主机应用102开始初始化主机扩展106。从操作204起,例程200继续到操作206,其中主机扩展106从主机应用102接收包含于主题定义104中的主题信息。如前所述,主题定义104可以包含应用级别主题114和文档级别主题110。
[0031]在一些实施例中使用元数据(例如,层叠样式表(“CSS”))定义主题定义104。主机应用102可以在初始化期间向主机扩展106提供CSS。其它类型的元数据还可以用于在初始化期间将主题定义104提供给主机扩展106,例如可扩展标记语言(“XML”)。可以更新元数据以反映对应用级别主题114和/或文档级别主题110的改变。
[0032]替代地,主机应用102可以经由应用程序接口(“API”)向主机扩展106提供主题定义104。例如但不限于,主机应用102可以暴露API,通过该API,主机扩展106可以订阅以接收特定类型事件的通知,例如导致主题定义104的改变的事件。这样,主机扩展106可以在初始化时间接收主题定义104,并还可以在每次主题定义104改变时接收通知。还可以使用其它机构来将主题定义104提供给主机扩展106。
[0033]从操作206期,例程200继续到操作208。在操作208处,主机扩展106更新主机扩展UI 112以反映主题定义104。例如并不限于,主机扩展106可以更新UI元素,用于控制主机扩展106本身的操作。主机扩展106还可以基于主题定义104更新包含于文档108中的UI元素的表不。
[0034]通过示例而非限制,主机扩展106可以配置为在文档108中显示表格。表格初始可以具有与文档108的剩余部分不同的字体、字体颜色和字体大小。当主机扩展106接收主题定义104时,主机扩展UI 112可以利用包含于其中的文档级别主题110,以更新表格中的字体、字体颜色、字体大小和其它风格元素。通过以这种方式利用文档级别主题110,通过主机扩展106呈现的文档内容将显得与文档108的剩余部分一致。以类似的方式,主机扩展106可以利用应用级别主题114来呈现视觉上与主机应用102呈现的UI元素一致的UI元素。另外,主机扩展106可以在不同的主机应用102中共享。例如但不限于,主机扩展106可以提供插入到通过文字处理应用创建的文档中并还可能用于创建演示应用的演示中的图表或其它类型的图。从操作208起,例程200继续到操作210,在此结束。
[0035]现在转向图3,将提供关于本文公开的在发生主题改变事件302时通知主机扩展106的一个机构的额外细节。如图3所示,主题改变事件302可以发生。主题改变事件302可以包括对应用级别主题114、文档级别主题110或者应用级别主题114和文档级别主题110两者的改变。主题改变事件302可能归因于与主机应用102的一般用户交互而发生。例如但不限于,当用户改变当前应用级别主题114和/或文档级别主题110时,可以发生主题改变事件302。另外,可能响应于用户选择新的应用级别主题114和/或新的文档级别主题110,而发生主题改变事件302。应用级别主题114和文档级别主题110可以是预先定义的主题、用户定义的主题或第三方创建的主题。
[0036]还可以响应于改变利用每页的不同主题的演示或幻灯放映中的幻灯片,或者使用撤消命令以撤消先前主题改变,而发生主题改变事件302。其它事件也可以改变当前的应用级别主题114或文档级别主题110,并因此使得主题改变事件302发生。主题改变事件302还可以发生在主机应用102内的不同部件或特征之间用户改变时。例如,在个人信息管理器应用中的日历和电子邮件消息(例如,微软公司的OUTLOOK个人信息管理器)可能具有不同的主题。在这种主机应用102中从电子邮件部件改变到日历部件可以生成主题改变事件302。
[0037]响应于主题改变事件302而更新主题定义104。另外,主机应用102向主机扩展106提供主题改变事件302的通知306。响应于接收到主题改变事件302的通知306,主机扩展106可以获得更新后的主题定义304。主机扩展106然后可以利用更新后的主题定义304来更新主机扩展UI 112,从而反映更新后的主题定义304。通过进行这种改变,主机扩展UI 112将继续显得与主机应用102和文档108的内容所提供的UI—致。
[0038]现在转向图4,将描述响应于主题改变事件302更新主题定义104的例程400的方面。例程400开始于操作402,其中主机应用102确定是否发生主题改变事件302。如果尚未发生主题改变事件302,则例程400返回到操作402,其中可以进行另外的这种确定。
[0039]如果在操作402处发生了主题改变事件302,则例程400继续到操作404,其中主机应用102更新主题定义104以反映主题改变事件302。当主题改变事件302影响应用级别主题114、文档级别主题110或者应用级别主题114和文档级别主题110两者时,更新主题定义104。
[0040]从操作404起,例程400继续到操作406,其中主机应用102向主机扩展106提供主题改变事件302的通知306。如前所述,可以经由CSS文件或通过使用API将主题定义104发送给主机扩展106。类似地,还可以通过更新CSS文件的内容或通过使用适当的API而将更新后的主题定义304发送给主机扩展106。还可以使用其它机构,以便向主机扩展106提供更新后的主题定义304。从操作406起,例程400返回到操作402,在其中进行关于是否发生主题改变事件302的另外的确定。
[0041]现在转向图5,将提供用于更新主机扩展UI112以反映更新后的主题定义304的例程500的方面。例程500开始于操作502,其中主机扩展106确定是否已经接收到主题改变事件302的通知306。如果尚未接收到主题改变事件302的通知306,则例程500返回到进行另外的这种确定的操作502。如果在操作502处已经接收到主题改变事件302的通知306,则例程500继续到操作504。
[0042]在操作504处,主机扩展106获得更新后的主题定义304。例程500然后从操作504继续到操作506,其中主机扩展106确定应用级别主题114是否已经改变。如果应用级别主题114已经改变,则例程500继续到操作508。
[0043]在操作508处,主机扩展106更新主机扩展UI112以反映更新后的应用级别主题114。例如,主机扩展106可以利用更新后的应用级别主题114来修改用于控制主机扩展106的操作的UI元素的显示。通过做出该改变,主机扩展106呈现的UI将继续显得与主机应用102呈现的UI—致。从操作508起,例程500继续到操作510,将在下文描述。
[0044]如果在操作506处应用级别主题114已经改变,则例程500继续到操作510。在操作510处,主机扩展106确定文档级别主题110是否已经改变。如果文档级别主题110尚未改变,则例程500返回操作502,在其中进行关于是否已经接收到主题改变事件302的通知306的另外确定。如果在操作510处文档级别主题110已经改变,则例程500继续到操作512。
[0045]在操作512处,主机扩展106更新主机扩展UI112以反映更新后的文档级别主题110。例如但不限于,主机扩展106可以更新由文档108呈现的元素的显示,以反映更新后的文档级别主题110。通过进行该改变,由主机应用102呈现的文档元素将显得与主机扩展106呈现的文档元素一致。从操作512起,例程500返回到操作502,其中进行关于是否已经接收主题改变事件302的通知306的另外确定。
[0046]图6示出了针对设备的计算机架构600的图示,所述设备能够执行本文描述的软件部件,用于将主题信息从主机应用102传播到一个或多个主机扩展106。图6中示出的计算机架构600示出了服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的架构。计算机架构600可以用于执行本文呈现的软件部件的任意方面。
[0047]图6中示出的计算机架构600包括中央处理单元602(“CPU”);系统存储器604,其包括随机存取存储器606( “RAM”)和只读存储器608( “ROM” );以及系统总线610,其将存储器604耦合到CPU 602。在R0M608中存储包含基本例程的基本输入/输出系统,所述基本例程帮助在计算机架构600内的元件之间例如在启动期间转移信息。计算机架构600还包括大容量存储设备612,用于存储操作系统614( “OS”)和主机应用102。大容量存储设备612还可以用于存储主机扩展106和主题定义104。
[0048]大容量存储设备612通过连接到总线610的大容量存储控制器(未示出)连接到CPU602。大容量存储设备612及其相关联的计算机可读介质提供了用于计算机架构600的非易失性存储设备。虽然本文包含的计算机可读介质的描述涉及大容量存储设备,例如硬盘或CD-ROM驱动器,但本领域技术人员应当理解的是,计算机可读介质可以是计算机架构600可访问的任意可用的计算机存储介质或通信介质。
[0049]通信介质包括计算机可读指令、数据结构、程序模块或在已调制数据信号(例如,载波或其它传输机构)中的其它数据,并包括任意输送介质。术语“已调制数据信号”表示其一个或多个特性改变或以在信号中编码信息的方式设置的信号。通过示例而非限制,通信介质包括有线介质,例如有线网络或直接线连接;以及无线介质,例如声、RF、红外和其它无线介质。上述任意的组合也应该包含于计算机可读介质的范围内。
[0050]通过示例而非限制,计算机存储介质可以包括以用于存储信息的任意方法或技术实现的易失性和非易失性、可移除和不可移除的介质,所述信息例如是计算机可读指令、数据结构、程序模块或其它数据。例如,计算机介质包括但不限于:RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术,CD-ROM、数字通用盘(“DVD”)、HD-DVD、BLU-RAY或其它光存储设备、磁带盒、磁带、磁盘存储设备或其它磁存储设备,或可以用于存储期望的信息并能由计算机架构600访问的任意其它介质。出于权利要求的目的,短语“计算机可读存储介质”及其变型并不包括波、信号和/或其它瞬态和/或无形通信介质本身。
[0051]根据各个实施例,计算机架构600可以利用通过诸如网络620的网络到远程计算机的逻辑连接,在联网环境中操作。计算机架构600可以通过连接到总线610的网络接口单元618连接到网络620。应该理解的是,网络接口单元618还可以用于连接到其它类型的网络和远程计算机系统。计算机架构600还可以包括输入/输出控制器616,用于接收并处理来自多个其它设备的输入,包括键盘、鼠标或电子铁笔(图6中未示出)。类似地,输入/输出控制器616可以向显示屏、打印机或其它类型的输出设备提供输出(在图6中也未示出)。
[0052]应该理解的是,本文描述的软件部件可以在加载到CPU602并执行时将CPU 602和整体计算机架构600从通用计算系统转换为被定制用于促进本文呈现的功能的专用计算系统。可以根据任意数量的、单独或统一呈现任意数量的状态的晶体管或其它离散电路元件构造CPU 602。更具体地,响应于包含于本文公开的软件模块内的可执行指令,CPU 602可以用作有限状态机。这些计算机可执行指令可以通过指定CPU 602在状态之间如何转变而转换CPU 602,由此转换构成CPU 602的晶体管或其它离散硬件元件。
[0053]对本文呈现的软件模块编码也可以转换在本文中呈现的计算机可读介质的物理结构。在该说明书的不同实现方式中,对物理结构的具体转换可以取决于各种因素。这种因素的例子可以包括但不限于用于实现计算机可读介质的技术,无论计算机可读介质特征化为主要或次级存储设备,等。例如,如果计算机可读介质实现为基于半导体的存储器,则可以通过转换半导体存储器的物理状态而在计算机可读介质上对本文公开的软件进行编码。例如,软件可以转换构成半导体存储器的晶体管、电容器或其它离散电路元件的状态。软件还可以转换这种部件的物理状态,以便在其上存储数据。
[0054]又如,可以利用磁或光技术实现本文公开的计算机可读介质。在这种实现方式中,当在其中编码软件时,本文呈现的软件可以转换磁或光介质的物理状态。这些转换可以包括改变在给定磁介质内的特定位置的磁特性。这些转换还可以包括改变在给定光介质内的特定位置的物理特征或特性,以改变这些位置的光特性。物理介质的其它转换是可能的,而不背离本说明书的范围和精神,提供前述例子仅是为了促进该讨论。
[0055]根据上述,应该理解的是,在计算机架构600中发生多种类型的物理转换,以便存储和执行在本文中呈现的软件部件。还应该理解的是,计算机架构600可以包括其它类型的计算设备,包括手持计算机、嵌入式计算机系统、个人数字助理、以及本领域技术人员已知的其它类型的计算设备。还可以想到的是,计算机架构600可以不包括图6中示出的所有部件,可以包括在图6中未明确示出的其它部件,或者可以利用与图6中示出完全不同的架构。
[0056]图7示出了分布式计算环境700的图示,在该环境中可以执行用于将主题信息从主机应用102传播给主机扩展106的在本文中描述的软件部件。根据各种实现方式,分布式计算环境700包括计算环境702,其在网络620上操作、与网络620通信或作为网络620的一部分。
[0057]一个或多个客户端设备706A_706N(下文统称作和/或一般称作“客户端706”)可以经由网络620和/或其它连接(图7中未示出)与计算环境702进行通信。在图示的实施例中,客户端706包括计算设备706A,例如膝上型计算机、台式计算机或其它计算设备、板式或平板式计算设备706B、移动计算设备706C,例如移动电话、智能电话或其它移动计算设备、月艮务器计算机706D和/或其它设备706N。应该理解的是,任意数量的客户端706可以与计算环境702通信。结合图6和8示出并描述了用于客户端706的两个示例性计算架构。应该理解的是,图示的客户端706和本文图示和描述的计算架构是说明性的,并不应该解释为以任何方式进行限制。
[0058]在图示的实施例中,计算环境702包括应用服务器708、数据存储设备710以及一个或多个网络接口 704。根据各种实现方式,可以通过一个或多个服务器计算机提供应用服务器708的功能,其执行为网络620的一部分,或与网络620进行通信。应用服务器708可以托管各种服务、虚拟机、门户和/其它资源。
[0059]在图示实施例中,应用服务器708托管一个或多个虚拟机714,用于托管应用或其它功能。根据各种实现方式,虚拟机714托管一个或多个应用和/或用于提供本文描述的功能的软件模块。应该理解的是,该实施例是说明性的,并不应该解释为以任何方式进行限制。应用服务器708还托管或提供对一个或多个网络门户、链接页、网站和/或其它信息(“网络门户”)716的访问。
[0060]根据各种实现方式,应用服务器708还包括一个或多个邮箱服务718和一个或多个消息传送服务720。邮箱服务718可以包括电子邮件(“email”)服务。邮箱服务718还可以包括各种个人信息管理(“PIM”)服务,包括但不限于:日历服务、联系人管理服务、合作服务和/或其它服务。消息传送服务720可以包括但不限于即时消息传送服务、聊天服务、论坛服务和/或其它通信服务。
[0061]应用服务器708还可以包括一个或多个社交网络服务722。社交网络服务722可以包括各种社交网络服务,包括但不限于:用于共享或发布状态更新、即时消息、链接、照片、视频和/或其它信息的服务;用于评论或显示对文章、产品、博客或其它资源的兴趣的服务;和/或其它服务。在一些实施例中,社交网络服务722由以下提供或包括以下:FACEB00K社交网络服务、LINKEDIN职业网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办公室同事网络服务,等等。
[0062]在其它实施例中,通过其它服务、站点和/或明确或不明确地已知为社交网络供应商的供应商提供社交网络服务722。例如,一些网站允许用户经由电子邮件、聊天服务和/或其它方式在各种活动和/或上下文(例如,阅读发表文章、评论商品或服务、发表、合作、游戏等)中彼此交互。这种服务的例子包括但不限于:Redmond ,Washington的微软公司的WINDOWS LIVE服务和XBOX LIVE服务。其它服务是可能的并且可以想到的。
[0063]社交网络服务722还可以包括评论、写博客和/或发微博服务。这种服务的例子包括但不限于YELP评论服务、KUDZU查看服务、OFFICETALK企业微博服务、TWITTER消息传送服务、GOOGLE BUZZ服务和/或其它服务。应该理解的是,上述服务列表不是穷尽的,并且为了简洁起见未在此提及多个额外的和/或替代的社交网络服务722。这样,上述实施例是说明性的,并不应该解释为以任何方式进行限制。
[0064]如图7所示,应用服务器708还可以托管其它服务、应用、门户和/或其它资源(“其它资源”)724。因此,可以理解的是,计算环境702可以提供本文公开的概念和技术与各种邮箱、消息传送、社交网络和/或其它服务或资源的集成。
[0065]如上所述,计算环境702可以包括数据存储设备710。根据各种实现方式,通过在网络620上操作或与其通信的一个或多个数据库提供数据存储设备710的功能。还可以通过一个或多个服务器计算机提供数据存储设备710的功能,所述服务器计算机配置为托管计算环境702的数据。数据存储设备710可以包括、托管或提供一个或多个真实的或虚拟的数据库712A-712N(之后统称作和/或一般称作“数据库712”)。数据库712配置为托管用于应用服务器708或由其创建的数据和/或其它数据。虽然在图7中未示出,但是在期望时数据库712还可以托管或存储如图6所示的主机应用102、主题定义104和主机扩展106。
[0066]计算环境702可以与网络接口 704通信或由网络接口 704访问。网络接口 704可以包括各种类型的网络硬件和软件,用于支持在两个或更多计算设备之间的通信,所述计算设备包括但不限于客户端706和应用服务器708。应该理解的是,网络接口 704还可以用于连接到其它类型的网络和/或计算机系统。
[0067]应该理解的是,本文描述的分布式计算环境700可以向本文描述的软件元件的任意方面提供任意数量的虚拟计算资源和/或其它分布式计算功能,其可以配置为执行在本文公开的软件部件的任意方面。根据本文公开的概念和技术的各种实现方式,分布式计算环境700向客户端706提供本文描述的软件功能作为服务。应该理解的是,客户端706可以包括真实的或虚拟的机器,包括但不限于:服务器计算机、网络服务器、个人计算机、移动计算设备、智能电话和/或其它服务。这样,本文公开的概念和技术的各种实施例可以使得任意设备配置为访问分布式计算环境700,以利用本文描述的功能用于将主题信息从主机应用102传播到主机扩展106。
[0068]现在转向图8,针对计算设备示出计算设备架构800的图示,所述计算设备能够执行本文描述的各种软件部件,用于将主题信息从主机应用102传播给主机扩展106。计算设备架构800能应用于计算设备,其部分由于形状因子、无线连接和/或电池供电操作而促进移动计算。在一些实施例中,计算设备包括但不限于:移动电话、平板式设备、平板设备、便携式视频游戏设备等。此外,计算设备架构800可应用于图7所示的任何客户端706。此外,可以将计算设备架构800的方面应用于传统的台式计算机、便携式计算机(例如,膝上型、笔记本、超级便携和上网本)、服务器计算机以及其它计算机系统,例如结合图6在本文中所描述的。
[0069]图8中示出的计算设备架构800包括处理器802、存储器部件804、网络连接部件806、传感器部件808、输入/输出部件810以及电源部件812。在图示的实施例中,处理器802与存储器部件804、网络连接部件806、传感器部件808、输入/输出(“I/O”)部件810以及电源部件812通信。虽然在图8所示的个体部件之间未示出连接,但是所述部件可以交互以执行设备功能。在一些实施例中,布置所述部件以使得经由一个或多个总线(未示出)进行通信。
[0070]处理器802包括一个或多个CPU,其配置为处理数据、执行一个或多个应用程序的计算机可执行指令,并与计算设备架构800的其它部件通信,以便执行本文描述的各种功能。处理器802可被用于执行本文呈现的软件部件的方面,尤其是至少部分利用主题信息的那些。
[0071]在一些实施例中,处理器802包括图形处理单元(“GPU”),其配置为加速由CPU执行的操作,包括但不限于:通过执行通用科学和工程计算应用而执行的操作,以及图形密集计算应用,例如高分辨率视频(例如,720P、1080P以及更大)、视频游戏、三维(“3D” )建模应用等。在一些实施例中,处理器802配置为与离散GPU(未示出)通信。在任意情况下,可以根据协同处理CPU/GPU计算模型配置CPU和GPU,其中应用的连续部分在CPU上执行,并且通过GPU加速计算密集部分。
[0072]在一些实施例中,处理器802是或包含于片上系统(“SoC”),伴随有一个或多个下文描述的其它部件。例如,SoC可以包括处理器802、GPU、一个或多个网络连接部件806、以及一个或多个传感器部件808。在一些实施例中,部分地利用堆叠式封装(“PoP”)集成电路封装技术制造处理器802。此外,处理器802可以是单核或多核处理器。
[0073]可以根据来自英国剑桥的ARM HOLDINGS许可的ARM架构来创建处理器802。替代地,可以根据例如来自Mountain View ,California的英特尔公司以及其它的x86架构来创建处理器802。在一些实施例中,处理器802是来自San Diego,California的QUALCOMM的SNAPDRAGON SoC,来自 Santa Clara ,California 的 NVIDIA 的 TEGRA SoC,来自韩国Seoul 的SAMSUNG的HUMMINGBIRD SoC,来自 Dallas,Texas的TEXAS INSTRUMENTS的开放式多媒体应用平台(“0ΜΑΡ”)SoC,上述任意SoC的定制版本,或专有SoC。
[0074]存储器部件804包括RAM 814,ROM 816、集成存储存储器(“集成存储设备”)818以及可移除存储存储器(“可移除存储设备”)820。在一些实施例中,RAM 814或其一部分、ROM816或其一部分和/SRAM 814和R0M816的一些组合集成到处理器802中。在一些实施例中,ROM 816配置为存储固件、操作系统或其一部分(例如,操作系统内核),和/或引导加载器,用于从集成存储设备818或可移除存储设备820加载操作系统内核。
[0075]集成存储设备818可以包括固态存储器、硬盘或者固态存储器和硬盘的组合。集成存储设备818可以焊接或以其它方式连接到逻辑板,在其上还可以连接本文描述的处理器802和其它部件。这样,集成存储设备818集成到计算设备中。集成存储设备818配置为存储操作系统或其一部分、应用程序、数据和本文描述的其它软件部件。
[0076]可移除存储设备820可以包括固态存储器、硬盘或者固态存储器和硬盘的组合。在一些实施例中,设置可移除存储设备820,替代集成存储设备818。在一些实施例中,可移除存储设备820被提供为额外的可选存储设备。在一些实施例中,所述可移除存储设备820与集成存储设备818逻辑地组合,从而全部可用存储设备可用,并向用户显示为集成存储设备818和可移除存储设备820的全部组合容量。
[0077]可移除存储设备820配置为插入到可移除存储设备存储器槽(未示出)或其它机构中,通过该槽插入可移除存储设备820并将其紧固,以促进连接,可移除存储设备820通过该连接可以与计算设备的其它部件(例如,处理器802)通信。可移除存储设备820可以具体实现在各种存储器卡格式中,其包括但不限于:PC卡、CompactFlash卡、记忆棒、安全数字(“SD”)迷你SD、微型SD、通用集成电路卡(“UICC”)(例如,用户身份模块(“SM”)或通用SM(“usnf))、专属格式等。
[0078]可以理解的是,存储器部件804中的一个或多个可以存储操作系统。根据各个实施例,操作系统包括但不限于:来自SYMBIAN LIMITED的SYMBIAN OS,来自Redmond,Washington的微软公司的WINDOWS MOBILE OS,来自微软公司的WINDOWS PHONE OS,来自微软公司的WINDOWS,来自的Palo Alto ,California的惠普公司的PALM WEB0S,来自加拿大Waterloo ,Ontar1的RESEARCH IN MOT1N LIMITED的BLACKBERRY OS,来自 Cupertino,California的APPLE,INC.的1S,以及来自Mountain View,California的GOOGLE,INC.的ANDROID OS。可以构思其它操作系统。
[0079]网络连接部件806包括无线广域网部件(“WWAN部件”)822,无线局域网部件(“WLAN部件”)824,以及无线个域网部件(“WPAN部件”)826。网络连接部件806促进去往与来自网络620的通信,其可以是WWAN、WLAN或WPAN。虽然示出单个网络620,但是网络连接部件806可以促进与多个网络的同时通信。例如,网络连接部件806可以促进与多个网络经由WWAN、WLAN或WPAN中的一个或多个进行的同时通信。
[0080]网络620可以是WWAN,例如移动电信网络,其利用一个或多个移动电信技术来向利用计算设备架构800的计算设备经由WWAN部件822提供语音和/或数据服务。移动电信技术可以包括但不限于:全球移动通信系统(“GSM”)、码分多址(“CDMA”)0NE、CDMA2000、通用移动通信系统(“UMTS”)、长期演进(“LTE” )以及全球微波访问互操作性(“WiMAX” )。此外,网络620可以利用各种信道访问方法(其可以由上述标准使用或不使用),包括但不限于时分多址(“TDMA” )、频分多址(“FDMA” )、CDMA、宽带CDMA( “W-CDMA”)、正交频分复用(“0FDM”)、空分多址(“SDMA”)等。可以使用通用分组无线业务(“GPRS”)、全球进化的增强数据速率(“EDGE” )、高速分组访问(“HSPA” )协议组,其包括高速下行分组访问(“HSDPA” )、增强型上行(“EUL”)或其它表述的高速上行分组访问(“HSUPA”)、演进的HSPA( “HSPA+” )、LTE以及各种其它当前和将来的无线数据访问标准,来提供数据通信。网络620可以配置为提供具有上述技术的任意组合的语音和/或数据通信。网络620可以配置为或适于根据将来生成技术提供语音和/或数据通信。
[0081 ] 在一些实施例中,WWAN部件822配置为向网络620提供双-多模式连接。例如,WWAN部件822可以配置为向网络620提供连接,其中网络620经由GSM和UMTS技术或者经由一些其它技术的组合提供服务。替代地,多个WWAN部件822可以用于执行这种功能,和/或提供额外的功能以支持其它不兼容技术(即,不能由单个WWAN部件支持)C3WffAN部件822可以促进对多个网络(例如,UMTS网络和LTE网络)类似的连接。
[0082]网络620可以是WLAN,其根据一个或多个电气和电子工程师协会(“IEEE”)802.11标准进行操作,例如,IEEE 802.1 Ia、802.1 Ib、802.1 lg、802.1 In和/或未来802.11标准(本文中统称为W1-FI)。还构思草稿802.11标准。在一些实施例中,利用一个或多个无线W1-FI接入点实现WLAN。在一些实施例中,一个或多个无线W1-FI接入点是连接到作为W1-FI热点工作的WWAN的另一计算设备。WLAN部件824配置为经由W1-FI接入点连接到网络620。可以经由各种加密技术确保这种连接,包括但不限于:W1-FI保护存取(“WPA”)、WPA2、有线等效私密(“WEP”)等。
[0083]网络620可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z_Wave、ZIGBEE或一些其它的短程无线技术操作的WPAN。在一些实施例中,WPAN部件826配置为促进经由WPAN与其它设备的通信,例如外围部件、计算机或其它计算设备。
[0084]传感器部件808包括磁力计828、环境光传感器830、近距离传感器832、加速度计834、陀螺仪836以及全球定位系统传感器(“GPS传感器”)838。可以构思其它传感器,例如但不限于:温度传感器或冲击检测传感器,还可以并入到计算设备架构800中。
[0085]磁力计828配置为测量磁场的强度和方向。在一些实施例中,磁力计828向存储于存储器部件804之一内的指南针应用程序提供测量,以便向用户提供包括基本方向(北、南、东和西)的参照系中的准确方向。可以向包括指南针部件的导航应用程序提供类似的测量。构思通过磁力计828获得的测量的其它使用。
[0086]环境光传感器830配置为测量环境光。在一些实施例中,环境光传感器830向存储于存储器部件804之一内的应用程序提供测量,以便自动调整显示器的亮度(下文描述)来补偿低光和高光环境。构思通过环境光传感器830获得测量的其它使用。
[0087]近距离传感器832配置为检测在计算设备附近但不直接接触的对象或物体的存在。在一些实施例中,近距离传感器832检测用户身体(例如,用户脸部)的存在,并向存储于存储器部件804之一内的应用程序提供该信息,所述应用程序利用近距离信息以启用或禁用计算设备的一些功能。例如,电话应用程序可以响应于接收近距离信息,而自动禁用触摸屏(在下文描述),从而用户的脸部不是故意地结束通话或启用/禁用在通话期间在电话应用程序内的其它功能。构思通过近距离传感器832检测的近距离的其它使用。
[0088]加速度计834配置为测量固有加速度。在一些实施例中,应用程序使用来自加速度计834的输出作为输入机制,以控制应用程序的一些功能。例如,应用程序可以是视频游戏,在其中响应于经由加速度计834接收的输入而移动或以其它方式操纵字符或其一部分或对象。在一些实施例中,将来自加速度计834的输出提供给应用程序,用于在风景模式和肖像模式之间切换、计算协调加速度或检测下降。构思加速度计834的其它使用。
[0089]陀螺仪836配置为测量和维持方向。在一些实施例中,通过应用程序使用来自陀螺仪836的输出作为输入机构,来控制应用程序的一些功能。例如,陀螺仪836可以用于准确识别视频游戏应用或一些其它应用的3D环境中的移动。在一些实施例中,应用程序利用来自陀螺仪836和加速度计834的输出,以增强对应用程序的一些功能的控制。构思陀螺仪836的其它使用。
[0090]GPS传感器838配置为从GPS卫星接收信号用于计算位置。由GPS传感器838计算出的位置可以由要求或受益于位置信息的任意应用程序使用。例如,由GPS传感器838计算出的位置可以与导航应用程序一起用于提供从位置到目的地的方向或从目的地到位置的方向。此外,GPS传感器838可以用于将位置信息提供给基于外部位置的服务,例如E911服务。GPS传感器838可以获得经由W1-F1、W頂AX和/或蜂窝三角测量技术生成的位置信息,所述蜂窝三角测量技术利用一个或多个网络连接部件806来帮助GPS传感器838获得位置固定。GPS传感器838还可以用于辅助GPS( “A-GPS”)系统。
[0091]I/O部件810包括显示器840、触摸屏842、数据I/O接口部件(“数据I/O”)844、音频I/o接口部件(“音频I/O”)846、视频I/O接口部件(“视频I/O”)848和摄像机850。在一些实施例中,组合显示器840和触摸屏842。在一些实施例中,组合数据I/O部件844、音频I/O部件846和视频I/O部件848中的两个或更多个。I/O部件810可以包括离散处理器,其配置为支持下文所述的各种接口,或可以包括嵌入到处理器802中的处理功能。
[0092]显示器840是配置为呈现视觉形式的信息的输出设备。特别地,显示器840可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、因特网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息、以及能够以视觉形式呈现的任意其它信息。在一些实施例中,显示器840是液晶显示器(“LCD”),其利用任意主动或被动矩阵技术以及任意背光技术(如果使用的话)。在一些实施例中,显示器840是有机发光二极管(“OLED” )显示器。构思其它显示器类型。
[0093]触摸屏842是输入设备,其配置为检测触摸的存在和位置。触摸屏842可以是电阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏、光成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏,或可以利用任意其它触摸屏技术。在一些实施例中,触摸屏842并入到显示器840的顶部作为透明层,以使得用户能够使用一个或多个触摸来与显示器840上呈现的对象或其它信息交互。在其它实施例中,触摸屏842是并入到计算设备的表面上且不包括显示器840的触摸板。例如,计算设备可以具有并入到显示器840的顶部上的触摸屏,并且表面上的触摸板与显示器840相对。
[0094]在一些实施例中,触摸屏842是单触摸触摸屏。在其它实施例中,触摸屏842是多触摸触摸屏。在一些实施例中,触摸屏842配置为检测离散触摸、单个触摸手势和/或多触摸手势。为了方便,这些在本文中统称为手势。现在将描述若干手势。应该理解的是,这些手势是说明性的且不意图限制随附权利要求的范围。此外,所描述的手势、额外手势和/或替代手势可以实现于与触摸屏842—起使用的软件中。这样,开发者可以创建专用于特定应用程序的手势。
[0095]在一些实施例中,触摸屏842支持点击手势,其中用户对呈现在显示器840上的项目点击触摸屏842—次。点击手势可以用于各种原因,包括但不限于打开或发动用户点击的任何事务。在一些实施例中,触摸屏842支持双击手势,其中用户对呈现在显示器840上的项目点击触摸屏842两次。双击手势可用于各种原因,包括但不限于阶段性缩小或放大。在一些实施例中,触摸屏842支持点击和保持手势,其中用户点击触摸屏842并维持接触达至少预先定义的时间。点击和保持手势可以用于各种原因,包括但不限于打开上下文特有菜单。
[0096]虽然已经结合使用一个或多个手势执行手势而描述了上述手势,但其它附加物(例如,脚趾)或对象(例如,铁笔)可以用于与触摸屏842交互。这样,上述手势应该被理解为说明性的且不应被解释为以任何方式进行限制。
[0097]数据I/O接口部件844配置为促进将数据输入到计算设备,并从计算设备输出数据。在一些实施例中,数据I/O接口部件844包括连接器,其配置为提供在计算设备和计算机系统之间的有线连接,例如,用于同步操作的目的。连接器可以是专用连接器或标准连接器,例如,USB、微型USB、迷你USB等。在一些实施例中,连接器是基座连接器,用于对接计算设备与另一设备,例如,对接站、音频设备(例如,数字音乐播放器)、或视频设备。
[0098]音频I/O接口部件846配置为向计算设备提供音频输入和/或输出能力。在一些实施例中,音频I/o接口部件846包括麦克风,其配置为收集音频信号。在一些实施例中,音频I/O接口部件846包括耳机插口,其配置为提供用于耳机或其它外部扬声器的连接。在一些实施例中,音频接口部件846包括扬声器用于输出音频信号。在一些实施例中,音频I/O接口部件846包括光音频电缆出口。
[0099]视频I/O接口部件848配置为向计算设备提供视频输入和/或输出能力。在一些实施例中,视频I/o接口部件848包括视频连接器,其配置为接收视频作为来自另一设备(例如,视频媒体播放器,例如DVD或BLURAY播放器)的输入,或发送视频作为到另一设备(例如,监视器、电视或一些其它外部显示器)的输出。在一些实施例中,视频I/O接口部件848包括高清晰度多媒体接口( “HDMI” )、迷你HDM1、微型册11、01叩1&7?0代、或到输入/输出视频内容的专用连接器。在一些实施例中,视频I/O接口部件848或其一部分与音频I/O接口部件846或其一部分组合。
[0100]摄像机850可以配置为捕捉静止图像和/或视频。摄像机850可以利用电荷耦合设备(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕捉图像。在一些实施例中,摄像机850包括闪光来帮助在低光环境中拍照。可以将对摄像机850的设置实现为硬件或软件按钮。
[0101]虽然未示出,但一个或多个硬件按钮还可以包含于计算设备架构800。硬件按钮可以用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
[0102]图示的电源部件812包括一个或多个电池852,其可以连接到电池量表854。电池852可以是可充电的或一次性的。可充电的电池类型包括但不限于锂聚合物、锂离子、镍镉电池以及镍氢。每个电池852可以由一个或多个单元组成。
[0?03] 电池量表854可以配置为测量电池参数,例如,电流、电压和温度。在一些实施例中,电池量表854配置为测量电池充电率、温度、年龄和其它因素的效果,以在误差的特定百分比内预测剩余寿命。在一些实施例中,电池量表854对应用程序提供测量,其配置为利用测量来向用户呈现有用的电源管理数据。电源管理数据可以包括所使用的电池的百分比、剩余电池的百分比、电池状况、剩余时间、剩余容量(例如,瓦特时间)、电流消耗和电压中的一个或多个。
[0104]电源部件812还可以包括电源连接器,其可以与上述I/O部件810中的一个或多个组合。电源部件812可以经由电源I/O部件(未示出)与外部电源系统或充电装备接合。
[0105]基于上述内容,应该理解的是,已经在本文中公开了将主题信息从主机应用传播到一个或多个主机扩展的技术。虽然已经以对计算机结构特征、方法和转化动作、专用计算机器和计算机可读介质专用的语言描述了本文呈现的主题,但可以理解的是,在随附权利要求中定义的发明不必局限于本文描述的具体特征、动作或介质。而是,将具体的特征、动作和介质公开为实现权利要求的示例性形式。
[0106]仅通过图示提供上述主旨,而不应该将其解释为限制。可以对本文描述的主旨进行各种修改和改变,而不遵循所图示和描述的示例性实施例和应用,并且不会背离在后续权利要求中阐述的本公开的真实精神和范围。
【主权项】
1.一种用于将主题改变事件从主机应用传播到主机扩展的计算机实现方法,所述方法包括: 将主题定义从所述主机应用提供给所述主机扩展,由此所述主机扩展利用所述主题定义来更新由所述主机扩展呈现的一个或多个用户界面(UI)元素; 通过所述主机应用检测主题改变事件;以及 响应于检测到所述主题改变事件, 基于所述主题改变事件更新所述主题定义,以创建更新后的主题定义;以及 将所述主题改变事件的通知从所述主机应用提供给所述主机扩展, 由此所述主机扩展利用更新后的主题定义来更新由所述主机扩展呈现的一个或多个UI元素。2.根据权利要求1所述的计算机实现方法,其中,所述主题定义包括应用级别主题,其定义由所述主机应用提供的一个或多个UI元素的主题。3.根据权利要求1所述的计算机实现方法,其中,所述主题定义包括文档级别主题,其定义通过文档内容定义的一个或多个UI元素的主题。4.根据权利要求1所述的计算机实现方法,其中,所述主题定义是利用元数据定义的。5.根据权利要求1所述的计算机实现方法,其中,所述主题改变事件包括撤消命令、幻灯片改变操作和接收新主题选择中的一个或多个。6.一种计算机可读存储介质,其上存储有计算机可执行指令,当所述指令被执行时使得计算机用于: 将主题定义从主机应用提供给主机扩展,由此所述主机扩展利用所述主题定义来更新由所述主机扩展呈现的一个或多个用户界面(UI)元素; 通过所述主机应用检测主题改变事件;以及 响应于检测到所述主题改变事件, 基于所述主题改变事件更新所述主题定义,以创建更新后的主题定义;以及 将所述主题改变事件的通知从所述主机应用提供给所述主机扩展, 由此所述主机扩展利用更新后的主题定义来更新由所述主机扩展呈现的一个或多个UI元素。7.根据权利要求6所述的计算机可读存储介质,其中,所述主题定义包括应用级别主题,其定义由所述主机应用提供的多个UI元素的主题。8.根据权利要求7所述的计算机可读存储介质,其中,所述主题定义还包括文档级别主题,其定义通过文档内容提供的一个或多个UI元素的主题。9.根据权利要求8所述的计算机可读存储介质,其中,由所述主机扩展呈现的所述一个或多个UI元素包括由所述文档内容定义的UI元素。10.—种用于将主题改变事件从主机应用传播到主机扩展的装置,所述装置包括: 处理器; 存储器,其与所述处理器通信地耦合;以及 主机应用,其来自所述存储器在所述处理器中执行,并且在由所述处理器执行时,使得所述装置用于: 将主题定义从所述主机应用提供给所述主机扩展,所述主题定义包括:定义由所述主机应用提供的多个用户界面(UI)元素的主题的应用级别主题和定义由文档提供的多个UI元素的主题的文档级别主题,由此所述主机扩展利用所述主题定义来更新由所述主机扩展呈现的一个或多个UI元素,以使得由所述主机扩展呈现的所述一个或多个UI元素看起来与所述主机应用和所述文档一致; 通过所述主机应用检测主题改变事件;以及 响应于检测到所述主题改变事件, 基于所述主题改变事件更新所述主题定义,以创建更新后的主题定义;以及 将所述主题改变事件的通知从所述主机应用提供给所述主机扩展, 由此所述主机扩展利用更新后的主题定义来更新由所述主机扩展呈现的所述一个或多个UI元素,以使得由所述主机扩展呈现的所述一个或多个UI元素看起来与所述主机应用和所述文档一致。
【文档编号】G06F9/44GK106062709SQ201580010219
【公开日】2016年10月26日
【申请日】2015年2月20日
【发明人】J·G·巴尔莫利拉布拉, R·N·坦达旺, J·华, D·M·桑德斯, A·莫辛德拉, A·萨拉马托夫, H·莱萨马瓜达拉马, R·黄, R·G·布鲁萨尔, P·G·吴, G·罗耶, M·J·桑德斯
【申请人】微软技术许可有限责任公司