Interacting with radial menus for touchscreens

The subject technology discloses configurations for providing a radial menu on one or more computing devices with a touch-sensitive screen. In one example, a user activates the radial menu after touching a first finger at a first or anchor point on a touchscreen that serves as a center of the radial menu. While the first finger is disposed, the user then touches a second finger at a second point some distance from the anchor point corresponding to the first finger on the touchscreen. The radial menu is generated based on a distance calculated between the anchor point and the second finger at the second point. The radial menu is not a complete circle and instead displayed as a partial circle, and the radial menu is generated so that the display area is bisected from the anchor point to the second point in some configurations.

BACKGROUND

The subject technology generally relates to graphical user interfaces involving a radial menu. The radial menu may be a circular menu configured to include a set of menu items corresponding to commands, functions or options that are activated upon selection within the radial menu.

SUMMARY

The subject technology provides for detecting an anchor point and a second point corresponding to a radial menu based on touch input on a touch-sensitive screen in which the radial menu includes a display area including one or more menu options; receiving a subsequent touch input on the touch-sensitive screen corresponding to the radial menu in which the subsequent touch input includes a gesture including an initial position corresponding to the detected second point and a third point corresponding to an end position of the gesture; determining if the third point corresponds to a sub-menu provided by the radial menu; and providing for display the sub-menu based on a distance between the second point and the anchor point plus an additional distance in which the sub-menu includes a second display area including one or more additional menu options.

The subject technology further provides for receiving a first touch input on a touch-sensitive screen for selecting a menu option provided in a radial menu in which the radial menu includes a display area including one or more menu options; determining whether automatic activation of the selected menu option is provided; and activating the selected menu option in response to automatic activation being provided.

Yet another aspect of the subject technology provides a system. The system includes memory, one or more processors, and one or more modules stored in memory and configured for execution by the one or more processors. The system includes a radial menu module configured to detect an anchor point and a second point corresponding to a radial menu based on touch input on a touch-sensitive screen in which the radial menu comprises a display area including one or more menu options. The system further includes a touch input module configured to receive a subsequent touch input on the touch-sensitive screen corresponding to the radial menu in which the subsequent touch input comprises a gesture including an initial position corresponding to the detected second point and a third point corresponding to an end position of the gesture, and determine if the third point corresponds to a sub-menu provided by the radial menu. Additionally, the system includes a graphical user interface (GUI) display module configured to provide for display the sub-menu based on a distance between the second point and the anchor point plus an additional distance in which the sub-menu includes a second display area including one or more additional menu options.

The subject technology further provides for detecting an anchor point and a second point corresponding to a radial menu based on touch input on a touch-sensitive screen in which the radial menu includes a display area including one or more menu options; receiving a subsequent touch input on the touch-sensitive screen corresponding to the radial menu in which the subsequent touch input includes a gesture including an initial position corresponding to the detected second point and a third point corresponding to an end position of the gesture; determining if the third point corresponds to a sub-menu provided by the radial menu; providing for display the sub-menu based on a distance between the second point and the anchor point plus an additional distance in which the sub-menu includes a second display area including one or more additional menu options; receiving additional touch input to select a menu option within the sub-menu in which the additional touch input includes a fourth point corresponding to an end position of the additional touch input; detecting a release of the fourth point to activate the selected menu option within the sub-menu; and activating the selected menu option in response to the detected release of the fourth point.

It is understood that other configurations of the subject technology will become readily apparent from the following detailed description, where various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.

DETAILED DESCRIPTION

In some configurations, a radial menu is a circular menu configured to include a set of menu items corresponding to commands, functions or options that are activated upon selection within the radial menu. For instance, a radial menu is graphically depicted as a circle shape with respective segments dividing the circle shape. Each segment of the circle shape may be associated with a command, function or option for the radial menu. Computing devices with touch-sensitive screens are prevalent, such as mobile phones, tablet devices, etc. However, implementing a radial menu that is user-friendly on a computing device with a touch-sensitive screen (“touchscreen”) is problematic. A typical radial menu includes an entire circle shape where segments may be obscured by a user's hand. Accessing portions of the radial menu may be difficult due to the positioning of the user's hand, the left or right handedness of the user, and other physical constraints. Further, the radial menu may not support interactions with the menu that accounts for different finger movements.

In view of the aforementioned issues, the subject technology provides configurations of a radial menu for a touchscreen on a computing device.

FIG. 1conceptually illustrates a graphical user interface (GUI)100for providing a radial menu in which some configurations of the subject technology can be implemented. As illustrated in the example shown inFIG. 1, the GUI100corresponds to a radial menu that is provided for display. More specifically, the GUI100can include one or more display areas with different sets of graphical elements. A graphical element can include, but is not limited to, a button, check box, radio button, slider, list box, drop-down list, menu, combo box, icon, text box, scroll bar, etc. The GUI100illustrated inFIG. 1may be provided on one or more computing devices or systems.

As illustrated in the example ofFIG. 1, configurations of a radial menu for a touchscreen are shown in different stages110,120and130. The radial menu shown in the GUI100may be a contextual menu provided by an operating system and configured to accept touch input from a user to activate and enable interactions with the radial menu.

As shown in the stage110, a user activates the radial menu after touching a first finger (e.g., a thumb) at a first or anchor point1on a touchscreen that serves as a center of the radial menu (e.g., serving as an initial anchor point). While still having the first finger disposed on the touchscreen, the user then touches a second finger at a second point2some distance from the anchor point1corresponding to the first finger on the touchscreen. The radial menu in the GUI100is generated based on a distance115calculated between the anchor point1(first finger) and the second finger at the second point2. This distance115represents a radius of a circle shape that defines portions of the radial menu in the GUI100. In this regard, the radial menu may be generated to a predetermined size to fill an area on the touchscreen according to the distance115between the anchor point1and the second point2(e.g., the radius). Notably, as shown in the example GUI100, the radial menu is not a complete circle and instead displayed as a partial circle. In one example, the partial circle is generated to cover a display area equivalent to a portion of a circumference defined by the radius. Moreover, the radial menu is generated so that the display area is bisected from the anchor point1(first finger) to the second point2(second finger) as shown in the example of the GUI100inFIG. 1.

As further shown in the stage110, an area of the radial menu may occupy a portion of the touchscreen so that one or more “pie” segments102,104and106extend a distance equivalent to a predetermined portion of the radius from the second point2(e.g., position of the second finger), such as 20% of the radius as an example. Other percentages of the radius may be utilized and still be within the scope of the subject technology. This allows the user to be able to access portions of the radial menu without difficulty due to overextending or stretching the user's finger. Thus, the radial menu includes one or more “pie” segments or sectors that aggregately form a partial circle (e.g., a disk or region of a circle), which graphically represents the radial menu.

As an example, a circular sector or circle sector (“sector”) is the portion of a disk enclosed by two radii and a circular arc. Each sector in the partial circle corresponds to respective menu items corresponding to menu options, commands, functions, etc., that may be in the form of text, icons, graphical elements, pictures, any mix of the aforementioned, etc., which are selectable via touch input. Further, a portion of the radial menu starting from the anchor point1(first finger) may be occupied by an empty inner concentric circle108that represents a portion of the radial menu completely absent of menu items/options. Other ways to display the radial menu in the GUI100can be provided and still be within the scope of the subject technology.

The above-mentioned radial menu is configured to receive touch input based on movement of the second finger and/or the first finger already disposed on the touchscreen of the computing device. For instance, while keeping the first finger disposed in the center of the radial menu, the user may rotate the his/her hand while swiping with the second finger according to path117and/or path119in order to select a respective menu option in the segments102or106provided in the radial menu. Similarly, the user may select segment104by moving the second finger within the segment104. Upon selection, the radial menu may highlight (or perform another graphical indication) the selected menu option in order to indicate selection of the menu option. Subsequently, in some configurations, the user may lift or release the second finger from the touchscreen in order to activate the selected menu option.

In the stage120, the user has moved the second finger from the second point2from the stage110to a third point3as shown. In some instances, the radial menu is configured to provide an additional sub-menu. In one example, the user may swipe or move the second finger to a portion of the radial menu that indicates that a sub-menu is available. The radial menu may provide a graphical indication of the availability of the sub-menu, such as displaying an additional graphical element122(e.g., a wedge shape or other shape). The user may then swipe the second finger outside of the additional graphical element122to the third point3to activate the sub-menu. Upon activation, the radial menu provides the sub-menu for display as shown in the stage130.

In the stage130, the sub-menu in some configurations is a portion of a concentric circle that extends beyond the radius of the initial radial menu that includes segments102,104and106. It is noted that the sub-menu does not have the same display area as the initial radial menu and covers a display area that is smaller in comparison to the initial radial menu. Within the sub-menu, one or more additional menu options may be provided. As shown, the example sub-menu includes segments140,142,144,146,148,150,152, and154corresponding to respective menu options. The user may then select a menu option within the sub-menu in a similar manner described above for the radial menu. For instance, the user may move the second finger to a fourth point4as shown in the stage130in order to select a corresponding menu option in the segment148. The sub-menu may highlight the selected segment148to indicate that this menu option is currently selected. In one example, the user may lift or release the second finger from the fourth point4in order to activate the selected segment148. Similarly, the user may move the second finger along a path152or path154in order to select one of the segments140,142,144,146,150,152, or154, and then lift or release the second finger to activate the selected segment. Additionally, to exit the sub-menu, the user may swipe the second finger back within the initial radial menu corresponding to the segments102,104and106.

In some configurations, as the user is moving the aforementioned second finger along one or more paths within the radial menu or the sub-menu, the GUI100may provide for display a graphical indication, such as a “glowing” arc, to indicate the path of the second finger on the touchscreen. As the second finger further moves along a corresponding path, the GUI100may provide another graphical indication, such as a dot or set of dots being displayed when a different menu option is newly selected by the second finger along with corresponding text for the newly selected menu option that appears alongside the dot(s). Other types of graphical indications may be provided and still be within the scope of the subject technology.

For the examples described in the GUI100ofFIG. 1, the user may exit the radial menu by lifting (releasing) the first finger (e.g., thumb) from the anchor point, or by lifting both fingers substantially at the same time. Alternatively, if the user lifts the first finger, the radial menu may not be exited, thus allowing the user to still interact with the radial menu utilizing the second finger. Some configurations allow the user to exit the menu by moving both fingers entirely off the radial menu.

Although the example shown in the GUI100illustrates the radial menu in a particular arrangement, other types of arrangements for displaying the radial menu could be provided and still be within the scope of the subject technology. By way of example, the radial menu may be provided for display via a text representation or a pictogram (e.g., one or more symbols). Further, a representation of the radial menu may be displayed after a brief delay so that a user can quickly select or activate a menu option without looking at the radial menu (e.g., without requiring the radial menu to be displayed). Additionally, although the GUI100includes certain graphical elements, it should be understood that the GUI100is not required to include all graphical elements shown inFIG. 1. Moreover, the GUI100could include more graphical elements than shown in the example ofFIG. 1.

FIG. 2conceptually illustrates an example process200for providing a radial menu for display according to some configurations of the subject technology. The process200can be performed on one or more computing devices or systems in some configurations. More specifically, the process200may be implemented to generate the radial menu as described in the example ofFIG. 1.

The process200begins at210by receiving a first touch input on a touch-sensitive screen (e.g., touchscreen) in which the first touch input corresponds with an anchor point on the touch-sensitive screen. The anchor point in some instance will be utilized as a center for the radial menu.

The process200at215determines whether a second touch input at a second point on the touch-sensitive screen is received. The process200ends if no second touch input is received. If the second touch input is received at the second point on the touch-sensitive screen, then the process continues to220.

The process200at220determines a distance between the second point and the anchor point on the touch-sensitive screen. In some configurations, the distance between the second point and the anchor point defines a radius of a circle utilized for generating the display area of the radial menu.

The process200at225generates a radial menu based on the distance between the second point and the anchor point. In some configurations, the radial menu includes a display area including one or more menu options. The display area includes respective graphical segments corresponding to the one or more menu options in one example. Further, the display area of the radial menu includes a circular sector of the circle utilized for generating the display area. As an example, the circular sector comprises a portion of the circle based on a predetermined arc and the radius of the circle, and the arc is an angle defined by a vertex based on the anchor point. The display area of the radial menu, in one example, may be bisected from a line from the anchor point to the second point.

The process200at230provides for display the radial menu. For instance, the radial menu may be displayed as illustrated in the example GUI100ofFIG. 1. The process200then ends.

FIG. 3conceptually illustrates a graphical user interface (GUI)300for providing a radial menu in which some configurations of the subject technology can be implemented. As illustrated in the example shown inFIG. 3, the GUI300for a radial menu is provided for display, which is similar to the GUI100described inFIG. 1. More specifically, the GUI300can include one or more display areas with different sets of graphical elements. The GUI300illustrated inFIG. 3may be provided on one or more computing devices or systems.

As illustrated in the example ofFIG. 3, the GUI300includes a radial menu with a sub-menu including multiple menu options. Different interactions may be provided by the GUI300depending on the type of user input received. For instance, one or more menu options within the sub-menu may be automatically activated without requiring the user to lift the second finger. For instance, an example application may allow an automatic setting of the operating system's desktop background by having the user swipe through graphical thumbnails of respective wallpapers provided in menu options of the sub-menu. Similarly, another example application may include an application switcher that automatically switches to open applications as the user swipes through corresponding menu options of open applications within the sub-menu. Automatic activation of selected menu options may also be applied for menu options provided in the initial radial menu in a similar manner. Other types of interactions may be provided and still be within the scope of the subject technology.

As illustrated in the example ofFIG. 3, configurations of a radial menu for a touchscreen on a computing device are shown in different stages310and320for interacting with a sub-menu included in the radial menu. The radial menu and sub-menu shown in the GUI300may be a contextual menu that is provided by an operating system and configured to accept touch input from a user to activate and enable interactions with the radial menu and/or sub-menu. Further, the GUI300may be provided for display in the manner described inFIGS. 1 and 2. In particular, the radial menu in the GUI300is generated based on a distance calculated between an anchor point1(first finger) and the second finger at a second point2shown inFIG. 3.

As shown in the stage310, an area of the radial menu may occupy a portion of the touchscreen including one or more “pie” segments302,304and306. Thus, the radial menu includes one or more “pie” segments or sectors that aggregately form a partial circle (e.g., a disk or region of a circle), which graphically represents the radial menu (similar to the GUI100described inFIG. 1). Further, a portion of the radial menu starting from the anchor point1(first finger) may be occupied by an empty inner concentric circle308that represents a portion of the radial menu completely absent of menu items/options. Other ways to display the radial menu in the GUI300can be provided and still be within the scope of the subject technology.

As further shown in the stage310, the sub-menu in some configurations is a portion of a concentric circle that extends beyond the radius of the initial radial menu corresponding to segments302,304and306. As mentioned before, the sub-menu does not have the same display area as the initial radial menu and covers a display area that is smaller in comparison to the initial radial menu in one example. Within the sub-menu, one or more additional menu options may be provided. As shown, the example sub-menu includes segments332,334,336,338,340,342, and344corresponding to respective menu options. In the example ofFIG. 3, each of the segments corresponds to a respective graphical image (e.g., thumbnail image), which may be utilized for different purposes upon being selected, including automatically setting a user's desktop picture, or automatically providing the respective graphical image for display as part of a slideshow presentation, etc. The user may select a particular graphical image within the sub-menu by move the second finger along a path312or path314in order to select one of the segments332,334,336,338,340,342, and344, without lifting or releasing the second finger to activate the selected segment.

In the stage320of the example ofFIG. 3, the user has moved the second finger to a third point3in order to select the graphical image corresponding to the segment342. Upon selection, the graphical image is automatically provided for display in image330(e.g., slideshow or user's desktop) without requiring the user to lift the second finger in order to activate the selected segment342. In this manner, the example GUI300inFIG. 3is able to provide automatic activation of a selected segment corresponding to a menu option, graphical image, etc., provided in the sub-menu of the radial menu.

Although the example inFIG. 3describes an application for automatically providing selected graphical images corresponding to a selected segment within the sub-menu, other types of applications or utilizations may be provided and still be within the scope of the subject technology. As mentioned before, the sub-menu may include one or more segments respectively corresponding to one or more currently executing applications. In this regard, the user may then select one of the segments in the sub-menu to switch to one of the currently executing applications (e.g., task/application switching).

FIG. 4conceptually illustrates an example process400for providing a sub-menu for a radial menu in some configurations. The process400can be performed by one or more computing devices or systems in some configurations. For instance, the process400may be executed by one or more computing devices in order to provide a sub-menu as described inFIGS. 1 and 3.

The process400begins at410by detecting an anchor point and a second point corresponding to a radial menu based on touch input on a touch-sensitive screen. The anchor point may correspond with a position of a first finger, and the second point may correspond with a position of a second finger (e.g., as illustrated inFIG. 1orFIG. 3). In one example, the radial menu includes a display area including one or more menu options. In some configurations, the display area of the radial menu includes a portion of a circle defined by a radius based on the distance from the anchor point and the second point.

The process400at415determines whether a subsequent touch input is received on the touch-sensitive screen corresponding to the radial menu. The subsequent touch input may be a gesture including an initial position corresponding to the detected second point and a third point corresponding to an end position of the gesture. If no subsequent touch input is received, the process400then ends. Alternatively, upon determining that subsequent touch input is received, the process400continues to420. Referring to the stage120shown inFIG. 1, in some configurations, the radial menu may indicate that a particular sub-menu is available (e.g., via displaying a graphical element such as a wedge) for a menu option provided in the radial menu. In this regard, the user may activate the sub-menu by moving the second finger to a position outside of the radial menu.

The process400at420determines if the third point corresponds to a sub-menu provided by the radial menu. In one example, the third point corresponds with a position outside of the radial menu (e.g., as shown in the stage120ofFIG. 1). The third point may be within a predetermined distance from a graphical element that indicates an availability of the sub-menu (e.g., a wedge shape).

The process400at425provides for display the sub-menu based on a distance between the second point and the anchor point plus an additional distance. In one example, the sub-menu includes a display area including one or more additional menu options. The display area of the sub-menu includes a portion of a concentric circle that extends from a portion of the radial menu defined by a partial circumference based the radius in some configurations. As an example, the display area of the sub-menu includes an arc defined by a vertex based on the anchor point. Other ways to display the sub-menu may be provided and still be within the scope of the subject technology. The process400then ends.

FIG. 5conceptually illustrates an example process500selecting and/or activating a selected menu option in a radial menu according to some configurations. The process500can be performed by one or more computing devices or systems in some configurations.

As described before, a radial menu corresponds to an anchor point (first finger) and a second point (second finger) on a touch-sensitive screen. The distance between the second point and the anchor point defines a radius of a circle utilized for generating the display area of the radial menu. Further, the radial menu may provide a sub-menu including additional menu options for selection. In order to select a menu option provided in either the radial menu or the sub-menu, touch input may be received from a second finger that includes a gesture from an initial position corresponding to a point within the radial menu or sub-menu to a different point, corresponding to an end position of the gesture, within the radial menu or sub-menu.

The process500at510receives a touch input on a touch-sensitive screen for selecting a menu option provided in a radial menu (or sub-menu provided in the radial menu). The received touch input may correspond with input received from a second finger while a first finger is disposed on the touch-sensitive screen at the anchor point. In some configurations, the received touch input may correspond with a user moving a second finger along a path to select a respective menu option provided in a radial menu (e.g., as illustrated in the stage110inFIG. 1). Alternatively, the received touch input may correspond with the user moving the second finger along a path to select a respective menu option provided in a sub-menu of the radial menu (e.g., as illustrated in the stage130ofFIG. 1orFIG. 3). In this regard, the received touch input from the second finger includes a point indicating an end position of the touch input that corresponds to the selected menu option.

The process500at515determines whether automatic activation of the selected menu option is provided. If so, the process500continues to520to activate the selected menu option. The selected menu option may be activated, for example, by automatically executing a command, function, and/or a set of operations, launching or switching to an application corresponding to the selected menu option, etc. In this manner, the selected menu option is automatically activated without requiring the user to lift or release the second finger to initiate the activation.

Alternatively, if the process500determines that automatic activation is not provided or absent for the selected menu option, the process500continues to525to select the selected menu option. In one example, the process500may provide a graphical indication that the menu option is selected such as highlighting the menu option or another similar graphical indication, etc.

The process500then continues to530to detect whether the aforementioned second finger is released. As described above, the second finger may provide touch input (e.g., a gesture) including the end position of the touch input at a particular point corresponding to the selected menu option. If the second finger is detected as being released, the process500continues to520to activate the selected menu option. Alternatively, if the second finger is not detected as being released at530, the process500then ends.

FIGS. 6A and 6Bconceptually illustrates example processes600and650for exiting a radial menu according to some configurations. The processes600and650can be performed by one or more computing devices or systems in some configurations.

As described before, a radial menu corresponds to an anchor point (first finger) and a second point (second finger) on a touch-sensitive screen. Further, the radial menu may provide a sub-menu including additional menu options for selection. Configurations of the radial menu may provide different ways for exiting the radial menu as illustrated in the examples ofFIGS. 6A and 6B. Exiting the radial menu may be understood as performing one or more operations for closing the radial menu so that the radial menu is not provided for display. In this manner, a user may stop utilizing the radial menu or cancel an action within the radial menu. The following description assumes that the radial menu is already provided for display with a first finger and second finger currently disposed at respective points on the touch-sensitive screen.

In some configurations, the radial menu may be exited by releasing the first finger as shown in the example process600ofFIG. 6A. The process600begins at610by detecting a release of a first finger. In some configurations, a position of the first finger corresponds to an anchor point of the radial menu. At615, the radial menu is exited in response to the first finger being released. The process600then ends.

Alternatively, the radial menu may be exited by releasing the first and second fingers as shown in the example process650inFIG. 6B. The process650begins at660by detecting a release of a first finger. In some configurations, a position of the first finger corresponds to an anchor point of the radial menu. In this example, the radial menu does not immediately exit upon a release of the first finger. Thus, the user may still interact with the radial menu by utilizing a second finger to move within the radial menu or within a sub-menu of the radial menu. The process650at670then determines if a release of a second finger corresponding to a point on the touch-sensitive screen is detected. If so, the process650continues to670to exit the radial menu. The process650then ends.

Other ways to exit the radial menu may be provided and still be within the scope of the subject technology. In one example, the user may move the respective positions of the first and second fingers entirely off the display area of the radial menu in order to exit the radial menu. For instance, the user may perform a gesture (e.g., swiping) that moves the first and second fingers completely away from the radial menu. Upon detecting that neither the first nor second fingers are within the display area of the radial menu, the radial menu is then exited.

FIG. 7conceptually illustrates an example computing environment700including a system. In particular,FIG. 7shows a system705for implementing the above described GUI inFIGS. 1 and 3and the processes inFIGS. 2,4,5,6A and6B. In some configurations, the system705is part of an implementation running a particular machine (e.g., client computer, laptop, notebook, netbook, etc.).

The system705can include memory, one or more processors, and one or more modules stored in memory and configured for execution by the one or more processors. As shown inFIG. 7, the system705includes several modules for providing different functionality. The system705is configured to include a touch input module710, a radial menu module715and a graphical user interface (GUI) display module720.

The touch input module710is configured to receive a first touch input on a touch-sensitive screen in which the first touch input corresponds with an anchor point on the touch-sensitive screen, receive a second touch input at a second point on the touch-sensitive screen, and determine a distance between the second point and the anchor point on the touch-sensitive screen. The distance between the second point and the anchor point defines a radius of a circle utilized for generating the display area of the radial menu.

The radial menu module715is configured to generate a radial menu based on the distance between the second point and the anchor point in which the radial menu includes a display area including one or more menu options. The display area includes respective graphical segments corresponding to the one or more menu options. The respective graphical segments extend a distance equivalent to a predetermined portion of the radius from the second point. The predetermined portion of the radius from the second point comprises twenty percent of the radius. In some configurations, the display area of the radial menu includes a circular sector of the circle utilized for generating the display area. In this regard, the circular sector includes a portion of the circle based on a predetermined arc and the radius of the circle, and the arc includes an angle defined by a vertex based on the anchor point. Further, the radial menu include an empty inner concentric circle that represents a portion of the radial menu completely absent of menu options. The aforementioned one or more menu options include at least one of text, icons, graphical elements, or pictures, etc.

The GUI display module720is configured to provide for display the radial menu. The radial menu is displayed as a partial circle in some configurations. In this regard, the partial circle is displayed to cover a display area equivalent to a portion of a circumference defined by a radius based on the distance between the second point and the anchor point.

Additionally, the radial menu module715is configured to detect an anchor point and a second point corresponding to a radial menu based on touch input on a touch-sensitive screen. The touch input module710is further configured to receive a subsequent touch input on the touch-sensitive screen corresponding to the radial menu in which the subsequent touch input comprises a gesture including an initial position corresponding to the detected second point and a third point corresponding to an end position of the gesture, and determine if the third point corresponds to a sub-menu provided by the radial menu. The GUI display module720is configured to provide for display the sub-menu based on a distance between the second point and the anchor point plus an additional distance in which the sub-menu comprises a second display area including one or more additional menu options. In some configurations, the second display area of the sub-menu comprises a portion of a concentric circle that extends from a portion of the radial menu defined by a partial circumference based the radius. Additionally, the second display area of the sub-menu comprises an arc defined by a vertex based on the anchor point.

The touch input module710is further configured to receive additional touch input to select a menu option within the sub-menu, wherein the additional touch input comprises a fourth point corresponding to an end position of the additional touch input. The radial menu module715is further configured to detect a release of the fourth point to activate the selected menu option within the sub-menu, and activate the selected menu option in response to the detected release of the fourth point.

Further, the radial menu module715is further configured to detect a release of both the first and second points to exit the radial menu. Alternatively, the radial menu module715is further configured to detect a release of the first point to exit the sub-menu.

As further shown inFIG. 7, each of the aforementioned modules can be configured to communicate between each other. For instance, different data, messages, API calls and returns can be passed between the different modules in the system705.

In this specification, the term “software” is meant to include firmware residing in read-only memory and/or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some implementations, multiple software components can be implemented as sub-parts of a larger program while remaining distinct software components. In some implementations, multiple software subject components can also be implemented as separate programs. Finally, a combination of separate programs that together implement a software component(s) described here is within the scope of the subject technology. In some implementations, the software programs, when installed to operate on one or more systems, define one or more specific machine implementations that execute and perform the operations of the software programs.

Some configurations are implemented as software processes that include one or more application programming interfaces (APIs) in an environment with calling program code interacting with other program code being called through the one or more interfaces. Various function calls, messages or other types of invocations, which can include various kinds of parameters, can be transferred via the APIs between the calling program and the code being called. In addition, an API can provide the calling program code the ability to use data types or classes defined in the API and implemented in the called program code.

One or more APIs may be used in some configurations. An API is an interface implemented by a program code component or hardware component (“API implementing component”) that allows a different program code component or hardware component (“API calling component”) to access and use one or more functions, methods, procedures, data structures, classes, and/or other services provided by the API implementing component. An API can define one or more parameters that are passed between the API calling component and the API implementing component.

The following description describes an example system in which aspects of the subject technology can be implemented.

FIG. 8conceptually illustrates a system800with which some implementations of the subject technology can be implemented. The system800can be a computer, phone, PDA, or another sort of electronic device. In some configurations, the system800includes a television with one or more processors embedded therein. Such a system includes various types of computer readable media and interfaces for various other types of computer readable media. The system800includes a bus805, processing unit(s)810, a system memory815, a read-only memory820, a storage device825, an optional input interface830, an optional output interface835, and a network interface840.

The bus805collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the system800. For instance, the bus805communicatively connects the processing unit(s)810with the read-only memory820, the system memory815, and the storage device825.

From these various memory units, the processing unit(s)810retrieves instructions to execute and data to process in order to execute the processes of the subject technology. The processing unit(s) can be a single processor or a multi-core processor in different implementations.

The read-only-memory (ROM)820stores static data and instructions that are needed by the processing unit(s)810and other modules of the system800. The storage device825, 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 system800is off. Some implementations of the subject technology use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the storage device825.

Other implementations use a removable storage device (such as a flash drive, a floppy disk, and its corresponding disk drive) as the storage device825. Like the storage device825, the system memory815is a read-and-write memory device. However, unlike storage device825, the system memory815is a volatile read-and-write memory, such a random access memory. The system memory815stores some of the instructions and data that the processor needs at runtime. In some implementations, the subject technology's processes are stored in the system memory815, the storage device825, and/or the read-only memory820. For example, the various memory units include instructions for processing multimedia items in accordance with some implementations. From these various memory units, the processing unit(s)810retrieves instructions to execute and data to process in order to execute the processes of some implementations.

Finally, as shown inFIG. 8, bus805also couples system800to a network interface840through 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 an interconnected network of networks, such as the Internet. The components of system800can be used in conjunction with the subject technology.

Configurations of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or a combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by a form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

It is understood that a specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes can be rearranged, or that all illustrated steps be performed. Some of the steps can be performed simultaneously. For example, in certain circumstances, multitasking and parallel processing can be advantageous. Moreover, the separation of various system components in the configurations described above should not be understood as requiring such separation in all configurations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect can apply to all configurations, or one or more configurations. A phrase such as an aspect can refer to one or more aspects and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration can apply to all configurations, or one or more configurations. A phrase such as a configuration can refer to one or more configurations and vice versa.

The word “example” is used herein to mean “serving as an example or illustration.” An aspect or design described herein as “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs.

All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims.