背景技术
图形用户界面是一种表示程序、文件以及对在计算机屏幕上的图形图像(例如,图标、菜单和对话框)选项的视觉计算机环境。用户可以通过鼠标(例如,鼠标104)或者时常采用键盘的指点和点击来选择和激活这些选项。特殊的项目(例如,滚动栏)也可在用户的所有应用中采用相同的方式来工作,因为图形用户界面提供了处理这些元件的标准例程并能报告用户的行为(例如,鼠标在一个特殊图标上的点击或者在文本中的特殊位置上的点击,或者一个键的按动)。
菜单时常与图形用户界面一起使用。菜单是一选项的列表,从该表中,用户可以做出某种选择,以便于执行所需的操作,例如,选择一条命令或者将一种特殊的格式应用于一个文档部分。菜单上的选择称为菜单项目,可以通过键盘或鼠标器来选择。在某些实例中,对于指定状态为“灰色”(与有效的菜单选择相比较变得暗淡)来说,该菜单项目是无效的(或者是不合适的)。许多应用程序,特别是在图形用户界面环境中操作的一些应用程序,用户菜单作为向用户提供一种容易学习、容易使用,也容易记忆的程序命令和它们的适当用途的工具来使用。
有许多不同类型的菜单。下拉式菜单是一种在请求时从菜单栏(例如,菜单栏108)下拉的菜单,并且在没有其它操作时保持打开直至用户关闭它或者选择一个菜单项目。折叠式菜单是一种从菜单往下折叠的菜单,且只要用户保持它打开着就保持其有效。弹出式菜单是一种当用户采用鼠标器做出某种选择时出现在屏幕上的菜单。弹出式菜单可以出现在屏幕的任何位置上,并且一般是在用户选择了弹出式菜单中的一个菜单项目时消失。
一种弹出式菜单是上下文菜单。上下文菜单如同其它菜单一样,可以保持着由一个共同主题所分类的命令。一个上下文菜单的常见主题是向用户提供访问普通操作(程度是认为是用户经常使用的)。根据用户的输入,上下文菜单提供了一组普通操作,这些普通操作可以在指定的计算机屏幕位置上和应用状态(以及一般响应鼠标器右击的“弹出”)下产生。
一些可用性研究已经发现初学的用户时常难以定位上下文菜单,从而破坏了上下文菜单有助于初学用户在操作复杂的计算环境中增强信心和信任的潜在实用性。初学的用户时常担心在他们还不能完全理解的用户界面元件上点击。此外,该上下文菜单需要用户在到处都无的地方进行右键点击,特别是在计算机的屏幕上,以引起上下文菜单的出现,这对初学用户来说就感到很不适宜。
即是用户已经明白了怎样产生上下文菜单,但是它的内容(通常是菜单的项目)还不能变化,还不一定能表示用户的需求。上下文菜单的菜单项目是由位置所确定的,在该位置上,一个指针可以定位在图形用户界面中。例如,从桌面激活的与上下文菜单有关的菜单项目(这是一个屏幕上的工作区域,该区域可以使用图标和菜单来模拟图形用户界面中的桌面)不同于从字处理应用中激活的与上下文菜单有关的菜单项目。这些菜单项目都是静态的。构成上下文菜单的编程员的有根据的推测对许多用户都是有用的,但是并不能适用于那些已经在他们精通操作复杂计算环境的过程中形成了他们自己喜好的用户。图1A所示的系统100和图1B所示的应用106更详细地说明了这一问题。
系统100包括一台个人计算机102,这是一台每次只能一人使用的计算机。个人计算机并不需要共享另一台计算机的处理、盘,以及打印机资源。IBM PC兼容计算机和苹果麦金托什机是两例个人计算机的实例。如果个人计算机102采用一个图形用户接口,则连接着个人计算机102的鼠标器104可以用于在这类图形用户界面上运行的应用中导航一个指针。
一例应用的实例是应用106,这是一例专为改善特殊计算任务(例如,字处理、会计或资产管理)的性能而设计的程序,见图1B。作为一例适用于大多数应用的典型,应用106包括一个菜单栏108,该菜单栏以矩形栏显示在应用106的屏幕窗口中,通常是在上部,用户可以从中来选择菜单。有效菜单的名称,例如,“文件”菜单110、“编辑”菜单112、以及“帮助”菜单,都可以显示在菜单栏中;用户可以用键盘或鼠标104来选择一个菜单,从而显示该菜单的选项列表。
应用106包括一个工作区域116,该区域具有一个矩形的形状。各种用户界面元件都可以出现在工作区域106中,例如,上下文菜单117。当用户使用鼠标器的右键点击由指针128所指示的某个位置时,就会出现多个菜单项目,例如,“剪切”菜单项目118、“复制”菜单项目120、“粘贴”菜单项目122,以及“格式化”菜单项目124。指针128作为屏幕上的一个符号出现,例如,是一个轻微向左或向右倾斜的箭头,它可以由鼠标104或者其它输入设备来控制,并且作为一个表示(和选择)位置或者在诸如上下文菜单117的菜单项目118-124的计算机屏幕上选择的工具来使用。
菜单项目118-122(剪切、复制和粘贴)都是在一个过程中的操作,在该过程中,个人计算机102作为一台剪刀和胶水的电子组合,适用于识别一段内容(例如,文档)或者从不同的来源中编辑文档。剪切菜单项目118所具有的屏幕符号象一对剪刀,它位于文字“剪切”的左边。剪切菜单项目118允许用户去除部分文档,通常是将这些部分暂时放置在存储器中,使得剪切部分可以插入(粘贴)在任何位置上。复制菜单项目120所具有的屏幕符号条一组文档拷贝,它位于文字“复制”的左边。复制菜单项目120允许信息在文档的另一部分中,在不同的文件和存储器的位置上,或者在不同的介质上复制和重现。由复制菜单项目120所激活的复制操作可以对从一个单一字符到文字和图形图象中的大段章节起作用。例如,文字和图形可以复制到文档的另一部分,复制到计算机的存储器(籍助于暂时存储装置,例如,剪辑板),或者复制到不同的文件。在大多数的情况下,复制操作会在原地保留着原始的信息。象剪辑板的屏幕符号位于粘贴菜单项目122的文字“粘贴”的左边。粘贴菜单项目122允许插入已经从一个相同或不同文档的不同位置的一段文档中剪切或复制的文字或图形。没有与格式化菜单项目124有关的屏幕符号。格式化菜单项目124允许所选择内容的外观变化,例如,文字、图形或者甚至于是电子数据表中的一个单元。
对于初学的用户来说,在没有完全探索多个菜单例如,应用106的菜单110-114的情况下,就很难发现上下文菜单117(特别是,如果用户只具有单键的鼠标器)并能方便地访问菜单项目118-124。此外,菜单项目118-124是静态的并且不能响应用户所改变的喜好。上下文菜单的一致性有助于增强个人计算机的标准化,并且能够使得所有的用户可以共享与激活和使用上下文菜单有关的相应计算经验。在没有帮助各个用户去发现对用户本身喜好敏感的上下文菜单重新聚焦在个人计算经验的解决方案的条件下,用户最终会不再相信系统100能够提供所需要的个人计算经验,从而减少从市场上对系统100的需求。于是,就需要一种方法和系统能够提供增强的上下文菜单,同时避免或减小与现有上下文菜单有关的上述和其它问题。
具体实施方式
图2说明了一例计算系统环境200,该环境可适用于实现本发明的某些方面,例如,呈现一个扇形菜单,并且当用户导航一个屏幕光标(例如,指针)时可以从用户意图推断该扇形菜单的菜单项目。计算系统环境200仅仅只是一例适用的计算环境,而并不是想要构成对本发明功能的范围或使用的任何限制。不应该将计算环境200解释成具有对所说明讨论的元件的任意一个或者任意组合的依赖或需要。
本发明可以与多种其它通用或专用计算系统环境或结构一起工作。适用于本发明所使用的众所周知的计算系统、环境和/或结构的例子包括,但并不限制于,个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境,以及其它等等。
本发明了是在诸如可由计算机执行的程序模块的计算机可执行指令的一般环境中描述的。一般来说,程序模块包括可以执行特殊任务或实现特殊抽象数据类型的例程、程序、对象、元件、数据结构等等。
本发明也可以在分布式计算环境中实现,在该分布式计算环境中,任务是由通过一个通讯网络连接的远程处理设备来执行的。在一个分布式计算环境中,程序模块可以位于本机和远程计算机两者的存储介质中,包括存储器存储设备。
图2所示的计算系统环境包括一个采用计算机210形式的通用计算设备。计算机210的元件可以包括,但并不限制于,一个处理单元220,一个系统存储器230,和一个系统总线221,该总线将包括系统存储器的各种系统元件与处理单元220相耦合。系统总线221可以是几类总线结构中的任意一种总线结构,包括存储器总线或存储器控制器,外围总线,以及使用多种总线架构中的任意一种总线架构的局部总线。举例来说,但并不限制于,这类总线架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、和外围元件互连(PCI)总线(亦称之为Mezzanine总线)。
计算机210一般都包括多种计算机可读介质。计算机可读介质可以是任何计算机210能够访问的有效介质,它包括易失性和非易失性的介质,可移动性和非移动性的介质。举例来说,但并不限制于,计算机可读介质可以包括计算机存储介质和通讯介质。计算机存储介质包括易失性和非易失性、可移动性和非移动性的介质,它可以采用信息存储技术中的任何方法或技术来实现,例如,计算机可读指令、数据结构、程序模块、或其它数据。计算机存储介质包括,但并不限制于,RAM、ROM、EEPROM、闪存存储器或者其它存储器技术、CD-ROM、数字通用盘(DVD)或者其它光盘存储、磁带盒、磁带、磁盘存储或者其它磁存储设备、或者任何其它计算机存储介质。通讯介质一般包括在调制数据信号例如,载波或其它可包括任何信息传递介质的传输机制中的计算机可读指令、数据结构、程序模块或其它采用调制数据信号方式的数据。术语“调制数据信号”是指一种具有以信号编码信息的方式设置或改变的一个或多个特性的信号的信号。举例来说,但并不限制于,通讯介质包括有线介质,例如,有线网络或者直接连线连接;和无线介质,例如,声波、RF红外和其它无线介质。任何上述的组合也应该包括于计算机可读介质的范围之内。
系统存储器230包括采用易失性和/或非易失性存储器形式的计算机存储介质,例如,只读存储器(ROM)231和随机存取存储器(RAM)232。基本输入/输出系统233(BIOS)包含着基本例程,该基本例程有助于在启动时在计算机210中的各元件之间传递信息,它一般存储于ROM 231。RAM 232一般包含着处理单元220可以进行即时访问和/或现场操作的数据和/或程序模块。举例来说,但并不限制于,图2说明了操作系统234、应用程序235、其它程序模块236和程序数据237。
计算机210也可以包括其它可移动性/非移动性的、易失性/非易失性的计算机存储介质。只是举例来说,图2图示了硬盘驱动器241,它可以对非移动性非易失性的磁介质进行读写操作;磁盘驱动器251,它可以对可移动性非易失性的磁盘252进行读写操作;以及光盘驱动器255,它可以对可移动性非易失性的光盘256,例如,CD-ROM或者其它光介质,进行读写操作。在典型的操作环境中所使用的其它可移动性/非移动性、易失性/非易失性计算机存储介质包括,但并不限制于,盒式磁带、闪存卡、数字通用盘、数字视频带、固态RAM、固态ROM、以及其它等等。硬盘驱动器241一般可通过一个诸如接口240的非移动存储器接口与系统总线221相连接;磁盘驱动器251和光盘驱动器255一般可通过一个诸如接口250的可移动性存储器接口与系统总线221相连接。
以上所讨论的和图2所说明的驱动器及其相关的计算机存储介质为计算机210提供了计算机可读指令、数据结构、程序模块和其它数据的存储。在图2中,例如,硬盘驱动器241可说明成存储操作系统244、应用程序245、其它程序模块246,和程序数据247。值得注意的是,这些元件也可以相同于或者不同于操作系统234、应用程序235、其它程序模块236,以及程序数据237。操作系统244、应用程序245、其它程序模块246以及程序数据247用不同的数字来表示,以至少说明这些是不同的拷贝。用户可以通过输入设备将命令和信息输入到计算机210,例如,键盘262和定位设备261,后者常称之为鼠标器、跟踪球或触摸垫。其它输入设备(未显示)可以包括麦克风、操纵杆、游戏垫、卫星天线、扫描仪等等。各种输入设备时常是通过一个与系统总线相耦合的用户输入接口260连接着处理单元220,并且也可以采用其它接口和总线结构来连接,例如,并行端口、游戏端口、或者通用串行总线(USB)。监视器291或者其它类型的显示设备也可以通过诸如视频接口290的接口连接着系统总线221。除了监视器之外,计算机也可以包括其它外围输出设备,例如,扬声器297和打印机296,它们都可以通过输入/输出外围接口295来连接。
计算机210可以在网路环境中工作,使用逻辑连接至一个或多个远程计算机,例如,远程计算机280。远程计算机280可以是个人计算机、服务器、路由器、网络PC、对等设备、或者其它通用网络结点,并且一般可包括与上述计算机210有关的许多或所有元件,虽然在图2中只例示了一种存储器存储设备281。在图2中所表示的逻辑连接包括一个局域网络(LAN)271和一个广域网络(WAN)273,并且也可以包括其它网络。这类网络环境在办公室内是十分普遍的,例如,企业级计算机网络,企业内的互联网和互联网。
当在LAN网络环境中使用时,计算机210可以通过一个网络接口或者一个适配器270与LAN 271相连接。当在WAN网络环境中使用时,计算机210一般可包括一个调制解调器272或者其它用于建立与诸如互联网之类的WAN 273通讯的部件。调制解调器272可以是内置的也可以是外置的,它通过输入/输出外围接口295或者其它合适的机制与系统总线221相连接。在网络环境中,所表示的与计算机210有关的程序模块,或者其中一部分,都可以存储于远程存储器存储设备中。举例来说,但并不限制于,图2说明了将远程应用程序285驻留在存储器设备281中。应该意识到的是,所显示的网络应用仅仅只是用于说明的目的,并且也可以使用其它建立在计算机之间通讯链路的部件。
以一个圆的两个半径和一个内圆弧的几何图形为边界的形式的上下文菜单(即,“扇形菜单”)可以通过本发明的各种实施例呈现给用户,以便于更好地帮助使用个人计算机的用户。该扇形菜单可以是由用户人工激活(例如,点击指针的右键)或者可以通过本发明各个实施例随着用户导航一个指针而自动激活。该扇形菜单可以包括由多个半径所剪切的扇形菜单组成的多个图段。各个菜单项目是由扇形菜单的一个图段所包含,且可以采用文字加以描述或者采用图形加以表示。在扇形菜单的一图段中的一个菜单项目所表示的操作可以通过指针在该图段上通过来加以选择。各个菜单项目可以静态定义或者根据用户导航指针的意图来动态推断。图3A显示了使用扇形菜单的系统300,并且图3B显示了在应用308的环境中所呈现的典型扇形菜单334。
系统300是一个计算环境,该环境具有在其上运行的一些硬件、一些软件应用、以及一个操作系统。用户302可以操作一个鼠标器306,来导航一个在个人计算机304中工作的图形用户接口中的指针336。个人计算机304是一台能够重复和快速执行计算和指令的机器,并且可以设计成每次只能一个人使用。相比较其它类型的计算机,例如,超级计算机、大型计算机和工作站,个人计算机304是较小的、较廉价的、并且更容易使用。个人计算机(例如,个人计算机304)以低成本向缺乏丰富编程经验的人士提供了计算能力。用户302可操作个人计算机304,以连接诸如互联网之类的世界范围的通讯网络和WWW等著名的基于图形信息的数据库,来发现实际上任何主题所需的信息。
其中,在个人计算机304上运行的应用程序是应用程序308。应用程序308,类似于窗口应用程序,它包括一个标题栏310,该标题栏是在窗口上部的一个水平空间,它包含着窗口的名称(未显示)。大多数标题栏,例如,标题栏310,还包含着一些按钮框,可用于关闭和调整窗口的大小,例如,按钮310-322。在标题栏中的点击允许用户302移动包括了应用308的整个窗口。按钮318是一个最小化按钮,它位于在应用308的右上角。当点击该按钮时,最小化按钮就隐藏应用308。相邻最小按钮318出现的是最大化按钮320。最大化按钮320会使一个窗口,例如,应用308,扩展和填充在一个较大窗口中的所有有效空间。相邻最大化按钮320出现的是关闭按钮322,这是一个其中标有X的正方形按钮。点击该关闭按钮322就可关闭应用308。
在标题栏310的下面是一个菜单栏324,这是一个在应用308中显示的矩形栏,用户302可以从该栏中选择菜单311-314。有效菜单的名称可以显示于菜单栏324,例如,“文件”、“编辑”、“帮助”。用键盘或者用鼠标器306来选择一个菜单就会显示该菜单的选项列表。用户302也可以选择帮助按钮326来显示一个帮助的弹出菜单(未显示),而不需要点击帮助菜单314。帮助菜单326可以由一个屏幕符号表示,象一个相邻于问号的对话泡。在菜单栏324的下面是一个应用程序308的工作区域328,在该工作区域中,应用308可以包含或者表示它自己的文档或者内容中,例如,内容块330。内容块330可以是一幅类似太阳隐藏在云中的位图图形。
假定用户302要将一个指针336沿着从指针336的位置开始到目标316即编辑菜单312结束的轨迹线路332移动。本发明的各种实施例呈现出扇形菜单334,它包括图段334A-334D,各个图段对应于一个菜单项目,该项目依次对应于一个操作,这帮助用户302进行他的应用308的操作。在指针336移动的方向中,在用户302导航的指针336移向目标316时不显示图段,从而避免阻挡、摸糊和阻碍用户302。在扇形菜单334较佳地向用户302自动显示的同时,用户也可以人工激活扇形菜单334,例如,通过按动在键盘上的键组合。
扇形菜单334在指针336周围,并且该指针336位于扇形菜单334的中心。一旦它出现,则扇形菜单334就跟踪指针336的移动并且与该指针336一起移动。扇形菜单334可以用四个图段334A-334D来显示,当然也可以采用任何适当数量的图段。图段334A-334D包含了文字描述“剪切”、“复制”、“粘贴”和“取消”,且分别识别了剪切、复制、粘贴和取消的操作。图段334A包含了一个表示剪切操作的菜单项目,该操作允许用户302去除一部分内容块,例如,内容块330。图段334B包含着一个表示复制操作的菜单项目,该项目允许用户302去复制信息并且在应用308的另一部分文档中再生该信息。图段334C包含了一个表示粘贴操作的菜单项目,该项目允许用户302插入文字或一个图形,例如,内容块330,该内容是从一个文档中已经剪切或复制的内容,被插入到相同的或不同的文档的另一位置。图段334D包含了一个表示取消操作的菜单项目,该操作可以倒退用户302的最后一个操作。例如,要取消删除,则可以选择在图段334D菜单项目中的取消操作,于是就可以将所删除的文字或内容块恢复到文档中,例如,内容块330。许多应用程序,例如,应用308,都使用户302能够取消或再做一项操作。任何合适的操作或用户界面控件都可以从图段334A-334D激活,代替其剪切、复制、粘贴和取消操作。
在本发明的一个实施例中,在图段334A-334D中的操作都是由编程员预先静止确定的。在本发明的另一实施例中,从图段334A-334D所激活的操作取决于用户302最近所使用的操作而改变;用户302最频繁使用的操作;与应用308的环境最相关的操作;或者是上述类别的一种组合。在本发明的另一实施例中,菜单项目的操作包括一个下拉操作,该下拉操作可以将在计算环境中的任何地方所选择的计算资源下拉。在本发明的另一实施例中,在图段334A-334D中所包含的菜单项目的操作都是基于通过一个移情的人机界面(本文称之为“移情界面”)所推断的用于302的意图,该“移情的界面”能够了解用户302并且可以推断用户的意图,从而有助于用户302更好地使用个人计算机304。在2003年6月6日所申请的美国专利申请号No.10/456,365,题为“移情式人机界面”中描述了这类移情界面,该文通过引用并包括于此。
使用移情界面,可以推断用户302的意图。用户302所喜欢选择的用户界面元件操作可以作为扇形菜单的图段334A-334D所包含的菜单项目来设置。随着用户302导航在应用308中的指针336,则在扇形菜单334的图段所包含的菜单项目中的操作可以根据用户302导航指针336的方向来变化。图3C说明了在两个不同时间所采集到的扇形菜单334的表示(但这是同时示出的,从而可以更好地说明扇形菜单334图段334A-334D所包含菜单项目的操作中的变化)。图3C所说明的多种元件类似于图3B所说明的多种元件,为了简化就不再重复它们的描述。
在第一时间快照中,用户沿着向着目标316A的轨迹线路331第一部分来导航指针336-1。移情界面以可编程方式来确定指向指针336-1移动的方向包括了一组在目标316A中所有感兴趣的用户界面元件(其中,包含了最小化按钮318、最大化按钮320、关闭按钮322和帮助按钮)。移情界面可计算出各个按钮318-326的分数情况,它反映用户302(或者,多个用户)可以选择一个对应按钮318-326的几率。如果一个按钮318-326具有很高的分数,则它的操作就可以变成为在图段334A-1-334D-1所包含的一个菜单项目中的一个操作。于是,在不必实际访问目标316A的情况下,用户302仍可以通过选择在扇形菜单334-1的图段334A-1-334D-1中的一个菜单项目来激活一个所需要的操作。
图段334A-1包含了一个具有象最小化按钮318的屏幕符号,一旦触发最小化按钮就可以激活最小化按钮318的操作。图段334B-1包含了一个象最大化按钮320的屏幕符号,一旦触发最大化按钮就可以激活最大化按钮320的操作。图段334C-1包含了一个象关闭按钮322的屏幕符号,一旦触发该关闭按钮就可以激活关闭按钮322的操作。图段334D-1包含了一个象帮助按钮326的屏幕符号,一旦触发该帮助按钮就可以激活帮助按钮326的操作。于是,扇形菜单334-1推断用户302的意图去访问目标316A,在该目标中,按钮318-326的操作显示为扇形菜单334-1图段334A-1-334D-1所包含的可选择菜单项目。
假定代替完成指针336-1的导航到目标316A的终点,则用户302导航指针336-1从目标316A移出并且移向另一目标316B,即编辑菜单312。指针336-2表示了第二时间快照,在该快照中,用户302已经导航至了指针336-2定位不同于指针336-1定位的位置上。已经从扇形菜单334-1的菜单项目的操作转换成扇形菜单334-2的菜单项目的操作。
随着用户302将指针336-2移向目标316B并且从目标316A移开时,移情界面就推断用户302要求选择编辑菜单312和它的一个菜单项目。移情界面计算编辑菜单312的各个菜单项目的分数。对于已具有足够高的分数的编辑菜单312中的这些菜单项目来说,扇形菜单334-2的图段334A-2-334D-2包含了这些菜单项目。(另外,编辑菜单312的所有菜单项目都可以由扇形菜单334-2所包含,但包含对应菜单项目的各个图段表示根据它的计算分数是不同的。这些表示可以在尺寸上、颜色上、透明性上以及其它等等方面不相同。)剪切操作是由图段334A-2包含的一个菜单项目表示;复制操作是由图段334B-2包含的一个菜单项目表示;粘贴操作是由图段334C-2所包含的一个菜单项目表示;取消操作是由图段334D-2所包含的一个菜单项目表示。这些操作都为用户所准备着,以便于在不必需实际访问编辑菜单312的条件下进行选择。图3D说明了如何来选择扇形菜单的一个菜单项目。
图3D说明了另一种扇形菜单334-3。尽管在扇形菜单334-1只作为屏幕符号来表示菜单项目并且扇形菜单334-2只作为文字描述来表示菜单项目的,但扇形334-3可作为包含屏幕符号和文字描述的组合来表示菜单项目。图段334A-3包含一个具有象一对剪刀的屏幕符号的菜单项目,表示剪切操作。图段334B-3包含一个具有象一组文档拷贝的屏幕符号的菜单项目,表示复制操作。图段334C-3包含一个具有象一块剪辑板的屏幕符号的菜单项目,以表示粘贴操作。图段334D-3包含一个具有文字“取消”的屏幕符号的菜单项目,以表示取消操作。
假定用户所导航的指针336-3是沿着轨迹线路332-1的。为了选择由图段334A-3所包含的菜单项目表示的剪切操作,用户302将故意和突然离开轨迹线路332-1,进入新的轨迹线路332-2,并且在图段334A-3上通过。通过在图段334A-3上拖曳指针336-3,就可以触发剪切操作。在其它图段334B-3-334D-3中所包含的菜单项目也可以类似选择。
许多其它适用的技术都可能用于选择由菜单项目所表示的操作。例如,一种适用的技术包括使用键盘提示来标明菜单项目中的文字描述的一个字母(例如,“UNDO”),从而当用户按动的一个键(例如,“U”)结合另一键(例如,CRTL键)时,就能选择与菜单项目相关的操作(例如,取消操作)。另一种适用的技术包括用编程方式将一个扇形菜单的各个图段与数字相关联,从而当选择该数字(例如,键“1”与CTRL键同时按动)时,就能够选择对应于部分所包含的菜单项目的操作。另外,还有一种适用的技术包括在对应部分的鼠标器上的提示按钮,从而当激活鼠标器的按钮时,就选择了与由菜单项目所包含的菜单项目有关的操作。另一种适用技术包括将鼠标上的按钮与相应的图段相关联,从而当触发鼠标的按钮时,选择由菜单项目包含的与菜单项目相关联的操作。
当扇形菜单334-3对用户302不再有用时,该菜单就会消失。可以使用任何适用的技术在合适的时间使得扇形菜单334-3消失。一种适用的技术包括在选择由菜单项目所表示的操作结束时去除扇形菜单334-3。另一种适用的技术包括在扇形菜单334-3呈现之后的一段时间之后去除扇形菜单334-3。还有另外一种适用的技术包括通过鼠标器306的触发所产生的突然移动,其目的不是用于选择由菜单项目所表示的一项操作。
图3E说明了一种适用于呈现扇形菜单的系统338。系统338是一组用于呈现诸如扇形菜单334-3的扇形菜单的元件。系统338包括了一个窗口环境340。窗口环境340包含有关窗口和在这些窗口中的用户界面元件的信息并提供这些信息。窗口环境340也提供了这些用户界面元件和窗口所在的位置。在一例典型的窗口环境的实施例中,所获得信息块可以是树。树是一种数据结构,该数据结构可以包括一个或多个以分级方式相互连接在一起的结点。一个结点可以是根结点并且表示图形用户界面的主窗口;除了根结点以外的各个结点是子结点并且一般只有一个其它结点,这也是一个窗口;以及各个结点都具有零或者多个结点可作为子结点,各个结点也都是一个窗口。通过遍历该树,就能够获得所有的用户界面元件,其中例如,菜单、按钮、工具栏以及列表框,并且它们在计算机屏幕上所定位的位置。树的一部分也可以设置在高速缓存器350中。
鼠标器306的移动可以由一个鼠标信息收集器342来检测。鼠标信息收集器342是在所包括的参考资料中描述的,但为了简洁而不再作另外的讨论。鼠标信息收集器342向缓存器350提供了某些信息块,其中例如,位置、速度以及加速度。
缓存器350不仅以编程的方式包含了用户界面元件,例如,菜单、按钮、工具栏和列表框,还包含了指针336-3的导航信息。各种信息块都可以从高速缓存器350推断,例如,用户302可能遇到的用户界面元件,如果用户302继续在特殊轨迹线路上,例如,轨迹线路332-1。
系统338也包括一个中央分级数据库346,该数据库可用于存储所需的信息,以配置个人计算机304的操作系统、应用程序,以及硬件设备。这样分级数据库包含着操作系统的信息,该操作系统一般是在扇形菜单334-3操作过程中所引用的。一个中央分级数据库的典型实施是微软
操作系统的注册。存储于中央分级数据库346中有关扇形菜单334-3的信息块包括用户已经使用一个特殊用户界面元件的次数。该次数可以存储于一个计数器中。另外,中央分级数据库346存储了一个与用户302最后一次使用过的特殊用户界面元件有关的时间标记。所存储的其它信息块包括扇形菜单334-3如何呈现给用户302;要与扇形菜单334-3一起显示的具体的菜单项目;在扇形菜单334-3图段中的菜单项目是静态的还是动态的;在扇形菜单334-3图段中所显示的菜单项目是与应用有关的(例如,字处理处理应用程序可以具有由扇形菜单334-3的菜单项目所表示的操作,且这些操作可以不同于电子制表软件应用程序的操作);当扇形菜单334-3呈现给用户334-3的状态;扇形菜单334-3呈现时的尺寸;扇形菜单334-3的形状;以及一个特殊用户界面元件是否必须总是与扇形菜单334-3一起呈现。
配置元件344从中央分级数据库346取得这些信息块并且将其放置在缓存器350中,以便于移情界面348的分析。移情界面348是在所包括参考文献中讨论的,为了简洁讨论故本文就不再重复该讨论。使用在缓存器350中的信息,移情界面348会在用户302所导航的指针336-3的前进方向上计划一个目标区域。可以由移情界面348对在该计划区域中的用户界面元件进行分析并给出一个分数。这些具有足够高分数的用户界面元件可以作为扇形菜单334-3图段中菜单项目来显示。
各个菜单项目的表示可以根据它对应的分数相互变化。用户302最喜欢选择的这些用户界面元件可以由系统338用比其它菜单项目更显著的方式来表示。例如,包含具有高分数的菜单项目的图段区域可以比其它图段大。或者,表示在图段中的高分数菜单项目所使用的颜色可以比其它图段更亮或更粗些。使用阿尔法混合的方法,凡具有较高分数的菜单项目都可以显示得比透明的更暗淡些。也有可能采用许多其它合适的现有技术。
移情引擎348掌握着一个图形引擎352,以便于扇形菜单334-3可以与包含菜单项目的图段一起呈现。图形引擎352能够直接访问个人计算机的图形硬件,以便于在个人计算机304上呈现出扇形菜单334-3。一旦已经显示了扇形菜单334-3,用户302就可以使用鼠标器306移动指针336-3来选择菜单项目,例如,在图段334A-3中的剪切操作。这类用户的行为可以由用户行为元件354来记录并且存储于高速缓存器350。配置元件344可周期性地(较佳的是,每间隔10至30分钟)复制高速缓存器350的一部分并且将这部分内容存储于中央分级数据库346,以便于帮助移情界面348未来的分析。
图4A-4G说明了一种用于在用户在用户界面中导航指针时呈现扇形菜单的方法400。为了清楚起见,方法400的下列描述将参考结合系统300(图3A-3D)和系统338(图3E)所说明的各种元件。从开始方框起,方法400就进入在延续端(“端点A”)和出口端(“端点B”)之间所定义的一系列方法步骤404。这组方法步骤404描述了收集有关指针信息的过程,例如,指针336-3和它的窗口环境。
从端点A(图4B)开始,方法400进入方框410,在该方框中,用户302导航指针336-3向着用户界面目标,例如,目标316A。鼠标信息收集器342获取鼠标器306随着用户302导航指针336-3时的鼠标信息。见方框412。接着,方法400将该鼠标信息(例如,位置、速度、加速度,等等)放置于高速缓存器350。见方框414。在方框416,方法400从窗口环境340中获取所感兴趣的用户界面元件有关的信息。正如以上所讨论的,一个典型的窗口环境的实施包括一个树数据结构。随后,可以遍历该树数据结构并且可以从中获取所感兴趣的用户界面元件。在从树数据结构中获取了信息之后,方法400就将该用户界面元件信息(例如,按钮。控制,等等)放置于高速缓存器350。见方框418。配置元件344将用户界面元件的使用次数(受欢迎程度)和时间标志(使用期)放置于高速缓存器,以便于移情界面348的以后分析。见方框420。从此之后,方法400就进入到另一延续端(“端点A1”)。
从端点A1(图4C)开始,配置元件344将有关静态或动态的菜单项目的信息放置于高速缓存器350。见方框422。静态菜单项目是不会在指针336-3移动时变化,然而动态菜单项目是随着指针336-3移动方向而变化。在方框424,配置元件344将在扇形菜单334-3中所必须呈现的一个或多个菜单项目放置于高速缓存器。配置元件344随后将适用于特殊软件应用的特殊菜单项目的有关信息放置于高速缓存器350。见方框426。例如,假定一个字处理应用始终需要一个文件菜单项目呈现在扇形菜单334-3中。在方框426中的处理步骤将强加一个要求,即无论何时到扇形菜单334-3呈现给用户302,呈现文件菜单项目。
随后,方法400进入到方框428,在该方框428中,配置元件344将扇形菜单334-3呈现给用户302时的相关信息放置于高速缓存器350。在方框430,配置元件344将有关扇形菜单334-3形状的信息放置于高速缓存器350。尽管扇形菜单的几何形状显示成圆形,但可以使用其它适合的几何形状,例如,矩形、三角形或椭圆形。随后,配置元件344将有关扇形菜单334-3尺寸的信息放置于高速缓存器350。见方框432。随后,方法400就进入到另一延续端(“端点A2”)。
从端点A2(图4D)开始,方法400进入方框434,在该方框中,配置元件344就将阿尔法混合信息放置于高速缓存器350。阿尔法混合是一项允许两个图形图像合并的技术,其中各个图形都包括等于100%的百分比的和。阿尔法混合技术创建一个合并图像的不透明度或透明度,例如,扇形菜单334-3的图段。随后,方法400就进入方框436,在该方框中,配置元件344将扇形菜单334-3图段的文字格式放置于高速缓存器350。文字信息可以除其它文字格式之外还包括斜体、粗体或者下划线。在方框438,配置元件344将扇形菜单334-3图段的颜色格式放置于高速缓存器350。配置元件344可以将菜单项目所要使用的图标放置于高速缓存器350。见方框440。方法400随后进入到出口端B。
从端点B(图4A)开始,方法400进入到在入口端(“端口C”)和出口端(“端口D”)之间所定义的一组方法步骤406。这组方法步骤406描述了以导航指针336-3时推断用户302的意图用于呈现扇形菜单334-3。从端点C(图4E)开始,方法400就进入判决方框442,在该方框中,进行测试以检查扇形菜单334-3是否是动态的。如果在判决方框442测试的答案是否,则方法400就进入到出口端D。否则,如果在判决方框442的测试答案为是,则移情界面348在用户302所导航的指针方向中计划一个目标区域。见方框444。在方框446,移情界面348确定在计划的目标区域中所感兴趣的用户界面元件。移情界面348随后计算各个感兴趣用户界面元件的分数。见方框448。移情界面348随后将与所感兴趣的用户界面元件有关的分数放置于高速缓存器350。见方框450。从这里开始,方法400就进入出口端D。
从端点D(图4A)开始,方法400就进入在延续端(“端点E”)和出口端(“端点F”)之间所定义的一组方法步骤408。这组方法步骤408描述了随着指针336-3移动来显示扇形菜单334-3。从端点F(图4F)开始,该方法400进入判决方框452,在该方框中,进行测试以检查是否显示扇形菜单334-3。如果测试的答案为是,则方法400就根据对用户界面元件的对应可能性分数和在高速缓存器350中所表示的规格来格式化每个菜单项目。见方框454。随后,方法400使得图形引擎352呈现出扇形菜单334-3并且可以和指针336-3一起移动扇形菜单334-3。见方框456。方法400随后进入另一延续端(“端点E1”)。
如果在判决方框452的答案是否,则配置元件344获得在高速缓存器350中的信息并且将该信息写入到中央分级数据库346。见方框458。较佳的是,配置元件344每间隔10-30分钟检查高速缓存器350一次,并且将新的信息写入到中央分级数据库346。对于移情界面348的将来分析来说,诸如用户选择一个特殊用户界面元件的次数的信息是有用的。方法400随后进入另一延续端(“端点C1”),以循环回到判决方框442,在该方框中,可以重复上述处理步骤。
从端点E1(图4G)开始,方法400进入判决方框460,在该方框中,进行测试,以确定指针336-3是否已经改变了轨迹方向。如果答案是否定的,则方法400就进入端点C1,以循环回到判决方框442,在该方框中,可以重复上述处理步骤。否则,在判决方框460的测试答案为是,并且方法400进入另一判决方框462,在该方框中,进行另一测试,以确定指针336-3是否已经在一个菜单项目上通过。如果在判决方框462中的测试答案是否,则方法400就进入端点C1,并且重复从判决方框442开始的上述处理步骤。
如果在判决方框462中的测试答案为是,则方法400就触发应于指针336-3已经通过的菜单项目的用户界面元件。见方框464。例如,如果指针336-3已经在包含属于剪切操作的菜单项目的图段334A-3上通过,就激活剪切操作。移情引擎348随后将用户的行为写入高速缓存器350,该信息最终可以存储于中央分级数据库346,以便于以后的分析。见方框466。从这里开始,方法400进入端点C1,以循环回到判决方框442,在该方框中,可以重复上述处理步骤。
尽管已说明和讨论本发明的较佳实施例,应该意识到的是,可以在不背离本发明的精神和范围的条件下产生各种各样的变化。