METHOD FOR DRAGGING AND DROPPING BETWEEN MULTIPLE LAYERED WINDOWS

Abstract: Methods for manipulating a plurality of layered windows on a display are described. Specifically, methods for manipulating layered windows comprises the steps of moving a pointer to a visible portion of a partially hidden window and holding the pointer at the visible portion for a predetermined period of time. Responsive to the holding for a predetermined period of time, the partially hidden window is revealed. One exemplary embodiment of the present invention involves employing the method for manipulating layered windows to drag and drop an object between the layered windows. According to other exemplary embodiments of the present invention, during the drag of an object, holding down a predetermined key on the keyboard can send the top-most-layered window to the back thereby disclosing other windows. If no drop occurs at the end of a drag operation, windows are returned to their original layers. However, if a drop occurs, the window in which the object is dropped becomes the topmost layer while other windows return to their original layers.

Description: METHOD FOR DRAGGING AND DROPPING BETWEEN MULTIPLE LAYERED WINDOWS BACKGROUND The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to systems and methods for interfacing applications and operating systems which provide for flexible manipulation between multiple layered windows. The evolution of the computer industry is unparalleled in its rate of growth and complexity. Personal computers, for example, which began as little more than feeble calculators with limited memory, tape-driven input and monochrome displays are now able to tackle almost any data processing task. While this meteoric increase in power was almost sufficient to satisfy the demand of application programmers and end users alike, the corresponding increase in complexity created an ease-of-use problem which the industry was somewhat slower in solving. Thus, designers were faced with a new challenge: to harness this computing power in a form usable by even those with relatively little computer training to smooth the transition of other industries into a computer-based information paradigm. As a result, in the early to mid- 1980 's many new I/O philosophies, such as "user friendly", "WYSIWYG" and "menu driven" came to the forefront of the industry. These concepts are particularly applicable to microcomputers, also known as personal computers, which are intended to appeal to a broad audience of computer users, including those who previously feared and mistrusted computers. An important aspect of computers which employ these concepts was, and continues to be, the interface which allows the user to input commands and data and receive results, which is commonly referred to as a graphical user interface (GUI). Figure 1 illustrates an exemplary GUI display. The GUI display illustrated in Figure 1 is based on a visual metaphor which uses a monitor screen as a work surface called a "desktop". Icons 20 which can represent documents, applications, folders and system controls can be presented on the desktop in relocatable regions termed "windows". Figure 1 illustrates two windows; an active window 12 and an inactive window 14. The term active window refers to a window which is on the topmost layer of the desktop, while the term inactive window refers to a window which is not on the top-most layer of the desktop. The user interacts with the computer by, for example, moving icons 20, choosing commands, e.g., command 6, from menus, e.g., menu 2, on menu bars e.g., menu bar 1, and manipulating window controls, for example, with the use of a cursor 10. Figure 2 illustrates a conventional method for moving icons between windows. Initially, the cursor is placed over the icon to be moved (Step 201) and the icon is selected (Step 202). Next the cursor is placed over the menu bar (Step 203) and the desired menu is selected (Step 204). The cursor is placed over the menu item corresponding to a desired operation to be performed on the selected icon (Step 205) and the menu item is selected (Step 206). Once the operation to be performed on the selected icons has been selected the destination for the icon is selected. Accordingly, the cursor is placed over a visible portion of a window (Step 207) and the window is selected (Step 208). Next the user determines whether the selected window is die destination window (Step 209). If the selected window is not the destination window ("No" path out of decision Step 209) the user continues to place the cursor over visible portions of windows (Step 207) and continues to select the windows (Step 208) until the destination window has been selected. When the user determines that the selected window is the destination window ("Yes" path out of decision Step 209), the cursor is placed over the menu bar (Step 210) and the desired menu is selected (Step 211). Next the cursor is placed over the menu item corresponding to the desired operation (Step 212) and the menu item is selected (Step 213). Accordingly, the desired operation, e.g., pasting of the icon in the destination window, is completed. It will be appreciated that moving icons between layered windows in accordance with conventional methods requires a user to perform many steps. Moreover, the deeper the destination window is below the active window the more steps will be required of a user to select the destination window. Furthermore, with the increase in number of required steps, the more likely for a user to be confused and lost of the objective, e.g., forgetting which icon is being moved. SUMMARY According to exemplary embodiments of the present invention, methods for manipulating a plurality of layered windows on a display include moving a pointer to a visible portion of a partially hidden window and holding the pointer at the visible portion for a predetermined period of time. Responsive to the holding for a predetermined period of time, the partially hidden window is revealed. An advantage of the method according to the present invention involves the ability to drag an object from a window and before dropping the object, to easily search for the desired destination window through multiple layered windows. Moreover, another advantage of methods according to the present invention involves by moving the pointer outside all windows, windows are returned to their original display layers. According to other exemplary embodiments of the present invention, during the drag of an object, holding down a predetermined key on the keyboard can send the top-most-layered window to the back thereby disclosing other windows. If no drop occurs at the end of a drag operation, windows are returned to their original layers. However, if a drop occurs, the window in which the object is dropped becomes the topmost layer while other windows return to their original layers. BRIEF DESCRIPTION OF THE FIGURES The objectives and advantages of the present invention will be understood by reading the following detailed description in conjunction with the drawings, in which: Figure 1 depicts an exemplary desktop in which the present invention can be implemented; Figure 2 illustrates a conventional method for moving an object; Figure 3 depicts an exemplary computer system in block diagram in which the present invention can be implemented; Figure 4 illustrates an exemplary computer system in which the present invention can be implemented; Figure 5 illustrates selecting an object on a desktop; Figure 6 illustrates the selection of an inactive window in accordance with an exemplary embodiment of the present invention; Figure 7 illustrates the dropping of an icon in accordance with an exemplary embodiment of die present invention; Figure 8 illustrates the returning of windows to their original layered order in accordance with an exemplary embodiment of the present invention; and Figure 9 illustrates a method for moving an object in accordance with an exemplary embodiment of the present invention. DETAILED DESCRIPTION In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular GUIs, techniques, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced in any type of display system having a user interface that depart from these specific details. In other instances, detailed descriptions of well-known methods, GUIs, and operating systems are omitted so as not to obscure the description of the present invention. It will be readily appreciated by those skilled in the art that user interfaces and elements of user interfaces according to the present invention can be used in combination with any system having a processor and a display. IN general, such computer systems, as illustrated in block diagram form by Figure 3, comprise a bus 300 for communicating information, a processor 301 coupled with the bus for processing information and instructions, a random access memory 302 coupled with the bus 300 for storing information and instructions for the processor 301, a read only memory 303 coupled with the bus 300 for storing static information and instructions for the processor 301, a data storage device 304 such as a magnetic disk and disk drive or CD ROM drive coupled with the bus 300 for storing information and instructions, a display device 305 coupled to the bus 300 for displaying information to the computer user, an alphanumeric input device 306 including alphanumeric and function keys coupled to the bus 300 for communicating information and command selections to the processor 301, a cursor control device 307 coupled to the bus for communicating information and command selections to the processor 301, and a signal generating device 308 coupled to the bus 300 for communicating command selections to the processor 301. The display device 305 utilized witii the computer system and die present invention may be a liquid crystal device, cathode ray tube, or other display device suitable for creating images and/or alphanumeric characters (and/or ideographic character sets) recognizable to the user. The cursor control device 307 allows the computer user to dynamically signal the two dimensional movement of a visible symbol (cursor) on a display screen of the display device 305. Many implementations of the cursor control device are known in the art including a trackball, mouse, joystick or special keys on the alphanumeric input device 306 capable of signaling movement of a given direction or manner of displacement. It is to be appreciated that the cursor also may be directed and/or activated via input from the keyboard using special keys and key sequence commands. Alternatively, the cursor may be directed and/or activated via input from a number of specially adapted cursor directing devices, including those uniquely developed for the disabled. In the discussions regarding cursor movement and/or activation within the preferred embodiment, it is to be assumed that the input cursor directing device or push button may consist any of those described above and specifically is not limited to the mouse cursor device. Figure 4 illustrates an exemplary computer system in which the present invention can be implemented. It will be appreciated that this computer system is one of many computer systems that can include die present invention. Therein, a keyboard 400 with keys 402 and keypad 404 is attached to the computer 406 along with a mouse device 408 and mouse push button(s) 410 for controlling cursor. The mouse device and push button 410 make up a cursor control device 307. It will be appreciated that many other devices may be used as the cursor control device 307, for instance the keyboard 400 may be substituted for the mouse device 408 and button(s) 410 as just discussed above or, alternatively, a touch-sensitive screen or speech recognition device (not shown) may be used. The computer 406 also typically contains a one or more media drives 411 (e.g., floppy disk, hard disk or CD ROM) and a display screen 412. Having described exemplary computer systems in which user interfaces according to the present invention can be implemented, the discussion now turns to a description of such user interfaces. Figure 9 illustrates a med od for moving an object in accordance with exemplary embodiments of the present invention. Initially, the cursor is to be placed over a desired icon object (Step 601) and the object is selected (Step 602). Once a object is chosen, it can be dragged to any portion of the desktop. Accordingly, the computer system determines which action has been performed by the user (Step 603). If the system determines that the user has dragged d e object to a visible portion of a window ("Drag" path out of decision step 603) then when the user holds the dragged icon over the visible portion of the window for a predetermined amount of time the window is brought to the top-most layer (Step 611). Next the user determines whether the window is the destination window (Step 612). If the window is not the destination window ("No" path out of decision step 612) then the user drags the icon outside of the window to return the window to its original layer (Step 613) and the system determines which action has been performed by the user (Step 603). If, however, the user determines that the window is the destination window ("Yes" path out of decision step 612) the user drops the object in the window and the window becomes the top-most-layered while other windows return to their original layers (Step 640). If the system determines that d e user, after selecting the object (Step 602), has pressed a predetermined key on the keyboard ("Key" path out of decision step 603) then the system sends the top-most-layered window to the bottom-most-layer, thereby making the second top-most-layered window the top-most-layered window (Step 620). Next the user determines whether the top-most-layered-window is the desired destination window (Step 622). If the top-most-layered- window is not the desired destination window ("No" path out of decision step 622) then the system determines which action has been performed by the user (Step 603). If, however, the user determines that the top-most-layered- window is the desired destination window ("Yes" path out of decision step 622) then the user drops the object in the window and the window becomes the top-most-layered while other windows return to their original layers (Step 640). If the system determines that the user, after selecting the object (Step 602), has released the object ("Release" path out of decision step 603) then all windows are returned to their original layers (Step 630). Figures 5-8 illustrate the drag-and-drop operation in accordance with exemplary embodiments of the present invention. Therein, blocks performing similar functions as in Figure 1 retain the same reference numerals. In Figure 5 Window 1 is an active window 13 and Window 2 is an inactive window 14. If it is desired to move an icon 20, e.g., Folder A, from Window 1 to Window 2 the cursor 10 is placed over Folder A in Window 1 and Folder A is selected. The selection of Folder A is illustrated by the highlighted icon. As illustrated in Figure 6 when Folder A is dragged to a visible portion of Window 2 and a predetermined amount of time has passed, Window 2 is brought to the top-most layer of the desktop and becomes the active window 16. Moreover, Window 1 becomes an inactive window 18. Those skilled in the art will appreciate that since the chosen item is not yet dropped, Folder A is still considered an item in Window 1. Thus, as illustrated in Figure 6 the status bar of Window 1 indicates that Window 1 contains 2 items, including Folder A. If the user determines that Window 2 is the desired destination window, the user can release Folder A in Window 2. Figure 7 illustrates the desktop after Folder A has been dropped onto Window 2. As illustrated in Figure 7, once Folder A is dropped in Window 2, Window 2 remains at the top-most layer and Folder A is removed from Window 1. Further, Window 1 remains as an inactive window 18. It will be recognized that the manipulation of an icon between an active window and an inactive window described above in connection with Figures 5-7 is substantially less complex than would be required using conventional methods. In accordance with exemplary embodiments of the present invention the manipulation of active and inactive windows can also be simplified by pressing a predetermined key on the keyboard. By pressing a predetermined key on the keyboard the active window becomes the bottom most window of the tiled windows and die inactive window which is one layer below the active window becomes the active window. Referring again to Figure 5, after selecting Folder A, the user can press a predetermined key on the keyboard and window 1 would become the bottom most window and window 2 becomes the active window. Accordingly, Window 2 becomes fully exposed and the user can drop Folder A in any portion of the now active Window 2. Figure 8 illustrates another aspect of the present invention. In accordance with this aspect of the present invention when an icon is placed outside of all the windows, all windows are returned to their original layered order. Assume that Window 2 becomes an active window by placement of Folder A over Window 2 for a predetermined amount of time, as illustrated in Figure 6. If it is desired for Window 1 to become an active window, Folder A can then be placed outside of all windows thereby making Window 1 the active window, as illustrated in Figure 8. Those skilled in the art will appreciate that, although only two windows are depicted in Figures 7-10 for clarity of the figure, methods for dragging and dropping implemented according to this exemplary embodiment of the present invention will typically involve large number of windows on various layers of the desktop. Moreover, depending upon the type of the object is desired to be move, methods for dragging and dropping according to the present invention can be applied to and not limited to an application, a system folder or a document. It should be noted that the present invention has been described in accordance with exemplary embodiments, which are intended to be illustrative in all aspects, rad er than restrictive. Thus, the present invention is capable of many variations in detailed implementation, which may be derived from the description contained herein by a person or ordinary skill in the art. All such variations are considered to be within the scope and spirit of the present invention as defined by the following claims .

Claims: WHAT IS CLAIMED IS: 1. A method for manipulating a plurality of windows on a display, comprising the steps of: displaying a plurality of cascaded, open windows on a display to establish an original display position for each of the plurality of windows, wherein at least one of said windows is partially hidden; displaying a pointer on die display; moving the pointer to a visible portion of said at least one partially hidden window; holding the pointer at the visible portion for a predetermined period of time; and revealing, responsive to said holding step, said at least one partially hidden window. 2. A method of claim 1, further comprising the steps of: moving the pointer outside said at least one partially hidden window; and returmng said at least one partially hidden window to its original display position. 3. The method of claim 2, wherein a first window is fully exposed in its original display position, the method further comprising the steps of: returning the first window to its fully exposed original display position in response to the step of moving the pointer outside said at least one partially hidden window. 4. A method of claim 1, wherein the step of moving the pointer to a visible portion of said at least one partially hidden window further comprises the step of: dragging an object from a second window of the plurality of windows. 5. A method of claim 4, wherein the step of revealing, further comprises the step of: dropping said object into said at least one partially hidden window. 6. A method of claim 4, furdier comprising the steps of: holding down a predefined key on a keyboard; and sending a window on the top-most layer of the plurality of open windows to the bottom-most layer of the plurality of open windows. 7. A computer readable medium containing a program which executes the steps of: displaying a plurality of cascaded, open windows on a display to establish an original display position for each of the plurality of windows, wherein at least one of said windows is partially hidden; displaying a pointer on the display; moving the pointer to a visible portion of said at least one partially hidden window; holding the pointer at the visible portion for a predetermined period of time; and revealing, responsive to said holding step, said at least one partially hidden window. 8. The computer readable medium of claim 7, further comprising the steps of: moving the pointer outside said at least one partially hidden window; and returning said at least one partially hidden window to its original display position. 9. The computer readable medium of claim 8, wherein a first window is fully exposed in its original display position, the method further comprising the steps of: returning the first window to its fully exposed original display position in response to the step of moving the pointer outside said at least one partially hidden window. 10. The computer readable medium of claim 7, wherein the step of moving the pointer to a visible portion of said at least one partially hidden window further comprises the step of: dragging an object from a second window of the plurality of windows. 11. The computer readable medium of claim 10, wherein the step of revealing, further comprises the step of: dropping said object into said at least one partially hidden window. 12. The computer readable medium of claim 10, further comprising the steps of: holding down a predefined key on a keyboard; and sending a window on the top-most layer of the plurality of open windows to the bottom-most layer of the plurality of open windows. 13. A computer system comprising: means for displaying a plurality of cascaded, open windows on a display to establish an original display position for each of the plurality of windows, wherein at least one of said windows is partially hidden and for displaying a pointer on the display; means for moving the pointer to a visible portion of said at least one partially hidden window and holding the pointer at the visible portion for a predetermined period of time; and means for revealing, responsive to said holding the pointer, said at least one partially hidden window. 14. The computer of claim 13, further comprising: means for moving the pointer outside said at least one partially hidden window; and means for returning said at least one partially hidden window to its original display position. 15. The computer of claim 14, wherein a first window is fully exposed in its original display position, further comprising: means for returning the first window to its fully exposed original display position in response to said means for moving the pointer outside said at least one partially hidden window. 16. The computer of claim 13, wherein the means for moving the pointer to a visible portion of said at least one partially hidden window further comprises: means for dragging an object from a second window of the plurality of windows. 17. The computer of claim 16, wherein the means for revealing, further comprises: means for dropping said object into said at least one partially hidden window. 18. The computer of claim 16, further comprising: means for holding down a predefined key on a keyboard; and means for sending a window on the top-most layer of the plurality of open windows to the bottom-most layer of the plurality of open windows. 19. A computer system comprising: a display device for displaying a plurality of cascaded, open windows on a display to establish an original display position for each of the plurality of windows, wherein at least one of said windows is partially hidden and for displaying a pointer on the display; a cursor control device receiving a request for moving the pointer to a visible portion of said at least one partially hidden window and holding the pointer at the visible portion for a predetermined period of time; and a processor for revealing, responsive to said holding the pointer, said at least one partially hidden window on said display device. 20. The computer of claim 19, wherein said cursor control device further receives a request for moving the pointer outside said at least one partially hidden window; and said processor for returning said at least one partially hidden window to its original display position on said display device. 21. The computer of claim 20, wherein a first window is fully exposed in its original display position on said display device, said cursor control device further receives a request for moving the pointer outside said at least one partially hidden window; and said processor for returning the first window to its fully exposed original display position on said display device. 22. The computer of claim 19, wherein said cursor control device further receives a request for dropping said object into said at least one partially hidden window; and said processor changes the corresponding memory reference address of said object and for returning the first window to its fully exposed original display position and means for dropping said object into said at least one partially hidden window on said display device on said display device.

Inventors: EWING DAVID, EWING, DAVID
Applicants: APPLE COMPUTER, EWING DAVID, APPLE COMPUTER, INC., EWING, DAVID
Application year: 2001
Main classification: G06F3
IPC codes: G06F3