A user is provided with an easy-to-use approach to directly manipulating text in a word processing environment or the like. text may be dragged from one location and dropped in another location to move the text to a new location. More generally, the user is provided with the option of performing a conventional drag and drop operation or an enhanced or non-default drag and drop operation. Separate buttons on a mouse are utilized to differentiate between the two types of drag and drop operations. In the conventional drag and drop operation, default behavior is exhibited when an object is dropped on another object. In the enhanced drag and drop operation, a user is presented a list of options of operations that may be performed when the object is dropped on the other object.
|
4. A computer-readable medium having computer-executable instructions for performing steps comprising:
displaying text in a window;
displaying a cursor in the window, the cursor being responsive to signals from the user interface selection device;
receiving a first selection signal indicating that a portion of the displayed text has been selected;
receiving a first position signal indicating that the cursor is positioned at a first position coinciding with the selected text;
in response to the first position signal, altering the appearance of the cursor to indicate that the selected text may be moved;
receiving a second selection signal, the second selection signal being received while the cursor is in the first position;
in response to the second selection signal, altering the appearance of the cursor to indicate the selected text is in the process of being moved;
receiving a second position signal indicating that the cursor is positioned at a second position, the second positioned being different from the first position, the cursor being moved while the second selection signal is maintained;
receiving a third selection signal; and
in response to the third selection signal, moving the selected text to the second position.
1. In a computer system employing a graphical user interface and including a display and a user interface selection device, a method for moving text displayed in window, comprising the steps of:
displaying text in a window;
displaying a cursor in the window, the cursor being responsive to signals from the user interface selection device;
receiving a first selection signal indicating that a portion of the displayed text has been selected;
receiving a first position signal indicating that the cursor is positioned at a first position coinciding with the selected text;
in response to the first position signal, altering the appearance of the cursor to indicate that the selected text may be moved;
receiving a second selection signal, the second selection signal being received while the cursor is in the first position;
in response to the second selection signal, altering the appearance of the cursor to indicate the selected text is in the process of being moved;
receiving a second position signal indicating that the cursor is positioned at a second position, the second positioned being different from the first position, the cursor being moved while the second selection signal is maintained;
receiving a third selection signal; and
in response to the third selection signal, moving the selected text to the second position.
2. The method of
3. The method of
5. The computer-readable medium of
6. The computer-readable medium of
0. 7. The method of
in response to the first position signal, altering the appearance of the cursor to indicate that the selected text may be moved.
0. 8. The computer-readable medium of
in response to the first position signal, altering the appearance of the cursor to indicate that the selected text may be moved.
|
This application is a division of U.S. patent application Ser. No. 08/278,455, filed Jul. 21, 1994, now abandoned, which is a continuation-in-part of Ser. No. 08/054,565, filed on Apr. 28, 1993, now abandoned, which is a continuation-in-part of Ser. No. 07/794,063, filed on Nov. 19, 1991, now abandoned.
The present invention relates generally to data processing system and, more particularly, to the direct manipulation of information by users, including drag and drop operations.
The ability to manipulate selected portions of text in a document is a common feature of word processing programs. Presently, there are word processing programs which allow a user to select a string of text and manipulate it in some way, such as moving it to a new location on the document, copying it to a new location on the document or deleting it from a document. The problem with such prior art systems is that they require a user to go through several time-consuming steps before the text manipulation is actually carried out.
For example, to move a string of text from one location to another in a document using a typical prior art system, a user is required to 1) select the string of text to be manipulated; 2) delete or “cut” the selected string of text from the location using a combination of keys or by selecting the delete or cut command; 3) move the insertion point to the new location on the document where the selected string of text is to be moved; and 4) insert or “paste” the selected string of text to the new location using a combination of keys or by selecting the insert or paste command. Similar steps are required for copying text from one location to another in a document.
In word processing systems such as Microsoft Word, that support mouse operations, a user may select text with a mouse by positioning the point at the beginning of the selection, depressing a predefined mouse button, dragging the insertion point to the end of the selection while holding down the mouse button and then releasing the mouse button. After selection, cut and paste operations, such as described above, may be performed on the selected text.
The prior art systems require a user to be familiar with a variety of function keys and edit commands. When the user is making numerous revisions to a document, it is inconvenient to perform so many steps in order to move or copy text. The user is forced to perform awkward key combinations, such as depressing the Shift key and the Delete key at the same time. No technique is known in the word processing environment for moving or copying text without going through time-consuming cut and paste type operations or performing awkward key combinations.
In accordance with the first aspect of the present invention, a method and system is provided for directly manipulating text in a word processing environment or the like. After a user has selected text to be manipulated, the manipulation may be carried out with little effort on the part of the user. In accordance with this aspect of the present invention, the user merely positions the mouse pointer over the selected text, depresses and holds down a predefined mouse button, drags the insertion point to a new location and then releases the mouse button. Depending on whether the Alt key was depressed when the mouse button was released, the user may be presented with options such as whether the manipulation should be to move, copy or link the selected text, or the selected text may be moved and no option presented.
In accordance with another aspect of the present invention, a method is practiced in a data processing system having an input device and a video display. In this method, a source-visual element, such as an icon that is associated with the source object, is displayed on the video display along with a cursor and a target-visual element, such as an icon that is associated with the target object. The source-visual element is selected for movement in response to a user positioning the cursor in proximity with the source-visual element using the input device. The input device may be a mouse with at least two buttons. The source-visual element is moved on the video display in response to use of the input device by the user. The source-visual element is displayed on the video display in proximity to the target-visual element. The source-visual element may be moved in response to the user depressing a predetermined one of the buttons of the mouse and moving the mouse when the input device is a mouse with at least two buttons.
The source-visual element is dropped on the target-visual element in response to the use of the input device by the user while the source-visual element is in proximity with the target-visual element. If the input device is a mouse with at least two buttons, the source-visual element may be dropped by releasing the predetermined one of the buttons that was depressed to move the source-visual element. The menu of operations is then displayed on the video display. One of these operations may be selected by the user and involve the source object and the target object. The system determines if any of the operations displayed on the menu is selected by the user and determines the identity of any such user-selected operation. The system then performs the user-selected operation with the source object and the target object.
The menu of operations displayed on the video display may display a default operation. The default operation may have a visual indication or queue which indicates that it is the default operation. For example, the default operation may be boldfaced.
In accordance with another aspect of the present invention, a method is practiced wherein the first visual element that is associated with the first object is dragged across the video display to be in proximity with the second visual element that is associated with the second object on the video display. The drag is performed in response to a user using the input device (such as a mouse). The first visual element is dropped onto the second visual element in response to the user using the input device to perform a first default operation. The first default operation involves the first object of the second object. When the input device is a mouse with the first button and a second button, the drag and the drop is performed using the first button of the mouse.
A third visual element that is associated with the third object is dragged across the video display in response to the user using the input device to be proximity of a fourth visual element that is associated with the fourth object. The third visual element is then dropped onto the fourth visual element of the video display in response to the user using the input device. When the input device is the mouse having the first and second buttons, the dragging of the third visual element and dropping of the third visual element is performed using the second button. A menu of operations that the user may perform with the third object and the fourth object is displayed on the video display in response to the dropping of the third visual element. The system determines if any of the operations displayed on the menu have been selected by the user and determines the identity of any such user-selected operation. The system then performs the selected operation.
In accordance with still another aspect of the present invention, the first type of drag and drop operation is performed in response to the user using a first button of a two-button mouse to interact in the first drag and drop operation. The first type of drag and drop operation includes a drag portion and a drop portion. A default operation is performed after the drop portion of the first drag and drop operation.
A second drag and drop operation is then performed. The second drag and drop operation also has a drag portion and a drop portion. The second drag and drop operation is performed in response to the user using the second button of the mouse to interact with the system in the second drag and drop operation. After completion of the drop portion of the second drag and drop operation, a menu is displayed in the video display which lists choices of operations that the user may select to be performed as a result of the second drag and drop operation. The system determines which of the operations displayed on the menu is selected by the user and performs a selected operation.
A first preferred embodiment of the present invention provides a method and system for directly manipulating text in a word processing environment or the like in a fashion that requires little effort on the part of the user. For example, the user may drag and drop text in order to move the text to new locations. In accordance with a second preferred embodiment of the present invention, the user is provided with the option of providing an expanded drag and drop operation in which the user selects and performs one of several different operations, rather than merely performing the default operation or employing difficult to use modifier keys to perform a limited number of operations. In this second preferred embodiment, the user also has the option of performing a conventional drag and drop operation. The drag and drop operations are not limited to text manipulations.
As is illustrated in
The process determines in step 102 that the pointer is positioned over the selected text and proceeds to step 105, where the pointer shape is changed. In the preferred embodiment described herein, the pointers change from its normal I-beamed shape to a slanted arrow. Once the pointer is positioned over the selected text, the process queries in step 106 whether the mouse button is down. If the mouse button is not down, the process loops at step 106. If the mouse button is down, the process continues on to step 107 where the pointer shape is then changed and the insertion point is displayed to mark the location in the document corresponding to the pointer position.
The process then queries in step 108 where the insertion point is positioned inside the selected text. The process checks the location of the insertion point rather than the pointer, because the pointer could be pointing to a location in the document other than the selected text while the insertion point is still within the selected text. Because the pointer may be positioned over any part of the screen, it follows the insertion point for the word processing documents does not always appear directly under the pointer. As shown in
When the insertion point is positioned inside of the selected text, the process queries in step 109 whether the mouse is still down. The process remains in the loop while the insertion point is positioned inside any part of the selected text and the mouse button 12 is down. If the mouse button 12 has been released while the insertion point is positioned inside of the selected text, the process continues on to step 110 where the selection is canceled and the process is terminated. The user may begin the process again by selecting text.
If the process determines in step 108 that the insertion point is positioned outside of the selected text, the process skips to step 111. In step 111 the process queries whether the mouse button is still down. While the mouse button is down, the process merely loops at step 111, waiting for the mouse button to be released. When the mouse button is released, the process continues on to step 112, where the selected text is moved to the location marked by the insertion point. The text remains highlighted in its new location and the pointer changes shape, the shape depending on the location of the pointer.
The second preferred embodiment of the present invention focuses on the non-default drag and drop feature described above relative to a word processing program. The second preferred embodiment of the present invention provides a more generalized mechanism for non-default drag and drop operation.
The second preferred embodiment of the present invention enables the user to perform a conventional drag and drop operation or, alternatively, a non-default drag (enhanced) and drop operation. The second preferred embodiment is applicable to any drag and drop operation and is not limited to drag and drop operations that involve text.
The second preferred embodiment of the present invention is especially well adapted for use in an object oriented programming environment. Hence, in the second preferred embodiment of the present invention described herein, the code for the operating system 50 provides an object-oriented programming environment. The target and source of the drag and drop operation are implemented as “objects.” An object is a combination of data members (i.e., attributes held in data structures) and member functions that act upon the data members. Those skilled in the art will appreciate, however, that the second preferred embodiment of the present invention need not be implemented in an object-oriented programming environment.
The non-default or expanded drag and drop operation of the second preferred embodiment of the present invention is performed by executing the steps shown in the flowchart of FIG. 13. The expanded drag and drop operation is initiated by positioning the cursor 16 (
Each application program run on the operating system has a separate message queue. Each application program retrieves messages from the message queue using a selection of code known as the “message loop.” Once the application program has retrieved a message from its message queue, the application program determines which window procedure should receive the message. A separate window procedure is provided for each window. The application program may provide several windows, and thus, the application program must determine which window is the proper destination for the message when the message is retrieved from the queue.
When the cursor 16 is positioned over the source-visual element 20, a message is generated that specifies the position of the cursor and the window which holds the source visual element 20. This message provides a relative position of the cursor 16 in (X,Y) coordinates relative to the upper left-hand corner of the window. The window procedure associated with the window that holds the source-visual element 20 receives this message and passes the message to the code for the source object 46 (FIG. 3). When the secondary button 14 (
Once step 152 of
When the source-visual element 20 is positioned over the target-visual element 22, the secondary button 14 of the mouse 10 is released to drop the source visual element (step 156 in FIG. 13). The code for the operating system 50 (
In order to understand what occurs once the source-visual element 20 (
Once the available operations have been determined, a context menu 163 (
While the present invention has been described with reference to a preferred embodiment thereof, those skilled in the art will, nevertheless, appreciate that various changes in form and detail may be made without departing from the present invention, as defined in the appended claims.
Patent | Priority | Assignee | Title |
7337409, | Sep 25 2002 | Siemens Aktiengesellschaft | Customizable drag and drop for industrial software applications |
8351713, | Feb 20 2007 | Microsoft Technology Licensing, LLC | Drag-and-drop pasting for seamless image composition |
9342278, | Feb 27 2013 | Siemens Aktiengesellschaft | Method and program editor for creating and processing a program for an industrial automation arrangement |
Patent | Priority | Assignee | Title |
4931783, | Jul 26 1988 | Apple Inc | Method and apparatus for removable menu window |
5040131, | Dec 23 1987 | International Business Machines Corporation | Graphical processing |
5140678, | May 04 1990 | International Business Machines Corporation | Computer user interface with window title bar icons |
5157763, | Oct 15 1987 | International Business Machines Corporation | Visually assisted method for transfer of data within an application or from a source application to a receiving application |
5276795, | Mar 15 1989 | Sun Microsystems, Inc. | Method and apparatus for selecting and executing defaults in a window based display system |
5630080, | Nov 19 1991 | Microsoft Technology Licensing, LLC | Method and system for the direct manipulation of information, including non-default drag and drop operation |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 02 2001 | Microsoft Corporation | (assignment on the face of the patent) | / | |||
Oct 14 2014 | Microsoft Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034541 | /0001 |
Date | Maintenance Fee Events |
Jul 07 2006 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jul 01 2010 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 22 2008 | 4 years fee payment window open |
May 22 2009 | 6 months grace period start (w surcharge) |
Nov 22 2009 | patent expiry (for year 4) |
Nov 22 2011 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 22 2012 | 8 years fee payment window open |
May 22 2013 | 6 months grace period start (w surcharge) |
Nov 22 2013 | patent expiry (for year 8) |
Nov 22 2015 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 22 2016 | 12 years fee payment window open |
May 22 2017 | 6 months grace period start (w surcharge) |
Nov 22 2017 | patent expiry (for year 12) |
Nov 22 2019 | 2 years to revive unintentionally abandoned end. (for year 12) |