The present disclosure relates to a method and apparatus for using multiple mouse cursors within the viewable area for a computer.
As computer technology matures, the amount of information a user might wish to display on the screen of his computer is increasing. As a result, users strive to increase the amount of viewable area for the graphical user interfaces for their computers, such as by using two monitors (
As shown in
However, with the viewable area increased in this fashion, the user now may have to move the mouse cursor 30 through relatively long distances. For example, if the user wishes to provide a fill to shape 22a, he must first select the shape 22a using the mouse cursor 30, then move the mouse cursor over to the right monitor 12b to select the appropriate fill from the palette 24, and then move the mouse cursor 30 back to the shape 22a to apply the selected fill, as exemplified by the dotted-line arrow in
The foregoing is merely one example of the problems caused by increases in viewable area and its concomitant requirement to move the mouse cursor 30 through long distances. Other applications will suffer from the same problem, such as moving, copying, or pasting files or objects from one portion of the viewable area to another, or among application programs 20, etc. Moreover, the problem is not limited to the use of multiple-monitor set ups. Thus,
The salient point is that as viewable areas for computers increase, the problem of having to move the mouse cursor 30 over relatively long distances also increases. This tends to make user interaction with the graphical user interface less efficient and tiring. The subject matter of the present disclosure is directed to addressing these and other problems.
Methods are disclosed for displaying and manipulating a plurality of mouse cursors at different locations in a viewable area for a computer. In a preferred embodiment, only one mouse cursor is active and moveable at any one time, with the user being allowed to switch or toggle among them to activate an appropriate mouse cursor. Each mouse cursor is preferably, but not necessarily, restrained within a region of the viewable area of the monitor or monitors with which the technique is employed. The user can select among the active and inactive mouse cursors in different ways, such as by pressing an appropriate key on the keyboard, by moving the active cursor to the border of its region, etc. Inactive mouse cursors are preferably centered in their respective regions when rendered inactive, although they can also be left in last active positions. The regions associated with the mouse cursors can be defined to suit user preferences, and can be set up to encompass logical regions within the viewable area (e.g., left and right portions, quadrants, main workspace, menu/toolbar areas, etc.). Particular regions can span past the physical borders of the monitors, and can also be made to overlap. In an alternative embodiment, each cursor is not restrained to its particular region, and more than one mouse cursor can appear within the same region. Data associated with the presently-active cursor can be automatically moved to a newly-active cursor when the cursors are switched. Using the disclosed technique, the distance that the cursors must move is lessened, making it simpler for the user to interact with the graphical user interface present within the viewable area.
The foregoing summary is not intended to summarize each potential embodiment or every aspect of the present disclosure.
The foregoing summary, preferred embodiments, and other aspects of subject matter of the present disclosure will be best understood with reference to a detailed description of specific embodiments, which follows, when read in conjunction with the accompanying drawings, in which:
While the disclosed techniques are susceptible to various modifications and alternative forms, specific embodiments are shown by way of example in the drawings and are herein described in detail. The figures and written description are not intended to limit the scope of the inventive concepts in any manner. Rather, the figures and written description are provided to illustrate the inventive concepts to a person skilled in the art by reference to particular embodiments, as required by 35 U.S.C. § 112.
To solve the foregoing problems of the prior art, the user's viewable area displays a plurality of mouse cursors at different locations. In a preferred embodiment, only one mouse cursor is active at any one time, with the user being allowed to select among them to activate an appropriate mouse cursor. For example, and as a quick summary of one aspect of the technique, in a dual-monitor set up, one mouse cursor can be located in the right monitor, while the other mouse cursor can be located in the left monitor. Furthering the example set forth in the Background section, the user selects (i.e., activates) the left monitor 12a's mouse cursor to select an appropriate shape 22 for filing; then selects (activates) the right monitor 12b's mouse cursor; moves the right monitor 12b's mouse cursor to select an appropriate fill from a palette 24 on the right monitor; re-selects the left monitor 12's mouse cursor; and then moves the left monitor 12a's mouse cursor back to the shape to apply the fill. Using this scheme, the amount that the user must move the mouse cursor is lessened.
Further details and other aspects of the technique are first illustrated with reference to
As a default, the mouse cursors 50a, 50b are initially set for display in the centers of their respective regions 60a, 60b as shown, although other default locations or pre-determined locations could be used as well (e.g., the upper left corners of the regions). As noted earlier, only one mouse cursor 50a or 50b is active at any given time, meaning that only one is capable of being moved with the mouse 16 or other input device. As illustrated, the active cursor is 50a, which is shown as a circled cursor. The other mouse cursor, 50b, is currently inactive, meaning that it is not presently capable of being moved using the mouse 16 or other input device. Inactive mouse cursor 50b is not circled to represent the same, and to differentiate it from the active mouse cursor 50a. Of course, in a commercial embodiment, highlighting of the active cursor could be achieved in ways other than changing that's cursor's shape, such as by graying the inactive cursor or rendering it transparent, by providing different colors for the active and inactive cursors, by causing the active cursor to blink, etc. In other words, the active and inactive cursors are preferably made visually-perceptibly different. In any event, the active mouse cursor 50a is controllable in its movement within region 60a, preferably by the mouse 16, although other input devices can be used to move the active cursor 50a such as the keyboard 14 or other input devices as known in the art. So activated, mouse cursor 50a can be used to perform, within region 60a, any of the functions normally performed by mouse cursors, such as selecting objects, dragging and dropping objects or files, etc.
Of course, should the mouse cursor need to interact with aspects outside of region 60a, i.e., in region 60b, the active cursor can be switched or toggled from 50a to 50b, at which time cursor 50b would be circled or otherwise highlighted as discussed above (not shown). Cursor 50a, now inactive, would be un-circled (or un-highlighted). Additionally, the inactive cursor 50a's position might be reset. For example, the position of inactive mouse cursor 50a in a preferred embodiment might be reset to the center of region 60a. Centering of the inactive mouse cursor might be preferred where it is uncertain what the user -would want to interact with next when he returns to region 60a, and so through centering the cursor is made generally equidistant. Of course, other default locations or pre-determined locations could be used for the inactive cursors, such as the upper left corners of the respective regions, etc.
However, in other embodiments, the now-inactivated mouse cursor could be left in the position where it was last active. Such an embodiment might be useful in the shape filling example discussed above, and is illustrated with respect to
Switching or toggling among the mouse cursors to render one active can occur in any number of ways. In a preferred embodiment, a key on the keyboard 14 (see
In another modification, and in an embodiment in which the switching key on the keyboard is one which would otherwise be widely used during the application, the switching function can be achieved by pressing a key, such as the space bar, only when the active mouse cursor is being moved by the mouse 16. In this way, the key used to perform the switching function can be used for its normal purpose when the mouse 16 is not being moved, and can be used to switch between the active and inactive mouse cursors when the mouse 16 is being moved.
Switching or toggling among active and inactive mouse cursors can occur in other ways. For example, in embodiments in which the mouse cursors are restrained and can appear only in their respective regions (i.e., cursor 50a in region 60a; cursor 50b in region 60b in
Although the foregoing embodiments illustrate embodiments of the invention in which multiple monitors 12a, 12b are used, it should be noted that the techniques can be used within a single monitor as illustrated in
It should be understood that means for switching or toggling among the active and inactive mouse cursors in the one-monitor-embodiments of
As the embodiments of
While the foregoing embodiments illustrate multiple mouse cursor techniques in which the cursors are restrained to their respective regions, not all useful embodiments need be so implemented. For example, and as shown in
As alluded to earlier, a given mouse cursor can be associated with data to be applied elsewhere within the viewable area. As an illustration of this, and referring back to the example of
In less preferred embodiments of the invention, the inactive cursors (e.g., 50b) can simply not be displayed at all, which might in some cases alleviate user confusion as to the cursor which is presently active and moveable using the mouse. In short, instead of displaying inactive cursors in a non-highlighted fashion, such cursors can simply not be displayed at all until such time as they are selected (i.e., switched to) by the users, at which point of course they would be displayed on the viewable area of the computer (perhaps as confined to its respective region).
Additionally, should a user provided with multiple mouse cursors not wish to use such improved functionality, it could be rendered temporarily or permanently disabled to return the user to a more traditional single-mouse-cursor approach. For example, the user may wish in a given mouse cursor manipulation step to temporarily allow the active mouse cursor to transgress outside of its region (i.e., in those embodiments in which a given cursor is constrained to a particular region). In such an instance, the user can temporarily disable the border constraints provided by the cursor's region to allow the cursor to move outside of the region, for example, by pressing (and perhaps pressing and holding) a particular key on the keyboard or a particular mouse button. Either temporary or permanents disablement of the multiple cursor option could be achieved via an appropriate selection in a preferences window, as one skilled in the art would recognize.
With the foregoing illustrating basic descriptions of the multiple mouse cursor technique in its various forms, details of an exemplary implementation are discussed by way of an experiment used to test the utility of the technique. While this experiment was coded in a particular environment deemed suitable for testing, one skilled in the art will recognize that in an actual implementation of the technique that coding similar to that described below (with necessary routine modifications for the coding environment in question) would be made, and that such coding could occur as the application program level (to allow particular programs to run multiple cursors) or at the operating system level (to allow all programs running within the operating system to use multiple cursors). Implementation of the technique at the operating system level is believed particular significant, as current operating systems (such as Microsoft Windows™, Apple OS X™, etc.) are understood to support one mouse cursor. Either way, implementation at either the operating system level or at the level of a specific application program would be a routine undertaking given the basic description of the technique discussed below. Moreover, the technique can be coded into an operating system or application program in the first instance, or can constitute an augmentation to such environments. Depending on the environment and manner in which it is coded, the technique can be used in any display environment, such as across application programs in an operating system, within particular application programs, from between suites or families of programs, or more generically within a given window or between given windows or regions in the viewable area of a computer.
In the experiment, Macromedia Flash™ (“Flash”) was used in conjunction with MDM Flash Studio Pro™ (“Flash Studio Pro”) to illustrate the utility of the disclosed technique. As one skilled in the art will understand, Flash Studio Pro is an extension used to increase Flash's utility and functionality. As relevant here, Flash Studio Pro provides routines which allow the X-Y position of a mouse cursor to be retrieved (“get cursor”) and set (“set cursor”).
In the experiment using Flash, Flash removed the mouse cursor image provided by the operating system from the viewable area. In its place, multiple mouse cursor images were generated and displayed in the viewable area, with their positions noted and stored (“active_cursor_x_position,” “active_cursor_y_position, ” “inactive_cursor_x_position,” (“inactive_cursor_y_position”; this of course assumes only two cursors are used).
Using Flash, the movement of the operating system mouse was tracked, even though the cursor image had been removed, with the active cursor image being displayed where the operating system's cursor would be. This allowed the active cursor image to move in accordance with the operating system cursor. The inactive mouse cursor's image (50b), by contrast, remained a mere graphic whose location had been stored previously noted.
Key presses were tracked using Flash, including any keys (e.g., the space bar) designed to toggle the active mouse as noted earlier. When the activation of such a toggling key was detected, or any other event designed to toggle between cursors such as those mentioned above, a “switch cursor” function was invoked, which included and used the “get cursor” and “set cursor” functions noted earlier. Specifically, the “switch cursor” function first retrieved and stored the present location of the active cursor (50a) (using “get cursor”), and the previously-stored X-Y position for the inactive cursor (50b) was retrieved and set (using “set cursor.”). Finally, the images for the active and inactive cursors were switched. (If necessary, the newly inactivated cursor's image (50a) can be reset to the center of its corresponding region, as discussed above, in embodiments in which a cursor's previous position is not maintained). As will be understood, this mapping and tracking of the various X-Y coordinates may require understanding and application of various offsets to account for differences in the origin values for the mouse cursor as understood by the operating system, but correcting for such coordinate shifts is a routine matter.
Moreover, because the experiment employed the embodiment in which a particular mouse cursor image was bound to a particular region, Flash tracked the position of the active cursor (e.g., using “get cursor”). If the cursor was detected to be outside of the cursor's associated region, the cursor was set back to a position within the region (using “set cursor”) to in effect limit the cursor's movement to within the particular region.
Further details concerning use of the disclosed techniques, and experimental results, are included in a paper submitted by the inventor for publication: Wilson Chan & Sheryl Ehrlich, “Cursor Jumping: Using Multiple Cursors to Minimize Cursor Movement Across a Multi-Monitor Display,” submitted to CHI 2005 on Dec. 13, 2004. The submitted paper is included with an Information Disclosure Statement being filed with this patent application, and is incorporated by reference in its entirety.
The present disclosure amply illustrates to a computer programmer of skill how to implement the disclosed techniques, the accompanying user interfaces, and other functional aspects of the present disclosure. Therefore, programming such algorithms, accompanying user interfaces, and other functional aspects is a routine matter to a computer programmer of skill and can be accomplished using many different programming languages and within the context of many different operating systems. Of course, the disclosed algorithms, the accompanying user interfaces, and other functional aspects would be ultimately coded into a computer code and stored on a computer-readable media, such as a compact disc, a tape, stored in a volatile or non-volatile memory, etc.
While disclosed in the context of a traditional computer, it should be understood that the disclosed methods are not so limited. For example, the disclosed methods can have applicability with respect to other devices such as handheld devices (Personal Data Assistants, cell phones, etc.) and other multimedia devices (such as televisions, etc.), or other electronic display devices, all of which should be considered as “computers” for purposes of this disclosure.
As used herein, the “viewable area” of a computer should be understood as denoting that area or those areas which a particular computer is capable of controlling, whether it be a single, dual, or multiple monitors, single, dual, or multiple windows, or other structures other than monitors, such as a projection screen. In this regard, it is worth noting that the disclosed multiple-mouse-cursor techniques are expected to have particular utility in multimedia applications having different types of viewing mediums. For example, a notebook computer coupled to a projector display could comprise two different regions (such as 60a, 60b) each with its own cursors (such as 50a, 50b), which together comprise a single “viewable area.” A “viewable area” may also be understood to include discrete aspects within the viewable area of the monitor, such as individual windows displayed as part of the graphical user interface. Furthermore, while disclosed as being a traditional two-dimensional space, a “viewable area” can encompass newer technologies having a three-dimensional flavor, such as heads up displays, projective displays such as holograms for example, etc.
A “mouse” as used herein should be understood as including any device capable of translating a user's multi-directional movements into a multi-dimensional movement of the mouse cursor within the moveable area, and so would include traditional mobile mice, pointing devices, trackballs, and touchpads activatable by a user's fingertip (such as trackpoints used in conventional laptop computers), whether 2-dimensional or 3-dimensional in nature. “Moving” of the cursor should be understood as smooth, pixel-by-pixel movement.
The foregoing description of preferred and other embodiments is not intended to limit or restrict the scope or applicability of the inventive concepts disclosed. In exchange for disclosing the inventive concepts contained herein, the Applicants desire all patent rights afforded by the appended claims. Therefore, it is intended that the appended claims include all modifications and alterations to the full extent that they come within the scope of the following claims or the equivalents thereof.