可滚动的菜单以及工具栏的制作方法

文档序号:7911511阅读:191来源:国知局
专利名称:可滚动的菜单以及工具栏的制作方法
技术领域
本发明涉及图形用户界面中菜单或工具栏选项的呈现。特别地,本发明涉及呈现滚动通过特定位置的多个选项,在该特定位置处可以选择选项。
背景技术
计算机应用的用户界面经常提供大量命令或用户界面工具以供用户选择。例如, 许多应用包括下拉菜单。这种菜单经常包括命令列表。存在诸如打开文件、打印文档、保存文档等的标准命令,以及诸如插入分页符(用于文字处理应用)、设计单元格式(用于电子表格应用)等的更多专用命令。许多应用还包括工具栏或工具选项板。例如,许多计算应用在其用户界面的顶部具有一行或多行工具栏。工具栏包括各种类型的工具。绘图应用具有绘图工具,视频编辑应用具有视频编辑工具,等等。一些应用还具有浮动工具选项板。例如,一些视频编辑应用包括浮动修剪工具选项板,其允许用户在用于视频编辑的各种不同修剪工具之间进行选择。这种工具栏、工具选项板以及下拉菜单可以在图形用户界面中占据重要的实际地位。此外,这种菜单和工具栏中的项目的数量受屏幕空间的限制。例如,用户不想要占据屏幕太多空间的浮动工具选项板。向工具选项板添加的选项越多,工具选项板就必须变得越大或者选项的尺寸就必须变得越小。就像工具选项板的尺寸只可以增大到一定点一样,选项的尺寸也只可以在它们变得难以辨别之前减小到一定点。由此,需要有方法来显示在将选项保持在视觉上可识别的尺寸的同时不占据大量屏幕空间的工具栏或菜单。

发明内容
本发明的一些实施例提供了一种新颖的用于在图形用户界面中呈现菜单的方法。 菜单包括多个可选菜单项,该多个可选菜单项被布置为基于用户输入以特定顺序滚动通过选择窗口。在一些实施例中,菜单项中的每一个都与命令相关联。当菜单项位于选择窗口中时,用户可以选择菜单项,以便执行与该菜单项相关联的命令。在一些实施例中,菜单项可以被显示为标准文本项目(例如,“文件”、“保存”、“打印”等),或者可以被显示为图标(例如,表示诸如绘图工具、视频编辑工具等的各种工具的图标)。菜单项在菜单内被排序(例如,第一菜单项被布置为第二菜单项左侧的一个菜单项)。不同实施例使用不同技术确定这种顺序。例如,在一些实施例中,顺序是由用户、随机处理、和/或使用该菜单的操作系统或程序的开发者来定义的。在一些实施例中,顺序还可以基于使用统计、比较经常选择的喜欢的菜单项而改变。选择窗口是指示器(例如,突出显示,框,等),其指示当前可以选择特定菜单项。 在一些实施例中,当菜单项滚动通过时,选择窗口为静止的或者近似静止的。在菜单中,菜单项的顺序是菜单项响应于用户输入而滚动通过选择窗口的顺序。然而,当初始呈现菜单时,初始显示在选择窗口中的菜单项不需要是该顺序中的第一菜单项(即,最左侧的菜单项、最上面的菜单项,等)。在菜单项可以沿着两个方向(例如,左和右、上和下)滚动时,一些实施例初始将位于顺序的中间的菜单项显示在选择窗口中。在一些实施例中,根据项目如何被排序,滚动的属性可以具有两种不同形式。在一些情况下,菜单项不能滚动超过顺序中的第一个项目和最后一个项目。然而,在其它情况下,当菜单项的排序仅是相对彼此地定义时,项目可以以循环的方式连续滚动,并且仅仅就存在初始显示在选择窗口中的项目来说,存在第一个项目。在这些情况中的任何一种情形中,一些实施例以如下的方式将菜单项滚动通过选择窗口,该方式为菜单项的数量不受图形用户界面中的空间限制。例如,一些实施例只显示当前位于选择窗口中的菜单项以及位于选择窗口的任一侧的菜单项的一部分。一些实施例在选择窗口的任一侧显示少量菜单项,其中实际上不在选择窗口中的项目被显示为部分淡化。当菜单项滚动通过选择窗口时,新的项目出现在显示器中,而之前显示的项目消失。在不同实施例中,显示出的菜单的形状也不同。一些实施例以线形形状显示菜单, 其中菜单项在一维上(例如,水平或垂直)滚动。其它实施例将菜单显示为半圆形,其中菜单项沿着该半圆形滚动。菜单项的其它非线形配置也是可能的。由于一些实施例将菜单固定地显示在设定的位置,而其它实施例需要用户输入以便调用菜单的显示,因此不同的实施例中也可能不同地呈现菜单。例如,该菜单可能在媒体编辑应用中是在该应用的用户界面中占据了特定位置的工具栏,或者在操作系统中是通过键击调用的菜单。不同实施例提供用于导航通过菜单项的不同方案。在一些实施例中,用户可以点击在选择窗口的任一侧所显示的项目之上,以便使菜单顺序中的下一个项目移动到选择窗口中。可替代地或者与之结合地,在一些实施例中,用户可以通过利用各种形式的滑动或挥动输入(例如,拖拽鼠标)来滚动菜单项。在一些情况下,菜单项被显示为以大的可辨别的步伐移动,而在其它情况下,项目被显示为以小的步伐移动,这些小的步伐使该移动看上去流畅。当可选菜单项被布置在选择窗口中时,用户可以选择菜单项,以便使与所选菜单项相关联的指令被执行。在一些实施例中,指令可以激活特定工具(例如,如果菜单是一组视频编辑工具),可以使命令(例如,保存文件、打印文档等)被执行,或者可以打开子菜单。 在一些实施例中,与之前的菜单垂直地打开子菜单。例如,当初始菜单中的菜单项水平滚动通过选择窗口时,一些实施例打开子菜单,以使得子菜单中的菜单项垂直滚动通过选择窗不同的实施例使得用户能够以不同方式选择位于选择窗口中的菜单项。在一些实施例中,用户点击或者双击选择窗口中的菜单项。在其它实施例中,用户通过在菜单项正在滚动通过选择窗口的同时简单地释放鼠标按钮,来选择该项目。对于打开子菜单的菜单项, 当该菜单项进入选择窗口时,一些实施例自动打开子菜单。


在所附权利要求中阐明了本发明的新颖的特征。然而,出于解释的目的,在下面的附图中阐明本发明的几个实施例。图1示出了包括8个菜单项的菜单。图2示出了根据本发明一些实施例的图1的菜单的显示和使用。
图3概念地示出了用于显示菜单和接收用户与菜单的交互的一些实施例的过程。图4概念地示出了用于基于来自光标控制器的单击输入导航菜单的一些实施例的过程。图5示出了根据图4的过程的菜单的导航。图6概念地示出了用于基于来自光标控制器的点击和拖拽输入导航菜单的一些实施例的第一过程。图7示出了根据图6的过程的菜单的导航。图8概念地示出了用于基于来自光标控制器的点击和拖拽输入导航菜单的一些实施例的第二过程。图9示出了根据图8的过程的菜单的导航。图10概念地示出了用于基于来自光标控制器的点击和拖拽输入导航菜单的一些实施例的第三过程。图11示出了根据图10的过程的菜单的导航。图12示出了一些实施例的菜单和子菜单的导航的例子。图13示出了一些实施例的菜单,在用户滚动通过该菜单时,该菜单将主显示之外的菜单项显示为淡化。图14示出了一些实施例的半圆形菜单的打开。图15示出了图14的菜单的导航以及来自该菜单的项目的选择。图16示出了包括打开子菜单的菜单项的半圆形菜单的例子。图17示出了一些实施例的圆形菜单的打开。图18示出了在子菜单已经在选择窗口的上方和下方垂直打开之后被部分淡化的圆形菜单。图19示出了显示一些实施例的操作系统的各个特征的计算机桌面。图20示出了用于创建合成视频呈现并且使用一些实施例的菜单的视频编辑应用。图21示出了正在显示使用一些实施例的菜单的网页浏览器的手持设备。图22概念地示出了用于呈现菜单的一些实施例的应用的软件架构。图23概念地示出了用于制造存储计算机程序的计算机可读介质的一些实施例的过程。图M概念地示出了计算机系统,采用该计算机系统来实现本发明的一些实施例。
具体实施例方式在下面的说明中,出于解释的目的,阐述了大量细节。然而,本领域技术人员将认识到,在不使用这些特定细节的情况下,也能够实施本发明。例如,应用的一些部分涉及接收来自鼠标的输入的例子。本领域技术人员将认识到,可以从其它光标控制器接收类似输入,或者甚至在没有光标的情况下从触摸屏也可以接收类似输入。本发明的一些实施例提供了一种新颖的用于在图形用户界面中呈现菜单的方法。 菜单包括多个可选择的菜单项,该菜单项被布置为基于用户输入以特定顺序滚动通过选择窗口。在一些实施例中,菜单项中的每一个与命令相关联。当菜单项位于选择窗口中时,用户可以选择该菜单项,以便执行与该菜单项相关联的命令。在一些实施例中,菜单项可以被显示为标准文本项目(例如,“文件”、“保存”、“打印”等),或者可以被显示为图标(例如,表示诸如绘图工具、视频编辑工具等的各种工具的图标)。图1示出了包括8个菜单项101-108的菜单100。菜单项101-108从第一个项目 A(IOl)至最后的项目H(IOS)进行排序。这意味着,例如,在菜单中,项目C(103)将出现在项目B(102)之后(例如,其右侧)并且在项目D(104)之前(例如,其左侧)。不同的实施例采用不同的技术来确定这种顺序。例如,在一些实施例中,可以由用户、随机处理、和/或使用该菜单的操作系统或程序的开发者定义该顺序。在一些实施例中,顺序还可以基于使用统计、比较经常选择的喜欢的菜单项而改变。例如,如果项目C(KXB)从未被选择过,则它可能被移动到该顺序中的项目H(IOS)之后。图2示出了根据本发明的一些实施例的菜单100的显示和使用。图2示出了处于初始阶段210以及两个可能的第二阶段220和230的菜单100,处于初始阶段210时,菜单 100在选择窗口中具有初始项目,并且处于两个可能的第二阶段220和230时,菜单100在选择窗口中具有不同的项目。如在阶段210示出的,菜单100的显示包括选择窗口 205。选择窗口是指示器(例如,在这个例子中为突出显示),其指示当前可以选择特定菜单项。当初始呈现菜单时,初始被显示在选择窗口中的菜单项不需要是顺序中的第一个菜单项。事实上,如在阶段210示出的,对于菜单100,显示在选择窗口 205中的初始菜单项是第四菜单项104,其接近用于菜单100的顺序的中间。阶段220和230示出了菜单100在两个可能的方向上滚动通过选择窗口 205。阶段220示出了用于向右滚动通过菜单100的用户输入的结果,由此将项目C(KXB)从左侧带入选择窗口 205中,并且将项目D (104)向右移动到大部分位于显示之外。类似地,阶段230 示出了用于向左滚动通过菜单100的用户输入的结果,由此将项目E (105)从右侧带入选择窗口 205中,并且将项目D(104)向左移动到大部分位于显示之外。本领域技术人员将认识到,尽管示例菜单100左右滚动,但是一些实施例将具有上下的主滚动方向,将对角线地滚动?等等ο图3概念地示出了一些实施例的用于显示菜单并接收用户与菜单的交互的过程 300。如所示出的,过程300从接收(在305)构成菜单的一组菜单项(诸如菜单项101-108) 开始。由于以项目的数量不受图形用户界面中的空间的限制的方式来显示菜单,因此这组菜单项可以包括任意数量的项目。然后,过程300确定(在310)对于菜单项的顺序。如上所述,该顺序可以由软件设计者编码,由用户确定,通过使用统计来确定,等等。接着,该过程确定(在31 将被显示在选择窗口中的初始菜单项。很像菜单项的顺序一样,一些实施例基于编码的指令、用户输入、使用统计等来确定初始菜单项。接着,该过程显示(在320)在选择窗口中具有初始项目的菜单。显示菜单不必包括显示所有菜单项;如图2所示,一些实施例一次仅显示一个完整的菜单项,这使得菜单能够包括无限数量的项目,因为添加更多的菜单项不会使菜单占用任何更多的空间。一些实施例在选择窗口的任一侧显示少量菜单项,其中不在选择窗口中的那些项目被显示为部分淡化。例如,在图2的阶段210,这种实施例可能将项目B(102)和项目C(103)显示在选择窗口 205的左侧(以及也将项目显示在右侧),但是将这些项目显示为部分透明,以便指示它们不在选择窗口中。接下来,过程300确定(在32 是否已经接收到任何输入。可以通过光标控制器 (例如,拖拽、擦(scrubbing)、点击等)或通过键盘(例如,按下方向键、Enter键等)接收输入,该光标控制器诸如为鼠标、跟踪板、触摸板等。当没有接收到输入时,过程进行到下面描述的355。否则,过程确定(在330)该输入是否用于滚动通过菜单。在下面的部分中,进一步详细描述用于滚动通过菜单的不同类型的输入,诸如利用光标控制设备进行拖拽。当该输入用于滚动通过菜单时,过程显示(在33 菜单的滚动,然后进行到下面描述的355。在一些实施例中,当菜单项滚动通过时,选择窗口不移动。一些实施例以恒定速率将菜单项滚动通过选择窗口,而其它实施例将菜单项以大的可辨识地离散的步伐跳入选择窗口中。此外,在一些实施例中,菜单项以恒定速率滚动,但是选择窗口在其初始位置的阈值距离内移动,从一个项目跳到下一个项目。在下面的部分中,进一步详细描述不同的菜单滚动显示。在一些实施例中,在菜单顺序的边界处的滚动的属性可以具有两种不同形式中的一种。在一些情况下,该顺序具有被定义的第一个项目和最后一个项目,并且项目不能滚动超过这些端点项目。例如,如果菜单100以这种方式布置,那么当用户滚动菜单以使得项目 A(IOl)位于选择窗口 205中时,将不会有项目被部分地显示在项目A(IOl)的左侧。另一方面,在一些实施例中,菜单项的排序仅是相对的。在这种情况下,以没有开头或结尾的环的形式来排序这些项目,并且由此可以以循环的形式连续地滚动通过这些项目。如果菜单 100以这种方式布置,那么当用户滚动菜单以使得项目A(IOl)位于选择窗口 205中时,项目 H(IOS)会被部分显示在左侧,并且将菜单向右滚动会将项目H(IOS)带入选择窗口 205中。当所接收的输入不是用于滚动通过菜单时,过程300确定(在340)该输入是否用于选择菜单项。用于选择菜单项的输入可以具有点击、双击、光标控制器按钮的释放等的形式。当所接收的输入用于选择菜单项时,过程显示(在34 该选择。例如,一些实施例将除所选项目之外的所有菜单项渐隐,或者将该菜单项显示为闪烁。然后,该过程执行(在350)与所选菜单项相关联的指令,并且结束。菜单项可以致使所有不同类型的指令被执行。菜单项可以表示不同的视频编辑工具(或者任何其它类型的用户界面工具),诸如刀片(blade)、波纹以及滑动工具。菜单还可以是子菜单和命令 (例如,保存文件、打印文档等)的列表。在一些实施例中,与之前的菜单垂直地打开子菜单。例如,如果菜单100的项目C(103)致使子菜单打开,那么如果在阶段220,用户选择此项目,则子菜单会垂直地打开,其中项目位于选择窗口 205的上方和/或下方。当在340处所接收的输入不是用于选择菜单项时,过程确定(在35 是否继续显示菜单。如果在预定量的时间内没有接收到输入,或者如果该菜单是其一部分的应用被关闭,那么一些实施例停止显示菜单。一些实施例包括用于用户选择关闭菜单的选项。当过程300确定继续显示菜单时,过程进行到325,以便继续确定是否接收到输入。否则,该过程结束。过程300可以应用于显示具有不同形状的菜单的各种实施例。一些实施例,如采用菜单100的情况一样,以线形形式显示菜单,其中菜单项在一维上滚动。图2示出了水平滚动的菜单100,但是菜单项可以仅仅容易地垂直地排列。其它实施例不是一维地以线形方式显示菜单,而是将菜单显示为半圆形,其中菜单项沿着半圆形滚动。菜单项的其它配置也是可能的,诸如以圆形形式一次显示所有菜单项。下面的部分中描述了本发明的几个更详细的实施例。部分I描述并示出线形菜单的各个特征,部分II描述并示出半圆形菜单的各个特征,以及部分III给出可替换的圆形菜单的例子,但是这些部分中描述的许多特征不限于具有这些例子中使用的特定形状的菜单。接着,部分IV描述利用一些实施例的菜单的应用的软件架构。部分V描述了实现本发明的一些实施例的计算机系统。I.线形显示的菜单如上所述,本发明的一些实施例提供了以线形方式显示的菜单。下面五个子部分中的每个子部分描述这种菜单的例子,其中菜单项滚动通过选择窗口。第一至第四子部分中的每个子部分给出用于菜单项滚动通过选择窗口的不同方式,而第五子部分给出了其它菜单特征。本领域技术人员将认识到,这些部分中描述的许多特征(例如,菜单项如何滚动通过选择窗口,如何显示子菜单,等等)可以应用于不是线形显示的菜单(例如,半圆形菜单)。下面子部分中的菜单全部被示为主要进行左右移动。本领域技术人员将认识到, 能够实现上下移动的类似的菜单。此外,一些实施例初始只显示单个菜单项,并且在被激活时,可以垂直或水平地显示。当激活时,显示菜单的应用等待光标控制器输入——如果该输入主要是上或下,则垂直地显示该菜单,而如果该输入主要是左或右,则水平地显示该菜单。A.基于点击的滚动图4概念地示出了基于来自光标控制器的单击输入导航菜单的一些实施例的过程400。过程400将参照图5进行描述,图5示出了一些实施例的这种菜单500的导航。图 5示出了三个阶段510、520和530。阶段510示出了初始被显示的菜单500,阶段520示出了在接收到导航菜单的点击输入之前的菜单500和光标515,以及阶段530示出了在接收到点击输入之后的菜单500。如所示出的,过程400从显示(在40 在菜单的选择窗口中具有初始项目的菜单开始。在一些实施例中,菜单包括具有特定顺序的许多菜单项。一些实施例将这些菜单项从第一个项目至最后一个项目地排序,而其它实施例仅将菜单项彼此相对地排序。在后一种情况中,可以无限循环地导航菜单项。如图5中,一些实施例只显示选择窗口、选择窗口中的一个项目以及位于选择窗口的任一侧的菜单项的部分。阶段510示出了具有项目540的选择窗口 505。项目540是在选择窗口 505中初始显示的项目。在阶段510,项目535被部分显示在项目540的左侧, 以及项目545被部分显示在项目540的右侧。项目535是在菜单项的顺序中项目540之前的一个项目,而项目545是项目540之后的一个项目。接着,过程400接收(在410)鼠标按钮的点击(即,鼠标按钮的按下和释放)。该点击可以来自左鼠标按钮(当在识别来自两个或更多个鼠标按钮的输入的系统上执行该过程时)或来自作为鼠标上的唯一按钮的按钮(当在一个按钮系统上执行该过程时)。本领域技术人员将理解,类似的过程可以接收来自其它类型的输入设备的类似输入,如下所述。然后,该过程确定在点击时光标的位置并且将该位置和点击转化为动作。该过程确定(在41 在没有选择项目的情况下,鼠标点击是否指示应当关闭菜单。当鼠标点击如此指示时,该过程结束。例如,一些实施例包括“X”或用于关闭菜单的类似图形指示。当用户点击“X”而不是选择项目或在任一方向上滚动菜单时,菜单关闭。一些实施例不包括这种选项,并且用于导航这种菜单的过程会因此不同。例如,在一些实施例中,菜单在应用中是永久工具栏,并且在该应用关闭之前不关闭。当鼠标点击不指示应当关闭菜单时,过程确定(在41 光标是否在选择窗口上。 当光标在选择窗口上时,过程选择(在420)位于选择窗口中的菜单项。在一些实施例中, 选择菜单项致使与所选菜单项相关联的指令被执行,诸如执行命令、打开子菜单或激活用户界面工具。在选择该菜单项之后,该过程结束。当光标不在选择窗口上时,过程确定(在42 光标是否在选择窗口的右侧。图5 的阶段520示出了这种情况。光标515位于选择窗口 505的右侧,并且位于部分显示的项目545上。当光标在点击时在选择窗口的右侧的时候,过程将菜单项向左滚动(在430) — 个项目。这致使之前在选择窗口右侧的菜单项被显示在选择窗口中。图5的阶段530示出了当光标515位于520所示出的位置上时接收到鼠标按钮的点击的结果。作为点击的结果,项目545现在位于选择窗口 505中,项目540只被部分地示出在选择窗口的左侧,并且新的项目550现在被部分地显示在选择窗口的右侧。回到过程400,当光标没有在选择窗口的右侧时,由于光标必然在选择窗口的左侧 (因为它既不在选择窗口上,也没有在选择窗口的右侧),因此过程将菜单项向右滚动(在 440) 一个项目。这致使之前在选择窗口的左侧的菜单项被显示在选择窗口中。本领域技术人员将认识到,其它实施例可以接收除了用于菜单项选择和滚动的单个鼠标点击之外的不同的输入。这种输入的例子包括其它鼠标输入(例如,双击、结合键盘输入的点击等)、键盘输入(例如,用于滚动的左右方向键以及用于选择的〈Enter〉键)、触摸屏或触摸板输入等。事实上,使用触摸屏的一些实施例实际上不使用光标。作为替代,为了将菜单向右前进一个项目,用户可以敲击菜单的左侧,并且为了将菜单向左前进一个项目,用户可以敲击菜单的右侧。然后可以通过选择窗口上的敲击或双敲击执行选择。此外,本领域技术人员将认识到,过程400是一些实施例为了随着每次鼠标点击将菜单滚动一个项目而执行的一种可能的过程的例子。过程400并不必然是计算机指令可以如何显示这种菜单并转化用于菜单的输入的唯一例子。例如,操作415、425和435不需要必然按照图4中示出的顺序执行。一些实施例还可能包括取决于当接收到鼠标点击输入时光标位于何处的三套单独的计算机指令,而不是所有的三个相关位置由一套指令处理。B.菜单项的连续滚动图6概念地示出了用于基于来自光标控制器的点击和拖拽输入导航菜单的一些实施例的过程600。具体地,根据过程600,响应于点击和拖拽输入,菜单项被连续滚动,并且当完成输入时,选择距离选择窗口最近的项目。过程600将参照图7描述,图7示出了一些实施例的这种菜单700的导航。图7示出了 5个阶段710、720、730、740和750。阶段710示出了初始显示有光标 715时的菜单700,阶段720和730示出了当压住鼠标按钮并移动鼠标以便滚动菜单时的菜单700,阶段740示出了释放按钮时的菜单700,并且750示出了释放鼠标按钮之后不久的菜单700。如所示出的,过程600从显示(在60 在菜单的选择窗口中具有初始项目的菜单开始。在一些实施例中,菜单包括具有特定顺序的许多菜单项。一些实施例将这些菜单项从第一个项目至最后一个项目地排序,而其它实施例仅将菜单项彼此相对地排序。在后一种情况下,可以无限循环地导航菜单项。如图7,一些实施例只显示选择窗口、选择窗口中的一个项目以及在选择窗口任一侧的菜单项的部分。阶段710示出了具有项目760的选择窗口 705。项目760是初始被显示在选择窗口 705中的项目。在阶段710,项目755被部分显示在项目760的左侧,以及项目765被部分显示在项目760的右侧。项目755是在菜单项的顺序中在项目760之前的一个项目,并且项目765是在项目760之后的一个项目。接着,过程600接收(在610)鼠标按钮的按下和保持。鼠标按钮可以是左鼠标按钮(当在识别来自两个或更多个鼠标按钮的输入的系统上执行该过程时)或来自作为鼠标上的唯一按钮的按钮(当在一个按钮系统上执行该过程时)。本领域技术人员将理解,类似的过程可以接收来自其它类型输入设备的类似输入,如下所述。在一些实施例中,该过程要求,当鼠标按钮被按下以便将鼠标移动转化为菜单滚动和选择时,光标在该菜单上。过程确定(在615)鼠标是否正在左移。当鼠标正在左移时,过程将菜单项向左滚动(在620)。这使得在被显示在右侧的菜单项开始移入选择窗口中时,之前位于选择窗口中的菜单项开始向左移动。在一个项目从右侧移入该显示中时,被显示在最左侧的菜单项移出该菜单显示。然后,该过程进行到下面描述的635。当鼠标不是正在左移时,过程确定(在625)鼠标是否正在右移。当鼠标正在右移时,过程将菜单项向右滚动(在630)。这使得在被显示在左侧的菜单项开始移入选择窗口中时,之前位于选择窗口中的菜单项开始向右移动。在一个项目从左侧移入该显示中时,被显示在最右侧的菜单项移出该显示。图7示出了接收到指示鼠标正在向左移动的输入的情况。在阶段710,光标715在选择窗口 705上是可见的。阶段720示出了在按下鼠标按钮并且用户开始将鼠标向右移动之后不久的菜单700。菜单项755完全不再被显示,菜单项760不再位于选择窗口 705的中央,并且菜单项765现在被全部显示。在此阶段,光标715不再可见。由于屏幕上所示的实际移动沿与鼠标移动相反的方向,因此一些实施例在压住鼠标按钮时不显示光标。一些实施例将光标显示为在选择窗口上不移动,以便模拟如下的概念,即通过鼠标移动正在静止菜单项上拖拽选择窗口。在这样一些实施例中,不是鼠标左移将菜单项左移,而是菜单项沿与鼠标移动相反的方向移动。阶段730示出了用户继续将鼠标向左移动由此使菜单项向左滚动之后的菜单 700。阶段730示出了几乎已经完全移出该显示的菜单项770、正好留在选择窗口中的菜单项775、以及几乎全部显示并且刚刚进入选择窗口的菜单项780。返回图6,过程600接下来确定(在63 是否已经接收到指示鼠标按钮已经被释放的输入。当没有释放鼠标按钮时,过程返回到615,以便继续处理鼠标输入。在一些实施例中,用户可以来回地移动鼠标,由此将菜单项左右移动。因此,如果用户将菜单滚动得太远,则可以将鼠标沿其它方向移动,使得菜单滚动回所期望的菜单项。一旦释放鼠标按钮,过程就识别(在640)距离选择窗口最近的菜单项。图7的阶段740示出了在释放鼠标按钮之后即时的菜单700。通过将光标715变得再次可见,指示鼠标按钮的释放。此时,菜单项775几乎已经滚动到选择窗口之外,而菜单项780大部分滚动到选择窗口中。由于菜单项780最接近被置于选择窗口中的中心,因此过程600会识别项目 780。然后,过程将识别出的项目移动(在645)到选择窗口中。图7的阶段750示出了在释放鼠标按钮之后被移动到选择窗口中的菜单项780的结果。一些实施例将菜单显示为在鼠标按钮的释放和识别出的项目的居中之间(例如,在阶段740和750之间)非常迅速地移动。其它实施例简单地重新绘制具有识别出的项目置于选择窗口中心的菜单——菜单项不是被显示为移动,而是被显示在释放鼠标按钮的位置处然后立即被显示为在选择窗口中具有识别出的项目。接着,过程选择(在650)识别出的菜单项。在一些实施例中,选择菜单项致使与选择出的菜单项相关联的指令被执行,诸如执行命令、打开子菜单或激活用户界面工具。一些实施例还包括一个项目,选择该项目仅仅关闭该菜单,并且不使其它指令被执行。这种选项使得用户能够在菜单导航过程期间决定不应当选择菜单项,因此用户可以滚动到关闭的菜单选项,并且改为选择该菜单选项。在选择该菜单项之后,该过程结束。本领域技术人员将认识到,其它实施例可以接收除了用户压住鼠标按钮并移动鼠标以便进行菜单项选择和滚动之外的不同的输入。这种输入的例子包括其它鼠标输入(例如,在压住按钮之前双击等)、键盘输入(例如,压住左右方向键)、触摸屏或触摸板输入等。 事实上,使用触摸屏的一些实施例实际上不使用光标。作为替代,用户可以用一个手指压在触摸屏上的菜单上,然后通过向右或向左移动手指,沿着任一方向移动菜单。此外,本领域技术人员将认识到,过程600是由一些实施例为了通过压住鼠标按钮滚动菜单而执行的一种可能的过程的例子。过程600并不必然是计算机指令可以如何显示这种菜单并且转化用于菜单的输入的唯一例子。例如,操作615和625不需要必然按照图6示出的顺序执行。一些实施例还可以利用不同技术确定当释放菜单按钮时应当选择哪个项目。作为识别距离选择窗口最近的项目的替代,一些实施例识别最近被全部置于中心的项目(即, 当用户释放鼠标按钮时离开选择窗口的项目)。类似地,一些实施例识别最近开始进入选择窗口的项目(即,当用户释放鼠标按钮时进入选择窗口的项目)。C.随着滚动菜单项移动的选择窗口图8概念地示出了用于基于来自光标控制器的点击和拖拽输入导航菜单的一些实施例的过程800。具体地,根据过程600,当选择窗口随着菜单项移动到阈值点,然后跳到下一个菜单项时,响应于点击和拖拽输入,连续滚动菜单项。当完成该输入时,选择当前选择窗口中的项目。过程800将参照图9描述,图9示出了一些实施例的这种菜单900的导航。图9示出了 6个阶段910、920、930、940和950。阶段910示出了初始显示有光标 915时的菜单900,阶段920、930和940示出了当压住鼠标按钮并且移动鼠标以便滚动菜单时的菜单900,阶段950示出了释放按钮时的菜单900,以及960示出了释放鼠标按钮之后不久的菜单900。如所示出的,过程800从显示(在80 在菜单的选择窗口中具有初始项目的菜单开始。在一些实施例中,菜单包括具有特定顺序的许多菜单项。一些实施例将这些菜单项从第一个项目至最后一个项目地排序,而其它实施例仅将菜单项彼此相对地排序。在后一种情况下,可以无限循环地导航菜单项。如图9中所示,一些实施例只显示选择窗口、选择窗口中的一个项目以及在选择窗口任一侧的菜单项的部分。阶段910示出了具有项目970的选择窗口 905。项目970是初始被显示在选择窗口 905中的项目。在阶段910,项目965被部分显示在项目970的左侧,并且项目975被部分显示在项目970的右侧。项目965是在菜单项的顺序中在项目970 之前的一个项目,并且项目975是在项目970之后的一个项目。接着,过程800接收(在810)鼠标按钮的按下和保持。鼠标按钮可以是左鼠标按钮(当在识别来自两个或更多个鼠标按钮的输入的系统上执行该过程时)或来自作为鼠标上的唯一按钮的按钮(当在一个按钮系统上执行该过程时)。本领域技术人员将理解,类似的过程可以接收来自其它类型输入设备的类似输入,如下所述。在一些实施例中,该过程要求当按下鼠标按钮以便将鼠标移动转化为菜单滚动和选择时,光标位于该菜单上。过程确定(在815)鼠标是否正在左移。当鼠标正在左移时,过程将菜单项和选择窗口向右滚动(在820)。当菜单项移动时,选择窗口随着菜单项一起移动,而不是在项目移动通过窗口时留在原地。然后,过程进行到下面描述的835。当一个项目从左侧移动到该显示中时,被显示在最右侧的菜单项移动到该显示之外。当鼠标不是正在左移时,过程确定(在825)鼠标是否正在右移。当鼠标正在右移时,过程将菜单项和选择窗口向左滚动(在830)。当菜单项移动时,选择窗口随着菜单项一起移动,而不是在项目移动通过窗口时留在原地。当一个项目从左侧移动到该显示中时,被显示在最左侧的菜单项移动到该显示之外。当鼠标既不是向左也不是向右移动时,过程不沿任意一个方向滚动菜单项,并且进行到下面描述的845。图9示出了接收到指示在压住鼠标按钮的同时鼠标正在向右移动的输入的情况。 在阶段910,光标915在选择窗口 905上是可见的。阶段920示出了在按下鼠标按钮并且用户开始将鼠标向右移动之后不久的菜单900。菜单项965完全不再被显示,菜单项970不再位于菜单显示的中央,并且菜单项975接近全部被显示。在这个阶段,光标915不再可见。由于屏幕上所示的实际移动沿着与鼠标移动相反的方向,因此一些实施例在压住鼠标按钮时不显示光标。一些实施例显示随着选择窗口一起移动的光标。参见图8,过程800接下来确定(在83 选择窗口是否已经移动超过阈值。当选择窗口已经移动超过阈值时,过程将选择窗口跳到(在840)下一个菜单项。当菜单项正在向右移动时,下一个菜单项是选择窗口左侧的项目。相应地,当菜单项正在向左移动时,下一个菜单项是选择窗口右侧的项目。在一些实施例中,该阈值是一个点,在该点处选择窗口会移动到显示之外。这尤其可以应用于只允许显示少量菜单项的菜单显示。一些实施例定义阈值为如下的点,在该点处,如果选择窗口不移动,下一个菜单项会占据一半以上的选择窗口。图9的阶段930示出了菜单900已经向左滚动到选择窗口 905已经到达显示的左边缘的点,该点是用于此菜单显示的阈值。阶段940示出了将菜单进一步向左滚动的结果, 即选择窗口 905已经从菜单项970跳到菜单项975。为了将选择窗口跳到下一个项目,一些实施例将选择窗口显示为在一个项目和下一个项目之间非常迅速地移动。其它实施例简单地重新绘制在下一个项目上具有选择窗口的菜单——选择窗口不是被显示为移动,而是被显示在第一个项目上然后立即被显示在下一个项目上。接着,过程800确定(在84 是否已经接收到指示已经释放鼠标按钮的输入。当没有释放鼠标按钮时,过程返回815以继续处理鼠标输入。在一些实施例中,用户可以来回地移动鼠标,由此将菜单项左右移动。因此,如果用户滚动超过期望的菜单项,可以反方向移动鼠标,使菜单滚动回期望的项目。一旦释放鼠标按钮,过程就识别(在850)当前选择窗口中的项目。图9的阶段 950示出了在释放鼠标按钮之后即时的菜单900。通过将光标915变得再次可见,指示鼠标按钮的释放。此时,选择窗口 905最近已经从菜单项980跳到项目985。由此,该过程会将项目985识别作为当前在选择窗口 905中的菜单项。然后,过程将识别出的项目和选择窗口置于(在855)菜单显示的中心。阶段960 示出了在释放鼠标按钮之后被置于用于菜单900的显示的中心的菜单项985和选择窗口 905的结果。一些实施例将菜单和选择窗口显示为在鼠标按钮的释放与该项目和选择窗口的居中之间(例如,在阶段950和960之间)非常迅速地移动。其它实施例简单地重新绘制具有识别出的项目以及选择窗口居中的菜单——菜单项不是被显示为移动,而是被显示在释放鼠标按钮的位置处,然后立即被显示为具有识别出的项目以及选择窗口居中。接着,过程选择(在860)识别出的菜单项。在一些实施例中,选择菜单项致使与选择出的菜单项相关联的指令被执行,诸如执行命令、打开子菜单或激活用户界面工具。一些实施例还包括一个项目,选择该项目仅仅关闭该菜单并且不使其它指令被执行。这种选项使得用户能够在菜单导航过程期间决定不应当选择菜单项,因此用户可以滚动到关闭的菜单选项,并且改为选择该菜单选项。在选择该菜单项之后,过程结束。本领域技术人员将认识到,其它实施例可以接收除了用户压住鼠标按钮并移动鼠标以便进行菜单项选择和滚动之外的不同的输入。这种输入的例子包括其它鼠标输入(例如,在压住按钮之前双击等)、键盘输入(例如,压住左右方向键)、触摸屏或触摸板输入等。 事实上,使用触摸屏的一些实施例实际上不使用光标。作为替代,用户可以用一个手指压在触摸屏上的菜单上,然后通过向右或向左移动手指,沿着任一方向移动菜单。此外,本领域技术人员将认识到,过程800是由一些实施例为了通过压住鼠标按钮滚动菜单而执行的一种可能的过程的例子。过程800并不必然是计算机指令可以如何显示这种菜单并转化用于菜单的输入的唯一例子。例如,操作815和825不需要必然按照图 8示出的顺序执行。一些实施例还可以具有用于确定选择窗口是否已经超过阈值的两套独立的指令——当菜单项正在左移时的一套指令以及当菜单项正在右移时的一套指令。D.菜单项跳入选择窗口图10概念地示出了用于基于来自光标控制器的点击和拖拽输入导航菜单的一些实施例的过程1000。具体地,根据过程600,当光标控制器正在移动时,菜单项不移动,直到达到阈值量的移动,此时,菜单项被移动一个项目。过程1000将参照图11描述,图11示出了一些实施例的这种菜单1100的导航。图11示出了 4个阶段1110、1120、1130和1140。阶段1110示出了初始显示有光标1115时的菜单1100,阶段1120和1130示出了当压住鼠标按钮并且移动鼠标以便滚动菜单时的菜单1100,以及阶段1140示出了释放按钮时的菜单。如所示出的,过程1000从显示(在100 在菜单的选择窗口中具有初始项目的菜单开始。在一些实施例中,菜单包括具有特定顺序的许多菜单项。一些实施例将这些菜单项从第一个项目至最后一个项目地排序,而其它实施例仅将菜单项彼此相对地排序。在后一种情况下,可以无限循环地导航菜单项。如图11中,一些实施例只显示选择窗口、选择窗口中的一个项目以及在选择窗口任一侧的菜单项的部分。阶段1110示出了具有项目1150的选择窗口 1105。项目1150是初始被显示在选择窗口 1105中的项目。在阶段1110,项目1145被部分显示在项目1150的左侧,并且项目1155被部分显示在项目1150的右侧。项目1145是在菜单项的顺序中在项目1150之前的一个项目,并且项目1155是在项目1150之后的一个项目。接着,过程1000接收(在1010)鼠标按钮的按下和保持。鼠标按钮可以是左鼠标按钮(当在识别来自两个或更多个鼠标按钮的输入的系统上执行该过程时)或来自作为鼠标上的唯一按钮的按钮(当在一个按钮系统上执行该过程时)。本领域技术人员将理解,类似的过程可以接收来自其它类型输入设备的类似输入,如下所述。在一些实施例中,该过程要求,当按下鼠标按钮以便将鼠标移动转化为菜单滚动和选择时,光标位于该菜单上。过程确定(在1015)鼠标是否正在左移。当鼠标正在左移时,过程确定(在1020) 鼠标移动是否超过阈值。当鼠标移动已经超过阈值时,过程将下一个菜单项向左跳入(在 1025)选择窗口中。这使整个菜单向左移动一个项目。在一些实施例中,鼠标移动的阈值量是基于为了将光标在该显示上移动特定距离会要求的鼠标移动量的常量。一些实施例基于移动鼠标的速度多快来改变阈值量,允许用户通过利用更快的鼠标移动来更迅速地移动通过菜单。然后,过程进行到下面描述的1045。当鼠标不是正在左移时,过程确定(在1030)鼠标是否正在右移。当鼠标不是正在右移(即,用户压住鼠标按钮但没有移动鼠标)时,过程进行到下面进行描述的1045。否则,过程确定(在1035)鼠标移动是否超过阈值。当鼠标移动已经超过阈值时,过程将下一个菜单项向右跳入(在1040)选择窗口中。这使整个菜单向右移动一个项目。在一些实施例中,鼠标移动的阈值量是基于为了将光标在该显示上移动特定距离会要求的鼠标移动量的常量。一些实施例基于移动鼠标的速度多快来改变阈值量,允许用户通过利用更快的鼠标移动来更迅速地移动通过菜单。图11示出了接收到指示鼠标正在向左移动的输入的情况。在阶段1110,光标1115 在选择窗口 1105上是可见的。阶段1120示出了在按下鼠标按钮并且用户开始将鼠标向左移动之后不久的菜单1100。尽管鼠标已经开始移动,但是由于鼠标尚未移动到至少阈值量, 因此菜单项1145、1150和1155完全没有被移动。在这个阶段,光标1115不再可见。一些实施例在压住鼠标按钮时不显示光标。一些实施例将光标显示为在选择窗口上不移动,以便模拟如下的概念,即通过鼠标移动正在静止菜单项上拖拽选择窗口。在这样一些实施例中,不是鼠标左移将菜单项左移,而是菜单项沿与鼠标移动相反的方向移动。阶段1130示出了在用户已经将鼠标向右移动得足够远以使得菜单项向左移动一个项目之后的菜单1100。阶段1130示出了菜单项1155现在位于选择窗口 1105中,菜单项 1150已经从选择窗口移动到被部分地显示在选择窗口 1105的左侧,并且菜单项1160已经从右侧出现并且被部分地显示在选择窗口 1105的右侧。一些实施例将菜单显示为在将菜单向右或向左移动时非常迅速地移动。鼠标移动一超过阈值,其它实施例就仅仅重新绘制具有移动后的项目的菜单,而完全不显示菜单项的移动。返回图10,过程1000接下来确定(在1045)是否已经接收到指示已经释放鼠标按钮的输入。当没有释放鼠标按钮时,过程返回1015以继续处理鼠标输入。在一些实施例中,用户可以来回地移动鼠标,由此将菜单项左右移动。因此,如果用户滚动超过期望的菜单项,可以反方向移动鼠标,使菜单滚动回期望的项目。接着,过程选择(在1050)当前位于选择窗口中的项目。在一些实施例中,选择菜单项致使与选择出的菜单项相关联的指令被执行,诸如执行命令、打开子菜单或激活用户界面工具。一些实施例还包括一个项目,该项目的选择仅关闭该菜单,并且不使其它指令被执行。这种选项使得用户能够在菜单导航过程期间决定不应当选择菜单项,因此用户可以滚动到关闭的菜单选项,并且改为选择该菜单选项。在选择该菜单项之后,过程结束。图11的阶段1140示出了在释放鼠标按钮之后即时的菜单1100。通过光标1115 再次变得可见,指示鼠标按钮的释放。此时,菜单项1165最近已经被移动到选择窗口 1105 中。因此,过程会选择项目1165作为当前在选择窗口中的项目。本领域技术人员将认识到,其它实施例可以接收除了用户压住鼠标按钮并移动鼠标以便进行菜单项选择和滚动之外的不同的输入。这种输入的例子包括其它鼠标输入(例如,在压住按钮之前双击等)、键盘输入(例如,压住左右方向键)、触摸屏或触摸板输入等。 事实上,使用触摸屏的一些实施例实际上不使用光标。作为替代,用户可以用一个手指压在触摸屏上的菜单上,然后通过向右或向左移动手指,沿着任一方向移动菜单。此外,本领域技术人员将认识到,过程1000是由一些实施例为了通过压住鼠标按钮滚动菜单而执行的一种可能的过程的例子。过程1000并不必然是计算机指令可以如何显示这种菜单并转化用于菜单的输入的唯一例子。例如,操作1015和1030不需要必然按照图10示出的顺序执行。以上描述的四个过程都是响应于向右或向左的光标控制器输入(选择窗口的右侧或左侧的点击输入,或者沿任一个方向的拖拽输入),将菜单项向右或向左移动。本领域技术人员将认识到,响应于左侧或右侧输入,不同的实施例将沿不同方向移动菜单项。也就是说,在根据过程600显示菜单项移动的一些实施例中,向右移动鼠标会使菜单项向右移动。在其它实施例中,向右移动鼠标会使菜单项向左移动。对于过程400、800或1000而言, 等效的变化是可能的。这四个过程及其变化不是用于滚动通过以上和下面示出的类型的菜单的可能性的穷举。例如,各种触摸屏或触摸板交互可以用于滚动通过菜单并从菜单中选择项目。当光标在菜单上以便滚动菜单时,利用触摸板,用户可以重复地使用沿任意方向的挥动手势 (例如,两个手指挥动)。在一些实施例中,通过单个挥动手势滚动通过的菜单项的数量可以依赖于挥动手势的速度和长度。不同的输入(诸如选择窗口上光标的双敲击)可以被用于从菜单中选择项目。类似地,在触摸屏上的菜单上的挥动手势可以被用于(在没有光标的情况下)滚动通过菜单项。像以上给出的触摸板的例子一样,在一些实施例中,通过单个挥动手势滚动通过的菜单项的数量可以依赖于挥动手势的速度和长度。用户在选择窗口中的项目上快速敲击或者双敲击(或者某种其它手势)可以被用于选择项目。E.其它菜单特征如以上叙述的,在一些实施例中,菜单项的选择使与选择出的菜单项相关联的指令被执行。在一些实施例中,指令激活特定工具。例如,在一些实施例中,菜单是视频编辑应用的一部分。菜单项可以是视频编辑工具(例如,刀片、波纹、滑动、切割(razor)等)或不同转换选项(例如,淡入淡出、淡化等)。在一些实施例中,菜单项指令使命令被执行。例如,在一些实施例中,菜单项表示应用的典型下拉菜单选项(例如,具有“保存”、“打印”、“打开”等选项的“文件”菜单)。在一些实施例中,一个或更多个菜单项使子菜单在被选择时打开。在通过用户按下并压住光标控制器选择按钮并且然后移动光标控制器以便使菜单项滚动通过选择窗口来导航菜单 (例如,在以上子部分B-D中描述的菜单)的情况下,当用户停止移动鼠标而打开子菜单的特定项目处于选择窗口中时,一些实施例选择该特定项目。图12示出了一些实施例的菜单1200和子菜单1225的导航的例子。图12示出了 6个阶段:1210、1220、1230、1240、1250和1260。阶段1210示出了在选择窗口 1205中具有菜单项1265的菜单1200,阶段1220、1230和1240示出了作为选择菜单项1265的结果而被打开的子菜单1225的导航,并且阶段1250和1260示出了从子菜单1225中选择菜单项 1275的结果。阶段1210示出了在选择窗口 1205中具有项目1265的菜单1200。菜单项1265不是初始被显示在选择窗口 1205中的菜单项。相反,用户已经滚动通过菜单1200中的各个菜单项,以便使项目1265在选择窗口 1205中。经由鼠标按钮的单击(例如,根据诸如过程 400的过程),经由用户按下并压住鼠标按钮而同时来回地移动鼠标(例如,根据诸如过程 600,800或1000的过程),或者经由某种其它过程,可以导航菜单。菜单项1265包括小加号1235。在一些实施例中,这种符号被用于图形地指示菜单项的选择会使子菜单打开。一些实施例可以使用其它图形指示器,诸如箭头、字母等。其它实施例不使用图形指示器,而是假设用户知道哪些菜单项会使子菜单打开。如下面的阶段中示出的,当用户滚动通过子菜单时,一些实施例将图形指示器留在选择窗口中。然而,其它实施例在用户滚动通过子菜单时将图形指示器留在使该子菜单打开的特定项目上。对于根据过程400表现(或类似)的菜单,一些实施例在其相应菜单项(即,其选择使子菜单打开的菜单项)一被移动到选择窗口中时就打开子菜单。其它实施例要求特定菜单项的选择(例如,通过点击选择窗口中的菜单项)。然后,经由与用于初始菜单的输入类似的输入,导航子菜单(即,在一些实施例中,如果经由单击导航初始菜单,则同样地导航子菜单)。对于根据过程600、800或1000中的一个(或根据类似过程)表现的菜单,一些实施例在其相应菜单项一被移动到选择窗口中时也就打开子菜单。可是,其它实施例要求用户将特定菜单项保持在选择窗口中一个阈值量的时间(即,通过在特定菜单项处于选择窗口中时不移动鼠标)。一旦子菜单打开,一些实施例允许用户通过继续压住鼠标按钮并且上下移动鼠标(当子菜单垂直地打开时)来导航子菜单。阶段1220示出了打开的子菜单1225。子菜单1225垂直地打开。当子菜单初始打开时,项目1265仍处于选择窗口 1205中。在一些情况下,在子菜单内,不能选择来自使子菜单打开的初始项目的项目。然而,在其它情况下,就像其余子菜单项目一样,可以在子菜单内选择该项目。如在阶段1220中示出的,子菜单1225除了 1265之外还包括至少四个项目项目1270、1275、1280和1285。 一些实施例一次显示整个子菜单,而其它实施例只显示选择窗口周围的子菜单的一部分(类似于显示菜单1200的方式,除了是垂直地显示之外)。阶段1230示出了用户已经导航到项目1280之后的子菜单1225。在一些实施例中,通过点击选择窗口下方,用户可以导航到该点。在其它实施例中,用户可以压住鼠标按钮并且向下移动鼠标。阶段1240示出了用户已经导航到项目1275(从项目1280向上两个项目)之后的子菜单1225。通过点击选择窗口上方或者通过向上移动鼠标(依赖于用于导航菜单1200的过程),用户可以导航到该点。在示出的例子中,当看不到光标时,通过用户压住鼠标按钮来导航菜单。阶段1250示出了一些实施例用来在从子菜单中选择出项目时关闭子菜单的过程。菜单项1275已经被选择出(例如,通过在项目1275处于选择窗口 1205中时用户释放鼠标按钮)。如示出的,子菜单1225开始靠近选择出的项目1275的周围。阶段1260示出了在子菜单完全折叠之后具有选择出的项目1275的菜单1200。当用户已经释放鼠标按钮时,光标1215现在可见。在图12中示出的菜单1200具有水平滚动的主取向,而从菜单1200打开的子菜单 1225垂直地滚动。在一些实施例中,子菜单自身也具有子菜单。因此,如果用户选择了子菜单1225中的自身打开子菜单的项目,则一些实施例会水平定向新的子菜单。在一些实施例中,新的子菜单的项目会被显示在来自主菜单的原始项目上,使得主菜单项目不再可见。另一方面,一些实施例的菜单具有垂直滚动的主取向,并且然后从这种菜单打开的子菜单垂直地滚动。图13示出了一些实施例的在用户滚动通过菜单时将主显示之外的菜单项显示为淡化的菜单1300。图13示出了三个阶段1310、1320和1330。如在阶段1310中示出的,菜单1300包括与菜单500、700、900和1100类似的显示。然而,如在阶段1320和1330中示出的,当用户按下并压住鼠标按钮以便导航菜单1300时,该显示之外的项目以淡化的形式出现。阶段1310示出了选择窗口 1305中的菜单项1360。光标1315在项目1360上是可见的,并且菜单项1355和1365的部分在选择窗口 1305的任一侧可见。通过用户按下并压住鼠标按钮,然后左右移动鼠标(例如,根据诸如过程600、800或1000的过程),导航菜单 1300。在这个阶段,光标1315是可见的,指示用户尚未按下鼠标按钮来导航菜单。阶段1320示出了在用户按下鼠标按钮之后的菜单1300。除了在显示区域中示出的项目之外,其余项目在该显示之外被示出为部分淡化。按照项目移动通过选择窗口的顺序来显示项目,由此使用户更容易迅速滚动到期望的菜单项。如可以看到的,菜单1300已经定义了第一个项目和最后一个项目,并且当用户滚动到最后时,没有回绕。项目1370是菜单1300中最右侧(最后)的项目,并且菜单中最左侧的项目没有被显示在项目1370的右侧。没有被显示在主显示区域中的项目1355和1365的部分在主显示区域之外被显示为淡化。阶段1330示出了用户通过向左移动鼠标来向右滚动菜单之后的菜单1300。阶段 1330示出了所有菜单项1335-1370。在一些实施例中,部分淡化的图标只显示在用于特定距离或特定数量的图标的主显示的任一侧。菜单1300在主显示的任一侧只显示达到三个淡化的图标,因此仅当菜单居中,其中在主显示中具有中间的两个菜单项1350和1355时,才示出整个菜单。在一些实施例中,淡化的图标被显示为部分透明。也就是说,如果菜单周围有其它可视的内容,则在淡化的图标下,将仍然看到该内容。如以上描述的,在前述部分中描述的特征可以被应用到不是线形滚动的菜单。用于导航并选择菜单项的过程400、600、800和1000可以被应用于其中使菜单项移动通过选择窗口的任意类型的菜单,而不考虑菜单的形状。对于其菜单项,菜单不需要是水平的(或者甚至是垂直的),以便使子菜单与菜单的滚动垂直地打开。对于菜单要呈线形形状以及围绕选择窗口的菜单项要被显示为部分淡化或透明,没有任何要求。II.半圆形菜单前述部分中的例子都包括线形滚动的菜单。然而,如所指出的,菜单的所述特征可以等效地应用于其它类型的菜单。下面的部分描述被显示为半圆形的菜单的各个特征。这部分描述的特征被示为应用于半圆形菜单,但是本领域技术人员将认识到,这些特征中的许多特征可以被应用于以上示出的线形菜单。图14示出了一些实施例的半圆形菜单1400的打开。图14示出了四个阶段1410、 1420、1430和1440。阶段1410和1420示出了在其打开之前的菜单1400,阶段1430示出了通过打开过程部分打开的菜单,以及阶段1440示出了完全打开时的菜单。阶段1410独自地示出了菜单项1480,其中没有选择窗口或相关联菜单项。菜单项 1480被显示为具有第一颜色。阶段1410还示出了光标1415,其在菜单项附近,但不在菜单项上面。阶段1420示出了现在光标1415已经移动到它上面的菜单项1480。将光标1415 移动到菜单项1480的上面使选择窗口 1405显示在菜单项上,使得菜单项现在表现为被显示为具有第二颜色。一些实施例实际上将该菜单项显示为具有不同的颜色,而其它实施例在该菜单项上显示部分透明的选择窗口。如所示出的,一旦光标移动到菜单项上,一些实施例就显示选择窗口。然而,其它实施例等待显示选择窗口,直到用户已经实际按下鼠标按钮或者提供在菜单项上具有光标的一些其它类型的选择输入。阶段1430示出了用户已经按下鼠标按钮或者提供了某种形式的选择输入(例如键击、其它鼠标输入、来自不同光标控制器的输入等)之后不久的菜单1400。菜单项1480 仍然被显示在选择窗口 1405内,并且其它菜单项已经开始从项目1480散开。显示给出了菜单1400中的其它菜单项初始被堆叠在项目1480下的外观。不在选择窗口中的菜单项(除了 1480之外的项目)被显示为具有第一颜色(即,在阶段1410中项目1480具有的相同的颜色)。阶段1440示出了在其已经全部展开之后的菜单1400。当前,可以看到菜单项1465 至1495。菜单项1465和1495被显示为部分淡化,这提供了一种视觉指示,即菜单继续在两个方向上具有更多的菜单项。从阶段1420至阶段1440,图14示出了菜单可以如何打开的一种可能性。一些实施例不显示菜单散开,而是一旦用户点击单个菜单项上的鼠标按钮,就如在阶段1440所示出地显示菜单。一些实施例将菜单项显示为沿着半圆形轨迹滑出到阶段1440所示出的位置,而不是如阶段1430中所显示的展开成半圆形。其它实施例利用其它视觉显示打开菜单。此外,使用除了半圆形之外的形状的一些实施例使用这些以及其它视觉显示——展开菜单也可以应用于一次显示一个以上的菜单项的线形菜单。图15示出了菜单1400的导航以及从菜单中选择项目1460。图15示出了五个阶段1510、1520、1530、1540和1550。阶段1510示出了与图14的阶段1440相同点处的菜单 1400,阶段1520示出了菜单1400的导航,以及阶段1530-1550示出了项目1460的选择。阶段1520示出了用户已经滚动菜单,使得选择窗口 1405中的初始项目(项目 1480)现在接近所显示的菜单的右边缘,并且正开始表现为部分淡化。在一些实施例中,为了将菜单滚动到这个点,用户在压住鼠标按钮的同时向左拖拽鼠标。如在阶段1520中示出的,选择窗口 1405被显示为菜单项在下面滚动的部分透明的窗口。此外,当选择窗口当前介于两个菜单项(1465和1470)中间时,菜单1400是根据与过程600类似的过程滚动的菜单,在该菜单中,项目连续滚动,并且没有 突然跳到(snap)选择窗口。然而,一些实施例将其它所述的滚动过程或类似过程应用于半圆形菜单。阶段1530示出了用户已经滚动菜单,使得项目1460处于选择窗口 1405中,并且为了选择项目1460,释放鼠标按钮。光标1415现在可以看到位于选择窗口 1405和项目 1460上方。阶段1540示出了在选择出的项目1460周围的菜单1400的关闭。在一些实施例中,以与其打开正好相反的方式关闭菜单。因此,当菜单项仅出现在初始项目周围时,那么当选择该项目时,在没有任何向内移动的情况下,这些菜单项消失。当菜单项如图14中所示散开时,则菜单如在阶段1540中所示向内折叠。阶段1550示出了菜单已经完全关闭,使得只显示项目1460。在一些实施例中,现在显示选择出的菜单项,非常像在图14的阶段1410显示项目1480。例如,在一些实施例中, 菜单是工具栏。这种工具栏的一个例子是用于视频编辑应用的视频编辑工具栏。一些实施例的视频编辑工具栏包括视频编辑工具,诸如刀片工具、波纹工具、滑动工具、卷起工具等。 选择工具使得该工具可用,从而用户可以接着在编辑过程中使用该工具。选择出的工具被显示,直到用户重复该过程以选择不同的工具。另一方面,在一些实施例中,菜单是命令列表,并且当用户选择特定命令时关闭。一些这样的实施例等待一个短的时间段,然后将所显示的菜单项恢复到初始项目。图16示出了半圆形菜单1600的例子,与以上描述的类似,它包括打开子菜单1625 的菜单项1655。图16示出了四个阶段1610、1620、1630和1640。阶段1610示出了在用户已经导航从而菜单项1655处于选择窗口 1605中之后的菜单,阶段1620示出了子菜单1625 的打开,以及阶段1630和1640示出了子菜单1625的导航。阶段1610示出了属性上与菜单1400类似的菜单1600。当前位于选择窗口 1605 中的是菜单项1655。项目1655包括小加号1635,其指示其选择会使子菜单打开。在一些实施例中,这种符号被用于图形指示菜单项的选择会使子菜单打开。一些实施例可以使用其它图形指示器,诸如箭头、字母等。其它实施例不使用图形指示器,而是假设用户知道哪些菜单项会使子菜单打开。如在下面的阶段中示出的,一些实施例在用户滚动通过子菜单时将图形指示器留在使该子菜单打开的特定项目上。然而,当用户滚动通过子菜单时,如上述图12中一样,其它实施例将图形指示器留在选择窗口中。阶段1620示出了在用户已经选择菜单项1655之后不久的菜单1600。子菜单1625 已经开始垂直地打开。在一些实施例中,子菜单以与由父菜单跟随的路径的切线垂直的方式打开。当半圆形菜单1600的切线在选择窗口 1605处是水平的时,子菜单1625垂直地打开。如所示出的,子菜单1625的菜单项从选择窗口展开。当项目展开时,菜单1600的未选择的项目开始淡化。阶段1630示出了在其已经完全展开之后的子菜单1625。此时, 菜单1600的未选择的项目大部分被淡化。一旦子菜单已经完全展开,用户就可以导航子菜单。例如,非常像以上描述的子菜单,用户可以向上或向下移动鼠标,以便使子菜单项目滚动通过选择窗口。阶段1640示出了在用户已经将菜单向下滚动一个项目使得菜单项1660 处于选择窗口 1605中之后的子菜单1625。 在一些实施例中,当用户从子菜单中选择项目时,主菜单(例如,菜单1600)和子菜单(例如,子菜单1625)同时向内折叠。以与图15中示出的方式相同的形式向内折叠菜单,而子菜单以与其展开过程相反的方式折叠。可是,不同实施例会首先折叠子菜单,然后折叠主菜单,或者在从子菜单中选择项目时使用不同视觉显示。就像部分I中描述的特征一样,这部分中描述的许多特征也可以应用于不是半圆形的菜单。例如,任何形状的菜单都可以在选择单个菜单项时从该单个菜单项向外展开。类似地,在从全部显示的菜单中选择项目时,这种菜单可以向内折叠。III.圆形菜单替代方案上面的部分描述并且包括菜单的例子,对于这些菜单,不管菜单被显示为线形 (如部分I中)还是半圆形(如部分II中),都不是一次显示全部菜单。下面的部分给出了菜单的例子,对于这些菜单,一次显示所有菜单项。具体地,这部分中描述的菜单以圆形方式显不。图17示出了一些实施例的圆形菜单1700的打开。图17示出了四个阶段1710、 1720、1730和1740。阶段1710和1720示出了在其打开之前的菜单1700,阶段1730示出了通过打开过程部分打开的菜单,以及阶段1740示出了当完全被打开时的菜单。阶段1710独自地示出了菜单项1780,其中没有选择窗口或者相关联菜单项。菜单项1780被显示为具有第一颜色。阶段1710还示出了光标1715,它接近菜单项,但不在菜单项上。阶段1720示出了现在光标1715已经被移动到它上面的菜单项1780。将光标1715 移动到菜单项1780上使选择窗口 1705显示在菜单项上,从而菜单项现在表现为被显示为具有第二颜色。一些实施例实际上将菜单项显示为具有不同颜色,而其它实施例将部分透明的选择窗口显示在菜单项上。如所示出的,一旦光标移动到菜单项上,一些实施例就显示选择窗口。然而,其它实施例等待显示选择窗口,直到用户已经实际上按下鼠标按钮或者提供在菜单项上具有光标的一些其它类型的选择输入。此时,菜单1700的行为与菜单1400的类似。然而,阶段1730示出了菜单1700是圆形,而不是像菜单1400的半圆形。阶段1730示出了在用户已经按下鼠标按钮或者提供某种形式的选择输入(例如,键击、其它鼠标输入、来自不同光标控制器的输入等)以便打开菜单1700之后不久的菜单1700。菜单项1780仍然被显示在选择窗口 1705内,以及其它菜单项已经开始从项目1780向外展开。该显示给出了菜单1700中的其它菜单项初始堆叠在项目1780下面的外观。不在选择窗口中的菜单项(除了 1780之外的项目)被显示为具有第一颜色(即,在阶段1710中项目1780具有的相同的颜色)。如所示出的,一些实施例从初始菜单项(例如,菜单项1780)向下展开菜单。可是, 其它实施例沿所有方向向外展开菜单,使得圆形中心处于图形用户界面中初始菜单项在选择之前所在的位置上。在一些这种实施例中,如果当用户滚动通过菜单时显示光标,则将光标移动到位于圆形顶部的选择窗口。
阶段1740示出了在其全部展开之后的菜单1700。当前可以看到菜单1700的所有菜单项。为了显示整个菜单项,一些实施例根据菜单项的数量改变圆形的半径(即,当菜单项越多时,半径越大)。其它实施例改变菜单项的大小(即,当菜单项越多时,菜单项就越小,以便保持相同的半径)。还有其它实施例改变菜单项之间重叠的量(即,当项目越多时,项目重叠越多),以便将菜单项保持恒定大小,并且保持圆形具有恒定的半径。在一些实施例中,圆形菜单的导航类似于半圆形菜单的导航。通过在按下鼠标按钮的同时向左或向右移动鼠标,用户可以使菜单项滚动通过选择窗口。一个显著的不同是, 在圆形菜单的情况下,用户可以在任意方向上无限地滚动。在其顺序中,菜单没有第一个菜单项或最后一个菜单项。相反,只彼此相对地排序菜单项圆形菜单(诸如菜单1700)还可以包括项目,该项目的选择使子菜单以与图16的子菜单1625类似的方式打开。在一些实施例中,当圆形主菜单淡化时,子菜单在选择窗口上方和下方垂直地打开。然而,当主菜单没有完全淡化时,一些实施例只在选择窗口的下方显示子菜单,达到菜单项不与圆形菜单的底部重叠的程度。图18示出了在子菜单1825在选择窗口 1805的上方和下方垂直地打开之后部分淡化的圆形菜单1800。朝着子菜单1825的底部,只显示菜单项1830的一部分。向上滚动子菜单1825 (例如,通过用户向下移动光标控制器)会使整个菜单项1830被显示为项目 1830下面的下一个菜单项开始出现。然而,其它实施例显示展开到主菜单的底部上的子菜单。圆形菜单的一些实施例在选择菜单项时以类似于以上描述的半圆形菜单的方式关闭。也就是说,圆形菜单以与菜单被打开相反的方式在其上折叠。因此,如果圆形菜单从初始菜单项开始向下打开,在从菜单中选择项目之后,菜单关闭,其中显示的项目朝着选择窗口以及选择的项目向回折叠。另一方面,如果圆形菜单从初始菜单项的初始位置开始向外打开,那么在从菜单中选择项目之后,菜单关闭,其中显示的项目朝着初始位置向内折叠。类似于针对半圆形菜单的以上说明,其它实施例不同地关闭圆形菜单。IV.菜单的使用如所讨论的,以上描述的各种菜单可以被用在各种各样的计算应用中。在一些实施例中,菜单可以被直接用在操作系统或与操作系统分离的应用中。此外,菜单尤其可以被用在诸如iPhone 之类的手持设备中。图19示出了计算机桌面1900,该桌面显示一些实施例的操作系统的各个特征。该桌面包括文件夹导航窗口 1905、应用选择图标1910以及菜单1915。文件夹导航窗口 1905 是标准的窗口,其使得用户能够导航分级文件系统,以便找到并打开文件(例如,文字处理文档、电子数据表、视频文件等)。应用选择图标1910为用户提供对计算设备上的不同应用 (例如,电子邮件、网页浏览器、媒体播放器、文字处理应用、媒体编辑应用等)的容易访问。菜单1915是用于提供操作系统特征的以上描述的菜单的使用的一个例子。菜单 1915给出了与关闭计算机有关的各个选项。菜单1915包括选择窗口 1920以及被全部显示或被部分显示的至少三个菜单项1925-1935。项目1925给出了 “注销”选项,项目1930给出了“关机”选项,以及项目1935给出了“重新启动”选项。一些实施例还包括省电选项, 诸如“待机”。在一些实施例中,尽管其它选项(例如,窗口,诸如窗口 1905)可以被置于菜单1915的顶部,使得菜单1915不被显示,但是菜单1915被永久地显示为桌面的一部分。响应于诸如特定键击(或者键击的组合)或者图形用户界面中用于调出菜单1915的选项的选择之 类的用户输入,其它实施例只显示菜单1915。本领域技术人员将认识到,一些实施例的菜单可以被用于各种各样的操作系统特征。作为一个例子,应用选择图标可以被集成到菜单(诸如线形菜单1915或者以上描述的其它菜单中的一个菜单)中。例如,应用选择图标可以被提供在半圆形菜单(诸如菜单 1400)中,该半圆形菜单被显示在屏幕的一个角中,而不是占据屏幕的整个底部。图20示出了视频编辑应用2000,它被用于创建合成视频呈现,并且采用了一些实施例的菜单。视频编辑应用2000包括合成显示区域2005、一组可选择视频剪辑2010、视频预览显示区域2015以及视频编辑工具栏2020。合成显示区域2005提供了用户创建的视频呈现的视觉表示。用户可以将媒体剪辑(例如,音频和视频剪辑)添加到合成显示区域,在这里,图形地表示这些剪辑。通过在合成显示区域中对剪辑执行编辑操作,用户可以修改视频呈现。该组可选择视频剪辑2010 提供被表示为缩略图的各种媒体剪辑,用户可以经由合成显示区域2005选择其并将其添加到视频呈现。视频预览显示区域2015按照合成显示区域显示合成呈现的预览。视频编辑工具栏2020是用于提供视频编辑工具的以上描述的菜单的使用的例子。具体地,工具栏2020为用户提供多个修剪工具选项。当前显示在选择窗口 2025中的是卷起工具2035。滑动工具2030和滑移工具2040当前位于选择窗口 2025的左侧和右侧。 一些实施例包括工具栏中的其它修剪工具,诸如波纹工具或刀片工具。一些实施例在工具栏(诸如工具栏2020)中呈现了各种编辑工具。例如,除了各种修剪工具之外,一些实施例还提供了用于编辑合成视频呈现的其它工具。另一方面,一些实施例包括多个与工具栏2020类似的工具栏,诸如用于修剪工具的一个工具栏以及用于其它视频编辑工具的第二工具栏。在一些实施例中,工具栏2020被永久地显示为编辑应用的图形用户界面的一部分。其它实施例只响应于用户输入显示工具栏2020,该用户输入诸如为特定键击(或键击组合)或者图形用户界面中用于调出工具栏2020的选项的选择。例如,在一些实施例中, 只显示一个工具,直到用户调用菜单(例如,点击该一个所显示的工具),此时显示给出更多选项的工具栏。部分II中示出的半圆形菜单的例子是这种可调用工具栏或菜单的例子。图21示出了手持设备2100,当前,手持设备2100正在显示网页浏览器2105。设备2100可以是蜂窝电话、媒体播放器等。网页浏览器2105包括统一资源定位器(URL)工具栏2110、内容显示区域2115以及工具栏2120。URL栏2110包括用户界面工具和地址栏2125,用户可以在地址栏2125中键入URL 并地址栏2125显示用户通过点击在内容显示区域2115内的链接而导航到其的网站的URL。 内容显示区域2115显示地址栏2125中指示的位于该URL的网页。工具栏2120包括6个工具——后退和前进按钮2130和2135、添加书签图标2140、 用于打开书签列表的书签图标2145、用于打开菜单的菜单图标2150以及页面图库图标 2155,该页面图库图标2155用于显示可以供用户选择的打开网页页面的列表。当用户选择菜单图标2150时,菜单2160打开。在一些实施例中,调用菜单2160使第一窗口(S卩,菜单窗口)在已经显示的第二窗口中打开。这也用于一些实施例的菜单的其它应用的情况,不限于手持设备。菜单2160提供了没有被显示在URL栏2110或工具栏2120中的各种选项。菜单 2160包括查找文本选项2175,它用于引出一个工具,该工具允许用户键入文本以便在显示区域2115中显示的内容中进行查找。查找文本选项2175当前位于选择窗口 2165中。历史选项2170和复制选项2180被部分地显示在选择窗口 2165的任一侧。在一些实施例中,该设备是触摸屏设备。在这样的一些实施例中,通过利用手指向右和向左的扫动手势移动项目,然后敲击或双击选择窗口以便选择项目,用户可以导航菜单2160。其它实施例可以识别不同的用于导航菜单2160并从该菜单中选择项目的多点触摸手势。本领域技术人员将认识到,除了菜单2160之外的菜单都可能用于手持设备浏览器。例如,工具栏2120可以包括选择窗口以及比当前示出的项目更多的项目。然后,用户可以滚动通过项目,直到所期望的项目处于选择窗口中。此外,这样的菜单对浏览器没有任何限制,并且事实上,可以被用于手持设备上的任何应用。屏幕空间在例如设备2100的手持设备中通常非常宝贵,因此这个应用中描述的菜单是用于在这种受限空间中提供大量选项的理想方案。V.软件架构在一些实施例中,以上描述的过程被实现为在特定机器上运行的或者被保存在计算机可读介质上的软件,该特定机器诸如为计算机或手持设备。图22概念地示出了一些实施例的应用2200的软件架构,应用2200呈现诸如在前述部分中描述的菜单之类的菜单。在一些实施例中,该应用是独立的应用,或者被集成到另一个应用中(例如,应用2200可以是视频编辑应用的一部分),而在其它实施例中,该应用可以被实现于操作系统中。此外,在一些实施例中,该应用被提供作为基于服务器的方案的一部分。在一些这样的实施例中,经由瘦客户端提供该应用。也就是,该应用运行在服务器上,而用户通过与服务器远程的单独的机器与该应用交互。在其它这样的实施例中,通过胖客户端提供该应用。也就是,将该应用从服务器分发到客户端机器,并且在客户端机器上运行。应用2200包括用户界面(UI)交互模块2205、菜单滚动器2210、项目选择器2215 以及菜单显示模块2220。媒体编辑应用还包括菜单数据库2225。在一些实施例中,还存在其它存储器,它们可以是与内容存储器2225相同的物理存储器的一部分或者被分别存储。 图22还示出了操作系统2250,它包括光标控制器驱动器2255、键盘驱动器2260以及显示模块2265。在一些实施例中,如所示出的,即使当应用2200是独立于操作系统的应用时,光标控制器驱动器2255、键盘驱动器2260以及显示模块2265也是操作系统2250的一部分。通过输入设备(未示出),用户与用户界面交互。诸如光标控制器(鼠标、写字板、 触摸板等)和键盘之类的输入设备向光标控制器驱动器2255和键盘驱动器2260发送信号,光标控制器驱动器2255和键盘驱动器2260将那些信号转换为用户输入数据提供给UI 交互模块2205。UI交互模块根据所呈现的菜单的上下文翻译用户输入数据,并将其传递给适当的模块,诸如菜单滚动器2210和项目选择器2215。菜单滚动器2210将用户界面交互翻译为菜单项滚动通过选择窗口。菜单滚动器还 从菜单数据库2225中接收信息。在一些实施例中,它包括菜单项列表以及菜单项的顺序。在不同实施例中,菜单滚动器2210响应于不同输入来滚动菜单。例如,在一些实施例中,基于通过以上过 程400、600、800或1000描述的输入中的一个输入,菜单滚动器2210滚
动菜单项。菜单滚动器将菜单滚动信息发送给菜单显示模块2220。项目选择器2215将用户界面交互翻译为菜单项的选择。在一些实施例中,项目选择器还从菜单数据库中接收信息,诸如菜单项列表及其顺序。当接收到选择输入时,项目选择器2215识别哪个项目处于选择窗口中。在一些实施例中,项目选择器2215还识别何时选择了一个项目以便打开菜单,如以上在部分II和III中描述的。选择信息被传递给菜单显示模块。在一些实施例中,项目选择器还将此信息传递给其它模块(未示出),该其它模块执行命令或者激活与所选出的菜单项相关联的工具。菜单显示模块2220从菜单滚动器2210和项目选择器2215中接收信息。菜单显示模块2220控制菜单项的移动的显示。在一些实施例中,响应于项目选择,包括任意子菜单,菜单显示模块处理菜单的打开和关闭。此信息被发送给显示模块2265,显示模块2265 处理在输出设备(未示出)上的菜单(以及图形用户界面的其余部分)的实际显示。尽管这些特征中的许多特征已经描述为采用一个模块(例如,导航模块2215或框架压缩器2235)执行,但是本领域技术人员将认识到,这些功能可以被分解到多个模块中, 并且一个特征的执行甚至可能需要多个模块。图23概念地示出了用于制造存储计算机程序的计算机可读介质的一些实施例的过程2300。在一些实施例中,计算机可读介质是可分配的⑶-ROM。如所示出的,过程2300 从定义(在2305)具有特定顺序的菜单项和与菜单项相关联的指令开始。图1的菜单100 的菜单项101-108是这些菜单项的例子。然后,过程2300定义(在2310)显示区域,该显示区域用于以特定顺序显示这些菜单项中的至少一部分。该过程还定义(在2315)显示区域中显示的选择窗口,该选择窗口用于指示菜单项当前是可选择的,诸如相应的图2、5、14的选择窗口 205、505或1405。接着,过程2300定义(在2320) —个模块,该模块响应于用户输入来使菜单项以特定顺序滚动通过选择窗口。图22的菜单滚动器2210是该模块的一个例子。该过程还定义(在2325) —个模块,用于当菜单项被显示在选择窗口中时,响应于用户输入,选择菜单项,该模块诸如为菜单选择器2215。接下来,该过程定义(在2330)其它工具、选项以及功能。例如,如果该过程用于制造媒体编辑应用,诸如图20中示出的,则定义各种GUI项目和编辑工具以及功能。然后,过程2300将定义的元件存储(在2325)在计算机可读存储介质上。如以上叙述的,在一些实施例中,计算机可读存储介质是可分配的CD-ROM。在一些实施例中,该介质是固态器件、硬盘、CD-ROM或其它非易失性计算机可读存储介质中的一个或更多个。本领域技术人员将认识到,过程2300所定义的各个模块和UI项目不是可以用于结合本发明的一些实施例的编辑应用被定义并且被存储在计算机可读存储介质上的模块和UI项目的穷举。VI.计算机系统以上描述的特征和应用中的许多特征和应用被实现为软件过程,它们被指定为一套记录在计算机可读存储介质(也称作计算机可读介质)上的指令。当由一个或更多个计算单元(诸如,处理器或类似ASIC和FPGA的计算单元)执行这些指令时,它们使计算单元 (多个)执行指令中所指示的动作。计算机是广义的含义,并且可以包括具有处理器的任何电子设备。计算机可读介质的例子包括,但并不限于,⑶-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。在本说明书中,术语“软件”意指包括驻留在只读存储器中的固件或被存储在磁性存储器中的应用,该应用可以被读出到存储器中以供处理器处理。还有,在一些实施例中, 多个软件发明可以被实现为大型程序的子部分,而保留截然不同的软件发明。在一些实施例中,多个软件发明还可以被实现为单独的程序。最后,单独程序的任何组合都落在本发明的范围内,这些单独的程序一起实现此处描述的软件发明。在一些实施例中,当被安装以便在一个或更多个计算机系统上操作时的软件程序定义了一个或更多个专用机实现方式,该实现方式执行并且实现该软件程序的操作。

图24示出了实现本发明的一些实施例的计算机系统。该计算机系统包括各种类型的计算机可读媒体以及用于各种其它类型的计算机可读媒体的接口。计算机系统2400 包括总线2405、处理器2410、图形处理单元(GPU) 2420、系统存储器2425、只读存储器2430、 永久存储设备2435、输入设备2440以及输出设备2445。总线2405总地表示所有系统、外设以及芯片组总线,这些总线可通信地连接计算机系统2400中的大量内部设备。例如,总线2405将处理器2410与只读存储器2430、GPU 2420、系统存储器2425以及永久存储设备2435可通信地连接。从这些各种各样的存储器单元中,处理器2410检索用于执行的指令和用于处理的数据,以便执行本发明的过程。在一些实施例中,处理器包括现场可编程门阵列(FPGA)、 ASIC或用于执行指令的各种其它电子元件。在一些实施例中,处理器将一些指令传递给 GPU2420,并且由GPU 2420执行。GPU 2420可以下载各种计算或者完成处理器2410提供的图形处理。在一些实施例中,可以利用CoreImage的内核阴影语言(kernel shading language)提供这些功能。只读存储器(ROM) 2430存储静态数据和指令,处理器2410和计算机系统的其它模块需要这些静态数据和指令。另一方面,永久存储设备2435是读写存储器设备。该设备是非易失性存储器单元,用于即使当计算机系统2400关闭时,存储指令和数据。本发明的一些实施例将大型存储设备(诸如磁盘或者光盘及其相应的盘驱动器)用作永久存储设备 2435。其它实施例将可移动存储设备(诸如软盘、闪存驱动器或ZIP⑧盘及其相应的盘驱动器)用作永久存储设备。与永久存储设备2435相同,系统存储器2425是读写存储器设备。然而,与存储设备2435不同,系统存储器是易失性读写存储器,诸如随机存取存储器。 系统存储器存储处理器运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在系统存储器2425、永久存储设备2435和/或只读存储器2430中。例如,根据一些实施例,各个存储器单元包括用于处理多媒体项目的指令。从这些各个存储器单元中,处理器 2410检索用于执行的指令和用于处理的数据,以便执行一些实施例的过程。总线2405还连接到输入和输出设备2440和2445。输入设备使用户能够与计算机系统进行信息通信并且选择命令。输入设备2440包括字母数字键盘和指点设备(也称为“光标控制设备”)。输出设备2445显示由计算机系统产生的图像。例如,这些设备显示 GUI。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。最后,如图24中示出的,总线2405还通过网络适配器(未示出)将计算机2400耦接到网络2465。采用这种方式,计算机可以是计算机网络(诸如局域网(“LAN”))、广域网(“WAN”)、或内联网、或网络的网络(诸如因特网))的部分。例如,计算机2400可以被耦接到网页服务器(网络2465),从而当用户与网页浏览器中运行的GUI交互时,计算机 2400上运行的网页浏览器可以与网页服务器交互。结合本发明,可以使用计算机系统2400的任意或所有部件。例如,在一些实施例中,所描绘的框架的执行可以由GPU 2420而不是CPU 2410实现。同样,其它图形编辑功能可以被下载到GPU 2420,在GPU 2420中,在将结果传递回存储器或处理器2410之前执行这些图形编辑功能。然而,GPU 2420的常见限制是GPU 2420在给定时间内能够存储和处理的指令的数量。因此,一些实施例使指令适于实现过程,从而这些过程安装在GPU 2420的指令缓冲器上,以便在GPU2420上本地运行。另外,一些GPU 2420不包含足够的处理资源来执行一些实施例的过程并且因此CPU 2410执行指令。本领域技术人员可以理解,结合本发明,还可以使用任何其它系统配置。一些实施例包括电子元件诸如微处理器、存储设备以及存储器,其将计算机程序指令保存在机器可读或计算机可读介质(可替代地,被称为计算机可读存储媒体、机器可读媒体、或机器可读存储媒体)中。该计算机可读媒体的一些例子包括RAM、R0M、只读光盘 (CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字化视频光盘(例如,DVD-ROM、 双层DVD-ROM)、各种可记录/可重写DVD (例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如, SD卡、迷你SD卡、微型SD卡等)、磁性和/或固态硬盘驱动器、只读和可记录蓝光盘、超密度光盘、任何其它光盘或磁性介质,以及软盘。计算机可读媒体可以保存能够由至少一个处理器执行的计算机程序,并且包括用于实现各种操作的指令集。被构造用于保存并执行指令集的硬盘设备的例子包括,但并不限于,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、 可编程逻辑器件(PLD)、R0M以及RAM设备。计算机程序或计算机代码的例子包括机器代码和文件,该机器代码诸如可以由编译器产生,该文件包括可以由使用翻译程序的计算机、电子元件或微处理器执行的高级代码。如本申请的说明书以及任何权利要求中使用的,术语“计算机”、“服务器”、“处理器”以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。出于说明的目的,术语“显示”或“正在显示”是指电子设备上的显示。如本申请的说明书以及任何权利要求中使用的,术语“计算机可读介质”和“计算机可读媒体”全都被定义为切实的物理对象, 用于以计算机可读取的形式保存信息。这些术语不包括任何无线信号、有线下载信号以及任何其它短暂的信号。虽然已经结合大量具体细节描述了本发明,但是本领域技术人员将认识到,在不脱离本发明的精神的情况下,可以以其它特定的形式实现本发明。因此,本领域技术人员将理解,本发明并不受前述示例性细节的限制,而是由所附权利要求来限定。
权利要求
1.一种方法,包括显示具有特定顺序的多个菜单项;提供显示区域,用于以特定顺序显示这些菜单项中的一部分;以及在显示区域中提供选择窗口,用于指示菜单项当前是可选择的,显示区域进一步用于接收输入,所述输入用于(i)使菜单项以特定顺序滚动通过选择窗口,以及(ii)当在选择窗口中显示特定菜单项时,选择所述特定菜单项。
2.根据权利要求1的方法,其中所述显示区域是线形显示区域。
3.根据权利要求1的方法,其中所述显示区域是半圆形显示区域。
4.根据权利要求3的方法,其中在半圆形显示区域的顶部提供所述选择窗口。
5.根据权利要求1的方法,其中当将这些菜单项滚动通过选择窗口时,这些菜单项在显示区域一侧滚动到显示区域中并且在显示区域的相对侧滚动到显示区域之外。
6.根据权利要求5的方法,其中当菜单项接近显示区域的侧边时,将菜单项显示为部分淡化。
7.根据权利要求1的方法,其中所述显示区域用于接收光标控制器输入。
8.根据权利要求1的方法,其中所述菜单项是视频编辑工具,其中所述显示区域被置于视频编辑应用中。
9.根据权利要求8的方法,其中视频编辑工具包括波纹工具、卷动工具、滑动工具以及滑移工具中的至少一个。
10.一种计算机可读介质,存储供至少一个处理器执行的计算机程序,所述计算机程序包括指令集,所述指令集用于接收具有特定顺序的一组菜单项,其中这些菜单项中的特定一个菜单项被指定为初始可选择的菜单项;显示用于指示菜单项当前可选择的选择窗口;在选择窗口中显示初始可选择的菜单项;接收用于将菜单项以特定顺序滚动通过选择窗口的输入;接收用于在特定菜单项被显示在选择窗口中时选择所述特定菜单项的输入。
11.根据权利要求10的计算机可读介质,进一步包括指令集,用于在选择窗口的任一侧显示菜单项的子集。
12.根据权利要求11的计算机可读介质,其中当接收到用于将菜单项滚动通过选择窗口的输入时,只显示选择窗口的任一侧的菜单项的子集。
13.根据权利要求10的计算机可读介质,进一步包括指令集,用于在接收用于滚动菜单项的输入之前,接收用于打开菜单的输入,使得在选择窗口的任一侧显示菜单项的子集。
14.根据权利要求13的计算机可读介质,进一步包括指令集,用于当接收到用于打开菜单的输入时,将菜单项的子集显示为从选择窗口向外展开成半圆形。
15.根据权利要求10的计算机可读介质,其中接收到的用于将菜单项滚动通过选择窗口的输入包括来自选择窗口的一侧的光标控制器的点击输入。
16.根据权利要求15的计算机可读介质,其中接收到的用于选择特定菜单项的输入包括当特定菜单项被显示在选择窗口中时,来自选择窗口上的光标控制器的点击输入。
17.根据权利要求10的计算机可读介质,其中接收到的用于将菜单项滚动通过选择窗口的输入包括光标控制器按钮的按下和保持以及光标控制器的移动。
18.根据权利要求17的计算机可读介质,其中接收到的用于选择特定菜单项的输入包括当特定菜单项被显示在选择窗口中时,光标控制器按钮的释放。
19.一种计算机可读存储介质,存储供至少一个处理器执行的计算机程序,所述计算机程序包括图形用户界面(GUI),所述GUI包括显示区域,用于显示菜单的菜单项的子集,所述菜单项具有特定顺序;以及在显示区域中的选择窗口,所述选择窗口用于指示菜单项当前是可选择的, 所述显示区域进一步用于接收用户输入,所述输入用于(i)以特定顺序将菜单项滚动通过选择窗口,以及(ii)当在选择窗口中显示特定菜单项时,选择所述特定菜单项。
20.根据权利要求19的计算机可读存储介质,其中GUI被置于媒体编辑应用中。
21.根据权利要求19的计算机可读存储介质,其中GUI被置于计算机的操作系统中。
22.根据权利要求19的计算机可读存储介质,其中GUI被置于手持设备的触摸屏中。
全文摘要
本发明的一些实施例提供了一种定义具有特定顺序的多个菜单项的方法。该方法提供用于以特定顺序显示这些菜单项中的一部分的显示区域。该方法在显示区域中提供选择窗口,以便指示菜单项当前是可选择的。显示区域还用于接收输入,该输入用于(i)使菜单项以特定顺序滚动通过选择窗口,以及(ii)当在选择窗口中显示特定菜单项时,选择该特定菜单项。在一些实施例中,该显示区域是线形显示区域,而在一些实施例中,该显示区域是半圆形显示区域或其它形状。
文档编号H04M1/725GK102449589SQ201080023469
公开日2012年5月9日 申请日期2010年4月22日 优先权日2009年4月30日
发明者E·斯科卢兹, T·朗马彻 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1