US8601389B2 - Scrollable menus and toolbars - Google Patents

Scrollable menus and toolbars Download PDF

Info

Publication number
US8601389B2
US8601389B2 US12/433,891 US43389109A US8601389B2 US 8601389 B2 US8601389 B2 US 8601389B2 US 43389109 A US43389109 A US 43389109A US 8601389 B2 US8601389 B2 US 8601389B2
Authority
US
United States
Prior art keywords
menu
item
menu items
items
selection window
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US12/433,891
Other versions
US20100281374A1 (en
Inventor
Egan Schulz
Tom Langmacher
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LANGMACHER, TOM, SCHULZ, EGAN
Priority to US12/433,891 priority Critical patent/US8601389B2/en
Priority to KR1020117028492A priority patent/KR20120023722A/en
Priority to RU2011148391/08A priority patent/RU2530301C2/en
Priority to EP10716210A priority patent/EP2425320A1/en
Priority to AU2010241880A priority patent/AU2010241880B2/en
Priority to CN201080023469.7A priority patent/CN102449589B/en
Priority to PCT/US2010/032138 priority patent/WO2010126782A1/en
Publication of US20100281374A1 publication Critical patent/US20100281374A1/en
Publication of US8601389B2 publication Critical patent/US8601389B2/en
Application granted granted Critical
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • G06F3/0485Scrolling or panning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/22Details of telephonic subscriber devices including a touch pad, a touch sensor or a touch detector

Definitions

  • the invention is directed towards the presentation of menu or toolbar options in a graphical user interface. Specifically, the invention is directed towards presenting numerous options that scroll through a particular location at which the options can be selected.
  • User interfaces of computer applications often provide numerous commands or user interface tools for a user to choose from. For instance, many applications include drop-down menus. Such menus often include lists of commands. There are standard commands such as opening a file, printing a document, saving a document, etc., as well as more application-specific commands such as inserting a page break (for a word-processing application), formatting cells (for a spreadsheet application), etc.
  • Many applications also include toolbars or tool palettes. For instance, many computing applications have one or more rows of toolbars at the top of their user interface.
  • the toolbars include various types of tools. Drawing applications have drawing tools, video editing applications have video-editing tools, etc.
  • Some applications also have floating tool palettes. For instance, some video-editing applications include a floating trim tool palette that allows a user to select between various different trim tools for video-editing.
  • Such toolbars, tool palettes and drop-down menus can take up valuable real estate in the graphical user interface. Furthermore, the number of items in such menus and toolbars is limited by screen space. For example, a user does not want a floating tool palette that takes up too much of the screen. As more options are added to a tool palette, the tool palette must get larger or the size of the options must get smaller. Just as the tool palettes can only increase in size to a certain point, the size of the options can only decrease to a certain point before they become indistinguishable. As such, a need exists for ways to display toolbars or menus that do not take up significant amounts of screen space while keeping the options at a visually recognizable size.
  • Some embodiments of the invention provide a novel method for presenting a menu in a graphical user interface.
  • the menu includes several selectable menu items that are assigned a particular order for scrolling through a selection window based on user input.
  • each of the menu items is associated with a command.
  • a user can select the menu item in order to perform the command associated with the menu item.
  • the menu items may be displayed as standard text items in some embodiments (e.g., “File”, “Save”, “Print”, etc.) or may be displayed as icons (e.g., icons representing various tools, such as drawing tools, video editing tools, etc.).
  • the menu items are ordered within the menu (e.g., a first menu item is assigned to be one menu item left of a second menu item). Different embodiments use different techniques to determine this order. For instance, in some embodiments, the order can be defined by a user, by a random process, and/or by a developer of the program or operating system that uses the menu. In some embodiments, the order can also change based on use statistics, favoring menu items that are more regularly selected.
  • the selection window is an indicator (e.g., a highlight, box, etc.) that indicates that a particular menu item can be presently selected.
  • the selection window is static or nearly static as the menu items scroll through.
  • the order of the menu items is the order in which they scroll through the selection window in response to user input.
  • the menu item that is initially displayed in the selection window need not be the first menu item in the order (i.e., the leftmost, topmost, etc.).
  • the menu items can scroll in two directions (e.g., left and right, up and down)
  • some embodiments initially display the menu item in the middle of the order in the selection window.
  • the nature of the scrolling can be in two different forms in some embodiments, depending on how the items are ordered.
  • the menu items cannot scroll past the first and last items in the order.
  • the items can be continuously scrolled in a loop as the ordering of the menu items is only defined relative to one another, and there is only a first item to the extent that there is an item that is initially displayed in the selection window.
  • some embodiments scroll the menu items through the selection window in such a fashion that the number of menu items is not limited by space in the graphical user interface. For instance, some embodiments only display the menu item that is presently in the selection window and a portion of the menu items on either side of the selection window. Some embodiments display a small number of menu items on either side of the selection window, with the items that are not actually in the selection window displayed as partially faded. As the menu items scroll through the selection window, new items appear in the display as previously displayed items disappear.
  • the shape of the displayed menu is also different in different embodiments. Some embodiments display the menu in linear form, with the menu items scrolling in one dimension (e.g., horizontally or vertically). Other embodiments display the menu as a semi-circle, with the menu items scrolling along the semicircle. Other non-linear configurations of menu items are also possible.
  • the menu also might be presented differently in different embodiments in that some embodiments display the menu constantly at a set location, whereas other embodiments require user input to invoke the display of the menu.
  • the menu might be a toolbar in a media-editing application that occupies a particular location in the user interface of the application, or a menu in an operating system that is invoked by a keystroke.
  • Different embodiments provide different schemes for navigating through the menu items.
  • users can click over the displayed items on either side of the selection window in order to cause the next item in the menu order to move into the selection window.
  • users can scroll the menu items by using various forms of sliding or swiping input (e.g., dragging a mouse).
  • the menu items are displayed as moving in large, discernible steps, while in other cases the items are displayed as moving in small steps that make the movement appear smooth.
  • a user can select the menu item in order to cause instructions associated with the selected menu item to be performed.
  • the instructions can activate a particular tool (e.g., if the menu is a group of video-editing tools), can cause a command (e.g., save a file, print a document, etc.) to be performed, or can open a submenu.
  • Submenus are opened perpendicular to the previous menu in some embodiments. For instance, when the menu items in an initial menu scroll horizontally through the selection window, some embodiments open a submenu such that the menu items in the submenu scroll vertically through the selection window.
  • Different embodiments enable users to select a menu item that is in the selection window in different ways.
  • a user clicks or double-clicks over the menu item in the selection window.
  • the user selects an item by simply releasing a mouse button while the menu item is scrolling through the selection window.
  • some embodiments automatically open the submenu when the menu item enters the selection window.
  • FIG. 1 illustrates a menu including eight menu items.
  • FIG. 2 illustrates the display and use of the menu of FIG. 1 according to some embodiments of the invention.
  • FIG. 3 conceptually illustrates a process of some embodiments for displaying a menu and receiving user interactions with the menu.
  • FIG. 4 conceptually illustrates a process of some embodiments for navigating a menu based on single-click input from a cursor controller.
  • FIG. 5 illustrates the navigation of a menu according to the process of FIG. 4 .
  • FIG. 6 conceptually illustrates a first process of some embodiments for navigating a menu based on click-and-drag input from a cursor controller.
  • FIG. 7 illustrates the navigation of a menu according to the process of FIG. 6 .
  • FIG. 8 conceptually illustrates a second process of some embodiments for navigating a menu based on click-and-drag input from a cursor controller.
  • FIG. 9 illustrates the navigation of a menu according to the process of FIG. 8 .
  • FIG. 10 conceptually illustrates a third process of some embodiments for navigating a menu based on click-and-drag input from a cursor controller.
  • FIG. 11 illustrates the navigation of a menu according to the process of FIG. 10 .
  • FIG. 12 illustrates an example of the navigation of a menu and sub-menu of some embodiments.
  • FIG. 13 illustrates a menu of some embodiments that displays menu items outside of a primary display as faded while a user scrolls through the menu.
  • FIG. 14 illustrates the opening of a semi-circular menu of some embodiments.
  • FIG. 15 illustrates the navigation of the menu of FIG. 14 and the selection of an item from the menu.
  • FIG. 16 illustrates an example of a semi-circular menu that includes a menu item that opens a sub-menu.
  • FIG. 17 illustrates the opening of a circular menu of some embodiments.
  • FIG. 18 illustrates a circular menu that is partially faded after a sub-menu has opened vertically above and below a selection window.
  • FIG. 19 illustrates a computer desktop displaying various features of an operating system of some embodiments.
  • FIG. 20 illustrates a video-editing application that is used to create composite video presentations and that utilizes the menus of some embodiments.
  • FIG. 21 illustrates a handheld device that is displaying a web browser that utilizes the menus of some embodiments.
  • FIG. 22 conceptually illustrates the software architecture of an application of some embodiments for presenting menus.
  • FIG. 23 conceptually illustrates a process of some embodiments for manufacturing a computer readable medium that stores a computer program.
  • FIG. 24 conceptually illustrates a computer system with which some embodiments of the invention are implemented.
  • Some embodiments of the invention provide a novel method for presenting a menu in a graphical user interface.
  • the menu includes several selectable menu items that are assigned a particular order for scrolling through a selection window based on user input.
  • each of the menu items is associated with a command.
  • a user can select the menu item in order to perform the command associated with the menu item.
  • FIG. 1 illustrates a menu 100 that includes eight menu items 101 - 108 .
  • the menu items 101 - 108 are ordered from the first Item A ( 101 ) to the last Item H ( 108 ). This means that, for example, Item C ( 103 ) will appear in the menu after (e.g, to the right of) Item B ( 102 ) and before (e.g., to the left of) Item D ( 104 ).
  • Different embodiments use different techniques to determine this order.
  • the order can be defined by a user, by a random process, and/or by a developer of the program or operating system that uses the menu.
  • the order can also change based on use statistics, favoring menu items that are more regularly selected. For example, if Item C ( 103 ) is never selected, it might be moved after Item H ( 108 ) in the order.
  • FIG. 2 illustrates the display and use of menu 100 according to some embodiments of the invention.
  • FIG. 2 illustrates the menu 100 at an initial stage 210 with an initial item in a selection window and two possible second stages 220 and 230 with different items in the selection window.
  • the display of menu 100 includes a selection window 205 .
  • the selection window is an indicator (e.g., a highlight in this example) that indicates that a particular menu item can be presently selected.
  • the menu item that is initially displayed in the selection window need not be the first menu item in the order.
  • the initial menu item displayed in selection window 205 for menu 100 is the fourth menu item 104 , which is close to the middle of the order for menu 100 .
  • Stages 220 and 230 illustrate the scrolling of menu 100 through selection window 205 in two possible directions.
  • Stage 220 illustrates the result of user input to scroll through the menu 100 to the right, thereby bringing Item C ( 103 ) into selection window 205 from the left and moving Item D ( 104 ) mostly out of the display to the right.
  • stage 230 illustrates the result of user input to scroll through the menu 100 to the left, thereby bringing Item E ( 105 ) into selection window 205 from the right and moving Item D ( 104 ) mostly out of the display to the left.
  • FIG. 3 conceptually illustrates a process 300 of some embodiments for displaying a menu and receiving user interaction with the menu.
  • process 300 begins by receiving (at 305 ) a set of menu items that make up a menu, such as the menu items 101 - 108 .
  • the set of menu items can include any number of items, because the menu is displayed in such a way that the number of items is not limited by space in the graphical user interface.
  • Process 300 determines (at 310 ) an order for the menu items. As described above, the order can be coded by a software designer, user-determined, determined by use statistics, etc. The process next determines (at 315 ) an initial menu item that is to be displayed in a selection window. Much like the order of the menu items, some embodiments determine the initial menu item based on coded instructions, user input, use statistics, etc.
  • the process then displays (at 320 ) the menu with the initial item in the selection window.
  • Displaying the menu does not necessarily involve displaying all of the menu items; as illustrated in FIG. 2 , some embodiments only display one full menu item at a time, which enables the menu to include an unlimited number of items as adding more menu items does not cause the menu to take up any more space.
  • Some embodiments display a small number of menu items on either side of the selection window, with those items that are not in the selection window displayed as partially faded. For instance, at stage 210 of FIG. 2 , such embodiments might display Item B ( 102 ) and Item C ( 103 ) to the left of selection window 205 (and items to the right as well), but display these items as partially transparent to indicate that they are not in the selection window.
  • process 300 determines (at 325 ) whether any input has been received.
  • Input can be received through a cursor controller such as a mouse, trackpad, touchpad, etc. (e.g., dragging, scrubbing, clicking, etc.) or through a keyboard (e.g., pressing arrow keys, the Enter key, etc.).
  • a cursor controller such as a mouse, trackpad, touchpad, etc.
  • a keyboard e.g., pressing arrow keys, the Enter key, etc.
  • the process displays (at 335 ) the scrolling of the menu, then proceeds to 355 , which is described below.
  • the selection window does not move as the menu items scroll through.
  • Some embodiments scroll the menu items through the selection window at a constant rate, while other embodiments jump the menu items in large distinguishably discrete steps into the selection window.
  • the menu items scroll at a constant rate but the selection window moves within a threshold distance of its initial position, jumping from one item to the next.
  • the nature of the scrolling at the boundaries of the menu order can be in one of two different forms in some embodiments.
  • the order has a defined first and last item, and the items cannot scroll past these endpoint items. For instance, if menu 100 is arranged in this fashion, then when a user scrolls the menu such that Item A ( 101 ) is in the selection window 205 , there will be no item partially displayed to the left of Item A ( 101 ).
  • the ordering of the menu items is only relative. In such cases, the items are ordered in a loop without a beginning or end and thus the items can be continously scrolled through in a loop.
  • menu 100 is arranged in this fashion, then when a user scrolls the menu such that Item A ( 101 ) is in the selection window 205 , Item H ( 108 ) would be partially displayed to the left, and scrolling the menu to the right would bring Item H ( 108 ) into the selection window 205 .
  • process 300 determines (at 340 ) whether the input is for selecting a menu item.
  • Input to select a menu item can be in the form of a click, a double click, a release of a cursor controller button, etc.
  • the process displays (at 345 ) the selection. For example, some embodiments fade out all menu items except the selected item, or display the menu item blinking.
  • the process then performs (at 350 ) instructions associated with the selected menu item, and ends.
  • the menu items can cause all different sorts of instructions to be performed.
  • the menu items could represent different video-editing tools (or any other sort of user interface tool), such as blade, ripple, and slip tools.
  • the menu could also be lists of commands (e.g., save a file, print a document, etc) and submenus.
  • submenus are opened perpendicular to the previous menu. For instance, if Item C ( 103 ) of menu 100 causes a submenu to open, then if at stage 220 a user selects this item, the submenu would open vertically with items above and/or below selection window 205 .
  • the process determines (at 355 ) whether to continue displaying the menu. Some embodiments stop displaying a menu if no input is received for a threshold amount of time, or if the application of which the menu is a part is closed. Some embodiments include an option for a user to select that closes a menu.
  • process 300 determines to continue displaying the menu, the process proceeds to 325 to continue determining whether input is received. Otherwise, the process ends.
  • Process 300 is applicable to a variety of embodiments that display menus having different shapes. Some embodiments, as is the case with menu 100 , display the menu in linear form, with the menu items scrolling in one dimension. FIG. 2 illustrates menu 100 scrolling horizontally, though the menu items could just as easily be aligned vertically. Other embodiments, rather than displaying the menu in a linear fashion in one dimension, instead display the menu as a semi-circle, with the menu items scrolling along the semicircle. Other configurations of menu items are also possible, such as displaying all of the menu items at once in a circle.
  • Section I describes and illustrates various features of linear menus
  • Section II describes and illustrates various features of semi-circular menus
  • Section III presents examples of an alternative circular menu, although many of the features described in these sections are not limited to menus having the particular shape used in the examples.
  • Section IV describes the software architecture of an application that employs the menus of some embodiments.
  • Section V describes a computer system that implements some embodiments of the invention.
  • some embodiments of the invention provide menus that are displayed in linear fashion.
  • Each of the following five subsections describe examples of such menus, in which menu items scroll through a selection window.
  • Each of the first four subsections presents a different way for the menu items to scroll through the selection window, while the fifth subsection presents other menu features.
  • One of ordinary skill in the art will recognize that many of the features described in these sections (e.g., how the menu items scroll through the selection window, how submenus are displayed, etc.) are applicable to menus that are not displayed linearly (e.g., semi-circular menus).
  • menus in the following subsections are all shown as moving primarily left and right.
  • One of ordinary skill in the art will recognize that similar menus could be implemented that move up and down.
  • some embodiments initially display only a single menu item and can be displayed either vertically or horizontally when activated.
  • the application displaying the menu waits for cursor controller input—if the input is predominantly up or down, then the menu is displayed vertically, while if the input is predominantly left or right, then the menu is displayed horizontally.
  • FIG. 4 conceptually illustrates a process 400 of some embodiments for navigating a menu based on single-click input from a cursor controller.
  • Process 400 will be described by reference to FIG. 5 , which illustrates the navigation of such a menu 500 of some embodiments.
  • FIG. 5 illustrates three stages, 510 , 520 , and 530 .
  • Stage 510 illustrates the menu 500 as initially displayed
  • stage 520 illustrates the menu 500 and a cursor 515 before click input is received to navigate the menu
  • stage 530 illustrates the menu 500 after the click input is received.
  • process 400 begins by displaying (at 405 ) a menu with an initial item in a selection window of the menu.
  • the menu in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
  • Stage 510 illustrates selection window 505 with item 540 .
  • Item 540 is the item initially displayed in selection window 505 .
  • item 535 is partially displayed to the left of item 540 and item 545 is partially displayed to the right of item 540 .
  • Item 535 is one item prior to item 540 in the order for the menu items and item 545 is one item after item 540 .
  • Process 400 next receives (at 410 ) a click of a mouse button (i.e., a press and release of the mouse button).
  • the click could be from a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system).
  • the process determines the location of the cursor at the time of the click and translates the location and click into an action.
  • the process determines (at 412 ) whether the mouse click indicates that the menu should be closed without selecting an item. When the mouse click so indicates, the process ends. For instance, some embodiments include an “x” or similar graphical indication for closing the menu. When a user clicks on the “x”, rather than selecting an item or scrolling the menu in either direction, the menu closes. Some embodiments do not include such an option, and the process for navigating such a menu would differ accordingly. For example, in some embodiments the menu is a permanent toolbar in an application, and does not close until the application closes.
  • the process determines (at 415 ) whether the cursor is over the selection window. When the cursor is over the selection window, the process selects (at 420 ) the menu item that is in the selection window. Selecting the menu item, in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool. After selecting the menu item, the process ends.
  • the process determines (at 425 ) whether the cursor is to the right of the selection window. Stage 520 of FIG. 5 illustrates this case. Cursor 515 is located to the right of selection window 505 and over the partially displayed item 545 . When the cursor is to the right of the selection window at the time of the click, the process scrolls (at 430 ) the menu items to the left by one item. This causes the menu item that was previously to the right of the selection window to be displayed in the selection window.
  • Stage 530 of FIG. 5 illustrates the result of receiving a click of a mouse button while cursor 515 is at the location shown at 520 .
  • item 545 is now in selection window 505
  • item 540 is only partially shown to the left of the selection window
  • a new item 550 is now partially displayed to the right of the selection window.
  • the process scrolls (at 440 ) the menu items to the right by one item, as the cursor must be to the left of the selection window (since it is neither over the selection window nor to the right of the selection window). This causes the menu item that was previously to the left of the selection window to be displayed in the selection window.
  • process 400 is an example of one possible process performed by some embodiments in order to scroll the menu by one item with each mouse click.
  • Process 400 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 415 , 425 , and 435 need not necessarily be performed in the order shown in FIG. 4 .
  • Some embodiments might also include three separate sets of computer instructions depending on where the cursor is located when the mouse click input is received, rather than all of the three relevant locations being handled by one set of instructions.
  • FIG. 6 conceptually illustrates a process 600 of some embodiments for navigating a menu based on a click-and-drag input from a cursor controller. Specifically, according to process 600 , the menu items are scrolled continuously in response to the click-and-drag input and when the input is finished the item closest to the selection window is selected. Process 600 will be described by reference to FIG. 7 , which illustrates the navigation of such a menu 700 of some embodiments.
  • FIG. 7 illustrates five stages, 710 , 720 , 730 , 740 , and 750 .
  • Stage 710 illustrates the menu 700 as initially displayed with a cursor 715
  • stages 720 and 730 illustrate the menu 700 while a mouse button is held down and the mouse is moved in order to scroll the menu
  • stage 740 illustrates the menu 700 as the button is released
  • 750 illustrates the menu 700 shortly after the release of the mouse button.
  • process 600 begins by displaying (at 605 ) a menu with an initial item in a selection window of the menu.
  • the menu in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
  • Stage 710 illustrates selection window 705 with item 760 .
  • Item 760 is the item initially displayed in selection window 705 .
  • item 755 is partially displayed to the left of item 760 and item 765 is partially displayed to the right of item 760 .
  • Item 755 is one item prior to item 760 in the order for the menu items and item 765 is one item after item 760 .
  • Process 600 next receives (at 610 ) a press and hold of a mouse button.
  • the mouse button could be a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system).
  • the process requires that the cursor be over the menu when the mouse button is pressed down in order to translate mouse movement into menu scrolling and selection.
  • the process determines (at 615 ) whether the mouse is moving left.
  • the process scrolls (at 620 ) the menu items to the left. This causes the menu item that was previously in the selection window to start moving to the left as the menu item displayed to the right begins to move into the selection window. The left-most displayed menu item moves out of the menu display as an item moves into the display from the right side.
  • the process then proceeds to 635 , which is described below.
  • the process determines (at 625 ) whether the mouse is moving right.
  • the process scrolls (at 630 ) the menu items to the right. This causes the menu item that was previously in the selection window to start moving to the right as the menu item displayed to the left begins to move into the selection window. The right-most displayed menu item moves out of the display as an item moves into the display from the left side.
  • FIG. 7 illustrates the case where input is received indicating that the mouse is being moved to the left.
  • cursor 715 is visible over selection window 705 .
  • Stage 720 illustrates menu 700 shortly after the mouse button is pressed and a user begins moving the mouse to the right.
  • Menu item 755 is no longer displayed at all, menu item 760 is no longer centered in selection window 705 , and menu item 765 is now fully displayed.
  • Cursor 715 is no longer visible at this stage. Some embodiments do not display the cursor while the mouse button is held down, as the actual movement shown on the screen is in the direction opposite the mouse movement. Some embodiments display the cursor as unmoving over the selection window, to simulate the idea that the selection window is being dragged by the mouse movement over static menu items. In some such embodiments, rather than left mouse movement moving the menu items left, the menu items move in a direction opposite the mouse movement.
  • Stage 730 illustrates the menu 700 after a user has continued to move the mouse to the left, thereby causing the menu items to scroll to the left.
  • Stage 730 illustrates a menu item 770 that has moved almost completely out of the display, menu item 775 that is just leaving the selection window, and menu item 780 that is almost fully displayed and just entering the selection window.
  • process 600 next determines (at 635 ) whether input has been received indicating that the mouse button has been released. When the mouse button is not released, the process returns to 615 to continue processing mouse input.
  • a user can move the mouse back and forth, thereby moving the menu items both left and right. Thus, if a user scrolls the menu too far, they can move the mouse in the other direction, causing the menu to scroll back to the desired menu item.
  • Stage 740 of FIG. 7 illustrates the menu 700 immediately after the mouse button is released. The release of the mouse button is indicated by cursor 715 becoming visible again. At this point, menu item 775 has mostly been scrolled out of the selection window, while menu item 780 is most of the way into the selection window. As menu item 780 is the closest to being centered in the selection window, process 600 would identify item 780 .
  • Stage 750 of FIG. 7 illustrates the result of the menu item 780 being moved into the selection window after the mouse button is released.
  • Some embodiments display the menu as moving very quickly between the release of the mouse button and the centering of the identified item (e.g., between stages 740 and 750 ).
  • Other embodiments simply redraw the menu with the identified item centered in the selection window—the menu items are not displayed as moving but rather are displayed at the location where the mouse button is released and then immediately displayed with the identified item in the selection window.
  • the process selects (at 650 ) the identified menu item.
  • Selecting the menu item in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool.
  • Some embodiments also include an item the selection of which simply closes the menu and causes no other instructions to be performed. Such an option enables a user to decide during the menu navigation process that no menu item should be selected, so the user can then scroll through to the close menu option and select that instead.
  • the process ends.
  • process 600 is an example of one possible process performed by some embodiments in order to scroll the menu by holding down a mouse button.
  • Process 600 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 615 and 625 need not necessarily be performed in the order shown in FIG. 6 .
  • Some embodiments might also utilize different techniques to determine which item should be selected when the mouse button is released. Rather than identifying the item closest to the selection window, some embodiments identify the item that was most recently fully centered (i.e., the item leaving the selection window as the user releases the mouse button). Similarly, some embodiments identify the item that most recently started entering the selection window (i.e., the item entering the selection window as the user releases the mouse button).
  • FIG. 8 conceptually illustrates a process 800 of some embodiments for navigating a menu based on a click-and-drag input from a cursor controller.
  • the menu items are scrolled continuously in response to the click-and-drag input as a selection window moves with a menu item up to a threshold point and then jumps to the next menu item.
  • the input is finished the item presently in the selection window is selected.
  • Process 800 will be described by reference to FIG. 9 , which illustrates the navigation of such a menu 900 of some embodiments.
  • FIG. 9 illustrates six stages, 910 , 920 , 930 , 940 , and 950 .
  • Stage 910 illustrates the menu 900 as initially displayed with a cursor 915
  • stages 920 , 930 , and 940 illustrate the menu 900 while a mouse button is held down and the mouse is moved in order to scroll the menu
  • stage 950 illustrates the menu 900 as the button is released
  • 960 illustrates the menu 900 shortly after the release of the mouse button.
  • process 800 begins by displaying (at 805 ) a menu with an initial item in a selection window of the menu.
  • the menu in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
  • Stage 910 illustrates selection window 905 with item 970 .
  • Item 970 is the item initially displayed in selection window 905 .
  • item 965 is partially displayed to the left of item 970 and item 975 is partially displayed to the right of item 970 .
  • Item 965 is one item prior to item 970 in the order for the menu items and item 975 is one item after item 970 .
  • Process 800 next receives (at 810 ) a press and hold of a mouse button.
  • the mouse button could be a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system).
  • the process requires that the cursor be over the menu when the mouse button is pressed down in order to translate mouse movement into menu scrolling and selection.
  • the process determines (at 815 ) whether the mouse is moving left. When the mouse is moving left, the process scrolls (at 820 ) the menu items and the selection window to the right. As the menu items move, the selection window moves with them, rather than staying in place with the items moving through the window. The process then proceeds to 835 , which is described below. The rightmost displayed menu item moves out of the display as an item moves into the display from the left side.
  • the process determines (at 825 ) whether the mouse is moving right.
  • the process scrolls (at 830 ) the menu items and the selection window to the left.
  • the selection window moves with them, rather than staying in place with the items moving through the window.
  • the leftmost displayed menu item moves out of the display as an item moves into the display from the left side.
  • the process does not scroll the menu items in either direction, and proceeds to 845 , which is described below.
  • FIG. 9 illustrates the case where input is received indicating that the mouse is being moved to the right while the mouse button is held down.
  • cursor 915 is visible over selection window 905 .
  • Stage 920 illustrates menu 900 shortly after the mouse button is pressed and a user begins moving the mouse to the right.
  • Menu item 965 is no longer displayed at all, menu item 970 is no longer centered in the menu display, and menu item 975 is close to being fully displayed.
  • Cursor 915 is no longer visible at this stage. Some embodiments do not display the cursor while mouse button is held down, as the actual movement shown on the screen is in the direction opposite the mouse movement. Some embodiments display the cursor moving with the selection window.
  • process 800 next determines (at 835 ) whether the selection window has been moved past a threshold. When the selection window has moved past the threshold, the process jumps (at 840 ) the selection window to the next menu item. When the menu items are moving to the right, the next menu item is the item to the left of the selection window. Correspondingly, when the menu items are moving to the left, the next menu item is the item to the right of the selection window.
  • the threshold is the point at which the selection window would be moving out of the display. This is especially applicable to menu displays that only allow for the display of a small number of menu items. Some embodiments define the threshold as the point at which the next menu item would take up more than half of the selection window if the selection window was not moving.
  • Stage 930 of FIG. 9 illustrates that menu 900 has been scrolled left to the point that selection window 905 has reached the left edge of the display, which is the threshold for this menu display.
  • Stage 940 illustrates the result of scrolling the menu further to the left, which is that selection window 905 has jumped from menu item 970 to menu item 975 .
  • To jump the selection window to the next item some embodiments display the selection window as moving very quickly between one item and the next. Other embodiments simply redraw the menu with the selection window over the next item—the selection window is not displayed as moving but rather is displayed over the first item and then immediately displayed over the next item.
  • Process 800 next determines (at 845 ) whether input has been received indicating that the mouse button has been released. When the mouse button is not released, the process returns to 815 to continue processing mouse input.
  • a user can move the mouse back and forth, thereby moving the menu items both left and right. Thus, if a user scrolls past a desired menu item, they can move the mouse in the opposite direction, causing the menu to scroll back to the desired item.
  • Stage 950 of FIG. 9 illustrates the menu 900 immediately after the mouse button is released. The release of the mouse button is indicated by cursor 915 becoming visible again. At this point, the selection window 905 has recently jumped from menu item 980 to item 985 . As such, the process would identify item 985 as the menu item currently in selection window 905 .
  • Stage 960 illustrates the result of the menu item 985 and the selection window 905 being centered in the display for menu 900 after the mouse button is released.
  • Some embodiments display the menu and selection window as moving very quickly between the release of the mouse button and the centering of the item and selection window (e.g., between stages 950 and 960 ).
  • Other embodiments simply redraw the menu with the identified item and selection window centered—the menu items are not displayed as moving but rather are displayed at the location where the mouse button is released and then immediately displayed with the identified item and selection window centered.
  • the process selects (at 860 ) the identified menu item.
  • Selecting the menu item in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool.
  • Some embodiments also include an item the selection of which simply closes the menu and causes no other instructions to be performed. Such an option enables a user to decide during the menu navigation process that no menu item should be selected, so the user can then scroll through to the close menu option and select that instead.
  • the process ends.
  • process 800 is an example of one possible process performed by some embodiments in order to scroll the menu by holding down a mouse button.
  • Process 800 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 815 and 825 need not necessarily be performed in the order shown in FIG. 8 .
  • Some embodiments might also have two separate sets of instructions for determining whether the selection window had passed a threshold—one set of instructions when the menu items are moving left and one set of instructions when the menu items are moving to the right.
  • FIG. 10 conceptually illustrates a process 1000 of some embodiments for navigating a menu based on a click-and-drag input from a cursor controller. Specifically, according to process 600 , the menu items do not move as the cursor controller is being moved until a threshold amount of movement is reached, at which point the menu items are shifted by one item. Process 1000 will be described by reference to FIG. 11 , which illustrates the navigation of such a menu 1100 of some embodiments.
  • FIG. 11 illustrates four stages, 1110 , 1120 , 1130 , and 1140 .
  • Stage 1110 illustrates the menu 1100 as initially displayed with a cursor 1115
  • stages 1120 and 1130 illustrate the menu 1100 while a mouse button is held down and the mouse is moved in order to scroll the menu
  • stage 1140 illustrates the menu as the button is released.
  • process 1000 begins by displaying (at 1005 ) a menu with an initial item in a selection window of the menu.
  • the menu in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
  • Stage 1110 illustrates selection window 1105 with item 1150 .
  • Item 1150 is the item initially displayed in selection window 1105 .
  • item 1145 is partially displayed to the left of item 1150 and item 1155 is partially displayed to the right of item 1150 .
  • Item 1145 is one item prior to item 1150 in the order for the menu items and item 1155 is one item after item 970 .
  • Process 1000 next receives (at 1010 ) a press and hold of a mouse button.
  • the mouse button could be a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system).
  • the process requires that the cursor be over the menu when the mouse button is pressed down in order to translate mouse movement into menu scrolling and selection.
  • the process determines (at 1015 ) whether the mouse is moving left. When the mouse is moving left, the process determines (at 1020 ) whether the mouse movement passes a threshold. When the mouse movement has passed the threshold, the process jumps (at 1025 ) the next menu item leftwards into the selection window. This causes the entire menu to shift to the left by one item.
  • the threshold amount of mouse movement is a constant that is based on the amount of mouse movement that would be required to move the cursor a particular distance on the display. Some embodiments vary the threshold amount based on how fast the mouse is moving, allowing a user to more quickly move through the menu by using faster mouse movements. The process then proceeds to 1045 , which is described below.
  • the process determines (at 1030 ) whether the mouse is moving right. When the mouse is not moving right (i.e., a user is holding the mouse button down but not moving the mouse), the process proceeds to 1045 , which is described below. Otherwise, the process determines (at 1035 ) whether the mouse movement passes a threshold. When the mouse movement has passed the threshold, the process jumps (at 1040 ) the next menu item rightwards into the selection window. This causes the entire menu to shift to the right by one item.
  • the threshold amount of mouse movement is a constant that is based on the amount of mouse movement that would be required to move the cursor a particular distance on the display. Some embodiments vary the threshold amount based on how fast the mouse is moving, allowing a user to more quickly move through the menu by using faster mouse movements.
  • FIG. 11 illustrates the case where input is received indicating that the mouse is being moved to the left.
  • cursor 1115 is visible over the selection window 1105 .
  • Stage 1120 illustrates menu 1100 shortly after the mouse button is pressed and a user begins moving the mouse to the left. Although the mouse has started moving, because the mouse has not been moved by at least a threshold amount, the menu items 1145 , 1150 , and 1155 have not been moved at all.
  • Cursor 1115 is no longer visible at this stage. Some embodiments do not display the cursor while mouse button is held down. Some embodiments display the cursor as unmoving over the selection window, to simulate the idea that the selection window is being dragged by the mouse movement over static menu items. In some such embodiments, rather than left mouse movement moving the menu items left, the menu items move in a direction opposite the mouse movement.
  • Stage 1130 illustrates the menu 1100 after a user has moved the mouse far enough to the right to cause the menu items to shift to the left by one item. Stage 1130 illustrates that menu item 1155 is now in selection window 1105 , menu item 1150 has moved from the selection window to being partially displayed to the left of selection window 1105 , and menu item 1160 has appeared from the right and is partially displayed to the right of selection window 1105 . Some embodiments display the menu as moving very quickly when shifting the menu to either the right or left. Other embodiments simply redraw the menu with the items shifted as soon as the the mouse movement passes the threshold rather than displaying the movement of the menu items at all.
  • process 1000 next determines (at 1045 ) whether input has been received indicating that the mouse button has been released. When the mouse button is not released, the process returns to 1015 to continue processing mouse input.
  • a user can move the mouse back and forth, thereby moving the menu items both left and right. Thus, if a user scrolls past a desired menu item, they can move the mouse in the opposite direction, causing the menu to scroll back to the desired item.
  • the process selects (at 1050 ) the item that is currently in the selection window. Selecting the menu item, in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool. Some embodiments also include an item the selection of which simply closes the menu and causes no other instructions to be performed. Such an option enables a user to decide during the menu navigation process that no menu item should be selected, so the user can then scroll through to the close menu option and select that instead. After selecting the menu item, the process ends.
  • Stage 1140 of FIG. 11 illustrates the menu 1100 immediately after the mouse button is released.
  • the release of the mouse button is indicated by cursor 1115 becoming visible again.
  • menu item 1165 has been recently moved into selection window 1105 .
  • the process would select item 1165 as the item currently in the selection window.
  • process 1000 is an example of one possible process performed by some embodiments in order to scroll the menu by holding down a mouse button.
  • Process 1000 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 1015 and 1030 need not necessarily be performed in the order shown in FIG. 6 .
  • swipe gestures e.g., a two finger swipe
  • the number of menu items scrolled through by a single swipe gesture would be dependent upon the speed and length of the swipe gesture in some embodiments.
  • a different input such as a double tap with the cursor over the selection window, could then be used to select an item from the menu.
  • swipe gestures over a menu on a touchscreen could be used (without a cursor) to scroll through the menu items.
  • the number of menu items scrolled through by a single swipe gesture would be dependent on the speed and length of the swipe gesture in some embodiments.
  • a user tapping quickly, or double-tapping (or some other gesture) on an item in the selection window could be used to select an item.
  • selection of a menu item causes instructions associated with the selected menu item to be performed in some embodiments.
  • the instructions activate a particular tool.
  • the menu is part of a video-editing application.
  • the menu items could be video-editing tools (e.g., blade, ripple, slip, razor, etc.) or different transition options (e.g., dissolve, fade, etc.
  • the menu item instructions cause a command to be performed.
  • the menu items represent the typical drop-down menu options of an application (e.g., a “File” menu with “Save”, “Print”, “Open”, etc. options).
  • one or more of the menu items causes a sub-menu to open when selected.
  • the menu is navigated through a user pressing and holding a cursor controller selection button down and then moving the cursor controller in order to scroll the menu items through a selection window (e.g., the menus described in subsections B-D above)
  • some embodiments select a particular item that opens a submenu when a user stops moving the mouse while the particular item is in the selection window.
  • FIG. 12 illustrates an example of the navigation of a menu 1200 and a sub-menu 1225 of some embodiments.
  • FIG. 12 illustrates six stages, 1210 , 1220 , 1230 , 1240 , 1250 , and 1260 .
  • Stage 1210 illustrates the menu 1200 with a menu item 1265 in a selection window 1205
  • stages 1220 , 1230 , and 1240 illustrate the navigation of sub-menu 1225 that is opened as a result of selecting menu item 1265
  • stages 1250 and 1260 illustrate the result of selecting a menu item 1275 from the sub-menu 1225 .
  • Stage 1210 illustrates the menu 1200 with an item 1265 in selection window 1205 .
  • Menu item 1265 is not the menu item initially displayed in selection window 1205 . Instead, a user has scrolled through the various menu items in menu 1200 to get item 1265 in selection window 1205 .
  • the menu could be navigated via single-clicks of a mouse button (e.g., according to a process such as process 400 ), via a user pressing and holding a mouse button while moving the mouse back and forth (e.g., according to a process such as process 600 , 800 , or 1000 ), or via some other process.
  • Menu item 1265 includes a small plus sign 1235 .
  • a symbol is used to graphically indicate that the selection of a menu item will cause a sub-menu to open.
  • Other graphical indicators may be used by some embodiments, such as arrows, letters, etc. Other embodiments do not use graphical indicators, instead assuming that the user will know which menu items cause sub-menus to open.
  • some embodiments leave the graphical indicator in the selection window as the user scrolls through the sub-menu.
  • Other embodiments leave the graphical indicator with the particular item that causes the sub-menu to open as the user scrolls through the sub-menu.
  • some embodiments open a sub-menu as soon as its corresponding menu item (i.e., the menu item whose selection causes the sub-menu to open) is moved into the selection window. Other embodiments require the selection of the particular menu item (e.g., by clicking on the menu item in the selection window).
  • the sub-menu is then navigated via input similar to the input used for the initial menu (i.e., if the initial menu is navigated via single-clicks, then so is the sub-menu in some embodiments).
  • some embodiments also open a sub-menu as soon as its corresponding menu item is moved into the selection window. Other embodiments, though, require the user to keep the particular menu item in the selection window for a threshold amount of time (i.e., by not moving the mouse once the particular menu item is in the selection window).
  • a threshold amount of time i.e., by not moving the mouse once the particular menu item is in the selection window.
  • some embodiments allow the user to navigate the sub-menu by continuing to hold down the mouse button and moving the mouse up and down (when the sub-menu opens vertically).
  • Stage 1220 illustrates the opened sub-menu 1225 .
  • Sub-menu 1225 opens vertically.
  • item 1265 remains in selection window 1205 .
  • the item from the initial menu that caused the sub-menu to open is not selectable within the sub-menu. However, in other cases, this item may be selected within the sub-menu just like the rest of the sub-menu items.
  • sub-menu 1225 includes at least four items in addition to 1265 : items 1270 , 1275 , 1280 , and 1285 . Some embodiments display the entire sub-menu at once, whereas other embodiments display only a portion of the sub-menu around the selection window (similar to how menu 1200 is displayed, except vertically).
  • Stage 1230 illustrates the sub-menu 1225 after a user has navigated to item 1280 .
  • a user could navigate to this point by clicking below the selection window in some embodiments. In other embodiments, the user could hold a mouse button down and move the mouse downwards.
  • Stage 1260 illustrates the sub-menu 1225 after a user has navigated to item 1275 (two items up from item 1280 ). A user could navigate to this point by clicking above selection window or by moving the mouse upwards, depending on the process used to navigate menu 1200 . In the examples shown, the menu is navigated by a user holding the mouse button down, as no cursor is visible.
  • Stage 1250 illustrates the process used by some embodiments to close a sub-menu when an item is selected from the sub-menu.
  • Menu item 1275 has been selected (e.g., by a user releasing the mouse button while item 1275 is in the selection window 1205 ).
  • the sub-menu 1225 begins closing around the selected item 1275 .
  • Stage 1240 illustrates menu 1200 after the sub-menu has fully collapsed, with item 1275 selected. As the user has released the mouse button, a cursor 1215 is now visible.
  • the menu 1200 shown in FIG. 12 has a primary orientation of horizontal scrolling, while the sub-menu 1225 opened from menu 1200 scrolls vertically.
  • sub-menus themselves also have sub-menus.
  • a user selected an item in sub-menu 1225 that itself opened a sub-menu some embodiments would orient the new sub-menu horizontally.
  • the items of the new sub-menu would be displayed over the original items from the primary menu in some embodiments such that the primary menu items are no longer visible.
  • the menus of some embodiments have a primary orientation of vertical scrolling, and the sub-menus opened from such menus then scroll vertically.
  • FIG. 13 illustrates a menu 1300 of some embodiments that displays menu items outside of a primary display as faded while the user scrolls through the menu.
  • FIG. 13 illustrates three stages, 1310 , 1320 , and 1330 .
  • menu 1300 includes a display similar to that of menus 500 , 700 , 900 , and 1100 .
  • stages 1320 and 1330 when a user presses and holds a mouse button in order to navigate menu 1300 , items outside the display appear in faded form.
  • Stage 1310 illustrates menu item 1360 in selection window 1305 .
  • Cursor 1315 is visible over item 1360 , and portions of menu items 1355 and 1365 are visible to either side of selection window 1305 .
  • Menu 1300 is navigated by a user pressing and holding a mouse button, then moving the mouse left and right (e.g., according to a process such as process 600 , 800 , or 1000 ). Cursor 1315 is visible at this stage, indicating that the user has not yet pressed down the mouse button to navigate the menu.
  • Stage 1230 illustrates the sub-menu 1225 after a user has navigated to item 1280 .
  • a user could navigate to this point by clicking below the selection window in some embodiments. in other embodiments, the user could hold a mouse button down and move the mouse downwards.
  • Stage 1260 illustrates the sub-menu 1225 after a user has navigated to item 1275 (two items up from item 1280 ). A user could navigate to this point by clicking above selection window or by moving the mouse upwards, depending on the process used to navigate menu 1200 . in the examples shown, the menu is navigated by a user holding the mouse button down, as no cursor is visible.
  • Stage 1250 illustrates the process used by some embodiments to close a sub-menu when an item is selected from the sub-menu.
  • Menu item 1275 has been selected (e.g., by a user releasing the mouse button while item 1275 is in the selection window 1205 ).
  • the sub-menu 1225 begins closing around the selected item 1275 .
  • Stage 1240 illustrates menu 1200 after the sub-menu has fully collapsed, with item 1275 selected. As the user has released the mouse button, a cursor 1215 is now visible.
  • the processes 400 , 600 , 800 , and 1000 for navigating and selecting menu items can be applied to any sort of menu in which menu items are moved through a selection window, regardless of the shape of the menu. Menus need not be horizontal (or even vertical) for their menu items to cause submenus to open perpendicularly to the scrolling of the menu. Nor is their any requirement that a menu be linear in shape for menu items around the selection window to be displayed as partially faded or transparent.
  • FIG. 14 illustrates the opening of a semi-circular menu 1400 of some embodiments.
  • FIG. 14 illustrates four stages, 1410 , 1420 , 1430 , and 1440 .
  • Stages 1410 and 1420 illustrate menu 1400 prior to its opening
  • stage 1430 illustrates the menu partway through the opening process
  • stage 1440 illustrates the menu once it is fully opened.
  • Stage 1410 illustrates a menu item 1480 on its own, with no selection window or associated menu items.
  • Menu item 1480 is displayed as having a first color.
  • Stage 1410 also illustrates a cursor 1415 that is near, but not over, the menu item.
  • Stage 1420 illustrates the menu item 1480 now that cursor 1415 has been moved over it.
  • Moving cursor 1415 over the menu item 1480 causes a display of a selection window 1405 over the menu item, such that the menu item now appears to be displayed as having a second color.
  • Some embodiments actually display the menu item as having a different color, while others display a partially transparent selection window over the menu item.
  • Some embodiments, as shown display the selection window as soon as the cursor moves over the menu item.
  • Other embodiments wait to display the selection window until a user has actually pressed a mouse button or provided some other sort of selection input with the cursor over the menu item.
  • Stage 1430 illustrates menu 1400 shortly after a user has pressed a mouse button or provided some form of selection input (e.g., a keystroke, other mouse input, input from a different cursor controller, etc.).
  • Menu item 1480 is still displayed within selection window 1405 , and other menu items have started fanning out from item 1480 .
  • the display gives the appearance that the other menu items in menu 1400 were initially stacked underneath item 1480 .
  • the menu items that are not in the selection window are displayed as having the first color (i.e., the same color that item 1480 had in stage 1410 ).
  • Stage 1440 illustrates the menu 1400 after it has fully expanded out. Presently visible are menu items 1465 through 1495 . Items 1465 and 1495 are displayed as partially faded, which provides a visual indication that the menu continues in both directions with more menu items.
  • FIG. 14 illustrates one possibility of how a menu can open, from stage 1420 to stage 1440 .
  • Some embodiments do not display the menu fanning out, and instead as soon as a user clicks the mouse button over the single menu item, the menu is displayed as shown at stage 1440 .
  • Some embodiments display the menu items as sliding along a semicircular track out to the locations shown at stage 1440 , rather than expanding into the semi-circle as displayed in stage 1430 .
  • Other embodiments use other visual displays for opening the menu.
  • these and other visual displays are used by some embodiments that use shapes other than semi-circles—the expanding menu is applicable to linear menus that display more than one menu item at once as well.
  • FIG. 15 illustrates the navigation of menu 1400 and selection of item 1460 from the menu.
  • FIG. 15 illustrates five stages, 1510 , 1520 , 1530 , 1540 , and 1550 .
  • Stage 1510 illustrates menu 1400 at the same point as stage 1440 of FIG. 14
  • stage 1520 illustrates the navigation of menu 1400
  • stages 1530 - 1550 illustrate the selection of item 1460 .
  • Stage 1520 illustrates that a user has scrolled the menu such that the initial item in the selection window 1405 (item 1480 ) is now near the right edge of the displayed menu and is beginning to appear as partially faded.
  • the user drags the mouse to the left while holding down the mouse button.
  • the selection window 1405 is displayed as a partially transparent window that the menu items scroll underneath.
  • the menu 1400 is one that scrolls according to a process similar to process 600 , in which the items continuously scroll, and do not snap to the selection window.
  • some embodiments do apply the other described scrolling processes, or similar processes, to semi-circular menus.
  • Stage 1530 illustrates that a user has scrolled the menu such that item 1460 is in selection window 1405 and released the mouse button in order to select item 1460 .
  • Cursor 1415 is now visible over selection window 1405 and item 1460 .
  • Stage 1540 illustrates the closing of menu 1400 around the selected item 1460 .
  • the menu closes in the exact opposite pattern that it opened. Thus, when the menu items simply appeared around the initial item, then when the item is selected they disappear without any inward movement. When the menu items fan out as shown in FIG. 14 , then the menu collapses inward as shown in stage 1540 .
  • Stage 1550 illustrates that the menu has fully closed so that only item 1460 is displayed.
  • the selected menu item is now displayed, much like item 1480 was displayed at stage 1410 of FIG. 14 .
  • the menu is a toolbar.
  • One example of such a toolbar is video-editing toolbar for a video-editing application.
  • the video-editing toolbar of some embodiments includes video-editing tools such as a blade tool, ripple tool, slip tool, roll tool, etc. Selecting a tool makes that tool active, so that a user can then use the tool in the editing process.
  • the selected tool is displayed until the user repeats the process to select a different tool.
  • the menu is a list of commands, and closes when the user selects a particular command. Some such embodiments wait a short period of time, then revert the displayed menu item back to the initial item.
  • FIG. 16 illustrates an example of a semi-circular menu 1600 , similar to those described above, that includes a menu item 1655 that opens a sub-menu 1625 .
  • FIG. 16 illustrates four stages, 1610 , 1620 , 1630 , and 1640 .
  • Stage 1610 illustrates the menu after a user has navigated such that menu item 1655 is in selection window 1605
  • stage 1620 illustrates the opening of sub-menu 1625
  • stages 1630 and 1640 illustrate the navigation of sub-menu 1625 .
  • Stage 1610 illustrates a menu 1600 that is similar in nature to menu 1400 .
  • menu item 1655 includes a small plus sign 1635 that indicates that its selection will cause a sub-menu to open. In some embodiments, such a symbol is used to graphically indicate that the selection of a menu item will cause a sub-menu to open.
  • Other graphical indicators may be used by some embodiments, such as arrows, letters, etc. Other embodiments do not use graphical indicators, instead assuming that the user will know which menu items cause sub-menus to open.
  • some embodiments leave the graphical indicator with the particular item that causes the sub-menu to open as the user scrolls through the sub-menu. Other embodiments, however, leave the graphical indicator in the selection window as the user scrolls through the sub-menu, as in FIG. 12 above.
  • Stage 1620 illustrates menu 1600 shortly after a user has selected menu item 1655 .
  • Sub-menu 1625 has started to open vertically.
  • a sub-menu opens perpendicular to the tangent of the path followed by the parent menu. As the tangent to the semi-circular menu 1600 is horizontal at selection window 1605 , sub-menu 1625 opens vertically.
  • the menu items of sub-menu 1625 spread apart from the selection window. As the items spread apart, the non-selected items of menu 1600 begin to fade. Stage 1630 illustrates the sub-menu 1625 after it has fully spread apart. At this point, the non-selected items of menu 1600 are mostly faded.
  • Stage 1640 illustrates sub-menu 1625 after a user has scrolled the menu down by one item such that menu item 1660 is in the selection window 1605 .
  • both the primary menu e.g., menu 1600
  • the sub-menu e.g., sub-menu 1625
  • the menu collapses inwards in similar fashion to the manner illustrated in FIG. 15
  • the sub-menu collapses in reverse of its expansion process.
  • menus that are not semi-circular. For instance, menus of any shape can be expanded outwards from a single menu item upon selection of the single menu item. Similarly, such menus can collapse inwards upon selection of an item from the fully displayed menu.
  • FIG. 17 illustrates the opening of a circular menu 1700 of some embodiments.
  • FIG. 17 illustrates four stages, 1710 , 1720 , 1730 , and 1740 .
  • Stages 1710 and 1720 illustrate menu 1700 prior to its opening
  • stage 1730 illustrates the menu partway through the opening process
  • stage 1740 illustrates the menu once it is fully opened.
  • Stage 1710 illustrates a menu item 1780 on its own, with no selection window or associated menu items.
  • Menu item 1780 is displayed as having a first color.
  • Stage 1710 also illustrates a cursor 1715 that is near, but not over, the menu item.
  • Stage 1720 illustrates the menu item 1780 now that cursor 1715 has been moved over it.
  • Moving cursor 1715 over the menu item 1780 causes a display of a selection window 1705 over the menu item, such that the menu item now appears to be displayed as having a second color.
  • Some embodiments actually display the menu item as having a different color, while others display a partially transparent selection window over the menu item.
  • Some embodiments, as shown display the selection window as soon as the cursor moves over the menu item.
  • Other embodiments wait to display the selection window until a user has actually pressed a mouse button or provided some other sort of selection input with the cursor over the menu item.
  • stage 1730 illustrates that the menu 1700 is circular, rather than semi-circular like menu 1400 .
  • Stage 1730 illustrates menu 1700 shortly after a user has pressed a mouse button or provided some form of selection input (e.g., a keystroke, other mouse input, input from a different cursor controller, etc.) in order to open menu 1700 .
  • Menu item 1780 is still displayed within selection window 1705 , and other menu items have started expanding outwards from item 1780 .
  • the display gives the appearance that the other menu items in menu 1700 were initially stacked underneath item 1780 .
  • the menu items that are not in the selection window are displayed as having the first color (i.e., the same color that item 1780 had in stage 1710 ).
  • Some embodiments expand the menu downwards from the initial menu item (e.g., menu item 1780 ).
  • the cursor is displayed while the user scrolls through the menu, the cursor is moved to the selection window at the top of the circle.
  • Stage 1740 illustrates the menu 1700 after it has fully expanded out. All of the menu items of menu 1700 are presently visible. In order to display the entirety of the menu items, some embodiments vary the radius of the circle depending on the number of menu items (i.e., the radius is larger when there are more menu items). Other embodiments vary the size of the menu items (i.e., the menu items are smaller when there are more of them so as to maintain the same radius). Yet other embodiments vary the amount of overlap between the menu items (i.e., the items overlap more when there are more items) in order to keep the menu items a constant size and the circle having a constant radius.
  • Navigation of the circular menus is similar to navigation of the semi-circular menus in some embodiments.
  • a user By moving a mouse left or right while pressing down a mouse button, a user can cause the menu items to scroll through the selection window.
  • One notable difference is that in the case of the circular menu, a user can scroll indefinitely in either direction. The menu does not have a first menu item or last menu item in its order. Instead, the menu items are only ordered relative to one another.
  • Circular menus such as menu 1700 can also include items the selection of which causes sub-menus to open in similar fashion to the sub-menu 1625 of FIG. 16 .
  • the sub-menu opens vertically above and below the selection window, while the circular primary menu fades.
  • the primary menu does not fade completely, some embodiments only display the sub-menu below the selection window to the extent the menu items do not overlap with the bottom of the circular menu.
  • FIG. 18 illustrates a circular menu 1800 that is partially faded after a sub-menu 1825 has opened vertically above and below selection window 1805 .
  • Towards the bottom of sub-menu 1825 only part of menu item 1830 is displayed.
  • Scrolling sub-menu 1825 up e.g., by a user moving a cursor controller downwards
  • Other embodiments display the sub-menu extending over the bottom of the primary menu.
  • Some embodiments of the circular menus close in a manner similar to that of the semi-circular menus described above upon selection of a menu item. That is, the circular menu collapses in upon itself in reverse of how it opened. Thus, if the circular menu opened downwards from the initial menu item, the upon selection of an item from the menu, the menu closes with the displayed items collapsing back towards the selection window and selected item. On the other hand, if the circular menu opened outwards from the initial location of the initial menu item, then upon selection of an item from the menu, the menu closes with the displayed items collapsing inwards to that initial location. Similar to the description above for the semi-circular menus, other embodiments close circular menus differently.
  • menus described above can be used in a wide variety of computing applications.
  • the menus can be used directly in an operating system or in an application separate from the operating system in some embodiments.
  • the menus can be especially useful in handheld devices such as the iPhone®.
  • FIG. 19 illustrates a computer desktop 1900 displaying various features of an operating system of some embodiments.
  • the desktop includes a file folder navigation window 1905 , application selection icons 1910 , and menu 1915 .
  • the file folder navigation window 1905 is a standard window that enables a user to navigate a hierarchical file system in order to find and open a file (e.g., a word processing document, a spreadsheet, a video file, etc.).
  • the application selection icons 1910 provide easy access for a user to the different applications (e.g., e-mail, web browsers, media players, word processing applications, media-editing applications, etc.) on the computing device.
  • applications e.g., e-mail, web browsers, media players, word processing applications, media-editing applications, etc.
  • Menu 1915 is one example of the use of the menus described above for providing operating system features.
  • Menu 1915 presents various options related to shutting off the computer.
  • Menu 1915 includes selection window 1920 and at least the three menu items 1925 - 1935 that are displayed or partially displayed. Item 1925 presents a “Log Off” option, item 1930 presents a “Shut Down” option, and item 1935 presents a “Restart” option.
  • Some embodiments also include power-saving options such as “Standby”.
  • menu 1915 is permanently displayed as part of the desktop, though other items (e.g., windows such as window 1905 ) may be placed on top of menu 1915 such that the menu is not displayed. Other embodiments only display menu 1915 in response to user input such as a particular keystroke (or combination of keystrokes) or the selection of an option in the graphical user interface to bring up menu 1915 .
  • the menus of some embodiments may be used for a wide variety of operating system features.
  • the application selection icons could be integrated into a menu such as linear menu 1915 or one of the other menus described above.
  • the application selection icons could be provided in a semi-circular menu such as menu 1400 that is displayed in one corner of the screen rather than taking up the entire bottom portion of the screen.
  • FIG. 20 illustrates a video-editing application 2000 that is used to create composite video presentations and that utilizes the menus of some embodiments.
  • Video-editing application 2000 includes a composite display area 2005 , a set of selectable video clips 2010 , video preview display area 2015 , and a video-editing toolbar 2020 .
  • the composite display area 2005 provides a visual representation of the video presentation that the user creates. Users can add media clips (e.g., audio and video clips) to the composite display area, where the clips are graphically represented. A user can modify the video presentation by performing editing operations on the clips in the composite display area.
  • the set of selectable video clips 2010 provides various media clips, represented as thumbnails, that the user can select and add to the video presentation via the composite display area 2005 .
  • the video preview display area 2015 displays a preview of the composite presentation according to the composite display area.
  • the video-editing toolbar 2020 is an example of the use of the menus described above for providing video-editing tools. Specifically, toolbar 2020 provides the user with multiple trimming tool options. Currently shown in selection window 2025 is the roll tool 2035 . Slide tool 2030 and slip tool 2040 are presently to the left and right of selection window 2025 . Some embodiments include other trim tools in their toolbar, such as a ripple tool or blade tool.
  • Some embodiments present a variety of editing tools in a toolbar such as toolbar 2020 .
  • a toolbar such as toolbar 2020
  • some embodiments present other tools for editing the composite video presentation.
  • some embodiments include multiple toolbars similar to toolbar 2020 , such as one toolbar for the trim tools and a second toolbar for other video editing tools.
  • toolbar 2020 is permanently displayed as part of the graphical user interface of the editing application.
  • Other embodiments only display toolbar 2020 in response to user input such as a particular keystroke (or combination of keystrokes) or the selection of an option in the graphical user interface to bring up toolbar 2020 .
  • only one tool is displayed until a user invokes the menu (e.g., by clicking on the one displayed tool) at which point the toolbar showing more options is displayed.
  • the examples of semi-circular menus illustrated in Section II are examples of such invocable toolbars or menus.
  • FIG. 21 illustrates a handheld device 2100 that is presently displaying a web browser 2105 .
  • Device 2100 could be a cell phone, a media player, etc.
  • Web browser 2105 includes includes a uniform resource locator (URL) toolbar 2110 , a content display area 2115 , and a toolbar 2120 .
  • URL uniform resource locator
  • the URL bar 2110 includes user interface tools and an address bar 2125 in which a user can type a URL and which displays a URL of a website to which a user has navigated by clicking on links within content display area 2115 .
  • Content display area 2115 displays the web page located at the URL indicated in address bar 2125 .
  • Toolbar 2120 includes six tools—back and forward buttons 2130 and 2135 , an add bookmark icon 2140 , a bookmarks icon 2145 for opening a list of bookmarks, a menu icon 2150 for opening a menu, and a page gallery icon 2155 for displaying a list of open web pages for the user to choose from.
  • menu icon 2150 opens.
  • invoking the menu 2160 causes a first window (i.e., the menu window) to open within an already-displayed second window. This is the case for other applications of the menus of some embodiments as well, and is not restricted to handheld devices.
  • Menu 2160 presents various options that are not displayed in URL bar 2110 or toolbar 2120 .
  • Menu 2160 includes a find text option 2175 for bringing up a tool that allows a user to type in text to find in the content displayed in display area 2115 .
  • the find text option 2175 is presently in selection window 2165 .
  • Partially displayed on either side of the selection window 2165 is a history option 2170 and a copy option 2180 .
  • the device is a touchscreen device.
  • a user can navigate the menu 2160 in some such embodiments by using finger sweep gestures to the right and left to move the items, and then tapping or double-tapping the selection window to select an item.
  • Other embodiments may recognize different multi-touch gestures for navigating the menu 2160 and selecting an item from the menu.
  • menus other than menu 2160 are possible for use in a handheld device browser.
  • the toolbar 2120 could include a selection window and more items than are presently shown. A user could then scroll through the items until the desired item was in the selection window.
  • menus are not restricted in any way to browsers, and in fact could be used for any application on a handheld device. Screen space is often at a premium in handheld devices such as device 2100 , so the menus described in this application are an ideal solution for providing numerous options in this limited space.
  • FIG. 22 conceptually illustrates the software architecture of an application 2200 of some embodiments for presenting menus such as those described in the preceding sections.
  • the application is a stand-alone application or is integrated into another application (for instance, application 2200 might be a portion of a video-editing application), while in other embodiments the application might be implemented within an operating system.
  • the application is provided as part of a server-based solution. In some such embodiments, the application is provided via a thin client.
  • the application runs on a server while a user interacts with the application via a separate machine remote from the server.
  • the application is provided via a thick client. That is, the application is distributed from the server to the client machine and runs on the client machine.
  • Application 2200 includes a user interface (UI) interaction module 2205 , a menu scroller 2210 , an item selector 2215 , and a menu display module 2220 .
  • the media-editing application also includes menu database 2225 .
  • other storages are present as well, which may be part of the same physical storage as content storage 2225 or stored separately.
  • FIG. 22 also illustrates an operating system 2250 that includes cursor controller driver 2255 , keyboard driver 2260 , and display module 2265 .
  • the cursor controller driver 2255 , keyboard driver 2260 , and display module 2265 are part of the operating system 2250 even when the application 2200 is an application separate from the operating system.
  • a user interacts with the user interface via input devices (not shown).
  • the input devices such as cursor controllers (mouse, tablet, touchpad, etc.) and keyboards, send signals to the cursor controller driver 2255 and keyboard driver 2260 , which translate those signals into user input data that is provided to the UI interaction module 2205 .
  • the UI interaction module interprets the user input data in the context of presented menus and passes it to the appropriate modules, such as the menu scroller 2210 and the item selector 2215 .
  • Menu scroller 2210 interprets user interface interactions into the scrolling of menu items through a selection window.
  • the menu scroller also receives information from the menu database 2225 . This includes a list of the menu items and the order of the men items, inc some embodiments.
  • the menu scroller 2210 scrolls the menu in response to different inputs. For instance, in some embodiments the menu scroller 2210 scrolls menu items based on one of the inputs described by processes 400 , 600 , 800 , or 1000 above.
  • the menu scroller sends the menu scrolling information to the menu display module 2220 .
  • the item selector 2215 interprets user interface interactions into the selection of menu items.
  • the item selector also receives information, such as the list of menu items and their order, from the menu database in some embodiments.
  • the item selector 2215 recognizes which item is in the selection window when selection input is received. In some embodiments, the item selector 2215 also recognizes when a single item is selected in order to open a menu, as described in Sections II and III above.
  • the selection information is passed to the menu display module. In some embodiments, the item selector also passes this information to other modules (not shown) that perform a command or activate a tool that is associated with the selected menu item.
  • the menu display module 2220 receives information from the menu scroller 2210 and the item selector 2215 .
  • the menu display module 2220 controls the display of the movement of the menu items.
  • the menu display module handles the opening and closing of the menus in response to item selection, including any submenus. This information is sent to display module 2265 , which handles the actual display of the menus (and the rest of the graphical user interface) on an output device (not shown).
  • FIG. 23 conceptually illustrates a process 2300 of some embodiments for manufacturing a computer readable medium that stores a computer program.
  • the computer readable medium is a distributable CD-ROM.
  • process 2300 begins by defining (at 2305 ) menu items having a particular order and instructions associated with the menu items.
  • the menu items 101 - 108 of menu 100 of FIG. 1 are an example of such menu items.
  • Process 2300 then defines (at 2310 ) a display area for displaying at least a portion of the menu items in the particular order.
  • the process also defines (at 2315 ) a selection window for display in the display area that is for indicating that a menu item is presently selectable, such as selection windows 205 , 505 , or 1405 of FIGS. 2 , 5 , and 14 , respectively.
  • process 2300 defines (at 2320 ) a module for scrolling menu items through the selection window in the particular order in response to user input.
  • Menu scroller 2210 of FIG. 22 is one example of such a module.
  • the process also defines (at 2325 ) a module for selecting a menu item in response to user input when the menu item is displayed in the selection window, such as menu selector 2215 .
  • the process defines (at 2330 ) other tools, items, and functionalities. For example, if the process is for manufacturing a media-editing application such as that shown in FIG. 20 , various GUI items and editing tools and functionalities are defined.
  • Process 2300 then stores (at 2325 ) the defined elements on a computer readable storage medium.
  • the computer readable storage medium is a distributable CD-ROM.
  • the medium is one or more of a solid-state device, a hard disk, a CD-ROM, or other non-volatile computer readable storage medium.
  • modules and UI items defined by process 2300 are not exhaustive of the modules and UI items that could be defined and stored on a computer readable storage medium for an editing application incorporating some embodiments of the invention.
  • Computer readable storage medium also referred to as computer readable medium.
  • computational element(s) such as processors or other computational elements like ASICs and FPGAs
  • Computer is meant in its broadest sense, and can include any electronic device with a processor.
  • Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc.
  • the computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
  • the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor.
  • multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions.
  • multiple software inventions can also be implemented as separate programs.
  • any combination of separate programs that together implement a software invention described here is within the scope of the invention.
  • the software programs when installed to operate on one or more computer systems define one or more specific machine implementations that execute and perform the operations of the software programs.
  • FIG. 24 illustrates a computer system with which some embodiments of the invention are implemented.
  • Such a computer system includes various types of computer readable media and interfaces for various other types of computer readable media.
  • Computer system 2400 includes a bus 2405 , a processor 2410 , a graphics processing unit (GPU) 2420 , a system memory 2425 , a read-only memory 2430 , a permanent storage device 2435 , input devices 2440 , and output devices 2445 .
  • GPU graphics processing unit
  • the bus 2405 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system 2400 .
  • the bus 2405 communicatively connects the processor 2410 with the read-only memory 2430 , the GPU 2420 , the system memory 2425 , and the permanent storage device 2435 .
  • the processor 2410 retrieves instructions to execute and data to process in order to execute the processes of the invention.
  • the processor comprises a Field Programmable Gate Array (FPGA), an ASIC, or various other electronic components for executing instructions.
  • the processor Some instructions are passed to and executed by the GPU 2420 .
  • the GPU 2420 can offload various computations or complement the image processing provided by the processor 2410 . In some embodiments, such functionality can be provided using CoreImage's kernel shading language.
  • the read-only-memory (ROM) 2430 stores static data and instructions that are needed by the processor 2410 and other modules of the computer system.
  • the permanent storage device 2435 is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the computer system 2400 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 2435 .
  • the system memory 2425 is a read-and-write memory device. However, unlike storage device 2435 , the system memory is a volatile read-and-write memory, such a random access memory.
  • the system memory stores some of the instructions and data that the processor needs at runtime.
  • the invention's processes are stored in the system memory 2425 , the permanent storage device 2435 , and/or the read-only memory 2430 .
  • the various memory units include instructions for processing multimedia items in accordance with some embodiments. From these various memory units, the processor 2410 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
  • the bus 2405 also connects to the input and output devices 2440 and 2445 .
  • the input devices enable the user to communicate information and select commands to the computer system.
  • the input devices 2440 include alphanumeric keyboards and pointing devices (also called “cursor control devices”).
  • the output devices 2445 display images generated by the computer system. For instance, these devices display a GUI.
  • the output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD).
  • bus 2405 also couples computer 2400 to a network 2465 through a network adapter (not shown).
  • the computer can be a part of a network of computers (such as a local area network (“LAN”), a wide area network (“WAN”), or an Intranet, or a network of networks, such as the internet.
  • the computer 2400 may be coupled to a web server (network 2465 ) so that a web browser executing on the computer 2400 can interact with the web server as a user interacts with a GUI that operates in the web browser.
  • any or all components of computer system 2400 may be used in conjunction with the invention.
  • the execution of the frames of the rendering is performed by the GPU 2420 instead of the CPU 2410 .
  • other image editing functions can be offloaded to the GPU 2420 where they are executed before the results are passed back into memory or the processor 2410 .
  • a common limitation of the GPU 2420 is the number of instructions that the GPU 2420 is able to store and process at any given time. Therefore, some embodiments adapt instructions for implementing processes so that these processes fit onto the instruction buffer of the GPU 2420 for execution locally on the GPU 2420 .
  • some GPUs 2420 do not contain sufficient processing resources to execute the processes of some embodiments and therefore the CPU 2410 executes the instructions.
  • any other system configuration may also be used in conjunction with the present invention.
  • Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media).
  • computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD ⁇ RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable blu-ray discs, ultra density optical discs, any other optical or magnetic media, and floppy disks.
  • the computer-readable media may store a computer program that is executable by at least one processor and includes sets of instructions for performing various operations.
  • hardware devices configured to store and execute sets of instructions include, but are not limited to application specific integrated circuits (ASICs), field programmable gate arrays (FPGA), programmable logic devices (PLDs), ROM, and RAM devices.
  • ASICs application specific integrated circuits
  • FPGA field programmable gate arrays
  • PLDs programmable logic devices
  • ROM read only memory
  • RAM devices random access memory
  • Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
  • the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people.
  • display or displaying means displaying on an electronic device.
  • computer readable medium and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

Some embodiments of the invention provide a method that defines several menu items having a particular order. The method provides a display area for displaying a portion of the menu items in the particular order. The method provides a selection window in the display area for indicating that a menu item is presently selectable. The display area is also for receiving input to (i) scroll the menu items through the selection window in the particular order and (ii) select a particular menu item when the particular menu item is displayed in the selection window. In some embodiments, the display area is a linear display area, while in some embodiments it is a semi-circular display area or other shape.

Description

FIELD OF THE INVENTION
The invention is directed towards the presentation of menu or toolbar options in a graphical user interface. Specifically, the invention is directed towards presenting numerous options that scroll through a particular location at which the options can be selected.
BACKGROUND OF THE INVENTION
User interfaces of computer applications often provide numerous commands or user interface tools for a user to choose from. For instance, many applications include drop-down menus. Such menus often include lists of commands. There are standard commands such as opening a file, printing a document, saving a document, etc., as well as more application-specific commands such as inserting a page break (for a word-processing application), formatting cells (for a spreadsheet application), etc.
Many applications also include toolbars or tool palettes. For instance, many computing applications have one or more rows of toolbars at the top of their user interface. The toolbars include various types of tools. Drawing applications have drawing tools, video editing applications have video-editing tools, etc. Some applications also have floating tool palettes. For instance, some video-editing applications include a floating trim tool palette that allows a user to select between various different trim tools for video-editing.
Such toolbars, tool palettes and drop-down menus can take up valuable real estate in the graphical user interface. Furthermore, the number of items in such menus and toolbars is limited by screen space. For example, a user does not want a floating tool palette that takes up too much of the screen. As more options are added to a tool palette, the tool palette must get larger or the size of the options must get smaller. Just as the tool palettes can only increase in size to a certain point, the size of the options can only decrease to a certain point before they become indistinguishable. As such, a need exists for ways to display toolbars or menus that do not take up significant amounts of screen space while keeping the options at a visually recognizable size.
SUMMARY OF THE INVENTION
Some embodiments of the invention provide a novel method for presenting a menu in a graphical user interface. The menu includes several selectable menu items that are assigned a particular order for scrolling through a selection window based on user input. In some embodiments, each of the menu items is associated with a command. When a menu item is in the selection window, a user can select the menu item in order to perform the command associated with the menu item.
The menu items may be displayed as standard text items in some embodiments (e.g., “File”, “Save”, “Print”, etc.) or may be displayed as icons (e.g., icons representing various tools, such as drawing tools, video editing tools, etc.). The menu items are ordered within the menu (e.g., a first menu item is assigned to be one menu item left of a second menu item). Different embodiments use different techniques to determine this order. For instance, in some embodiments, the order can be defined by a user, by a random process, and/or by a developer of the program or operating system that uses the menu. In some embodiments, the order can also change based on use statistics, favoring menu items that are more regularly selected.
The selection window is an indicator (e.g., a highlight, box, etc.) that indicates that a particular menu item can be presently selected. In some embodiments, the selection window is static or nearly static as the menu items scroll through. In the menu, the order of the menu items is the order in which they scroll through the selection window in response to user input. However, when the menu is initially presented, the menu item that is initially displayed in the selection window need not be the first menu item in the order (i.e., the leftmost, topmost, etc.). As the menu items can scroll in two directions (e.g., left and right, up and down), some embodiments initially display the menu item in the middle of the order in the selection window.
The nature of the scrolling can be in two different forms in some embodiments, depending on how the items are ordered. In some cases, the menu items cannot scroll past the first and last items in the order. In other cases, however, the items can be continuously scrolled in a loop as the ordering of the menu items is only defined relative to one another, and there is only a first item to the extent that there is an item that is initially displayed in the selection window.
In either of these cases, some embodiments scroll the menu items through the selection window in such a fashion that the number of menu items is not limited by space in the graphical user interface. For instance, some embodiments only display the menu item that is presently in the selection window and a portion of the menu items on either side of the selection window. Some embodiments display a small number of menu items on either side of the selection window, with the items that are not actually in the selection window displayed as partially faded. As the menu items scroll through the selection window, new items appear in the display as previously displayed items disappear.
The shape of the displayed menu is also different in different embodiments. Some embodiments display the menu in linear form, with the menu items scrolling in one dimension (e.g., horizontally or vertically). Other embodiments display the menu as a semi-circle, with the menu items scrolling along the semicircle. Other non-linear configurations of menu items are also possible.
The menu also might be presented differently in different embodiments in that some embodiments display the menu constantly at a set location, whereas other embodiments require user input to invoke the display of the menu. For example, the menu might be a toolbar in a media-editing application that occupies a particular location in the user interface of the application, or a menu in an operating system that is invoked by a keystroke.
Different embodiments provide different schemes for navigating through the menu items. In some embodiments, users can click over the displayed items on either side of the selection window in order to cause the next item in the menu order to move into the selection window. Alternatively or conjunctively, in some embodiments, users can scroll the menu items by using various forms of sliding or swiping input (e.g., dragging a mouse). In some cases, the menu items are displayed as moving in large, discernible steps, while in other cases the items are displayed as moving in small steps that make the movement appear smooth.
When a selectable menu item is aligned in the selection window, a user can select the menu item in order to cause instructions associated with the selected menu item to be performed. In some embodiments, the instructions can activate a particular tool (e.g., if the menu is a group of video-editing tools), can cause a command (e.g., save a file, print a document, etc.) to be performed, or can open a submenu. Submenus are opened perpendicular to the previous menu in some embodiments. For instance, when the menu items in an initial menu scroll horizontally through the selection window, some embodiments open a submenu such that the menu items in the submenu scroll vertically through the selection window.
Different embodiments enable users to select a menu item that is in the selection window in different ways. In some embodiments, a user clicks or double-clicks over the menu item in the selection window. In other embodiments, the user selects an item by simply releasing a mouse button while the menu item is scrolling through the selection window. For menu items that open submenus, some embodiments automatically open the submenu when the menu item enters the selection window.
BRIEF DESCRIPTION OF THE DRAWINGS
The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.
FIG. 1 illustrates a menu including eight menu items.
FIG. 2 illustrates the display and use of the menu of FIG. 1 according to some embodiments of the invention.
FIG. 3 conceptually illustrates a process of some embodiments for displaying a menu and receiving user interactions with the menu.
FIG. 4 conceptually illustrates a process of some embodiments for navigating a menu based on single-click input from a cursor controller.
FIG. 5 illustrates the navigation of a menu according to the process of FIG. 4.
FIG. 6 conceptually illustrates a first process of some embodiments for navigating a menu based on click-and-drag input from a cursor controller.
FIG. 7 illustrates the navigation of a menu according to the process of FIG. 6.
FIG. 8 conceptually illustrates a second process of some embodiments for navigating a menu based on click-and-drag input from a cursor controller.
FIG. 9 illustrates the navigation of a menu according to the process of FIG. 8.
FIG. 10 conceptually illustrates a third process of some embodiments for navigating a menu based on click-and-drag input from a cursor controller.
FIG. 11 illustrates the navigation of a menu according to the process of FIG. 10.
FIG. 12 illustrates an example of the navigation of a menu and sub-menu of some embodiments.
FIG. 13 illustrates a menu of some embodiments that displays menu items outside of a primary display as faded while a user scrolls through the menu.
FIG. 14 illustrates the opening of a semi-circular menu of some embodiments.
FIG. 15 illustrates the navigation of the menu of FIG. 14 and the selection of an item from the menu.
FIG. 16 illustrates an example of a semi-circular menu that includes a menu item that opens a sub-menu.
FIG. 17 illustrates the opening of a circular menu of some embodiments.
FIG. 18 illustrates a circular menu that is partially faded after a sub-menu has opened vertically above and below a selection window.
FIG. 19 illustrates a computer desktop displaying various features of an operating system of some embodiments.
FIG. 20 illustrates a video-editing application that is used to create composite video presentations and that utilizes the menus of some embodiments.
FIG. 21 illustrates a handheld device that is displaying a web browser that utilizes the menus of some embodiments.
FIG. 22 conceptually illustrates the software architecture of an application of some embodiments for presenting menus.
FIG. 23 conceptually illustrates a process of some embodiments for manufacturing a computer readable medium that stores a computer program.
FIG. 24 conceptually illustrates a computer system with which some embodiments of the invention are implemented.
DETAILED DESCRIPTION OF THE INVENTION
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. For instance, some portions of the application refer to examples that receive input from a mouse. One of ordinary skill will recognize that similar input could be received from other cursor controllers or even touchscreens without cursors as well.
Some embodiments of the invention provide a novel method for presenting a menu in a graphical user interface. The menu includes several selectable menu items that are assigned a particular order for scrolling through a selection window based on user input. In some embodiments, each of the menu items is associated with a command. When a menu item is in the selection window, a user can select the menu item in order to perform the command associated with the menu item.
The menu items may be displayed as standard text items in some embodiments (e.g., “File”, “Save”, “Print”, etc.) or may be displayed as icons (e.g., icons representing various tools, such as drawing tools, video editing tools, etc.). FIG. 1 illustrates a menu 100 that includes eight menu items 101-108. The menu items 101-108 are ordered from the first Item A (101) to the last Item H (108). This means that, for example, Item C (103) will appear in the menu after (e.g, to the right of) Item B (102) and before (e.g., to the left of) Item D (104). Different embodiments use different techniques to determine this order. For instance, in some embodiments, the order can be defined by a user, by a random process, and/or by a developer of the program or operating system that uses the menu. In some embodiments, the order can also change based on use statistics, favoring menu items that are more regularly selected. For example, if Item C (103) is never selected, it might be moved after Item H (108) in the order.
FIG. 2 illustrates the display and use of menu 100 according to some embodiments of the invention. FIG. 2 illustrates the menu 100 at an initial stage 210 with an initial item in a selection window and two possible second stages 220 and 230 with different items in the selection window. As shown at stage 210, the display of menu 100 includes a selection window 205. The selection window is an indicator (e.g., a highlight in this example) that indicates that a particular menu item can be presently selected. When the menu is initially presented, the menu item that is initially displayed in the selection window need not be the first menu item in the order. In fact, as illustrated at stage 210, the initial menu item displayed in selection window 205 for menu 100 is the fourth menu item 104, which is close to the middle of the order for menu 100.
Stages 220 and 230 illustrate the scrolling of menu 100 through selection window 205 in two possible directions. Stage 220 illustrates the result of user input to scroll through the menu 100 to the right, thereby bringing Item C (103) into selection window 205 from the left and moving Item D (104) mostly out of the display to the right. Similarly, stage 230 illustrates the result of user input to scroll through the menu 100 to the left, thereby bringing Item E (105) into selection window 205 from the right and moving Item D (104) mostly out of the display to the left. One of ordinary skill in the art will recognize that although the example menu 100 scrolls right and left, some embodiments will have a primary scrolling direction of up and down, will scroll diagonally, etc.
FIG. 3 conceptually illustrates a process 300 of some embodiments for displaying a menu and receiving user interaction with the menu. As shown, process 300 begins by receiving (at 305) a set of menu items that make up a menu, such as the menu items 101-108. The set of menu items can include any number of items, because the menu is displayed in such a way that the number of items is not limited by space in the graphical user interface.
Process 300 then determines (at 310) an order for the menu items. As described above, the order can be coded by a software designer, user-determined, determined by use statistics, etc. The process next determines (at 315) an initial menu item that is to be displayed in a selection window. Much like the order of the menu items, some embodiments determine the initial menu item based on coded instructions, user input, use statistics, etc.
The process then displays (at 320) the menu with the initial item in the selection window. Displaying the menu does not necessarily involve displaying all of the menu items; as illustrated in FIG. 2, some embodiments only display one full menu item at a time, which enables the menu to include an unlimited number of items as adding more menu items does not cause the menu to take up any more space. Some embodiments display a small number of menu items on either side of the selection window, with those items that are not in the selection window displayed as partially faded. For instance, at stage 210 of FIG. 2, such embodiments might display Item B (102) and Item C (103) to the left of selection window 205 (and items to the right as well), but display these items as partially transparent to indicate that they are not in the selection window.
Next, process 300 determines (at 325) whether any input has been received. Input can be received through a cursor controller such as a mouse, trackpad, touchpad, etc. (e.g., dragging, scrubbing, clicking, etc.) or through a keyboard (e.g., pressing arrow keys, the Enter key, etc.). When no input is received, the process proceeds to 355, which is described below. Otherwise, the process determines (at 330) whether the input is for scrolling through the menu. Different types of input for scrolling through the menu, such as dragging with a cursor control device, are described in further detail in the following sections.
When the input is for scrolling through the menu, the process displays (at 335) the scrolling of the menu, then proceeds to 355, which is described below. In some embodiments, the selection window does not move as the menu items scroll through. Some embodiments scroll the menu items through the selection window at a constant rate, while other embodiments jump the menu items in large distinguishably discrete steps into the selection window. Furthermore, in some embodiments, the menu items scroll at a constant rate but the selection window moves within a threshold distance of its initial position, jumping from one item to the next. The different menu scrolling displays are described in further detail in the following sections.
The nature of the scrolling at the boundaries of the menu order can be in one of two different forms in some embodiments. In some cases, the order has a defined first and last item, and the items cannot scroll past these endpoint items. For instance, if menu 100 is arranged in this fashion, then when a user scrolls the menu such that Item A (101) is in the selection window 205, there will be no item partially displayed to the left of Item A (101). On the other hand, in some embodiments, the ordering of the menu items is only relative. In such cases, the items are ordered in a loop without a beginning or end and thus the items can be continously scrolled through in a loop. If menu 100 is arranged in this fashion, then when a user scrolls the menu such that Item A (101) is in the selection window 205, Item H (108) would be partially displayed to the left, and scrolling the menu to the right would bring Item H (108) into the selection window 205.
When the received input is not for scrolling through the menu, process 300 determines (at 340) whether the input is for selecting a menu item. Input to select a menu item can be in the form of a click, a double click, a release of a cursor controller button, etc. When the received input is for selecting a menu item, the process displays (at 345) the selection. For example, some embodiments fade out all menu items except the selected item, or display the menu item blinking.
The process then performs (at 350) instructions associated with the selected menu item, and ends. The menu items can cause all different sorts of instructions to be performed. The menu items could represent different video-editing tools (or any other sort of user interface tool), such as blade, ripple, and slip tools. The menu could also be lists of commands (e.g., save a file, print a document, etc) and submenus. In some embodiments, submenus are opened perpendicular to the previous menu. For instance, if Item C (103) of menu 100 causes a submenu to open, then if at stage 220 a user selects this item, the submenu would open vertically with items above and/or below selection window 205.
When, at 340, the received input is not for selecting a menu item, the process determines (at 355) whether to continue displaying the menu. Some embodiments stop displaying a menu if no input is received for a threshold amount of time, or if the application of which the menu is a part is closed. Some embodiments include an option for a user to select that closes a menu. When process 300 determines to continue displaying the menu, the process proceeds to 325 to continue determining whether input is received. Otherwise, the process ends.
Process 300 is applicable to a variety of embodiments that display menus having different shapes. Some embodiments, as is the case with menu 100, display the menu in linear form, with the menu items scrolling in one dimension. FIG. 2 illustrates menu 100 scrolling horizontally, though the menu items could just as easily be aligned vertically. Other embodiments, rather than displaying the menu in a linear fashion in one dimension, instead display the menu as a semi-circle, with the menu items scrolling along the semicircle. Other configurations of menu items are also possible, such as displaying all of the menu items at once in a circle.
Several more detailed embodiments of the invention are described in the sections below. Section I describes and illustrates various features of linear menus, Section II describes and illustrates various features of semi-circular menus, and Section III presents examples of an alternative circular menu, although many of the features described in these sections are not limited to menus having the particular shape used in the examples. Next, Section IV describes the software architecture of an application that employs the menus of some embodiments. Section V describes a computer system that implements some embodiments of the invention.
I. Linearly-Displayed Menus
As described above, some embodiments of the invention provide menus that are displayed in linear fashion. Each of the following five subsections describe examples of such menus, in which menu items scroll through a selection window. Each of the first four subsections presents a different way for the menu items to scroll through the selection window, while the fifth subsection presents other menu features. One of ordinary skill in the art will recognize that many of the features described in these sections (e.g., how the menu items scroll through the selection window, how submenus are displayed, etc.) are applicable to menus that are not displayed linearly (e.g., semi-circular menus).
The menus in the following subsections are all shown as moving primarily left and right. One of ordinary skill in the art will recognize that similar menus could be implemented that move up and down. Furthermore, some embodiments initially display only a single menu item and can be displayed either vertically or horizontally when activated. Upon activation, the application displaying the menu waits for cursor controller input—if the input is predominantly up or down, then the menu is displayed vertically, while if the input is predominantly left or right, then the menu is displayed horizontally.
A. Scrolling Based on Clicks
FIG. 4 conceptually illustrates a process 400 of some embodiments for navigating a menu based on single-click input from a cursor controller. Process 400 will be described by reference to FIG. 5, which illustrates the navigation of such a menu 500 of some embodiments. FIG. 5 illustrates three stages, 510, 520, and 530. Stage 510 illustrates the menu 500 as initially displayed, stage 520 illustrates the menu 500 and a cursor 515 before click input is received to navigate the menu, and stage 530 illustrates the menu 500 after the click input is received.
As shown, process 400 begins by displaying (at 405) a menu with an initial item in a selection window of the menu. The menu, in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
As in FIG. 5, some embodiments display only the selection window, an item in the selection window, and portions of the menu items to either side of the selection window. Stage 510 illustrates selection window 505 with item 540. Item 540 is the item initially displayed in selection window 505. At stage 510, item 535 is partially displayed to the left of item 540 and item 545 is partially displayed to the right of item 540. Item 535 is one item prior to item 540 in the order for the menu items and item 545 is one item after item 540.
Process 400 next receives (at 410) a click of a mouse button (i.e., a press and release of the mouse button). The click could be from a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system). One of ordinary skill in the art will understand that similar processes may receive similar input from other types of input devices, as described below. The process then determines the location of the cursor at the time of the click and translates the location and click into an action.
The process determines (at 412) whether the mouse click indicates that the menu should be closed without selecting an item. When the mouse click so indicates, the process ends. For instance, some embodiments include an “x” or similar graphical indication for closing the menu. When a user clicks on the “x”, rather than selecting an item or scrolling the menu in either direction, the menu closes. Some embodiments do not include such an option, and the process for navigating such a menu would differ accordingly. For example, in some embodiments the menu is a permanent toolbar in an application, and does not close until the application closes.
When the mouse click does not indicate that the menu should be closed, the process determines (at 415) whether the cursor is over the selection window. When the cursor is over the selection window, the process selects (at 420) the menu item that is in the selection window. Selecting the menu item, in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool. After selecting the menu item, the process ends.
When the cursor is not over the selection window, the process determines (at 425) whether the cursor is to the right of the selection window. Stage 520 of FIG. 5 illustrates this case. Cursor 515 is located to the right of selection window 505 and over the partially displayed item 545. When the cursor is to the right of the selection window at the time of the click, the process scrolls (at 430) the menu items to the left by one item. This causes the menu item that was previously to the right of the selection window to be displayed in the selection window.
Stage 530 of FIG. 5 illustrates the result of receiving a click of a mouse button while cursor 515 is at the location shown at 520. As a result of the click, item 545 is now in selection window 505, item 540 is only partially shown to the left of the selection window, and a new item 550 is now partially displayed to the right of the selection window.
Returning to process 400, when the cursor is not to the right of the selection window, the process scrolls (at 440) the menu items to the right by one item, as the cursor must be to the left of the selection window (since it is neither over the selection window nor to the right of the selection window). This causes the menu item that was previously to the left of the selection window to be displayed in the selection window.
One of ordinary skill in the art will recognize that other embodiments could receive different inputs rather than single mouse clicks for menu item selection and scrolling. Examples of such inputs include other mouse inputs (e.g., double-clicks, clicks combined with keyboard inputs, etc.), keyboard inputs (e.g., the left and right arrow keys for scrolling and the <Enter> key for selection), touchscreen or touchpad inputs, etc. In fact, some embodiments that use touchscreens do not actually use a cursor. Instead, to advance the menu by one item to the right, a user could tap on the left side of the menu, and to advance the menu by one item to the left, the user could tap on the right side of the menu. Selection could then be performed by a tap or double-tap on the selection window.
Furthermore, one of ordinary skill will recognize that process 400 is an example of one possible process performed by some embodiments in order to scroll the menu by one item with each mouse click. Process 400 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 415, 425, and 435 need not necessarily be performed in the order shown in FIG. 4. Some embodiments might also include three separate sets of computer instructions depending on where the cursor is located when the mouse click input is received, rather than all of the three relevant locations being handled by one set of instructions.
B. Continuous Scrolling of Menu Items
FIG. 6 conceptually illustrates a process 600 of some embodiments for navigating a menu based on a click-and-drag input from a cursor controller. Specifically, according to process 600, the menu items are scrolled continuously in response to the click-and-drag input and when the input is finished the item closest to the selection window is selected. Process 600 will be described by reference to FIG. 7, which illustrates the navigation of such a menu 700 of some embodiments.
FIG. 7 illustrates five stages, 710, 720, 730, 740, and 750. Stage 710 illustrates the menu 700 as initially displayed with a cursor 715, stages 720 and 730 illustrate the menu 700 while a mouse button is held down and the mouse is moved in order to scroll the menu, stage 740 illustrates the menu 700 as the button is released, and 750 illustrates the menu 700 shortly after the release of the mouse button.
As shown, process 600 begins by displaying (at 605) a menu with an initial item in a selection window of the menu. The menu, in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
As in FIG. 7, some embodiments display only the selection window, an item in the selection window, and portions of the menu items to either side of the selection window. Stage 710 illustrates selection window 705 with item 760. Item 760 is the item initially displayed in selection window 705. At stage 710, item 755 is partially displayed to the left of item 760 and item 765 is partially displayed to the right of item 760. Item 755 is one item prior to item 760 in the order for the menu items and item 765 is one item after item 760.
Process 600 next receives (at 610) a press and hold of a mouse button. The mouse button could be a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system). One of ordinary skill in the art will understand that similar processes may receive similar input from other types of input devices, as described below. In some embodiments, the process requires that the cursor be over the menu when the mouse button is pressed down in order to translate mouse movement into menu scrolling and selection.
The process determines (at 615) whether the mouse is moving left. When the mouse is moving left, the process scrolls (at 620) the menu items to the left. This causes the menu item that was previously in the selection window to start moving to the left as the menu item displayed to the right begins to move into the selection window. The left-most displayed menu item moves out of the menu display as an item moves into the display from the right side. The process then proceeds to 635, which is described below.
When the mouse is not moving left, the process determines (at 625) whether the mouse is moving right. When the mouse is moving right, the process scrolls (at 630) the menu items to the right. This causes the menu item that was previously in the selection window to start moving to the right as the menu item displayed to the left begins to move into the selection window. The right-most displayed menu item moves out of the display as an item moves into the display from the left side.
FIG. 7 illustrates the case where input is received indicating that the mouse is being moved to the left. At stage 710, cursor 715 is visible over selection window 705. Stage 720 illustrates menu 700 shortly after the mouse button is pressed and a user begins moving the mouse to the right. Menu item 755 is no longer displayed at all, menu item 760 is no longer centered in selection window 705, and menu item 765 is now fully displayed.
Cursor 715 is no longer visible at this stage. Some embodiments do not display the cursor while the mouse button is held down, as the actual movement shown on the screen is in the direction opposite the mouse movement. Some embodiments display the cursor as unmoving over the selection window, to simulate the idea that the selection window is being dragged by the mouse movement over static menu items. In some such embodiments, rather than left mouse movement moving the menu items left, the menu items move in a direction opposite the mouse movement.
Stage 730 illustrates the menu 700 after a user has continued to move the mouse to the left, thereby causing the menu items to scroll to the left. Stage 730 illustrates a menu item 770 that has moved almost completely out of the display, menu item 775 that is just leaving the selection window, and menu item 780 that is almost fully displayed and just entering the selection window.
Returning to FIG. 6, process 600 next determines (at 635) whether input has been received indicating that the mouse button has been released. When the mouse button is not released, the process returns to 615 to continue processing mouse input. In some embodiments, a user can move the mouse back and forth, thereby moving the menu items both left and right. Thus, if a user scrolls the menu too far, they can move the mouse in the other direction, causing the menu to scroll back to the desired menu item.
Once the mouse button is released, the process identifies (at 640) the menu item that is closest to the selection window. Stage 740 of FIG. 7 illustrates the menu 700 immediately after the mouse button is released. The release of the mouse button is indicated by cursor 715 becoming visible again. At this point, menu item 775 has mostly been scrolled out of the selection window, while menu item 780 is most of the way into the selection window. As menu item 780 is the closest to being centered in the selection window, process 600 would identify item 780.
The process then moves (at 645) the identified item into the selection window. Stage 750 of FIG. 7 illustrates the result of the menu item 780 being moved into the selection window after the mouse button is released. Some embodiments display the menu as moving very quickly between the release of the mouse button and the centering of the identified item (e.g., between stages 740 and 750). Other embodiments simply redraw the menu with the identified item centered in the selection window—the menu items are not displayed as moving but rather are displayed at the location where the mouse button is released and then immediately displayed with the identified item in the selection window.
Next, the process selects (at 650) the identified menu item. Selecting the menu item, in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool. Some embodiments also include an item the selection of which simply closes the menu and causes no other instructions to be performed. Such an option enables a user to decide during the menu navigation process that no menu item should be selected, so the user can then scroll through to the close menu option and select that instead. After selecting the menu item, the process ends.
One of ordinary skill in the art will recognize that other embodiments could receive different inputs rather than a user holding down a mouse button and moving the mouse for menu item selection and scrolling. Examples of such inputs include other mouse inputs (e.g., double-clicking before holding a button down, etc.), keyboard inputs (e.g., holding down the left and right arrow keys), touchscreen or touchpad inputs, etc. In fact, some embodiments that use touchscreens do not actually use a cursor. Instead, a user could press down over the menu on the touchscreen with one finger, then move the menu in either direction by moving the finger to the right or left.
Furthermore, one of ordinary skill will recognize that process 600 is an example of one possible process performed by some embodiments in order to scroll the menu by holding down a mouse button. Process 600 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 615 and 625 need not necessarily be performed in the order shown in FIG. 6.
Some embodiments might also utilize different techniques to determine which item should be selected when the mouse button is released. Rather than identifying the item closest to the selection window, some embodiments identify the item that was most recently fully centered (i.e., the item leaving the selection window as the user releases the mouse button). Similarly, some embodiments identify the item that most recently started entering the selection window (i.e., the item entering the selection window as the user releases the mouse button).
C. Selection Window that Moves with Scrolling Menu Items
FIG. 8 conceptually illustrates a process 800 of some embodiments for navigating a menu based on a click-and-drag input from a cursor controller. Specifically, according to process 600, the menu items are scrolled continuously in response to the click-and-drag input as a selection window moves with a menu item up to a threshold point and then jumps to the next menu item. When the input is finished the item presently in the selection window is selected. Process 800 will be described by reference to FIG. 9, which illustrates the navigation of such a menu 900 of some embodiments.
FIG. 9 illustrates six stages, 910, 920, 930, 940, and 950. Stage 910 illustrates the menu 900 as initially displayed with a cursor 915, stages 920, 930, and 940 illustrate the menu 900 while a mouse button is held down and the mouse is moved in order to scroll the menu, stage 950 illustrates the menu 900 as the button is released, and 960 illustrates the menu 900 shortly after the release of the mouse button.
As shown, process 800 begins by displaying (at 805) a menu with an initial item in a selection window of the menu. The menu, in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
As shown in FIG. 9, some embodiments display only the selection window, an item in the selection window, and portions of the menu items to either side of the selection window. Stage 910 illustrates selection window 905 with item 970. Item 970 is the item initially displayed in selection window 905. At stage 910, item 965 is partially displayed to the left of item 970 and item 975 is partially displayed to the right of item 970. Item 965 is one item prior to item 970 in the order for the menu items and item 975 is one item after item 970.
Process 800 next receives (at 810) a press and hold of a mouse button. The mouse button could be a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system). One of ordinary skill in the art will understand that similar processes may receive similar input from other types of input devices, as described below. In some embodiments, the process requires that the cursor be over the menu when the mouse button is pressed down in order to translate mouse movement into menu scrolling and selection.
The process determines (at 815) whether the mouse is moving left. When the mouse is moving left, the process scrolls (at 820) the menu items and the selection window to the right. As the menu items move, the selection window moves with them, rather than staying in place with the items moving through the window. The process then proceeds to 835, which is described below. The rightmost displayed menu item moves out of the display as an item moves into the display from the left side.
When the mouse is not moving left, the process determines (at 825) whether the mouse is moving right. When the mouse is moving right, the process scrolls (at 830) the menu items and the selection window to the left. As the menu items move, the selection window moves with them, rather than staying in place with the items moving through the window. The leftmost displayed menu item moves out of the display as an item moves into the display from the left side. When the mouse is moving neither left nor right, the process does not scroll the menu items in either direction, and proceeds to 845, which is described below.
FIG. 9 illustrates the case where input is received indicating that the mouse is being moved to the right while the mouse button is held down. At stage 910, cursor 915 is visible over selection window 905. Stage 920 illustrates menu 900 shortly after the mouse button is pressed and a user begins moving the mouse to the right. Menu item 965 is no longer displayed at all, menu item 970 is no longer centered in the menu display, and menu item 975 is close to being fully displayed.
Cursor 915 is no longer visible at this stage. Some embodiments do not display the cursor while mouse button is held down, as the actual movement shown on the screen is in the direction opposite the mouse movement. Some embodiments display the cursor moving with the selection window.
Referring to FIG. 8, process 800 next determines (at 835) whether the selection window has been moved past a threshold. When the selection window has moved past the threshold, the process jumps (at 840) the selection window to the next menu item. When the menu items are moving to the right, the next menu item is the item to the left of the selection window. Correspondingly, when the menu items are moving to the left, the next menu item is the item to the right of the selection window.
In some embodiments, the threshold is the point at which the selection window would be moving out of the display. This is especially applicable to menu displays that only allow for the display of a small number of menu items. Some embodiments define the threshold as the point at which the next menu item would take up more than half of the selection window if the selection window was not moving.
Stage 930 of FIG. 9 illustrates that menu 900 has been scrolled left to the point that selection window 905 has reached the left edge of the display, which is the threshold for this menu display. Stage 940 illustrates the result of scrolling the menu further to the left, which is that selection window 905 has jumped from menu item 970 to menu item 975. To jump the selection window to the next item, some embodiments display the selection window as moving very quickly between one item and the next. Other embodiments simply redraw the menu with the selection window over the next item—the selection window is not displayed as moving but rather is displayed over the first item and then immediately displayed over the next item.
Process 800 next determines (at 845) whether input has been received indicating that the mouse button has been released. When the mouse button is not released, the process returns to 815 to continue processing mouse input. In some embodiments, a user can move the mouse back and forth, thereby moving the menu items both left and right. Thus, if a user scrolls past a desired menu item, they can move the mouse in the opposite direction, causing the menu to scroll back to the desired item.
Once the mouse button is released, the process identifies (at 850) the item that is currently in the selection window. Stage 950 of FIG. 9 illustrates the menu 900 immediately after the mouse button is released. The release of the mouse button is indicated by cursor 915 becoming visible again. At this point, the selection window 905 has recently jumped from menu item 980 to item 985. As such, the process would identify item 985 as the menu item currently in selection window 905.
The process then centers (at 855) the identified item and the selection window in the menu display. Stage 960 illustrates the result of the menu item 985 and the selection window 905 being centered in the display for menu 900 after the mouse button is released. Some embodiments display the menu and selection window as moving very quickly between the release of the mouse button and the centering of the item and selection window (e.g., between stages 950 and 960). Other embodiments simply redraw the menu with the identified item and selection window centered—the menu items are not displayed as moving but rather are displayed at the location where the mouse button is released and then immediately displayed with the identified item and selection window centered.
Next, the process selects (at 860) the identified menu item. Selecting the menu item, in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool. Some embodiments also include an item the selection of which simply closes the menu and causes no other instructions to be performed. Such an option enables a user to decide during the menu navigation process that no menu item should be selected, so the user can then scroll through to the close menu option and select that instead. After selecting the menu item, the process ends.
One of ordinary skill in the art will recognize that other embodiments could receive different inputs rather than a user holding down a mouse button and moving the mouse for menu item selection and scrolling. Examples of such inputs include other mouse inputs (e.g., double-clicking before holding a button down, etc.), keyboard inputs (e.g., holding down the left and right arrow keys), touchscreen or touchpad inputs, etc. In fact, some embodiments that use touchscreens do not actually use a cursor. Instead, a user could press down over the menu on the touchscreen with one finger, then move the menu in either direction by moving the finger to the right or left.
Furthermore, one of ordinary skill will recognize that process 800 is an example of one possible process performed by some embodiments in order to scroll the menu by holding down a mouse button. Process 800 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 815 and 825 need not necessarily be performed in the order shown in FIG. 8. Some embodiments might also have two separate sets of instructions for determining whether the selection window had passed a threshold—one set of instructions when the menu items are moving left and one set of instructions when the menu items are moving to the right.
D. Menu Items Jump to Selection Window
FIG. 10 conceptually illustrates a process 1000 of some embodiments for navigating a menu based on a click-and-drag input from a cursor controller. Specifically, according to process 600, the menu items do not move as the cursor controller is being moved until a threshold amount of movement is reached, at which point the menu items are shifted by one item. Process 1000 will be described by reference to FIG. 11, which illustrates the navigation of such a menu 1100 of some embodiments.
FIG. 11 illustrates four stages, 1110, 1120, 1130, and 1140. Stage 1110 illustrates the menu 1100 as initially displayed with a cursor 1115, stages 1120 and 1130 illustrate the menu 1100 while a mouse button is held down and the mouse is moved in order to scroll the menu, and stage 1140 illustrates the menu as the button is released.
As shown, process 1000 begins by displaying (at 1005) a menu with an initial item in a selection window of the menu. The menu, in some embodiments, includes a number of menu items that have a particular order. Some embodiments order the menu items from a first item to a last item, whereas other embodiments only order the menu items relative to each other. In the latter case, the menu items can be navigated in an infinite loop.
As in FIG. 11, some embodiments display only the selection window, an item in the selection window, and portions of the menu items to either side of the selection window. Stage 1110 illustrates selection window 1105 with item 1150. Item 1150 is the item initially displayed in selection window 1105. At stage 1110, item 1145 is partially displayed to the left of item 1150 and item 1155 is partially displayed to the right of item 1150. Item 1145 is one item prior to item 1150 in the order for the menu items and item 1155 is one item after item 970.
Process 1000 next receives (at 1010) a press and hold of a mouse button. The mouse button could be a left mouse button (when the process is performed on a system recognizing input from two or more mouse buttons) or from a button that is the only button on the mouse (when the process is performed on a one-button system). One of ordinary skill in the art will understand that similar processes may receive similar input from other types of input devices, as described below. In some embodiments, the process requires that the cursor be over the menu when the mouse button is pressed down in order to translate mouse movement into menu scrolling and selection.
The process determines (at 1015) whether the mouse is moving left. When the mouse is moving left, the process determines (at 1020) whether the mouse movement passes a threshold. When the mouse movement has passed the threshold, the process jumps (at 1025) the next menu item leftwards into the selection window. This causes the entire menu to shift to the left by one item. In some embodiments, the threshold amount of mouse movement is a constant that is based on the amount of mouse movement that would be required to move the cursor a particular distance on the display. Some embodiments vary the threshold amount based on how fast the mouse is moving, allowing a user to more quickly move through the menu by using faster mouse movements. The process then proceeds to 1045, which is described below.
When the mouse is not moving left, the process determines (at 1030) whether the mouse is moving right. When the mouse is not moving right (i.e., a user is holding the mouse button down but not moving the mouse), the process proceeds to 1045, which is described below. Otherwise, the process determines (at 1035) whether the mouse movement passes a threshold. When the mouse movement has passed the threshold, the process jumps (at 1040) the next menu item rightwards into the selection window. This causes the entire menu to shift to the right by one item. In some embodiments, the threshold amount of mouse movement is a constant that is based on the amount of mouse movement that would be required to move the cursor a particular distance on the display. Some embodiments vary the threshold amount based on how fast the mouse is moving, allowing a user to more quickly move through the menu by using faster mouse movements.
FIG. 11 illustrates the case where input is received indicating that the mouse is being moved to the left. At stage 1110, cursor 1115 is visible over the selection window 1105. Stage 1120 illustrates menu 1100 shortly after the mouse button is pressed and a user begins moving the mouse to the left. Although the mouse has started moving, because the mouse has not been moved by at least a threshold amount, the menu items 1145, 1150, and 1155 have not been moved at all.
Cursor 1115 is no longer visible at this stage. Some embodiments do not display the cursor while mouse button is held down. Some embodiments display the cursor as unmoving over the selection window, to simulate the idea that the selection window is being dragged by the mouse movement over static menu items. In some such embodiments, rather than left mouse movement moving the menu items left, the menu items move in a direction opposite the mouse movement.
Stage 1130 illustrates the menu 1100 after a user has moved the mouse far enough to the right to cause the menu items to shift to the left by one item. Stage 1130 illustrates that menu item 1155 is now in selection window 1105, menu item 1150 has moved from the selection window to being partially displayed to the left of selection window 1105, and menu item 1160 has appeared from the right and is partially displayed to the right of selection window 1105. Some embodiments display the menu as moving very quickly when shifting the menu to either the right or left. Other embodiments simply redraw the menu with the items shifted as soon as the the mouse movement passes the threshold rather than displaying the movement of the menu items at all.
Returning to FIG. 10, process 1000 next determines (at 1045) whether input has been received indicating that the mouse button has been released. When the mouse button is not released, the process returns to 1015 to continue processing mouse input. In some embodiments, a user can move the mouse back and forth, thereby moving the menu items both left and right. Thus, if a user scrolls past a desired menu item, they can move the mouse in the opposite direction, causing the menu to scroll back to the desired item.
Next, the process selects (at 1050) the item that is currently in the selection window. Selecting the menu item, in some embodiments, causes instructions associated with the selected menu item to be performed, such as performing a command, opening a submenu, or activating a user interface tool. Some embodiments also include an item the selection of which simply closes the menu and causes no other instructions to be performed. Such an option enables a user to decide during the menu navigation process that no menu item should be selected, so the user can then scroll through to the close menu option and select that instead. After selecting the menu item, the process ends.
Stage 1140 of FIG. 11 illustrates the menu 1100 immediately after the mouse button is released. The release of the mouse button is indicated by cursor 1115 becoming visible again. At this point, menu item 1165 has been recently moved into selection window 1105. As such, the process would select item 1165 as the item currently in the selection window.
One of ordinary skill in the art will recognize that other embodiments could receive different inputs rather than a user holding down a mouse button and moving the mouse for menu item selection and scrolling. Examples of such inputs include other mouse inputs (e.g., double-clicking before holding a button down, etc.), keyboard inputs (e.g., holding down the left and right arrow keys), touchscreen or touchpad inputs, etc. In fact, some embodiments that use touchscreens do not actually use a cursor. Instead, a user could press down over the menu on the touchscreen with one finger, then move the menu in either direction by moving the finger to the right or left.
Furthermore, one of ordinary skill will recognize that process 1000 is an example of one possible process performed by some embodiments in order to scroll the menu by holding down a mouse button. Process 1000 is not necessarily the only example of how computer instructions can display such a menu and translate input for the menu. For instance, operations 1015 and 1030 need not necessarily be performed in the order shown in FIG. 6.
The four processes described above all either move the menu items right or left in response to cursor controller input to the right or left (either click input right or left of the selection window or drag input in either direction). One of ordinary skill in the art will recognize that different embodiments will move the menu items in different directions in response to left or right input. That is, in some embodiments that display menu item movement according to process 600, moving the mouse to the right will cause the menu items to move to the right. In other such embodiments, moving the mouse to the right will cause the menu items to move to the left. Equivalent variants are possible for processes 400, 800, or 1000.
The four processes and variants thereof are not exhaustive of the possibilities for scrolling through menus of the type shown above and below. For example, various touchscreen or touchpad interactions could be used to scroll through a menu and to select an item from the menu. Using a touchpad, a user could repeatedly use swipe gestures (e.g., a two finger swipe) in either direction while a cursor is over the menu in order to scroll the menu. The number of menu items scrolled through by a single swipe gesture would be dependent upon the speed and length of the swipe gesture in some embodiments. A different input, such as a double tap with the cursor over the selection window, could then be used to select an item from the menu. Similarly, swipe gestures over a menu on a touchscreen could be used (without a cursor) to scroll through the menu items. Like the touchpad example given above, the number of menu items scrolled through by a single swipe gesture would be dependent on the speed and length of the swipe gesture in some embodiments. A user tapping quickly, or double-tapping (or some other gesture) on an item in the selection window could be used to select an item.
E. Other Menu Features
As mentioned above, selection of a menu item causes instructions associated with the selected menu item to be performed in some embodiments. In some embodiments, the instructions activate a particular tool. For instance, in some embodiments the menu is part of a video-editing application. The menu items could be video-editing tools (e.g., blade, ripple, slip, razor, etc.) or different transition options (e.g., dissolve, fade, etc. In some embodiments, the menu item instructions cause a command to be performed. For instance, in some embodiments, the menu items represent the typical drop-down menu options of an application (e.g., a “File” menu with “Save”, “Print”, “Open”, etc. options).
In some embodiments, one or more of the menu items causes a sub-menu to open when selected. In the cases where the menu is navigated through a user pressing and holding a cursor controller selection button down and then moving the cursor controller in order to scroll the menu items through a selection window (e.g., the menus described in subsections B-D above), some embodiments select a particular item that opens a submenu when a user stops moving the mouse while the particular item is in the selection window.
FIG. 12 illustrates an example of the navigation of a menu 1200 and a sub-menu 1225 of some embodiments. FIG. 12 illustrates six stages, 1210, 1220, 1230, 1240, 1250, and 1260. Stage 1210 illustrates the menu 1200 with a menu item 1265 in a selection window 1205, stages 1220, 1230, and 1240 illustrate the navigation of sub-menu 1225 that is opened as a result of selecting menu item 1265, and stages 1250 and 1260 illustrate the result of selecting a menu item 1275 from the sub-menu 1225.
Stage 1210 illustrates the menu 1200 with an item 1265 in selection window 1205. Menu item 1265 is not the menu item initially displayed in selection window 1205. Instead, a user has scrolled through the various menu items in menu 1200 to get item 1265 in selection window 1205. The menu could be navigated via single-clicks of a mouse button (e.g., according to a process such as process 400), via a user pressing and holding a mouse button while moving the mouse back and forth (e.g., according to a process such as process 600, 800, or 1000), or via some other process.
Menu item 1265 includes a small plus sign 1235. In some embodiments, such a symbol is used to graphically indicate that the selection of a menu item will cause a sub-menu to open. Other graphical indicators may be used by some embodiments, such as arrows, letters, etc. Other embodiments do not use graphical indicators, instead assuming that the user will know which menu items cause sub-menus to open. As shown in the following stages, some embodiments leave the graphical indicator in the selection window as the user scrolls through the sub-menu. Other embodiments, however, leave the graphical indicator with the particular item that causes the sub-menu to open as the user scrolls through the sub-menu.
For menus that behave according to process 400 (or similarly), some embodiments open a sub-menu as soon as its corresponding menu item (i.e., the menu item whose selection causes the sub-menu to open) is moved into the selection window. Other embodiments require the selection of the particular menu item (e.g., by clicking on the menu item in the selection window). The sub-menu is then navigated via input similar to the input used for the initial menu (i.e., if the initial menu is navigated via single-clicks, then so is the sub-menu in some embodiments).
For menus that behave according to one of processes 600, 800, or 1000 (or according to a similar process), some embodiments also open a sub-menu as soon as its corresponding menu item is moved into the selection window. Other embodiments, though, require the user to keep the particular menu item in the selection window for a threshold amount of time (i.e., by not moving the mouse once the particular menu item is in the selection window). Once the sub-menu opens, some embodiments allow the user to navigate the sub-menu by continuing to hold down the mouse button and moving the mouse up and down (when the sub-menu opens vertically).
Stage 1220 illustrates the opened sub-menu 1225. Sub-menu 1225 opens vertically. When the sub-menu initially opens, item 1265 remains in selection window 1205. In some cases, the item from the initial menu that caused the sub-menu to open is not selectable within the sub-menu. However, in other cases, this item may be selected within the sub-menu just like the rest of the sub-menu items.
As shown in stage 1220, sub-menu 1225 includes at least four items in addition to 1265: items 1270, 1275, 1280, and 1285. Some embodiments display the entire sub-menu at once, whereas other embodiments display only a portion of the sub-menu around the selection window (similar to how menu 1200 is displayed, except vertically).
Stage 1230 illustrates the sub-menu 1225 after a user has navigated to item 1280. A user could navigate to this point by clicking below the selection window in some embodiments. In other embodiments, the user could hold a mouse button down and move the mouse downwards. Stage 1260 illustrates the sub-menu 1225 after a user has navigated to item 1275 (two items up from item 1280). A user could navigate to this point by clicking above selection window or by moving the mouse upwards, depending on the process used to navigate menu 1200. In the examples shown, the menu is navigated by a user holding the mouse button down, as no cursor is visible.
Stage 1250 illustrates the process used by some embodiments to close a sub-menu when an item is selected from the sub-menu. Menu item 1275 has been selected (e.g., by a user releasing the mouse button while item 1275 is in the selection window 1205). As shown, the sub-menu 1225 begins closing around the selected item 1275. Stage 1240 illustrates menu 1200 after the sub-menu has fully collapsed, with item 1275 selected. As the user has released the mouse button, a cursor 1215 is now visible.
The menu 1200 shown in FIG. 12 has a primary orientation of horizontal scrolling, while the sub-menu 1225 opened from menu 1200 scrolls vertically. In some embodiments, sub-menus themselves also have sub-menus. Thus, if a user selected an item in sub-menu 1225 that itself opened a sub-menu, some embodiments would orient the new sub-menu horizontally. The items of the new sub-menu would be displayed over the original items from the primary menu in some embodiments such that the primary menu items are no longer visible. On the other hand, the menus of some embodiments have a primary orientation of vertical scrolling, and the sub-menus opened from such menus then scroll vertically.
FIG. 13 illustrates a menu 1300 of some embodiments that displays menu items outside of a primary display as faded while the user scrolls through the menu. FIG. 13 illustrates three stages, 1310, 1320, and 1330. As shown in stage 1310, menu 1300 includes a display similar to that of menus 500, 700, 900, and 1100. However, as shown in stages 1320 and 1330, when a user presses and holds a mouse button in order to navigate menu 1300, items outside the display appear in faded form.
Stage 1310 illustrates menu item 1360 in selection window 1305. Cursor 1315 is visible over item 1360, and portions of menu items 1355 and 1365 are visible to either side of selection window 1305. Menu 1300 is navigated by a user pressing and holding a mouse button, then moving the mouse left and right (e.g., according to a process such as process 600, 800, or 1000). Cursor 1315 is visible at this stage, indicating that the user has not yet pressed down the mouse button to navigate the menu.
Stage 1230 illustrates the sub-menu 1225 after a user has navigated to item 1280. A user could navigate to this point by clicking below the selection window in some embodiments. in other embodiments, the user could hold a mouse button down and move the mouse downwards. Stage 1260 illustrates the sub-menu 1225 after a user has navigated to item 1275 (two items up from item 1280). A user could navigate to this point by clicking above selection window or by moving the mouse upwards, depending on the process used to navigate menu 1200. in the examples shown, the menu is navigated by a user holding the mouse button down, as no cursor is visible.
Stage 1250 illustrates the process used by some embodiments to close a sub-menu when an item is selected from the sub-menu. Menu item 1275 has been selected (e.g., by a user releasing the mouse button while item 1275 is in the selection window 1205). As shown, the sub-menu 1225 begins closing around the selected item 1275. Stage 1240 illustrates menu 1200 after the sub-menu has fully collapsed, with item 1275 selected. As the user has released the mouse button, a cursor 1215 is now visible.
As mentioned above, the features described in the preceding section can be applied to menus that do not scroll linearly. The processes 400, 600, 800, and 1000 for navigating and selecting menu items can be applied to any sort of menu in which menu items are moved through a selection window, regardless of the shape of the menu. Menus need not be horizontal (or even vertical) for their menu items to cause submenus to open perpendicularly to the scrolling of the menu. Nor is their any requirement that a menu be linear in shape for menu items around the selection window to be displayed as partially faded or transparent.
II. Semi-Circular Menus
The examples in the preceding section all involved menus that scroll linearly. However, as noted, the described features of the menus are applicable equally to other sorts of menus. The following section describes various features of menus that are displayed as a semi-circle. The features described in this section are shown as applied to semi-circular menus, though one of ordinary skill will recognize that these many of these features could be applied to the linear menus shown above.
FIG. 14 illustrates the opening of a semi-circular menu 1400 of some embodiments. FIG. 14 illustrates four stages, 1410, 1420, 1430, and 1440. Stages 1410 and 1420 illustrate menu 1400 prior to its opening, stage 1430 illustrates the menu partway through the opening process, and stage 1440 illustrates the menu once it is fully opened.
Stage 1410 illustrates a menu item 1480 on its own, with no selection window or associated menu items. Menu item 1480 is displayed as having a first color. Stage 1410 also illustrates a cursor 1415 that is near, but not over, the menu item. Stage 1420 illustrates the menu item 1480 now that cursor 1415 has been moved over it. Moving cursor 1415 over the menu item 1480 causes a display of a selection window 1405 over the menu item, such that the menu item now appears to be displayed as having a second color. Some embodiments actually display the menu item as having a different color, while others display a partially transparent selection window over the menu item. Some embodiments, as shown, display the selection window as soon as the cursor moves over the menu item. Other embodiments, however, wait to display the selection window until a user has actually pressed a mouse button or provided some other sort of selection input with the cursor over the menu item.
Stage 1430 illustrates menu 1400 shortly after a user has pressed a mouse button or provided some form of selection input (e.g., a keystroke, other mouse input, input from a different cursor controller, etc.). Menu item 1480 is still displayed within selection window 1405, and other menu items have started fanning out from item 1480. The display gives the appearance that the other menu items in menu 1400 were initially stacked underneath item 1480. The menu items that are not in the selection window (items other than 1480) are displayed as having the first color (i.e., the same color that item 1480 had in stage 1410).
Stage 1440 illustrates the menu 1400 after it has fully expanded out. Presently visible are menu items 1465 through 1495. Items 1465 and 1495 are displayed as partially faded, which provides a visual indication that the menu continues in both directions with more menu items.
FIG. 14 illustrates one possibility of how a menu can open, from stage 1420 to stage 1440. Some embodiments do not display the menu fanning out, and instead as soon as a user clicks the mouse button over the single menu item, the menu is displayed as shown at stage 1440. Some embodiments display the menu items as sliding along a semicircular track out to the locations shown at stage 1440, rather than expanding into the semi-circle as displayed in stage 1430. Other embodiments use other visual displays for opening the menu. Furthermore, these and other visual displays are used by some embodiments that use shapes other than semi-circles—the expanding menu is applicable to linear menus that display more than one menu item at once as well.
FIG. 15 illustrates the navigation of menu 1400 and selection of item 1460 from the menu. FIG. 15 illustrates five stages, 1510, 1520, 1530, 1540, and 1550. Stage 1510 illustrates menu 1400 at the same point as stage 1440 of FIG. 14, stage 1520 illustrates the navigation of menu 1400, and stages 1530-1550 illustrate the selection of item 1460.
Stage 1520 illustrates that a user has scrolled the menu such that the initial item in the selection window 1405 (item 1480) is now near the right edge of the displayed menu and is beginning to appear as partially faded. In some embodiments, in order to scroll the menu to this point, the user drags the mouse to the left while holding down the mouse button. As shown in stage 1520, the selection window 1405 is displayed as a partially transparent window that the menu items scroll underneath. Furthermore, as the selection window is currently in-between two menu items (1465 and 1470), the menu 1400 is one that scrolls according to a process similar to process 600, in which the items continuously scroll, and do not snap to the selection window. However, some embodiments do apply the other described scrolling processes, or similar processes, to semi-circular menus.
Stage 1530 illustrates that a user has scrolled the menu such that item 1460 is in selection window 1405 and released the mouse button in order to select item 1460. Cursor 1415 is now visible over selection window 1405 and item 1460. Stage 1540 illustrates the closing of menu 1400 around the selected item 1460. In some embodiments, the menu closes in the exact opposite pattern that it opened. Thus, when the menu items simply appeared around the initial item, then when the item is selected they disappear without any inward movement. When the menu items fan out as shown in FIG. 14, then the menu collapses inward as shown in stage 1540.
Stage 1550 illustrates that the menu has fully closed so that only item 1460 is displayed. In some embodiments, the selected menu item is now displayed, much like item 1480 was displayed at stage 1410 of FIG. 14. For instance, in some embodiments the menu is a toolbar. One example of such a toolbar is video-editing toolbar for a video-editing application. The video-editing toolbar of some embodiments includes video-editing tools such as a blade tool, ripple tool, slip tool, roll tool, etc. Selecting a tool makes that tool active, so that a user can then use the tool in the editing process. The selected tool is displayed until the user repeats the process to select a different tool. On the other hand, in some embodiments the menu is a list of commands, and closes when the user selects a particular command. Some such embodiments wait a short period of time, then revert the displayed menu item back to the initial item.
FIG. 16 illustrates an example of a semi-circular menu 1600, similar to those described above, that includes a menu item 1655 that opens a sub-menu 1625. FIG. 16 illustrates four stages, 1610, 1620, 1630, and 1640. Stage 1610 illustrates the menu after a user has navigated such that menu item 1655 is in selection window 1605, stage 1620 illustrates the opening of sub-menu 1625, and stages 1630 and 1640 illustrate the navigation of sub-menu 1625.
Stage 1610 illustrates a menu 1600 that is similar in nature to menu 1400. Currently in the selection window 1605 is menu item 1655. Item 1655 includes a small plus sign 1635 that indicates that its selection will cause a sub-menu to open. In some embodiments, such a symbol is used to graphically indicate that the selection of a menu item will cause a sub-menu to open. Other graphical indicators may be used by some embodiments, such as arrows, letters, etc. Other embodiments do not use graphical indicators, instead assuming that the user will know which menu items cause sub-menus to open. As shown in the following stages, some embodiments leave the graphical indicator with the particular item that causes the sub-menu to open as the user scrolls through the sub-menu. Other embodiments, however, leave the graphical indicator in the selection window as the user scrolls through the sub-menu, as in FIG. 12 above.
Stage 1620 illustrates menu 1600 shortly after a user has selected menu item 1655. Sub-menu 1625 has started to open vertically. In some embodiments, a sub-menu opens perpendicular to the tangent of the path followed by the parent menu. As the tangent to the semi-circular menu 1600 is horizontal at selection window 1605, sub-menu 1625 opens vertically.
As shown, the menu items of sub-menu 1625 spread apart from the selection window. As the items spread apart, the non-selected items of menu 1600 begin to fade. Stage 1630 illustrates the sub-menu 1625 after it has fully spread apart. At this point, the non-selected items of menu 1600 are mostly faded. Once the sub-menu has fully expanded, a user can navigate the sub-menu. For instance, much like the sub-menus described above, a user can move a mouse up or down in order to scroll the sub-menu items through the selection window. Stage 1640 illustrates sub-menu 1625 after a user has scrolled the menu down by one item such that menu item 1660 is in the selection window 1605.
In some embodiments, when a user selects an item from a sub-menu, both the primary menu (e.g., menu 1600) and the sub-menu (e.g., sub-menu 1625) collapse inwards at the same time. The menu collapses inwards in similar fashion to the manner illustrated in FIG. 15, whereas the sub-menu collapses in reverse of its expansion process. Different embodiments, though, will collapse the sub-menu first and then collapse the primary menu, or use different visual displays upon selection of an item from a sub-menu.
Much like the features described in Section I, many of the features described in this section are applicable to menus that are not semi-circular. For instance, menus of any shape can be expanded outwards from a single menu item upon selection of the single menu item. Similarly, such menus can collapse inwards upon selection of an item from the fully displayed menu.
III. Circular Menu Alternatives
The above sections described and included examples of menus for which not all of the menus are displayed at once, whether the menu is displayed linearly (as in Section I) or as a semi-circle (as in Section II). The following section presents examples of menus for which all of the menu items are displayed at once. Specifically, the menus described in this section are displayed in circular fashion.
FIG. 17 illustrates the opening of a circular menu 1700 of some embodiments. FIG. 17 illustrates four stages, 1710, 1720, 1730, and 1740. Stages 1710 and 1720 illustrate menu 1700 prior to its opening, stage 1730 illustrates the menu partway through the opening process, and stage 1740 illustrates the menu once it is fully opened.
Stage 1710 illustrates a menu item 1780 on its own, with no selection window or associated menu items. Menu item 1780 is displayed as having a first color. Stage 1710 also illustrates a cursor 1715 that is near, but not over, the menu item. Stage 1720 illustrates the menu item 1780 now that cursor 1715 has been moved over it. Moving cursor 1715 over the menu item 1780 causes a display of a selection window 1705 over the menu item, such that the menu item now appears to be displayed as having a second color. Some embodiments actually display the menu item as having a different color, while others display a partially transparent selection window over the menu item. Some embodiments, as shown, display the selection window as soon as the cursor moves over the menu item. Other embodiments, however, wait to display the selection window until a user has actually pressed a mouse button or provided some other sort of selection input with the cursor over the menu item.
Up to this point, the behavior of menu 1700 is similar to that of menu 1400. However, stage 1730 illustrates that the menu 1700 is circular, rather than semi-circular like menu 1400. Stage 1730 illustrates menu 1700 shortly after a user has pressed a mouse button or provided some form of selection input (e.g., a keystroke, other mouse input, input from a different cursor controller, etc.) in order to open menu 1700. Menu item 1780 is still displayed within selection window 1705, and other menu items have started expanding outwards from item 1780. The display gives the appearance that the other menu items in menu 1700 were initially stacked underneath item 1780. The menu items that are not in the selection window (items other than 1780) are displayed as having the first color (i.e., the same color that item 1780 had in stage 1710).
Some embodiments, as shown, expand the menu downwards from the initial menu item (e.g., menu item 1780). Other embodiments, though, expand the menu outwards in all directions, such that the center of the circle is at the location in the graphical user interface where the initial menu item was before its selection. In some such embodiments, if the cursor is displayed while the user scrolls through the menu, the cursor is moved to the selection window at the top of the circle.
Stage 1740 illustrates the menu 1700 after it has fully expanded out. All of the menu items of menu 1700 are presently visible. In order to display the entirety of the menu items, some embodiments vary the radius of the circle depending on the number of menu items (i.e., the radius is larger when there are more menu items). Other embodiments vary the size of the menu items (i.e., the menu items are smaller when there are more of them so as to maintain the same radius). Yet other embodiments vary the amount of overlap between the menu items (i.e., the items overlap more when there are more items) in order to keep the menu items a constant size and the circle having a constant radius.
Navigation of the circular menus is similar to navigation of the semi-circular menus in some embodiments. By moving a mouse left or right while pressing down a mouse button, a user can cause the menu items to scroll through the selection window. One notable difference is that in the case of the circular menu, a user can scroll indefinitely in either direction. The menu does not have a first menu item or last menu item in its order. Instead, the menu items are only ordered relative to one another.
Circular menus such as menu 1700 can also include items the selection of which causes sub-menus to open in similar fashion to the sub-menu 1625 of FIG. 16. In some embodiments, the sub-menu opens vertically above and below the selection window, while the circular primary menu fades. However, as the primary menu does not fade completely, some embodiments only display the sub-menu below the selection window to the extent the menu items do not overlap with the bottom of the circular menu.
FIG. 18 illustrates a circular menu 1800 that is partially faded after a sub-menu 1825 has opened vertically above and below selection window 1805. Towards the bottom of sub-menu 1825, only part of menu item 1830 is displayed. Scrolling sub-menu 1825 up (e.g., by a user moving a cursor controller downwards) will result in the entirety of menu item 1830 being displayed as the next menu item below item 1830 begins to appear. Other embodiments, however, display the sub-menu extending over the bottom of the primary menu.
Some embodiments of the circular menus close in a manner similar to that of the semi-circular menus described above upon selection of a menu item. That is, the circular menu collapses in upon itself in reverse of how it opened. Thus, if the circular menu opened downwards from the initial menu item, the upon selection of an item from the menu, the menu closes with the displayed items collapsing back towards the selection window and selected item. On the other hand, if the circular menu opened outwards from the initial location of the initial menu item, then upon selection of an item from the menu, the menu closes with the displayed items collapsing inwards to that initial location. Similar to the description above for the semi-circular menus, other embodiments close circular menus differently.
IV. Uses of Menus
As discussed, the various menus described above can be used in a wide variety of computing applications. The menus can be used directly in an operating system or in an application separate from the operating system in some embodiments. Furthermore, the menus can be especially useful in handheld devices such as the iPhone®.
FIG. 19 illustrates a computer desktop 1900 displaying various features of an operating system of some embodiments. The desktop includes a file folder navigation window 1905, application selection icons 1910, and menu 1915. The file folder navigation window 1905 is a standard window that enables a user to navigate a hierarchical file system in order to find and open a file (e.g., a word processing document, a spreadsheet, a video file, etc.). The application selection icons 1910 provide easy access for a user to the different applications (e.g., e-mail, web browsers, media players, word processing applications, media-editing applications, etc.) on the computing device.
Menu 1915 is one example of the use of the menus described above for providing operating system features. Menu 1915 presents various options related to shutting off the computer. Menu 1915 includes selection window 1920 and at least the three menu items 1925-1935 that are displayed or partially displayed. Item 1925 presents a “Log Off” option, item 1930 presents a “Shut Down” option, and item 1935 presents a “Restart” option. Some embodiments also include power-saving options such as “Standby”.
In some embodiments, menu 1915 is permanently displayed as part of the desktop, though other items (e.g., windows such as window 1905) may be placed on top of menu 1915 such that the menu is not displayed. Other embodiments only display menu 1915 in response to user input such as a particular keystroke (or combination of keystrokes) or the selection of an option in the graphical user interface to bring up menu 1915.
One of ordinary skill in the art will recognize that the menus of some embodiments may be used for a wide variety of operating system features. As an example, the application selection icons could be integrated into a menu such as linear menu 1915 or one of the other menus described above. For instance, the application selection icons could be provided in a semi-circular menu such as menu 1400 that is displayed in one corner of the screen rather than taking up the entire bottom portion of the screen.
FIG. 20 illustrates a video-editing application 2000 that is used to create composite video presentations and that utilizes the menus of some embodiments. Video-editing application 2000 includes a composite display area 2005, a set of selectable video clips 2010, video preview display area 2015, and a video-editing toolbar 2020.
The composite display area 2005 provides a visual representation of the video presentation that the user creates. Users can add media clips (e.g., audio and video clips) to the composite display area, where the clips are graphically represented. A user can modify the video presentation by performing editing operations on the clips in the composite display area. The set of selectable video clips 2010 provides various media clips, represented as thumbnails, that the user can select and add to the video presentation via the composite display area 2005. The video preview display area 2015 displays a preview of the composite presentation according to the composite display area.
The video-editing toolbar 2020 is an example of the use of the menus described above for providing video-editing tools. Specifically, toolbar 2020 provides the user with multiple trimming tool options. Currently shown in selection window 2025 is the roll tool 2035. Slide tool 2030 and slip tool 2040 are presently to the left and right of selection window 2025. Some embodiments include other trim tools in their toolbar, such as a ripple tool or blade tool.
Some embodiments present a variety of editing tools in a toolbar such as toolbar 2020. For instance, in addition to various trimming tools, some embodiments present other tools for editing the composite video presentation. On the other hand, some embodiments include multiple toolbars similar to toolbar 2020, such as one toolbar for the trim tools and a second toolbar for other video editing tools.
In some embodiments, toolbar 2020 is permanently displayed as part of the graphical user interface of the editing application. Other embodiments only display toolbar 2020 in response to user input such as a particular keystroke (or combination of keystrokes) or the selection of an option in the graphical user interface to bring up toolbar 2020. For instance, in some embodiments only one tool is displayed until a user invokes the menu (e.g., by clicking on the one displayed tool) at which point the toolbar showing more options is displayed. The examples of semi-circular menus illustrated in Section II are examples of such invocable toolbars or menus.
FIG. 21 illustrates a handheld device 2100 that is presently displaying a web browser 2105. Device 2100 could be a cell phone, a media player, etc. Web browser 2105 includes includes a uniform resource locator (URL) toolbar 2110, a content display area 2115, and a toolbar 2120.
The URL bar 2110 includes user interface tools and an address bar 2125 in which a user can type a URL and which displays a URL of a website to which a user has navigated by clicking on links within content display area 2115. Content display area 2115 displays the web page located at the URL indicated in address bar 2125.
Toolbar 2120 includes six tools—back and forward buttons 2130 and 2135, an add bookmark icon 2140, a bookmarks icon 2145 for opening a list of bookmarks, a menu icon 2150 for opening a menu, and a page gallery icon 2155 for displaying a list of open web pages for the user to choose from. When a user selects the menu icon 2150, menu 2160 opens. In some embodiments, invoking the menu 2160 causes a first window (i.e., the menu window) to open within an already-displayed second window. This is the case for other applications of the menus of some embodiments as well, and is not restricted to handheld devices.
Menu 2160 presents various options that are not displayed in URL bar 2110 or toolbar 2120. Menu 2160 includes a find text option 2175 for bringing up a tool that allows a user to type in text to find in the content displayed in display area 2115. The find text option 2175 is presently in selection window 2165. Partially displayed on either side of the selection window 2165 is a history option 2170 and a copy option 2180.
In some embodiments, the device is a touchscreen device. A user can navigate the menu 2160 in some such embodiments by using finger sweep gestures to the right and left to move the items, and then tapping or double-tapping the selection window to select an item. Other embodiments may recognize different multi-touch gestures for navigating the menu 2160 and selecting an item from the menu.
One of ordinary skill will recognize that menus other than menu 2160 are possible for use in a handheld device browser. For instance, the toolbar 2120 could include a selection window and more items than are presently shown. A user could then scroll through the items until the desired item was in the selection window. Furthermore, such menus are not restricted in any way to browsers, and in fact could be used for any application on a handheld device. Screen space is often at a premium in handheld devices such as device 2100, so the menus described in this application are an ideal solution for providing numerous options in this limited space.
V. Software Architecture
In some embodiments, the processes described above are implemented as software running on a particular machine, such as a computer or a handheld device, or stored in a computer readable medium. FIG. 22 conceptually illustrates the software architecture of an application 2200 of some embodiments for presenting menus such as those described in the preceding sections. In some embodiments, the application is a stand-alone application or is integrated into another application (for instance, application 2200 might be a portion of a video-editing application), while in other embodiments the application might be implemented within an operating system. Furthermore, in some embodiments, the application is provided as part of a server-based solution. In some such embodiments, the application is provided via a thin client. That is, the application runs on a server while a user interacts with the application via a separate machine remote from the server. In other such embodiments, the application is provided via a thick client. That is, the application is distributed from the server to the client machine and runs on the client machine.
Application 2200 includes a user interface (UI) interaction module 2205, a menu scroller 2210, an item selector 2215, and a menu display module 2220. The media-editing application also includes menu database 2225. In some embodiments, other storages are present as well, which may be part of the same physical storage as content storage 2225 or stored separately. FIG. 22 also illustrates an operating system 2250 that includes cursor controller driver 2255, keyboard driver 2260, and display module 2265. In some embodiments, as illustrated, the cursor controller driver 2255, keyboard driver 2260, and display module 2265 are part of the operating system 2250 even when the application 2200 is an application separate from the operating system.
A user interacts with the user interface via input devices (not shown). The input devices, such as cursor controllers (mouse, tablet, touchpad, etc.) and keyboards, send signals to the cursor controller driver 2255 and keyboard driver 2260, which translate those signals into user input data that is provided to the UI interaction module 2205. The UI interaction module interprets the user input data in the context of presented menus and passes it to the appropriate modules, such as the menu scroller 2210 and the item selector 2215.
Menu scroller 2210 interprets user interface interactions into the scrolling of menu items through a selection window. The menu scroller also receives information from the menu database 2225. This includes a list of the menu items and the order of the men items, inc some embodiments. In different embodiments the menu scroller 2210 scrolls the menu in response to different inputs. For instance, in some embodiments the menu scroller 2210 scrolls menu items based on one of the inputs described by processes 400, 600, 800, or 1000 above. The menu scroller sends the menu scrolling information to the menu display module 2220.
The item selector 2215 interprets user interface interactions into the selection of menu items. The item selector also receives information, such as the list of menu items and their order, from the menu database in some embodiments. The item selector 2215 recognizes which item is in the selection window when selection input is received. In some embodiments, the item selector 2215 also recognizes when a single item is selected in order to open a menu, as described in Sections II and III above. The selection information is passed to the menu display module. In some embodiments, the item selector also passes this information to other modules (not shown) that perform a command or activate a tool that is associated with the selected menu item.
The menu display module 2220 receives information from the menu scroller 2210 and the item selector 2215. The menu display module 2220 controls the display of the movement of the menu items. In some embodiments, the menu display module handles the opening and closing of the menus in response to item selection, including any submenus. This information is sent to display module 2265, which handles the actual display of the menus (and the rest of the graphical user interface) on an output device (not shown).
While many of the features have been described as being performed by one module (e.g., the navigation module 2215 or frame compressor 2235), one of ordinary skill would recognize that the functions might be split up into multiple modules, and the performance of one feature might even require multiple modules.
FIG. 23 conceptually illustrates a process 2300 of some embodiments for manufacturing a computer readable medium that stores a computer program. In some embodiments, the computer readable medium is a distributable CD-ROM. As shown, process 2300 begins by defining (at 2305) menu items having a particular order and instructions associated with the menu items. The menu items 101-108 of menu 100 of FIG. 1 are an example of such menu items.
Process 2300 then defines (at 2310) a display area for displaying at least a portion of the menu items in the particular order. The process also defines (at 2315) a selection window for display in the display area that is for indicating that a menu item is presently selectable, such as selection windows 205, 505, or 1405 of FIGS. 2, 5, and 14, respectively.
Next, process 2300 defines (at 2320) a module for scrolling menu items through the selection window in the particular order in response to user input. Menu scroller 2210 of FIG. 22 is one example of such a module. The process also defines (at 2325) a module for selecting a menu item in response to user input when the menu item is displayed in the selection window, such as menu selector 2215.
Next, the process defines (at 2330) other tools, items, and functionalities. For example, if the process is for manufacturing a media-editing application such as that shown in FIG. 20, various GUI items and editing tools and functionalities are defined.
Process 2300 then stores (at 2325) the defined elements on a computer readable storage medium. As mentioned above, in some embodiments the computer readable storage medium is a distributable CD-ROM. In some embodiments, the medium is one or more of a solid-state device, a hard disk, a CD-ROM, or other non-volatile computer readable storage medium. One of ordinary skill in the art will recognize that the various modules and UI items defined by process 2300 are not exhaustive of the modules and UI items that could be defined and stored on a computer readable storage medium for an editing application incorporating some embodiments of the invention.
VI. Computer System
Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more computational element(s) (such as processors or other computational elements like ASICs and FPGAs), they cause the computational element(s) to perform the actions indicated in the instructions. Computer is meant in its broadest sense, and can include any electronic device with a processor. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs when installed to operate on one or more computer systems define one or more specific machine implementations that execute and perform the operations of the software programs.
FIG. 24 illustrates a computer system with which some embodiments of the invention are implemented. Such a computer system includes various types of computer readable media and interfaces for various other types of computer readable media. Computer system 2400 includes a bus 2405, a processor 2410, a graphics processing unit (GPU) 2420, a system memory 2425, a read-only memory 2430, a permanent storage device 2435, input devices 2440, and output devices 2445.
The bus 2405 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system 2400. For instance, the bus 2405 communicatively connects the processor 2410 with the read-only memory 2430, the GPU 2420, the system memory 2425, and the permanent storage device 2435.
From these various memory units, the processor 2410 retrieves instructions to execute and data to process in order to execute the processes of the invention. In some embodiments, the processor comprises a Field Programmable Gate Array (FPGA), an ASIC, or various other electronic components for executing instructions. In some embodiments, the processor Some instructions are passed to and executed by the GPU 2420. The GPU 2420 can offload various computations or complement the image processing provided by the processor 2410. In some embodiments, such functionality can be provided using CoreImage's kernel shading language.
The read-only-memory (ROM) 2430 stores static data and instructions that are needed by the processor 2410 and other modules of the computer system. The permanent storage device 2435, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the computer system 2400 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 2435.
Other embodiments use a removable storage device (such as a floppy disk, flash drive, or ZIP® disk, and its corresponding disk drive) as the permanent storage device. Like the permanent storage device 2435, the system memory 2425 is a read-and-write memory device. However, unlike storage device 2435, the system memory is a volatile read-and-write memory, such a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 2425, the permanent storage device 2435, and/or the read-only memory 2430. For example, the various memory units include instructions for processing multimedia items in accordance with some embodiments. From these various memory units, the processor 2410 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
The bus 2405 also connects to the input and output devices 2440 and 2445. The input devices enable the user to communicate information and select commands to the computer system. The input devices 2440 include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The output devices 2445 display images generated by the computer system. For instance, these devices display a GUI. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD).
Finally, as shown in FIG. 24, bus 2405 also couples computer 2400 to a network 2465 through a network adapter (not shown). In this manner, the computer can be a part of a network of computers (such as a local area network (“LAN”), a wide area network (“WAN”), or an Intranet, or a network of networks, such as the internet. For example, the computer 2400 may be coupled to a web server (network 2465) so that a web browser executing on the computer 2400 can interact with the web server as a user interacts with a GUI that operates in the web browser.
Any or all components of computer system 2400 may be used in conjunction with the invention. For instance, in some embodiments the execution of the frames of the rendering is performed by the GPU 2420 instead of the CPU 2410. Similarly, other image editing functions can be offloaded to the GPU 2420 where they are executed before the results are passed back into memory or the processor 2410. However, a common limitation of the GPU 2420 is the number of instructions that the GPU 2420 is able to store and process at any given time. Therefore, some embodiments adapt instructions for implementing processes so that these processes fit onto the instruction buffer of the GPU 2420 for execution locally on the GPU 2420. Additionally, some GPUs 2420 do not contain sufficient processing resources to execute the processes of some embodiments and therefore the CPU 2410 executes the instructions. One of ordinary skill in the art would appreciate that any other system configuration may also be used in conjunction with the present invention.
Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD−RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable blu-ray discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processor and includes sets of instructions for performing various operations. Examples of hardware devices configured to store and execute sets of instructions include, but are not limited to application specific integrated circuits (ASICs), field programmable gate arrays (FPGA), programmable logic devices (PLDs), ROM, and RAM devices. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
As used in this specification and any claims of this application, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.

Claims (29)

We claim:
1. A method comprising:
displaying, using one or more processors, a plurality of menu items within a display area on a display screen of a device, wherein the plurality of menu items is comprised of a first plurality of menu items having a first order and a second plurality of menu items having a second order;
displaying, using one or more processors, a selection indicator for indicating that a menu item is selectable, wherein menu items in the first plurality of menu items are scrollable through the selection indicator in a first direction, and further wherein menu items in the second plurality of menu items are scrollable through the selection indicator in a second direction that intersects the first direction;
displaying, using one or more processors, the first plurality of menu items in the first order;
detecting a selection of one of the menu items in the first plurality of menu items, and in response to the selection, displaying the second plurality of menu items in the second order and displaying in a faded manner the first plurality of menu items in the first order.
2. The method of claim 1, wherein the first plurality of menu items are displayed in a linear layout.
3. The method of claim 1, wherein the first plurality of menu items are displayed in a semi-circular layout.
4. The method of claim 3, wherein the selection indicator is provided at a top of the semi-circular layout.
5. The method of claim 1, wherein the first plurality of menu items are scrollable through a side of the selection indicator and out of an opposite side of the side of the selection indicator.
6. The method of claim 1, wherein the menu items are displayed as partially faded when the menu items are near sides of the display area.
7. The method of claim 1, wherein a cursor controller input is received as the selection of one of the menu items in the first plurality of menu items.
8. The method of claim 1, wherein the menu items are for accessing video-editing tools, wherein the display area is defined as part of a video-editing application.
9. The method of claim 8, wherein the video-editing tools comprise at least one of a ripple tool, a roll tool, a slide tool, and a slip tool.
10. The method of claim 1, wherein the first plurality of menu items are scrollable through the selection indicator in the first direction according to the first order without moving the selection indicator and the second plurality of menu items are scrollable through the selection indicator in the second direction according to the second order without moving the selection indicator.
11. A non-transitory computer readable storage medium storing a computer program for execution by at least one processor, the computer program comprising a graphical user interface (GUI), the GUI comprising:
a display area for displaying a menu with a plurality of menu items arranged in a particular order; and
a selection indicator in the display area for indicating that a menu item is selectable; and
an interaction module for (i) receiving a first user input at a first side of the selection indicator to scroll menu items with respect to the selection indicator in the particular order and (ii) receiving a second user input to select a particular menu item when the particular menu item is indicated by the selection indicator,
wherein when the interaction module receives an amount of input that passes a threshold amount of movement, the interaction module has the selection indicator indicate a new menu item as the selectable menu item,
wherein when the interaction module receives an amount of input that does not pass the threshold amount, the interaction module maintains the selection indicator's indication of a previous menu item as the selectable menu item.
12. The non-transitory computer readable storage medium of claim 11, wherein the computer program provides the GUI in a media-editing application.
13. The non-transitory computer readable storage medium of claim 11, wherein the computer program provides the GUI in an operating system of a computer.
14. The non-transitory computer readable storage medium of claim 11, wherein the computer program provides the GUI for a touchscreen in a hand-held device.
15. The non-transitory computer readable storage medium of claim 11, wherein the selection indicator indicates that the menu item is selectable by highlighting the menu item.
16. The non-transitory computer readable storage medium of claim 11, wherein the user input to scroll is directional input.
17. The non-transitory computer readable storage medium of claim 16, wherein the threshold amount of movement is based on a speed of the directional input.
18. The non-transitory computer readable storage medium of claim 11, wherein the display area is further for displaying, in response to the user input to scroll, an animation of a first menu item moving through the selection indicator to an extent of the amount of the user input.
19. The non-transitory computer readable storage medium of claim 11, wherein the user input to scroll the menu items with respect to the selection indicator in the particular order causes the display area to display the menu items scrolling through the selection indicator without moving the selection indicator.
20. The non-transitory computer readable storage medium of claim 11, wherein the user input to scroll the menu items with respect to the selection indicator in the particular order causes the display area to display the menu items scrolling through the selection indicator by moving the selection indicator.
21. The non-transitory computer readable storage medium of claim 11, wherein the user input to scroll the menu items with respect to the selection indicator in the particular order causes the display area to display the menu items scrolling through the selection indicator without moving the menu items.
22. The non-transitory computer readable storage medium of claim 11, wherein the received first user input comprises a swipe gesture input.
23. The non-transitory computer readable storage medium of claim 11, wherein the received first user input comprises a drag input.
24. A non-transitory computer readable storage medium storing a computer program for execution by at least one processing unit, the computer program comprising sets of instructions for:
displaying a display area for displaying a first plurality of menu items in a first order, and for displaying a second plurality of menu items in a second order when one menu item in the first plurality of menu items is selected; and
displaying a selection indicator in the display area for indicating that a menu item is selectable,
wherein the first plurality of menu items are scrollable through the selection indicator in a first direction according to the first order, wherein the second plurality of menu items are scrollable through the selection indicator according to the second order in a second direction that intersects the first direction.
25. The non-transitory computer readable storage medium of claim 24, wherein the first direction is orthogonal to the second direction.
26. The non-transitory computer readable storage medium of claim 24, wherein the display area is for displaying the first plurality of menu items in a circular layout.
27. The non-transitory computer readable storage medium of claim 26, wherein the display area is for displaying the second plurality of menu items in a linear layout.
28. The non-transitory computer readable storage medium of claim 24, wherein the display area is for displaying the first plurality of menu items in a semi-circular layout.
29. The non-transitory computer readable storage medium of claim 28, wherein the display area is for displaying the second plurality of menu items in a linear layout.
US12/433,891 2009-04-30 2009-04-30 Scrollable menus and toolbars Active 2030-02-22 US8601389B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US12/433,891 US8601389B2 (en) 2009-04-30 2009-04-30 Scrollable menus and toolbars
AU2010241880A AU2010241880B2 (en) 2009-04-30 2010-04-22 Scrollable menus and toolbars
RU2011148391/08A RU2530301C2 (en) 2009-04-30 2010-04-22 Scrollable menus and toolbars
EP10716210A EP2425320A1 (en) 2009-04-30 2010-04-22 Scrollable menus and toolbars
KR1020117028492A KR20120023722A (en) 2009-04-30 2010-04-22 Scrollable menus and toolbars
CN201080023469.7A CN102449589B (en) 2009-04-30 2010-04-22 Rotatable menu and toolbar
PCT/US2010/032138 WO2010126782A1 (en) 2009-04-30 2010-04-22 Scrollable menus and toolbars

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/433,891 US8601389B2 (en) 2009-04-30 2009-04-30 Scrollable menus and toolbars

Publications (2)

Publication Number Publication Date
US20100281374A1 US20100281374A1 (en) 2010-11-04
US8601389B2 true US8601389B2 (en) 2013-12-03

Family

ID=42536349

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/433,891 Active 2030-02-22 US8601389B2 (en) 2009-04-30 2009-04-30 Scrollable menus and toolbars

Country Status (7)

Country Link
US (1) US8601389B2 (en)
EP (1) EP2425320A1 (en)
KR (1) KR20120023722A (en)
CN (1) CN102449589B (en)
AU (1) AU2010241880B2 (en)
RU (1) RU2530301C2 (en)
WO (1) WO2010126782A1 (en)

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110109634A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Portable electronic device and method of information rendering on portable electronic device
US20110113352A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Portable electronic device and method of web page rendering
US20120030625A1 (en) * 2010-07-30 2012-02-02 Reiko Miyazaki Information processing apparatus, information processing method and information processing program
US20120054667A1 (en) * 2010-08-31 2012-03-01 Blackboard Inc. Separate and simultaneous control of windows in windowing systems
US20120079430A1 (en) * 2009-06-09 2012-03-29 Kwahk Ji-Young Method for providing a gui for searching for content, and device adoptiving same
US20120173963A1 (en) * 2010-09-21 2012-07-05 Microsoft Corporation Web page application controls
US20120180002A1 (en) * 2011-01-07 2012-07-12 Microsoft Corporation Natural input for spreadsheet actions
US20120296631A1 (en) * 2011-05-20 2012-11-22 Microsoft Corporation Displaying key pinyins
US20120313977A1 (en) * 2011-06-13 2012-12-13 Samsung Electronics Co., Ltd. Apparatus and method for scrolling in device with touch screen
US20130185676A1 (en) * 2012-01-18 2013-07-18 Alibaba Group Holding Limited Method and mobile device for classified webpage switching
US20130191784A1 (en) * 2010-11-15 2013-07-25 Sony Computer Entertainment Inc. Electronic device, menu displaying method, content image displaying method and function execution method
US20140092100A1 (en) * 2012-10-02 2014-04-03 Afolio Inc. Dial Menu
US8750802B2 (en) * 2010-05-28 2014-06-10 Sony Corporation Information processing apparatus, information processing system, and program
US20140282151A1 (en) * 2013-03-12 2014-09-18 Intergraph Corporation User Interface for Toolbar Navigation
US20140306897A1 (en) * 2013-04-10 2014-10-16 Barnesandnoble.Com Llc Virtual keyboard swipe gestures for cursor movement
US8954544B2 (en) 2010-09-30 2015-02-10 Axcient, Inc. Cloud-based virtual machines and offices
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US9104621B1 (en) 2010-09-30 2015-08-11 Axcient, Inc. Systems and methods for restoring a file
US20150268810A1 (en) * 2012-12-10 2015-09-24 Panasonic Intellectual Property Management Co., Ltd. Portable terminal device, luminance control method, and luminance control program
US20150301697A1 (en) * 2012-11-20 2015-10-22 Jolla Oy A graphical user interface for a portable computing device
US9171099B2 (en) 2012-01-26 2015-10-27 Microsoft Technology Licensing, Llc System and method for providing calculation web services for online documents
US20150347007A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Device, Method, and Graphical User Interface for a Predictive Keyboard
US9213607B2 (en) 2010-09-30 2015-12-15 Axcient, Inc. Systems, methods, and media for synthesizing views of file system backups
US20150378550A1 (en) * 2014-06-30 2015-12-31 Brother Kogyo Kabushiki Kaisha Display controller, and method and computer-readable medium for the same
US9235474B1 (en) 2011-02-17 2016-01-12 Axcient, Inc. Systems and methods for maintaining a virtual failover volume of a target computing system
US9292153B1 (en) * 2013-03-07 2016-03-22 Axcient, Inc. Systems and methods for providing efficient and focused visualization of data
US20160180564A1 (en) * 2014-12-19 2016-06-23 Yahoo Japan Corporation Information display device, distribution device, information display method, and non-transitory computer readable storage medium
US9397907B1 (en) 2013-03-07 2016-07-19 Axcient, Inc. Protection status determinations for computing devices
US9471215B2 (en) 2011-11-17 2016-10-18 Zhuhai Kingsoft Office Software Co., Ltd Method for controlling display of a context toolbar
US9705730B1 (en) 2013-05-07 2017-07-11 Axcient, Inc. Cloud storage using Merkle trees
US9785647B1 (en) 2012-10-02 2017-10-10 Axcient, Inc. File system virtualization
US9852140B1 (en) 2012-11-07 2017-12-26 Axcient, Inc. Efficient file replication
RU2640329C1 (en) * 2016-09-28 2017-12-27 Общество с ограниченной ответственностью "ПИРФ" (ООО "ПИРФ") Method, system and machine-readable media of data for controlling user device by means of context toolbar
US9928254B1 (en) 2016-09-15 2018-03-27 Picadipity, Inc. Automatic image display systems and methods with looped autoscrolling and static viewing modes
US20190107934A1 (en) * 2017-10-11 2019-04-11 Toyota Jidosha Kabushiki Kaisha Display control device
US10284437B2 (en) 2010-09-30 2019-05-07 Efolder, Inc. Cloud-based virtual machines and offices
US10289276B2 (en) * 2012-12-31 2019-05-14 Alibaba Group Holding Limited Managing tab buttons
US20200151226A1 (en) * 2018-11-14 2020-05-14 Wix.Com Ltd. System and method for creation and handling of configurable applications for website building systems
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US11079933B2 (en) 2008-01-09 2021-08-03 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US20220147531A1 (en) * 2018-10-29 2022-05-12 State Farm Mutual Automobile Insurance Company Dynamic data-driven consolidation of user interface interactions requesting roadside assistance
US11416900B1 (en) * 2017-02-24 2022-08-16 Eugene E. Haba, Jr. Dynamically generated items for user generated graphic user storytelling interface
US11416136B2 (en) 2020-09-14 2022-08-16 Apple Inc. User interfaces for assigning and responding to user inputs
US20230061240A1 (en) * 2021-08-31 2023-03-02 Hewlett-Packard Development Company, L.P. Highlight indicator-based screen transitions
US20230409353A1 (en) * 2022-06-17 2023-12-21 OneTrust, LLC Dynamic generation of graphical user interfaces for retrieving data from multiple computing systems

Families Citing this family (191)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979808B2 (en) * 2007-08-24 2011-07-12 Oracle International Corporation Navigational tools for large trees
US11126321B2 (en) 2007-09-04 2021-09-21 Apple Inc. Application menu user interface
US9002416B2 (en) 2008-12-22 2015-04-07 Google Technology Holdings LLC Wireless communication device responsive to orientation and movement
US8601389B2 (en) 2009-04-30 2013-12-03 Apple Inc. Scrollable menus and toolbars
KR20100134948A (en) * 2009-06-16 2010-12-24 삼성전자주식회사 Method for displaying menu list in touch screen based device
US9152317B2 (en) * 2009-08-14 2015-10-06 Microsoft Technology Licensing, Llc Manipulation of graphical elements via gestures
US8332748B1 (en) * 2009-10-22 2012-12-11 Google Inc. Multi-directional auto-complete menu
US20130104082A1 (en) * 2009-11-06 2013-04-25 Benjamin D. Burge Audio/visual device applications graphical user interface
US20110119589A1 (en) * 2009-11-19 2011-05-19 Motorola, Inc. Navigable User Interface for Electronic Handset
US8799816B2 (en) * 2009-12-07 2014-08-05 Motorola Mobility Llc Display interface and method for displaying multiple items arranged in a sequence
US9170709B2 (en) * 2010-02-17 2015-10-27 Samsung Electronics Co., Ltd. Apparatus and method for providing user interface
US20110225545A1 (en) * 2010-03-09 2011-09-15 Horodezky Samuel J System and method of displaying graphical user interface objects
US20120036471A1 (en) * 2010-08-04 2012-02-09 Misys Tool bars along lateral edges of a mobile computing device display
US9465457B2 (en) 2010-08-30 2016-10-11 Vmware, Inc. Multi-touch interface gestures for keyboard and/or mouse inputs
KR101772640B1 (en) * 2010-09-03 2017-08-30 삼성전자주식회사 Method for settting function and Display apparatus applying the same
JP5732218B2 (en) * 2010-09-21 2015-06-10 任天堂株式会社 Display control program, display control device, display control system, and display control method
TWI467462B (en) * 2010-10-01 2015-01-01 Univ Nat Taiwan Science Tech Active browsing method
US20120110508A1 (en) * 2010-10-29 2012-05-03 Microsoft Corporation Enterprise resource planning oriented context-aware user interface
US10026058B2 (en) 2010-10-29 2018-07-17 Microsoft Technology Licensing, Llc Enterprise resource planning oriented context-aware environment
US9389774B2 (en) 2010-12-01 2016-07-12 Sony Corporation Display processing apparatus for performing image magnification based on face detection
US20120146955A1 (en) * 2010-12-10 2012-06-14 Research In Motion Limited Systems and methods for input into a portable electronic device
US9052806B2 (en) * 2010-12-20 2015-06-09 Facebook, Inc. User interface for presenting media items of social networking service in media reel
USD689060S1 (en) 2010-12-28 2013-09-03 Sony Corporation Display panel or screen with a graphical user interface
KR101691478B1 (en) * 2011-02-09 2016-12-30 삼성전자주식회사 Operation Method based on multiple input And Portable device supporting the same
CN102118514A (en) * 2011-03-31 2011-07-06 深圳市五巨科技有限公司 Mobile communication terminal and menu setting method thereof
US9182897B2 (en) 2011-04-22 2015-11-10 Qualcomm Incorporated Method and apparatus for intuitive wrapping of lists in a user interface
US8799817B2 (en) 2011-05-25 2014-08-05 Samsung Electronics Co., Ltd. Carousel user interface
WO2012169176A1 (en) * 2011-06-07 2012-12-13 パナソニック株式会社 Electronic apparatus
CN102830890B (en) * 2011-06-13 2015-09-09 阿里巴巴集团控股有限公司 A kind of method and apparatus of display icon
US20130019195A1 (en) * 2011-07-12 2013-01-17 Oracle International Corporation Aggregating multiple information sources (dashboard4life)
US9746995B2 (en) * 2011-07-14 2017-08-29 Microsoft Technology Licensing, Llc Launcher for context based menus
CN102902456A (en) * 2011-07-26 2013-01-30 腾讯科技(深圳)有限公司 Menu displaying method and menu display equipment
US20130047100A1 (en) * 2011-08-17 2013-02-21 Google Inc. Link Disambiguation For Touch Screens
US9348498B2 (en) 2011-09-12 2016-05-24 Microsoft Technology Licensing, Llc Wrapped content interaction
US20130067393A1 (en) * 2011-09-12 2013-03-14 Ryan J. Demopoulos Interaction with Lists
US10083247B2 (en) 2011-10-01 2018-09-25 Oracle International Corporation Generating state-driven role-based landing pages
US20150212664A1 (en) * 2011-10-11 2015-07-30 IQnect Technology Limited System and methods for content-search carousel for mobile-computing devices
US8760474B2 (en) 2011-11-02 2014-06-24 Microsoft Corporation Virtualized data presentation in a carousel panel
US8719734B2 (en) 2011-11-16 2014-05-06 Microsoft Corporation Two-stage swipe gesture recognition
CN102566901A (en) * 2011-11-18 2012-07-11 珠海金山办公软件有限公司 Method of controlling electronic forms on handheld touch devices
KR101879333B1 (en) * 2011-12-06 2018-07-17 엘지전자 주식회사 Mobilr terminal and fan-shaped icon arrangement method
US9230393B1 (en) 2011-12-08 2016-01-05 Google Inc. Method and system for advancing through a sequence of items using a touch-sensitive component
EP2791766A4 (en) * 2011-12-14 2015-07-22 Nokia Corp Methods, apparatuses and computer program products for merging areas in views of user interfaces
KR101882724B1 (en) * 2011-12-21 2018-08-27 삼성전자 주식회사 Category Search Method And Portable Device supporting the same
CN103176727B (en) * 2011-12-23 2016-01-27 宇龙计算机通信科技(深圳)有限公司 The starting method of application program and communication terminal
KR20130081503A (en) * 2012-01-09 2013-07-17 삼성전자주식회사 Display apparatus and control method thereof
EP2632119A1 (en) * 2012-02-27 2013-08-28 Doro AB Two-mode access linear UI
US20130232449A1 (en) * 2012-03-05 2013-09-05 Trigger Happy, Ltd. Graphical user interface mechanisms
JP6047587B2 (en) * 2012-03-06 2016-12-21 アップル インコーポレイテッド Fan-editing user interface controls for media editing applications
US9131192B2 (en) 2012-03-06 2015-09-08 Apple Inc. Unified slider control for modifying multiple image properties
US10282055B2 (en) 2012-03-06 2019-05-07 Apple Inc. Ordered processing of edits for a media editing application
US9202433B2 (en) 2012-03-06 2015-12-01 Apple Inc. Multi operation slider
US9041727B2 (en) 2012-03-06 2015-05-26 Apple Inc. User interface tools for selectively applying effects to image
US10078420B2 (en) * 2012-03-16 2018-09-18 Nokia Technologies Oy Electronic devices, associated apparatus and methods
CN103365547A (en) * 2012-03-28 2013-10-23 喜讯无限(北京)科技有限责任公司 Army-knife type menu bar
TWI585670B (en) * 2012-04-25 2017-06-01 緯創資通股份有限公司 Method for presenting application lists, electronic device using the same, and computer-readable recording medium
CN103389850B (en) * 2012-05-08 2015-11-04 腾讯科技(深圳)有限公司 A kind of method and device realizing prompt operation on a web browser
US20140040789A1 (en) * 2012-05-08 2014-02-06 Adobe Systems Incorporated Tool configuration history in a user interface
TW201349090A (en) * 2012-05-31 2013-12-01 Pegatron Corp User interface, method for displaying the same and electrical device
JP5966665B2 (en) * 2012-06-26 2016-08-10 ソニー株式会社 Information processing apparatus, information processing method, and recording medium
US9658746B2 (en) * 2012-07-20 2017-05-23 Nook Digital, Llc Accessible reading mode techniques for electronic devices
DE102012212834A1 (en) * 2012-07-23 2014-01-23 Ford Global Technologies, Llc Method for controlling and selecting massage functions of a motor vehicle seat
US9298295B2 (en) * 2012-07-25 2016-03-29 Facebook, Inc. Gestures for auto-correct
JP6004855B2 (en) * 2012-09-14 2016-10-12 キヤノン株式会社 Display control apparatus and control method thereof
CN102929525B (en) * 2012-09-24 2016-03-30 惠州Tcl移动通信有限公司 Unlocking screen unit and screen unlock method thereof and mobile communication equipment
US8990734B2 (en) * 2012-10-15 2015-03-24 Nextep Systems, Inc. Method and assembly for displaying menu options
KR102003371B1 (en) 2012-11-16 2019-10-01 삼성전자주식회사 Apparatas and method for adjusting of screen brightness in an electronic device
EP2741176A3 (en) * 2012-12-10 2017-03-08 Samsung Electronics Co., Ltd Mobile device of bangle type, control method thereof, and UI display method
DE102012024215A1 (en) * 2012-12-11 2014-06-12 Volkswagen Aktiengesellschaft Operating method and operating device
CN103034798B (en) * 2012-12-14 2016-08-03 广东欧珀移动通信有限公司 A kind of generation method and device of random cipher
US9511988B2 (en) 2012-12-27 2016-12-06 Lancer Corporation Touch screen for a beverage dispensing system
CN103064592B (en) * 2013-01-09 2016-01-06 由芳 A kind of prolongable menu display method
KR102146244B1 (en) 2013-02-22 2020-08-21 삼성전자주식회사 Methdo for controlling display of a plurality of objects according to input related to operation for mobile terminal and the mobile terminal therefor
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
US9575628B2 (en) * 2013-03-29 2017-02-21 Deere & Company Icon featured touch screen display system including status shortcuts for a work vehicle and method of managing the same
KR102145577B1 (en) * 2013-04-01 2020-08-18 삼성전자주식회사 Method and apparatus for displaying user interface
CN104102441B (en) * 2013-04-09 2019-08-23 腾讯科技(深圳)有限公司 A kind of menu item execution method and device
US9235327B2 (en) 2013-04-29 2016-01-12 International Business Machines Corporation Applying contextual function to a graphical user interface using peripheral menu tabs
RU2636114C2 (en) * 2013-05-28 2017-11-20 Сименс Индастри, Инк. Systems and methods for price request, ordering or request support
US20140365963A1 (en) * 2013-06-07 2014-12-11 Microsoft Corporation Application bar flyouts
KR20150010516A (en) * 2013-07-19 2015-01-28 삼성전자주식회사 Method and apparatus for displaying object by flexible device
WO2015061761A1 (en) * 2013-10-24 2015-04-30 Fleksy, Inc. User interface for text input and virtual keyboard manipulation
CN104636024A (en) * 2013-11-07 2015-05-20 腾讯科技(深圳)有限公司 Touch screen shortcut button control method and device and mobile terminal
US12080421B2 (en) 2013-12-04 2024-09-03 Apple Inc. Wellness aggregator
US20160019360A1 (en) 2013-12-04 2016-01-21 Apple Inc. Wellness aggregator
US9619118B2 (en) * 2013-12-06 2017-04-11 Quixey, Inc Wheel-based interface for browsing applications
AU2013408031B2 (en) 2013-12-20 2017-12-21 Huawei Technologies Co., Ltd. Method for opening file in folder and terminal
US10198148B2 (en) * 2014-01-17 2019-02-05 Microsoft Technology Licensing, Llc Radial menu user interface with entry point maintenance
US10331772B2 (en) * 2014-03-03 2019-06-25 Lg Electronics Inc. Terminal and method for controlling the same
US10606469B2 (en) * 2014-04-04 2020-03-31 Cheetah Mobile Inc. Device, method, and graphical user interface for managing multiple display windows
US9830061B1 (en) 2014-04-09 2017-11-28 Google Inc. Methods, systems, and media for providing media guidance with contextual controls
US10313506B2 (en) 2014-05-30 2019-06-04 Apple Inc. Wellness aggregator
US20150346918A1 (en) * 2014-06-02 2015-12-03 Gabriele Bodda Predicting the Severity of an Active Support Ticket
CN116243841A (en) 2014-06-27 2023-06-09 苹果公司 Reduced size user interface
TWI647608B (en) 2014-07-21 2019-01-11 美商蘋果公司 Remote user interface
WO2016022204A1 (en) 2014-08-02 2016-02-11 Apple Inc. Context-specific user interfaces
WO2016023208A1 (en) * 2014-08-14 2016-02-18 华为技术有限公司 File opening method in a folder, device and equipment
US10452253B2 (en) 2014-08-15 2019-10-22 Apple Inc. Weather user interface
CN104217150B (en) * 2014-08-21 2019-01-08 百度在线网络技术(北京)有限公司 It is a kind of for call application method and apparatus
CN115665320B (en) 2014-09-02 2024-10-11 苹果公司 Electronic device, storage medium, and method for operating electronic device
CN116584928A (en) 2014-09-02 2023-08-15 苹果公司 Physical activity and fitness monitor
US10254948B2 (en) 2014-09-02 2019-04-09 Apple Inc. Reduced-size user interfaces for dynamically updated application overviews
WO2016036552A1 (en) 2014-09-02 2016-03-10 Apple Inc. User interactions for a mapping application
WO2016036522A2 (en) 2014-09-02 2016-03-10 Apple Inc. User interface for receiving user input
KR20160029510A (en) * 2014-09-05 2016-03-15 삼성전자주식회사 Method for processing index and apparatus for the same
USD754727S1 (en) * 2014-09-18 2016-04-26 3M Innovative Properties Company Display screen or portion thereof with animated graphical user interface
KR102314109B1 (en) 2015-01-05 2021-10-18 삼성전자주식회사 A display apparatus and a display method
KR20160089205A (en) * 2015-01-19 2016-07-27 삼성전자주식회사 Mehtod and electronic device for item management
KR102040287B1 (en) * 2015-01-29 2019-11-27 삼성전자주식회사 Acoustic output device and control method thereof
KR102318610B1 (en) * 2015-01-30 2021-10-28 삼성전자주식회사 Mobile device and displaying method thereof
AU2016215440B2 (en) 2015-02-02 2019-03-14 Apple Inc. Device, method, and graphical user interface for establishing a relationship and connection between two devices
US10055121B2 (en) 2015-03-07 2018-08-21 Apple Inc. Activity based thresholds and feedbacks
WO2016144385A1 (en) 2015-03-08 2016-09-15 Apple Inc. Sharing user-configurable graphical constructs
US9979890B2 (en) 2015-04-23 2018-05-22 Apple Inc. Digital viewfinder user interface for multiple cameras
KR102356449B1 (en) * 2015-05-13 2022-01-27 삼성전자주식회사 Apparatus and method for providing additional information according to rotary input
CN104951193B (en) * 2015-05-19 2018-07-10 腾讯科技(深圳)有限公司 menu display method and device
US9916075B2 (en) 2015-06-05 2018-03-13 Apple Inc. Formatting content for a reduced-size user interface
US10275116B2 (en) 2015-06-07 2019-04-30 Apple Inc. Browser with docked tabs
CN105049909B (en) * 2015-06-26 2018-03-27 福建新大陆通信科技股份有限公司 A kind of set-top box menu special display effect method and system
EP4321088A3 (en) 2015-08-20 2024-04-24 Apple Inc. Exercise-based watch face
CN105183349B (en) * 2015-08-27 2018-06-29 广东欧珀移动通信有限公司 The display methods and mobile terminal of a kind of image editing tools
JP2017047781A (en) * 2015-09-01 2017-03-09 三菱自動車工業株式会社 On-vehicle information processing device
CN105242868A (en) * 2015-09-14 2016-01-13 小米科技有限责任公司 Object searching method and apparatus
CN105260100B (en) * 2015-09-29 2017-05-17 腾讯科技(深圳)有限公司 Information processing method and terminal
US20170132693A1 (en) * 2015-11-09 2017-05-11 Pipit Interactive, Inc. Aggregation of group of products content and providing ways to display, view, access, share and consume content
US20170147160A1 (en) * 2015-11-24 2017-05-25 Wawa, Inc. Touchscreen interface menu with virtual wheel
US10831337B2 (en) * 2016-01-05 2020-11-10 Apple Inc. Device, method, and graphical user interface for a radial menu system
US10203860B2 (en) * 2016-03-18 2019-02-12 Ebay Inc. Graphical user interface element adjustment
CN105892813A (en) * 2016-03-30 2016-08-24 联想(北京)有限公司 Information processing method and electronic device
CN107454951B (en) * 2016-05-17 2020-12-15 华为技术有限公司 Electronic device and method for electronic device
DK201770423A1 (en) 2016-06-11 2018-01-15 Apple Inc Activity and workout updates
US9854156B1 (en) 2016-06-12 2017-12-26 Apple Inc. User interface for camera effects
US11216119B2 (en) 2016-06-12 2022-01-04 Apple Inc. Displaying a predetermined view of an application
US10873786B2 (en) 2016-06-12 2020-12-22 Apple Inc. Recording and broadcasting application visual output
US10736543B2 (en) 2016-09-22 2020-08-11 Apple Inc. Workout monitor interface
CN107977138A (en) * 2016-10-24 2018-05-01 北京东软医疗设备有限公司 A kind of display methods and device
US10739988B2 (en) * 2016-11-04 2020-08-11 Microsoft Technology Licensing, Llc Personalized persistent collection of customized inking tools
US10871880B2 (en) * 2016-11-04 2020-12-22 Microsoft Technology Licensing, Llc Action-enabled inking tools
CN107016079B (en) * 2017-03-28 2020-09-01 青岛伟东云教育集团有限公司 Knowledge point display method and device
US10620815B2 (en) * 2017-04-12 2020-04-14 Microsoft Technology Licensing, Llc Continued selection during scrolling past screen edge thresholds
DK179412B1 (en) 2017-05-12 2018-06-06 Apple Inc Context-Specific User Interfaces
US10845955B2 (en) 2017-05-15 2020-11-24 Apple Inc. Displaying a scrollable list of affordances associated with physical activities
DE102017213117A1 (en) * 2017-07-31 2019-01-31 Robert Bosch Gmbh Method for operating an information device
CN108024073B (en) * 2017-11-30 2020-09-04 广州市百果园信息技术有限公司 Video editing method and device and intelligent mobile terminal
US11327650B2 (en) 2018-05-07 2022-05-10 Apple Inc. User interfaces having a collection of complications
DK180171B1 (en) 2018-05-07 2020-07-14 Apple Inc USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT
DK179992B1 (en) 2018-05-07 2020-01-14 Apple Inc. Visning af brugergrænseflader associeret med fysiske aktiviteter
US11317833B2 (en) 2018-05-07 2022-05-03 Apple Inc. Displaying user interfaces associated with physical activities
US20190369819A1 (en) * 2018-06-01 2019-12-05 Ge Inspection Technologies, Lp Graphical User Interface
CN108804196A (en) * 2018-06-15 2018-11-13 深圳超多维科技有限公司 Production method, device and the electronic equipment of multilevel menu
JP7099126B2 (en) * 2018-07-25 2022-07-12 セイコーエプソン株式会社 Display control device and display control program
JP2020017839A (en) 2018-07-25 2020-01-30 セイコーエプソン株式会社 Scanning system, scan program, and machine learning device
US11770601B2 (en) 2019-05-06 2023-09-26 Apple Inc. User interfaces for capturing and managing visual media
US10645294B1 (en) 2019-05-06 2020-05-05 Apple Inc. User interfaces for capturing and managing visual media
US10953307B2 (en) 2018-09-28 2021-03-23 Apple Inc. Swim tracking and notifications for wearable devices
WO2020084192A1 (en) * 2018-10-23 2020-04-30 Ainak Oy Method, arrangement, and computer program product for three-dimensional visualization of augmented reality and virtual reality environments
CN111225106B (en) * 2018-11-27 2022-06-21 中兴通讯股份有限公司 Control operation method and electronic device
JP7381564B2 (en) * 2019-03-27 2023-11-15 富士フイルム株式会社 Operating device and display control program
WO2020205292A1 (en) * 2019-03-29 2020-10-08 Sony Interactive Entertainment Inc. Context-based user interface menu with selectable actions
US11797169B2 (en) 2019-03-29 2023-10-24 Sony Interactive Entertainment Inc. Context-based user interface menu with selectable actions
US11093114B2 (en) 2019-03-29 2021-08-17 Sony Interactive Entertainment Inc. Context-based user interface menu with selectable actions
US11706521B2 (en) 2019-05-06 2023-07-18 Apple Inc. User interfaces for capturing and managing visual media
DK201970532A1 (en) 2019-05-06 2021-05-03 Apple Inc Activity trends and workouts
US11960701B2 (en) 2019-05-06 2024-04-16 Apple Inc. Using an illustration to show the passing of time
US11863700B2 (en) 2019-05-06 2024-01-02 Apple Inc. Providing user interfaces based on use contexts and managing playback of media
KR102393717B1 (en) 2019-05-06 2022-05-03 애플 인크. Restricted operation of an electronic device
US11131967B2 (en) 2019-05-06 2021-09-28 Apple Inc. Clock faces for an electronic device
AU2020288139B2 (en) 2019-06-01 2023-02-16 Apple Inc. Multi-modal activity tracking user interface
USD928804S1 (en) * 2019-06-12 2021-08-24 Perceptive Automata, Inc. Display panel of a programmed computer system with a graphical user interface
USD928803S1 (en) * 2019-06-12 2021-08-24 Perceptive Automata, Inc. Display panel of a programmed computer system with a graphical user interface
USD928177S1 (en) * 2019-06-12 2021-08-17 Perceptive Automata, Inc. Display panel of a programmed computer system with a graphical user interface
CN110297563A (en) * 2019-06-28 2019-10-01 无锡睿勤科技有限公司 Control method for screen display and smartwatch
DK180684B1 (en) 2019-09-09 2021-11-25 Apple Inc Techniques for managing display usage
US11457103B2 (en) * 2019-10-01 2022-09-27 Unified Office, Inc. Telephone system with customizable advertising functionalities
DK202070612A1 (en) 2020-02-14 2021-10-26 Apple Inc User interfaces for workout content
CN111475063B (en) * 2020-03-31 2021-01-19 掌阅科技股份有限公司 Shortcut key setting method for reading terminal, terminal and computer storage medium
CN115904596B (en) 2020-05-11 2024-02-02 苹果公司 User interface for managing user interface sharing
DK181103B1 (en) 2020-05-11 2022-12-15 Apple Inc User interfaces related to time
US11372659B2 (en) 2020-05-11 2022-06-28 Apple Inc. User interfaces for managing user interface sharing
WO2022133336A1 (en) * 2020-12-18 2022-06-23 Socratic Sciences System and method for interacting with computing device
US11694590B2 (en) 2020-12-21 2023-07-04 Apple Inc. Dynamic user interface with time indicator
US11720239B2 (en) 2021-01-07 2023-08-08 Apple Inc. Techniques for user interfaces related to an event
US11287953B1 (en) * 2021-01-13 2022-03-29 Sap Se One-click sequential identifier for user interface
USD1018582S1 (en) * 2021-05-10 2024-03-19 Beijing Zitiao Network Technology Co., Ltd. Display screen or portion thereof with a graphical user interface
US11921992B2 (en) 2021-05-14 2024-03-05 Apple Inc. User interfaces related to time
EP4323992A1 (en) 2021-05-15 2024-02-21 Apple Inc. User interfaces for group workouts
CN113157376B (en) * 2021-05-19 2023-06-27 字出印象(北京)科技有限公司 Project name display method and device, electronic equipment and storage medium
CN113392129B (en) * 2021-06-28 2024-04-12 恒安嘉新(北京)科技股份公司 Menu searching method and device, electronic equipment and storage medium
US20230236547A1 (en) 2022-01-24 2023-07-27 Apple Inc. User interfaces for indicating time
US11977729B2 (en) 2022-06-05 2024-05-07 Apple Inc. Physical activity information user interfaces
US11896871B2 (en) 2022-06-05 2024-02-13 Apple Inc. User interfaces for physical activity information

Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598183A (en) 1994-01-27 1997-01-28 Microsoft Corporation System and method for computer cursor control
US5745715A (en) 1994-04-13 1998-04-28 International Business Machines Corporation Method and system for facilitating the selection of icons
US5805167A (en) 1994-09-22 1998-09-08 Van Cruyningen; Izak Popup menus with directional gestures
US5828360A (en) 1991-02-01 1998-10-27 U.S. Philips Corporation Apparatus for the interactive handling of objects
US5883625A (en) 1996-04-22 1999-03-16 Ast Research, Inc. Arrangement system for object placement on windows
US6028600A (en) * 1997-06-02 2000-02-22 Sony Corporation Rotary menu wheel interface
US6031529A (en) * 1997-04-11 2000-02-29 Avid Technology Inc. Graphics design software user interface
US6208342B1 (en) 1998-01-13 2001-03-27 Sony Corporation Graphical user interface for enabling selection of a selectable graphic image
US20020063738A1 (en) * 2000-11-29 2002-05-30 Dae-Suk Chung Method and data processing system for presenting items in a menu
US6448987B1 (en) 1998-04-03 2002-09-10 Intertainer, Inc. Graphic user interface for a digital content delivery system using circular menus
US6538635B1 (en) * 1998-03-20 2003-03-25 Koninklijke Philips Electronics N.V. Electronic apparatus comprising a display screen, and method of displaying graphics
CN1471309A (en) 2002-06-17 2004-01-28 ������������ʽ���� Display menu function setting unit
US20040117257A1 (en) * 2002-09-06 2004-06-17 Seth Haberman System for authoring and editing personalized message campaigns
US20040155907A1 (en) 2003-02-07 2004-08-12 Kosuke Yamaguchi Icon display system and method , electronic appliance, and computer program
US20040221243A1 (en) 2003-04-30 2004-11-04 Twerdahl Timothy D Radial menu interface for handheld computing device
US20050012723A1 (en) * 2003-07-14 2005-01-20 Move Mobile Systems, Inc. System and method for a portable multimedia client
US20050044509A1 (en) 2003-05-07 2005-02-24 Hunleth Frank A. Item selection using helical menus
US6883143B2 (en) 2001-12-18 2005-04-19 Stanley W. Driskell Computer interface toolbar for acquiring most frequently accessed options using short cursor traverses
US20050223339A1 (en) 2004-04-06 2005-10-06 Lg Electronics Inc. Display device and method for displaying menu
US20050278647A1 (en) 2000-11-09 2005-12-15 Change Tools, Inc. User definable interface system and method
US20060248475A1 (en) * 2002-09-09 2006-11-02 Thomas Abrahamsson Graphical user interface system
US20070008300A1 (en) 2005-07-08 2007-01-11 Samsung Electronics Co., Ltd. Method and medium for variably arranging content menu and display device using the same
US20070180392A1 (en) 2006-01-27 2007-08-02 Microsoft Corporation Area frequency radial menus
US20070234223A1 (en) 2000-11-09 2007-10-04 Leavitt Joseph M User definable interface system, method, support tools, and computer program product
US20070250793A1 (en) 2001-05-18 2007-10-25 Miura Britt S Multiple menus for use with a graphical user interface
US20080222569A1 (en) 2007-03-08 2008-09-11 International Business Machines Corporation Method, Apparatus and Program Storage Device For Providing Customizable, Immediate and Radiating Menus For Accessing Applications and Actions
US20080252597A1 (en) 2007-04-13 2008-10-16 Apple, Inc. Modifying a value based on a user's directional motions independent of cursor position
US7516419B2 (en) * 2003-11-27 2009-04-07 Sony Corproation Information retrieval device
WO2009062763A2 (en) 2007-11-16 2009-05-22 Sony Ericsson Mobile Communications Ab User interface, apparatus, method, and computer program for viewing of content on a screen
US20090172596A1 (en) * 2007-12-26 2009-07-02 Sony Corporation Display control apparatus, display control method, and program
US20090237492A1 (en) * 2008-03-18 2009-09-24 Invism, Inc. Enhanced stereoscopic immersive video recording and viewing
US7634740B2 (en) * 2005-06-17 2009-12-15 Sony Computer Entertainment Inc. Information processing device, control method for information processing device, and information storage medium
US20090313534A1 (en) * 2008-06-11 2009-12-17 Duane Davis Multi media inter face with multimedia presentation
US7661075B2 (en) * 2003-05-21 2010-02-09 Nokia Corporation User interface display for set-top box device
US7676763B2 (en) 2006-02-21 2010-03-09 Sap Ag Method and system for providing an outwardly expandable radial menu
US7730425B2 (en) * 2005-11-30 2010-06-01 De Los Reyes Isabelo Function-oriented user interface
US20100192103A1 (en) 2009-01-29 2010-07-29 International Business Machines Corporation Spiraling radial menus in computer systems
WO2010126782A1 (en) 2009-04-30 2010-11-04 Apple Inc. Scrollable menus and toolbars

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910191B2 (en) * 2001-11-02 2005-06-21 Nokia Corporation Program guide data selection device
TWI238348B (en) * 2002-05-13 2005-08-21 Kyocera Corp Portable information terminal, display control device, display control method, and recording media
US7681149B2 (en) * 2003-05-21 2010-03-16 Nokia Corporation User interface display for set-top box device
KR100894146B1 (en) * 2007-02-03 2009-04-22 엘지전자 주식회사 Mobile communication device and control method thereof

Patent Citations (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828360A (en) 1991-02-01 1998-10-27 U.S. Philips Corporation Apparatus for the interactive handling of objects
US5598183A (en) 1994-01-27 1997-01-28 Microsoft Corporation System and method for computer cursor control
US5745715A (en) 1994-04-13 1998-04-28 International Business Machines Corporation Method and system for facilitating the selection of icons
US5805167A (en) 1994-09-22 1998-09-08 Van Cruyningen; Izak Popup menus with directional gestures
US5883625A (en) 1996-04-22 1999-03-16 Ast Research, Inc. Arrangement system for object placement on windows
US6031529A (en) * 1997-04-11 2000-02-29 Avid Technology Inc. Graphics design software user interface
US6028600A (en) * 1997-06-02 2000-02-22 Sony Corporation Rotary menu wheel interface
US6208342B1 (en) 1998-01-13 2001-03-27 Sony Corporation Graphical user interface for enabling selection of a selectable graphic image
US6538635B1 (en) * 1998-03-20 2003-03-25 Koninklijke Philips Electronics N.V. Electronic apparatus comprising a display screen, and method of displaying graphics
US6448987B1 (en) 1998-04-03 2002-09-10 Intertainer, Inc. Graphic user interface for a digital content delivery system using circular menus
US20070234223A1 (en) 2000-11-09 2007-10-04 Leavitt Joseph M User definable interface system, method, support tools, and computer program product
US20050278647A1 (en) 2000-11-09 2005-12-15 Change Tools, Inc. User definable interface system and method
US20020063738A1 (en) * 2000-11-29 2002-05-30 Dae-Suk Chung Method and data processing system for presenting items in a menu
US20070250793A1 (en) 2001-05-18 2007-10-25 Miura Britt S Multiple menus for use with a graphical user interface
US6883143B2 (en) 2001-12-18 2005-04-19 Stanley W. Driskell Computer interface toolbar for acquiring most frequently accessed options using short cursor traverses
CN1471309A (en) 2002-06-17 2004-01-28 ������������ʽ���� Display menu function setting unit
US7791666B2 (en) 2002-06-17 2010-09-07 Ricoh Company, Ltd. Unit for setting function of displayed menu
US20040117257A1 (en) * 2002-09-06 2004-06-17 Seth Haberman System for authoring and editing personalized message campaigns
US20060248475A1 (en) * 2002-09-09 2006-11-02 Thomas Abrahamsson Graphical user interface system
US20040155907A1 (en) 2003-02-07 2004-08-12 Kosuke Yamaguchi Icon display system and method , electronic appliance, and computer program
US7350158B2 (en) * 2003-02-07 2008-03-25 Sony Corporation Icon display system and method, electronic appliance, and computer program
US20040221243A1 (en) 2003-04-30 2004-11-04 Twerdahl Timothy D Radial menu interface for handheld computing device
US20050044509A1 (en) 2003-05-07 2005-02-24 Hunleth Frank A. Item selection using helical menus
US7661075B2 (en) * 2003-05-21 2010-02-09 Nokia Corporation User interface display for set-top box device
US20050012723A1 (en) * 2003-07-14 2005-01-20 Move Mobile Systems, Inc. System and method for a portable multimedia client
US7516419B2 (en) * 2003-11-27 2009-04-07 Sony Corproation Information retrieval device
US20050223339A1 (en) 2004-04-06 2005-10-06 Lg Electronics Inc. Display device and method for displaying menu
US7634740B2 (en) * 2005-06-17 2009-12-15 Sony Computer Entertainment Inc. Information processing device, control method for information processing device, and information storage medium
US20070008300A1 (en) 2005-07-08 2007-01-11 Samsung Electronics Co., Ltd. Method and medium for variably arranging content menu and display device using the same
US7730425B2 (en) * 2005-11-30 2010-06-01 De Los Reyes Isabelo Function-oriented user interface
US20070180392A1 (en) 2006-01-27 2007-08-02 Microsoft Corporation Area frequency radial menus
US7644372B2 (en) 2006-01-27 2010-01-05 Microsoft Corporation Area frequency radial menus
US7676763B2 (en) 2006-02-21 2010-03-09 Sap Ag Method and system for providing an outwardly expandable radial menu
US20080222569A1 (en) 2007-03-08 2008-09-11 International Business Machines Corporation Method, Apparatus and Program Storage Device For Providing Customizable, Immediate and Radiating Menus For Accessing Applications and Actions
US20080252597A1 (en) 2007-04-13 2008-10-16 Apple, Inc. Modifying a value based on a user's directional motions independent of cursor position
WO2009062763A2 (en) 2007-11-16 2009-05-22 Sony Ericsson Mobile Communications Ab User interface, apparatus, method, and computer program for viewing of content on a screen
US20090172596A1 (en) * 2007-12-26 2009-07-02 Sony Corporation Display control apparatus, display control method, and program
US20090237492A1 (en) * 2008-03-18 2009-09-24 Invism, Inc. Enhanced stereoscopic immersive video recording and viewing
US20090313534A1 (en) * 2008-06-11 2009-12-17 Duane Davis Multi media inter face with multimedia presentation
US20100192103A1 (en) 2009-01-29 2010-07-29 International Business Machines Corporation Spiraling radial menus in computer systems
WO2010126782A1 (en) 2009-04-30 2010-11-04 Apple Inc. Scrollable menus and toolbars
AU2010241880A1 (en) 2009-04-30 2011-11-24 Apple Inc. Scrollable menus and toolbars
EP2425320A1 (en) 2009-04-30 2012-03-07 Apple Inc. Scrollable menus and toolbars
CN102449589A (en) 2009-04-30 2012-05-09 苹果公司 Scrollable menus and toolbars

Non-Patent Citations (14)

* Cited by examiner, † Cited by third party
Title
"Australian Application Serial No. 2010241880, Office Action mailed Dec. 6, 2012", 3 pgs.
"Australian Application Serial No. 2010241880, Office Action mailed Jan. 8, 2013", 4 pgs.
"Australian Application Serial No. 2010241880, Response filed Apr. 22, 2013 to Subsequent Examiner Report mailed Jan. 8, 2013", 19 pgs.
"Chinese Application Serial No. 201080023469.7, Office Action mailed Apr. 19, 2013", 14 pgs.
"International Application Serial No. PCT/US2010/032138, International Preliminary Report on Patentability mailed Nov. 1, 2011", 5 pgs.
"Korean Application Serial No. 10-2011-7028492, Notice of Preliminary Rejection mailed Jun. 24, 2013".
"Mobile/UI/Designs/Touchscreen/PROPOSAL5", MozillaWiki, NPL Date Unknown, https://wiki.mozilla.org/Mobile/UI/Designs/TouchScreen/Proposal5.
IN 7491/CHE/2011A
International Preliminary Report on Patentability and Written Opinion of PCT/US2010/032138, Nov. 1, 2011 (issuance date), Apple Inc.
International Search Report and Written Opinion for PCT/US2010/032138, Aug. 19, 2010 (mailing date), Apple Inc.
Nicholls, Stu, "A circular Menu with submenus", 2008 stu nicholls-cssplay.co.uk, Nov. 10, 2008, http://www.cssplay.co.uk/menus/circular-sub.html.
Portions of prosecution history of EP 10716210, Jun. 13, 2012 (filing date), Apple Inc.
Prosecution history of 7491/CHENP/2011, Nov. 23, 2011, Apple Inc.
Updated portions of prosecution history of 7491/CHENP/2011, Apr. 12, 2012, Apple Inc.

Cited By (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474695B2 (en) 2008-01-09 2022-10-18 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US11079933B2 (en) 2008-01-09 2021-08-03 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US20120079430A1 (en) * 2009-06-09 2012-03-29 Kwahk Ji-Young Method for providing a gui for searching for content, and device adoptiving same
US20110113352A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Portable electronic device and method of web page rendering
US20110109634A1 (en) * 2009-11-06 2011-05-12 Research In Motion Limited Portable electronic device and method of information rendering on portable electronic device
US8750802B2 (en) * 2010-05-28 2014-06-10 Sony Corporation Information processing apparatus, information processing system, and program
US20190196772A1 (en) * 2010-05-28 2019-06-27 Sony Corporation Information processing apparatus, information processing system, and program
US20160306601A1 (en) * 2010-05-28 2016-10-20 Sony Corporation Information processing apparatus, information processing system, and program
US11068222B2 (en) * 2010-05-28 2021-07-20 Sony Corporation Information processing apparatus and information processing system
US9836265B2 (en) * 2010-05-28 2017-12-05 Sony Corporation Information processing apparatus, information processing system, and program
US20180074774A1 (en) * 2010-05-28 2018-03-15 Sony Corporation Information processing apparatus, information processing system, and program
US10255015B2 (en) * 2010-05-28 2019-04-09 Sony Corporation Information processing apparatus and information processing system
US9400628B2 (en) * 2010-05-28 2016-07-26 Sony Corporation Information processing apparatus, information processing system, and program
US20140240199A1 (en) * 2010-05-28 2014-08-28 Sony Corporation Information processing apparatus, information processing system, and program
US10684812B2 (en) * 2010-05-28 2020-06-16 Sony Corporation Information processing apparatus and information processing system
US20120030625A1 (en) * 2010-07-30 2012-02-02 Reiko Miyazaki Information processing apparatus, information processing method and information processing program
US9110579B2 (en) * 2010-07-30 2015-08-18 Sony Corporation Information processing apparatus, information processing method and information processing program
US10747417B2 (en) 2010-07-30 2020-08-18 Line Corporation Information processing apparatus, information processing method and information processing program for using a cursor
US20120054667A1 (en) * 2010-08-31 2012-03-01 Blackboard Inc. Separate and simultaneous control of windows in windowing systems
US9003298B2 (en) * 2010-09-21 2015-04-07 Microsoft Corporation Web page application controls
US20120173963A1 (en) * 2010-09-21 2012-07-05 Microsoft Corporation Web page application controls
US8954544B2 (en) 2010-09-30 2015-02-10 Axcient, Inc. Cloud-based virtual machines and offices
US10284437B2 (en) 2010-09-30 2019-05-07 Efolder, Inc. Cloud-based virtual machines and offices
US9104621B1 (en) 2010-09-30 2015-08-11 Axcient, Inc. Systems and methods for restoring a file
US9559903B2 (en) 2010-09-30 2017-01-31 Axcient, Inc. Cloud-based virtual machines and offices
US9213607B2 (en) 2010-09-30 2015-12-15 Axcient, Inc. Systems, methods, and media for synthesizing views of file system backups
US20130191784A1 (en) * 2010-11-15 2013-07-25 Sony Computer Entertainment Inc. Electronic device, menu displaying method, content image displaying method and function execution method
US10732825B2 (en) * 2011-01-07 2020-08-04 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US20120180002A1 (en) * 2011-01-07 2012-07-12 Microsoft Corporation Natural input for spreadsheet actions
US9747270B2 (en) * 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US9235474B1 (en) 2011-02-17 2016-01-12 Axcient, Inc. Systems and methods for maintaining a virtual failover volume of a target computing system
US20120296631A1 (en) * 2011-05-20 2012-11-22 Microsoft Corporation Displaying key pinyins
US20120313977A1 (en) * 2011-06-13 2012-12-13 Samsung Electronics Co., Ltd. Apparatus and method for scrolling in device with touch screen
US9514116B2 (en) 2011-11-04 2016-12-06 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US9471215B2 (en) 2011-11-17 2016-10-18 Zhuhai Kingsoft Office Software Co., Ltd Method for controlling display of a context toolbar
US20130185676A1 (en) * 2012-01-18 2013-07-18 Alibaba Group Holding Limited Method and mobile device for classified webpage switching
US9171099B2 (en) 2012-01-26 2015-10-27 Microsoft Technology Licensing, Llc System and method for providing calculation web services for online documents
US20140092100A1 (en) * 2012-10-02 2014-04-03 Afolio Inc. Dial Menu
US9785647B1 (en) 2012-10-02 2017-10-10 Axcient, Inc. File system virtualization
US11169714B1 (en) 2012-11-07 2021-11-09 Efolder, Inc. Efficient file replication
US9852140B1 (en) 2012-11-07 2017-12-26 Axcient, Inc. Efficient file replication
US20150301697A1 (en) * 2012-11-20 2015-10-22 Jolla Oy A graphical user interface for a portable computing device
US9696895B2 (en) * 2012-12-10 2017-07-04 Panasonic Intellectual Property Management Co,. Ltd. Portable terminal device, luminance control method, and luminance control program
US20150268810A1 (en) * 2012-12-10 2015-09-24 Panasonic Intellectual Property Management Co., Ltd. Portable terminal device, luminance control method, and luminance control program
US10289276B2 (en) * 2012-12-31 2019-05-14 Alibaba Group Holding Limited Managing tab buttons
US9998344B2 (en) 2013-03-07 2018-06-12 Efolder, Inc. Protection status determinations for computing devices
US10003646B1 (en) 2013-03-07 2018-06-19 Efolder, Inc. Protection status determinations for computing devices
US9292153B1 (en) * 2013-03-07 2016-03-22 Axcient, Inc. Systems and methods for providing efficient and focused visualization of data
US9397907B1 (en) 2013-03-07 2016-07-19 Axcient, Inc. Protection status determinations for computing devices
US9477381B2 (en) * 2013-03-12 2016-10-25 Hexagon Technology Center Gmbh User interface for toolbar navigation
US20140282151A1 (en) * 2013-03-12 2014-09-18 Intergraph Corporation User Interface for Toolbar Navigation
KR20150119253A (en) * 2013-03-12 2015-10-23 인터그래프 코포레이션 User Interface for Toolbar Navigation
US20140306897A1 (en) * 2013-04-10 2014-10-16 Barnesandnoble.Com Llc Virtual keyboard swipe gestures for cursor movement
US10599533B2 (en) 2013-05-07 2020-03-24 Efolder, Inc. Cloud storage using merkle trees
US9705730B1 (en) 2013-05-07 2017-07-11 Axcient, Inc. Cloud storage using Merkle trees
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US20150347007A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Device, Method, and Graphical User Interface for a Predictive Keyboard
US10255267B2 (en) 2014-05-30 2019-04-09 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US10204096B2 (en) * 2014-05-30 2019-02-12 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US11120220B2 (en) 2014-05-30 2021-09-14 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US20150378550A1 (en) * 2014-06-30 2015-12-31 Brother Kogyo Kabushiki Kaisha Display controller, and method and computer-readable medium for the same
US10216400B2 (en) * 2014-06-30 2019-02-26 Brother Kogyo Kabushiki Kaisha Display control apparatus, and method and computer-readable medium for scrolling operation
US20160180564A1 (en) * 2014-12-19 2016-06-23 Yahoo Japan Corporation Information display device, distribution device, information display method, and non-transitory computer readable storage medium
US9928254B1 (en) 2016-09-15 2018-03-27 Picadipity, Inc. Automatic image display systems and methods with looped autoscrolling and static viewing modes
RU2640329C1 (en) * 2016-09-28 2017-12-27 Общество с ограниченной ответственностью "ПИРФ" (ООО "ПИРФ") Method, system and machine-readable media of data for controlling user device by means of context toolbar
US11416900B1 (en) * 2017-02-24 2022-08-16 Eugene E. Haba, Jr. Dynamically generated items for user generated graphic user storytelling interface
US10809872B2 (en) * 2017-10-11 2020-10-20 Toyota Jidosha Kabushiki Kaisha Display control device
US20190107934A1 (en) * 2017-10-11 2019-04-11 Toyota Jidosha Kabushiki Kaisha Display control device
US20220147531A1 (en) * 2018-10-29 2022-05-12 State Farm Mutual Automobile Insurance Company Dynamic data-driven consolidation of user interface interactions requesting roadside assistance
US11829577B2 (en) * 2018-10-29 2023-11-28 State Farm Mutual Automobile Insurance Company Dynamic data-driven consolidation of user interface interactions requesting roadside assistance
US11698944B2 (en) * 2018-11-14 2023-07-11 Wix.Com Ltd. System and method for creation and handling of configurable applications for website building systems
US20200151226A1 (en) * 2018-11-14 2020-05-14 Wix.Com Ltd. System and method for creation and handling of configurable applications for website building systems
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11620046B2 (en) 2019-06-01 2023-04-04 Apple Inc. Keyboard management user interfaces
US11842044B2 (en) 2019-06-01 2023-12-12 Apple Inc. Keyboard management user interfaces
US11416136B2 (en) 2020-09-14 2022-08-16 Apple Inc. User interfaces for assigning and responding to user inputs
US20230061240A1 (en) * 2021-08-31 2023-03-02 Hewlett-Packard Development Company, L.P. Highlight indicator-based screen transitions
US11917111B2 (en) * 2021-08-31 2024-02-27 Hewlett-Packard Development Company, L.P. Highlight indicator-based screen transitions
US20230409353A1 (en) * 2022-06-17 2023-12-21 OneTrust, LLC Dynamic generation of graphical user interfaces for retrieving data from multiple computing systems

Also Published As

Publication number Publication date
KR20120023722A (en) 2012-03-13
RU2530301C2 (en) 2014-10-10
AU2010241880B2 (en) 2013-05-23
CN102449589A (en) 2012-05-09
EP2425320A1 (en) 2012-03-07
WO2010126782A1 (en) 2010-11-04
CN102449589B (en) 2017-12-29
RU2011148391A (en) 2013-06-10
US20100281374A1 (en) 2010-11-04
AU2010241880A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
US8601389B2 (en) Scrollable menus and toolbars
US9733796B2 (en) Radial menus
EP2699998B1 (en) Compact control menu for touch-enabled command execution
US9436380B2 (en) Radial menus with variable selectable item areas
JP6416094B2 (en) Stackable workspace on electronic devices
US9383897B2 (en) Spiraling radial menus in computer systems
EP2686755B1 (en) Input device enhanced interface
US20100192101A1 (en) Displaying radial menus in a graphics container
US20110252383A1 (en) Information processing apparatus, information processing method, and program
US20100192102A1 (en) Displaying radial menus near edges of a display area
US20090172597A1 (en) On-screen menu buttons including multiple modes
KR20140051228A (en) Submenus for context based menu system
US20100185985A1 (en) Managing radial menus in a computer system
US20080256454A1 (en) Selection of list item using invariant focus location
JP2016528600A (en) How to select parts of a graphical user interface
AU2018200747B2 (en) Radial menus
AU2014200055A1 (en) Radial menus
US20130067414A1 (en) Selecting and executing objects with a single activation

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHULZ, EGAN;LANGMACHER, TOM;REEL/FRAME:022624/0141

Effective date: 20090430

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8