The present invention relates to techniques for manipulating objects in user interfaces and, more specifically, to techniques for enhancing “drag-and-drop” functionality in such interfaces.
The ability to select and move, i.e., “drag-and-drop,” objects in a user interface has been around for some time. Recently, there has been a resurgence of interest in this functionality with software developers making it available in a variety of computing contexts including, for example, web applications. However, while it is a popular and intuitively appealing feature for users, drag-and-drop has its shortcomings.
For example, dragging an object to a “drop target” (i.e., another object with which the user wishes to associate the first object) in a remote part of the interface can often require multiple gestures with the relevant control device (e.g., mouse or touchpad); an awkward and often irritating process. When the desired drop target is part of a list and is currently off screen, the user must wait and hold the object while the list slowly scrolls to the target. In addition, the relatively small size of some drop targets and their proximity to other drop targets increase the likelihood that a dragged object may be dropped on the wrong target. These issues are exacerbated further by today's increasingly larger displays.
It is therefore desirable to provide mechanisms which improve the usability of the drag-and-drop functionality.
According to the present invention, methods and apparatus are provided for manipulating objects in a user interface. The user interface includes a first interface object operable to be selected and moved within the user interface. In response to selection and movement of the first interface object in the user interface, at least one additional interface object is presented in the user interface in proximity of the first interface object. Each additional interface object represents a drop target with which the first interface object may be associated.
A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings.
Reference will now be made in detail to specific embodiments of the invention including the best modes contemplated by the inventors for carrying out the invention. Examples of these specific embodiments are illustrated in the accompanying drawings. While the invention is described in conjunction with these specific embodiments, it will be understood that it is not intended to limit the invention to the described embodiments. On the contrary, it is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims. In the following description, specific details are set forth in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. In addition, well known features may not have been described in detail to avoid unnecessarily obscuring the invention.
According to the present invention, enhanced “drag-and-drop” experiences are provided which increase the usability of the drag-and-drop functionality. According to specific embodiments, various types of intelligence are built into the drag-and-drop functionality to make drop target options more accessible to the user. An exemplary embodiment of the present invention is illustrated in
Using any tool which is conventionally operable to manipulate objects in a user interface, e.g., a mouse, a touchpad, a touch screen, stylus-enabled screen, etc., a user selects Word.doc 102 and begins to drag or move the object toward Recycle bin 104 according to any conventional drag-and-drop protocol. In response to the dragging of the object and as shown in
According to specific embodiments, this “smart” drag-and-drop functionality anticipates what the user is attempting to do with reference to the movement of the object being dragged, e.g., the velocity and/or direction. According to some embodiments, an event handler is employed which is responsive to the drag-and-drop event, and which may have include additional logic which is responsive to a variety of parameters including, for example, the type of object being dragged. At some point after the event handler detects a dragging event, the drop targets are presented in accordance with the event handler logic.
According to some embodiments, the drop targets could be presented substantially immediately, i.e., in response to detection of the event itself. Alternatively, a delay may be introduced which could be based on other parameters such as, for example, the distance the object has been dragged, the amount of time the object has been dragged, e.g., the drop targets might not be presented until the object has been dragged a certain distance in the interface or for a predetermined period of time. The event handler logic could also decide whether to present the drop targets at all depending on parameters associated with the drag-and-drop event or the dragged object. For example, if the initial position of the dragged object is close to an edge of the interface, and that is the edge toward which the object is being dragged, the event handler may determine that the drop targets should not be presented.
As shown in
According to yet another alternative (an example of which is described below), the drop targets may be presented as a list of menu items. According to some such embodiments, the position of the list in the interface may also depend on some parameter relating to the dragged object, e.g., direction or speed. In some cases, only a single drop target might be presented.
According to specific embodiments, the drop targets persist while the object is being dragged. If the user cancels the drag operation (e.g., by releasing the mouse button), the drop targets disappear. In a particular implementation, if the user drags the object past the drop targets (indicating that none are the desired target), they may also disappear.
According to various embodiments, drop targets presented according to the invention may allow branching, i.e., the presentation of further drop target options relating to one of the options presented. According to a specific embodiment, when the user causes the dragged object to hover over such a branching drop target, any other drop targets originally presented with that drop target may disappear, and a new set of drop targets appears which is related to the drop target over which the dragged object is positioned. For example, where the original drop target selected by the user represents a folder in a file system, the new drop targets could represent subfolders within that folder. This could be an iterative process which facilitates navigation through the file system.
In another example shown of such “drilling down” shown in
As will be understood, the appearance, number, position, and configuration of the virtual drop targets may vary considerably without departing from the scope of the invention. The manner in which drop targets are instantiated or otherwise made to appear may be governed by a wide variety of techniques including, for example, proprietary methods associated with the event handler logic, or the calling predefined instantiation methods (e.g., such as may be associated with an operating system, or an application into which the functionality of the present invention is integrated).
The nature of the drop targets and what they represent, as well as what is precipitated by associating a dragged object with a drop target may vary considerably as well. According to various embodiments, and as mentioned above, drop targets may represent locations in a file system. By associating a dragged object with such a drop target, the information or file represented by the dragged object may be moved or copied to the corresponding file system location.
In another example, a drop target may represent an application which uses or processes the dragged object and/or the information it represents. For example, as illustrated above, the drop target can represent a messaging application. When the dragged object is “dropped” on or associated with the drop target, the messaging application launches a message creation interface for creating a message (e.g., an email or instant message) to which the file represented by the dragged object may be attached. As discussed above, drop targets can represent contacts to whom a dragged object is to be sent or otherwise made available. Drop targets may also represent commands relating to the handling of the dragged object, e.g., delete, forward, open, etc. More generally, any type of drop target with which an object in a user interface may be associated or which may employ the information represented by such an object may be presented according to the present invention.
The set of drop target options presented to the user may also be determined in a wide variety of ways. According to some embodiments, at least some of the drop targets are determined with reference to drop targets already open or represented in the interface. For example, as shown in the desktop interface example of
Drop targets may also be determined with reference to the file type associated with the dragged object. That is, for example, as shown in
According to a specific embodiments, drop target options may be determined with reference to parameters associated with the dragging event from which possible targets are inferred. Such parameters might include, but are not limited to, the speed and/or direction of the dragging, the initial position of the dragged object in the interface, the positions of preexisting drop targets in the interface, etc. For example, if the current trajectory of the dragged object is moving the dragged object toward a preexisting drop target in the interface, e.g., Recycle bin 104, a corresponding drop target option, e.g., Recycle bin 106, is presented closer to the dragged object. By contrast, if there is another preexisting object in the interface in the opposite direction of the dragging, that object might not be presented as a drop target option. Similarly, if the speed of the dragging is sufficiently high, potential drop targets which are already relatively close to the dragged object may not be presented in response to the dragging event in favor of objects which are farther away.
Drop targets presented according to the present invention may also be determined with reference to user preferences. That is, the user may be allowed to specify one or more drop targets he would like to appear for drop-and-drag events and/or file types. According to specific embodiments, the user may specify that certain targets appear for all such events. In addition, the user may be able to specify when certain targets appear on a more granular level. For example, the user can specify specific folders as drop targets for particular file types, e.g., the “My Music” folder, or a shortcut to a favorite media player for music files.
Drop targets may also be determined with reference to user behavior while interacting with the user interface. For example, data relating to the frequency of use of particular drop targets could be maintained over time and used to determine a set of drop targets which could continue to evolve over time with the user's habits. As with the examples discussed above, different sets of drop targets may be presented based on other criteria in combination with these data.
That is, as will be understood, various combinations of the foregoing and other criteria may be used to determine the appropriate drop targets to present to the user. For example, even though a user might identify drop target preferences, the determination of which drop targets to present could still be governed by restrictions relating to whether or not a particular dragged object can “legally” be associated with particular targets. In another example, drop targets may be selected from targets currently present in the interface based on the file type of the dragged object. Other combinations of these criteria as well as a wide variety of criteria not set forth in this description may be employed without departing from the scope of the invention.
Some further examples of specific embodiments will now be described with reference to
And as described above, the drop target options may be limited to targets with which the dragged object may be associated. Alternatively and according to some embodiments, whether or not the dragged object may be associated with a particular drop target may be indicated during the dragging operation. For example, in the implementation illustrated in
According to yet another implementation illustrated in
As will be appreciated, the various functionalities described herein may be implemented in a wide variety of computing contexts. For example, as illustrated in
And regardless of the context in which the invention is implemented, the logic employed to control the enhanced drag-and-drop functionalities enabled by the invention may be designed to suit the particular application. For example, in some contexts (e.g., a desktop environment) it might be appropriate for most or all objects in the interface to be drag-and-drop enabled according to the invention. However, in other contexts (e.g., a messaging application) it might only be appropriate for a limited subset of objects in the interface to be so enabled.
In addition, the computer program instructions with which embodiments of the invention are implemented may be stored in any type of computer-readable media, and may be executed according to a variety of computing models including a client/server model, a peer-to-peer model, on a stand-alone computing device, or according to a distributed computing models in which various of the functionalities described herein may be effected or employed at different locations.
It should also be noted that the present invention may be implemented on any computing platform and in any network topology in which drag-and-drop is used or may be useful. For example and as illustrated in
While the invention has been particularly shown and described with reference to specific embodiments thereof, it will be understood by those skilled in the art that changes in the form and details of the disclosed embodiments may be made without departing from the spirit or scope of the invention. For example, the present invention is not limited to the presentation of conventional drop targets. According to a particular embodiment, a list of drop targets may be presented in response to a dragging event which corresponds to the “right click options” corresponding to the dragged object. As is well known to more sophisticated users, selecting an object on a personal computer desktop with the right mouse button results in a menu of available options for the selected object, e.g., Open, Send to, Cut, Copy, Create Shortcut, etc. Enabling access to these options in response to a dragging event would make them more easily discoverable to novice users, as well as enable presentation of such options for devices not having the equivalent of a second mouse button.
In addition, although various advantages, aspects, and objects of the present invention have been discussed herein with reference to various embodiments, it will be understood that the scope of the invention should not be limited by reference to such advantages, aspects, and objects. Rather, the scope of the invention should be determined with reference to the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5638504 | Scott et al. | Jun 1997 | A |
5638505 | Hemenway et al. | Jun 1997 | A |
5740389 | Li et al. | Apr 1998 | A |
5742286 | Kung et al. | Apr 1998 | A |
5745111 | Cline et al. | Apr 1998 | A |
5745112 | Hirose | Apr 1998 | A |
5760773 | Berman et al. | Jun 1998 | A |
5774119 | Alimpich et al. | Jun 1998 | A |
5786805 | Barry | Jul 1998 | A |
6259448 | McNally et al. | Jul 2001 | B1 |
6393429 | Yagi et al. | May 2002 | B1 |
6572660 | Okamoto | Jun 2003 | B1 |
6803929 | Hinegardner et al. | Oct 2004 | B2 |
7055105 | Windl et al. | May 2006 | B2 |
7231609 | Baudisch | Jun 2007 | B2 |
7296025 | Kung et al. | Nov 2007 | B2 |
7739604 | Lyons et al. | Jun 2010 | B1 |
7783985 | Indiran et al. | Aug 2010 | B2 |
20010024212 | Ohnishi | Sep 2001 | A1 |
20020080180 | Mander et al. | Jun 2002 | A1 |
20020196271 | Windl et al. | Dec 2002 | A1 |
20030160825 | Weber | Aug 2003 | A1 |
20030184587 | Ording et al. | Oct 2003 | A1 |
20030208639 | Stern et al. | Nov 2003 | A1 |
20040001094 | Unnewehr et al. | Jan 2004 | A1 |
20040054428 | Sheha et al. | Mar 2004 | A1 |
20040095390 | Arning et al. | May 2004 | A1 |
20040150664 | Baudisch | Aug 2004 | A1 |
20050060653 | Fukase et al. | Mar 2005 | A1 |
20060005164 | Jetter et al. | Jan 2006 | A1 |
20060070007 | Cummins et al. | Mar 2006 | A1 |
20060136833 | Dettinger et al. | Jun 2006 | A1 |
20070016872 | Cummins et al. | Jan 2007 | A1 |
20070033169 | Friedman | Feb 2007 | A1 |
20070150834 | Muller et al. | Jun 2007 | A1 |
Entry |
---|
Baudisch, Drag-and-Drop and Drag-and-Pick, Aug. 2003. |
Collomb, Improving drag-and-drop on wall-sized displays, Canadian Information Processing Society, May 2005. |
Number | Date | Country | |
---|---|---|---|
20070234226 A1 | Oct 2007 | US |