The amount of functionality that is available to users of computing devices is ever increasing. For example, a user may have access to a wide range of computing devices, each configured to also include a wide range of different functionality that may be provided through an operating system of the device, applications that are executable on the device, involve management of files stored on the device, and so on. Consequently, users may be confronted with a multitude of different techniques that may be used to access this functionality, which may make it difficult and confusing to locate particular functionality of interest. Thus, the sheer amount of this functionality may make it difficult for a user to interact with the device, which may lead to user frustration both with the device and functionality added to the device.
Context menus are described. In one or more implementations, an option is displayed in a user interface by a computing device, the option selectable to cause a representation of an object to be added to a context menu. In response to selection of the option, the context menu is configured by the computing device to include the representation of the object such that the representation of the object is selectable to launch the object by the computing device.
In one or more implementations, a representation of an object is displayed in a user interface by a computing device that is selectable using a first technique to launch the object by the computing device and a second technique to cause output of an option by the computing device. Responsive to detection of the selection of the representation of the object using the second technique, the option is displayed to be selectable in the user interface by the computing device to cause the representation of the object to be included in a context menu.
In one or more implementations, one or more computer readable storage media comprises instruction stored thereon that responsive to execution by a computing device, causes the computing device to perform operations that include displaying, in a file management user interface by a computing device, a representation of a command that is selectable using a first technique to initiate execution of the command by the computing device and a second technique to cause output of an option by the computing device. Responsive to detection of the selection of the representation of the command using the second technique, the option is displayed to be selectable in the user interface by the computing device. Responsive to detection of selection of the option, a context menu and a toolbar are configured by the computing device to each include a representation of the command that is selectable to initiate execution of the command.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
Overview
The amount of functionality that is available to users of computing devices is ever increasing, so much so that location of desired functionality may be difficult and confusing to the users. For example, traditional techniques involves hierarchical menus may involve increasing the size of the menu and well as levels to the menus to accommodate commands and so forth. Thus, these traditional techniques may result in a confusing hierarchy that may be difficult to navigate.
Context menus are described. In one or more implementations, a customizable context menu is provided such that a user may “pin” desired objects (e.g., commands, files, and so on) to the context menu. For example, a user interface may be displayed that includes a menu system having representations of commands, such as a ribbon displayed near the top of the user interface. A user may use a cursor control device (e.g., a mouse, detection of a gesture, and so on) to perform a “right click” on a representation. The right click may be used to cause output of a menu that includes an option to have the command added for quick access.
One such way to provide quick access is to include the command in a context menu. Therefore, the command may be accessed by a subsequent right click in the user interface. The command may also be automatically added to a toolbar that is displayed near the top of the user interface independent of the ribbon. Therefore, a user may navigate through different portions of the ribbon, content in the user interface, and so on, yet is still is provided with quick access to the command from the context menu and/or the tool bar. Further discussion of these and other techniques may be found in relation to the following sections.
In the following discussion, an example environment is first described that is operable to perform techniques described herein. Examples procedures are then described, which are operable in the example environment as well as in other environments. Likewise, the example environment is not limited to performance of the example procedures.
Example Environment
Thus, the computing device 102 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., traditional set-top boxes, hand-held game consoles). Additionally, although a single computing device 102 is shown, the computing device 102 may be representative of a plurality of different devices, such as multiple servers utilized by a business to perform operations, a remote control and set-top box combination, an image capture device and a game console configured to capture gestures, and so on.
The computing device 102 may also include an entity (e.g., software) that causes hardware of the computing device 102 to perform operations, e.g., processors, functional blocks, and so on. For example, the computing device 102 may include a computer-readable medium that may be configured to maintain instructions that cause the computing device, and more particularly hardware of the computing device 102 to perform operations. Thus, the instructions function to configure the hardware to perform the operations and in this way result in transformation of the hardware to perform the operations. The instructions may be provided by the computer-readable medium to the computing device 102 through a variety of different configurations.
One such configuration of a computer-readable medium is a signal bearing medium and thus is configured to transmit the instructions (e.g., as a carrier wave) to the hardware of the computing device, such as via the network 104. The computer-readable medium may also be configured as a computer-readable storage medium and thus is not a signal bearing medium. Examples of a computer-readable storage medium include a random-access memory (RAM), read-only memory (ROM), an optical disc, flash memory, hard disk memory, and other memory devices that may use magnetic, optical, and other techniques to store instructions and other data.
Although the network 104 is illustrated as the Internet, the network may assume a wide variety of configurations. For example, the network 104 include a wide area network (WAN), a local area network (LAN), a wireless network, a public telephone network, an intranet, and so on. Further, although a single network 104 is shown, the network 104 may be configured to include multiple networks.
The computing device 102 is illustrated as including an object management module 106. The object management module 106 is representative of functionality to manage access to objects 108 by the computing device 102. For example, the object management module 106 may generate a user interface 110.
Through this user interface 110, the object management module 106 may manage access to a variety of different objects 108. For example, the object 108 may include operating system commands 112, data management commands 114, third-party commands 116 (e.g., from third-party plug-ins), files 118 (e.g., documents, applications, applets, and so on), and other objects 120. Further, the object management module 106 may be configured to manage remote objects, an example of which is illustrated as objects 122 made available by service provider 124 over the network 104.
The user interface 110 may be configured by the object management module 106 to support a variety of different techniques to provide access to the objects. For example, the object management module 106 may support techniques for “quick access” to objects selected by a user. In this way, a user may select favorite objects, e.g., object that are accessed often by the user, that may be provided in the user interface using techniques to enable the user to quickly launch the objects. An example of such a user interface 110 may be found beginning in relation to
Generally, any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The terms “module” and “functionality” as used herein generally represent hardware, software, firmware, or a combination thereof. In the case of a software implementation, the module, functionality, or logic represents instructions and hardware that performs operations specified by the hardware, e.g., one or more processors and/or functional blocks. The features of the techniques described below are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of hardware configurations.
Regardless of where incorporated, the object management module 106 may employ techniques to manage objects 108, 112 accessible to the computing device 102.
The objects, for instance, may involve commands that may be executed by the computing device 102 to manage files and other objects. Examples of commands are illustrated a open, new, print, rename, delete, properties, scan, and so on. Other examples are also contemplated. Thus, the user interface 200 may provide techniques for accessing a file system of the computing device 102, such as to navigate through folders to locate files and other objects of interest.
Further, these examples are illustrated as displayed in a ribbon 202 in the user interface 200. The ribbon 202 in the illustrated example is disposed near a top of the user interface 200 and organized using tabs that are used to group commands, such as file, edit, view, favorites, tools, and help as shown. Selection of the tabs may thus cause representations of commands associated with that tab to be output. A user may then select a representation of a desired command to cause the command to be executed, e.g., by the computing device 102. The ribbon 202 may be configured to be modular and thus form sub-groups within the tabbed groups to further organize commands. The ribbon 202 may also be configured to be minimized such that the tabs but not the corresponding commands are illustrated or maximized such that the corresponding commands are shown.
The user interface 200 is also illustrated as including a toolbar 204 that is configured for quick access to objects. The toolbar 204 is configured in this example to persist along a top of the user interface 204 and as such is included as a part of a strip that includes an identification of a current location in a file hierarchy, e.g., a particular folder such as “My Photos” in the illustrated example. The strip also includes controls 206 to configure a window, illustrated examples of which include minimize, maximize, and close. In this way, the contents of the window may change without causing a change to the representations of the objects 204 included in the toolbar 204. Similar functionality may also be incorporated by the ribbon 202 without departing from the spirit and scope thereof.
The user interface 200 also includes a portion of view content with a respective “location” within a file hierarchy, at which, is currently being accessed. Examples of this in
The toolbar 204 that provides one technique to enable “quick access” to objects, examples of which are illustrated as representations of commands that include save, undo, redo, and search. Another technique that may be used to provide “quick access” functionality is illustrated as a context menu 208. The context menu 208 in this example is output responsive to a right-click of an image of the space needle in this example. The context menu 208 includes a first section that includes representations of predefined objects, illustrated examples of which include open, cut, copy, delete, rename, and properties. For example, these objects may be predefined by a coder of the application (e.g., the file management application in this example) to include commands that have an increased likelihood of being utilized by a user. In this way, the user may quickly access the commands without navigating to the toolbar 204 because the context menu is generally output as disposed proximal to the cursor.
The context menu 208 may also be configured to include representations of objects specified by a user. Thus, the context menu 208 may be customized by a user to include desired objects. Further, representations of these desired object may be persisted between contexts such that the representation is output regardless of whether it is applicable to a current context, e.g., applicable to a current object being selected. For example, the representations may be disabled in contexts in which the represented object (e.g., command) does not apply to an object that is selected, e.g., via a right click.
In the illustrated user interface 200, functionality of the toolbar 204 is shared with the context menu 208 by the object management module 106. Thus, customization options in the user interface 200 may share this functionality. An example of this in
The representation of the command is selectable using a variety of different techniques. For example, a first technique may be used to initiate execution of the command, such as a double click performed by clicking a left button of a cursor control device, tap gesture, and so on. In another example, a second technique may be used to cause output of an option 304, such as through a right click performed by clicking a right button of a cursor control device, a two-fingered tap-and-hold gesture, and so on. Thus, although these techniques are referred to as double and right clicks, respectively, this refers to a convention and is therefore not limited to actual double and right clicks performed using buttons of a mouse.
The option 304 is illustrated as output using a pop-up menu to “Add to ‘Quick Access.’” Selection of this option 304 may then cause the indicated representation (e.g., the representation of the command “Convert to tiff” in the ribbon 202) to be included in the context menu, an example of which may be found in relation to the following figure.
Further, the object management module 106 may be configured to share functionality between the context menu 208 and the toolbar 204. Thus, a representation 402 of the command may also be included in the toolbar 204. In this way, the object management module 106 may leverage a command surface utilized to provide the ribbon 202 to enable quick access to objects in the context menu 208, which may be further unified with the toolbar 204 to conserve resources of the computing device 102. Additional discussion of the these techniques may be found in relation to the following procedures.
Example Procedures
The following discussion describes context menu techniques that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, or software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment 100 of
Further, as previously described a variety of different objects may be utilized. For instance, the object may be a command included in a ribbon 202, from an operating system, from a third-party plug-in, from an application, and so on. Further, the object may relate to a file, such as a document, application, spreadsheet, image, media, and so forth.
An option is displayed in user interface by a computing device, the option selectable to cause a representation of an object to be added to a context menu (block 504). The option, for instance, may be included in a pop-up menu that is displayed in response to a right click above. In other instances, the option may be included in a menu, in response to a key combination, and so forth.
In response to selection of the option, the context menu is configured to include the representation of the object such that the representation is selectable to launch the object (block 506). The context menu is then displayed as including the representation of the object to be selectable to launch the object by the computing device (block 508). The representation, for instance, may be included in the context menu that is also configured to be output in response to a right click. When output, selection of the representation may cause the corresponding object to be launched, such as performance of the command, initiation of an application, opening of a file, and so on by a computing device 102 or other device, such as at the service provider 124. A variety of different user interfaces may incorporate the functionality described herein, one example of which is described in relation to the following figure.
The representation is selectable using a first technique to initiate execution of the command (block 604), such as a double click by a cursor control device using a gesture, pressing a button, and so on. The representation is also selectable using a second technique to cause output of an option by the computing device (block 606), such as a right click by a cursor control device using a gesture, pressing a button, and so on.
Responsive to detection of the selection of the representation of the command using the second technique, the option is displayed to be selectable in the user interface (block 608). The option, for instance, may be included as a representation of a command in a pop-up menu to add the command for “quick access.”
Responsive to detection of the selection of the option, a context menu and a toolbar are configured by the computing device to each include a representation of the command that is selectable to initiate execution of the command (block 610). As described in relation to
Conclusion
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention.