systems and methods for returning windows to an original location are described. When springing already open windows to a new location on a display space, it is desired to return that window to its original location for certain situations. A list is provided when the springing operation is initialized which captures information used to return the sprung window. According to exemplary embodiments, the relocation of various windows is tracked to ensure that each window is returned to an original location.
|
0. 8. A computer implemented method for maintaining an order of overlapping windows on a display, each window having an initial location on the display and a position in the order of the overlapping windows, the method comprising the steps of:
storing an initial location and position for the windows;
responsive to detecting a user's interest in a first one of the windows:
moving the first window from its initial location to a temporary location not including any of the overlapping windows; and
responsive to detecting the end of the user's interest in the first window, removing the first window from its temporary location and displaying the first window in its initial location and position in the order of the overlapping windows.
0. 30. A computer program product for maintaining an order of overlapping windows on a display, each window having an initial location on the display and a position in the order of the overlapping windows, the computer program product comprising:
a computer-readable medium; and
computer program code, encoded on the medium, for:
storing an initial location and position for the windows; and
responsive to detecting a user's interest in a first one of the windows, moving the first window from its initial location to a temporary location not including any of the overlapping windows; and
responsive to detecting the end of the user's interest in the first window, removing the first window from its temporary location and displaying the first window in its initial location and position in the order of the overlapping windows.
0. 19. A system for maintaining an order of overlapping windows on a display, each window having an initial location on the display and a position in the order of the overlapping windows, the system comprising:
an output device for displaying the overlapping windows;
an input device for detecting a user's interest in a first one of the windows;
computer program logic coupled to the input device, for:
storing an initial location and position for the windows;
responsive to the input device detecting a user's interest in a first one of the windows, causing the output device to move the first window from its initial location to a temporary location not including any of the overlapping windows; and
responsive to the input device detecting the end of the user's interest in the first window, causing the output device to remove the first window from its temporary location and to display the first window in its initial location and position in the order of the overlapping windows.
0. 1. A method for returning a window to an original position among a plurality of cascaded windows which are rendered on a display space, comprising the steps of:
generating a list which provides a front-to-back order of said plurality of cascaded windows and an indicator of whether each of said plurality of cascaded windows is currently in its respective original, cascaded position;
removing said window from said original position;
rendering said window at another location on said display space;
receiving, at a graphical interface, an indication that said window is to be removed from said another location on said display space; and
returning said window to said original position based upon said list generated by said step of generating.
0. 2. The method of
comparing an identifier of said window with an identifier associated with each window in said list until a match occurs; and
placing said window behind a window which is next in order in said list after said match occurs.
0. 3. The method of
placing said window behind said window which is next in order in said list after said match occurs only if said window is currently in its respective original, cascaded position.
0. 4. A method for placing a first window behind a second window in a first portion of a display space, comprising the steps of:
generating a list which indicates that said first window is to be rendered behind said second window when both said first and said second windows are rendered in said first portion of said display space;
removing said first window from behind said second window;
rendering said first window at a second portion of said display space;
removing said first open window from said second portion of said display space; and
placing said first window behind said second window in said first portion of said display space by making reference to said list.
0. 5. The method of
removing said second window from said first portion of said display space;
rendering said second window in another portion of said display space; and
placing said first window behind said third window in said first portion of said display space.
0. 6. In a computer having a display, a system for returning a window object to its original location relative to at least one other window object, comprising:
a data structure for storing information associated with said window object and said at least one other window object including a relative time-invariant order of said window object with respect to said at least one other window object;
a display on which said window object and said at least one other window object are rendered;
a graphical user interface for receiving and generating signals associated with said window object and said at least one other window object, including a signal indicating that said window object is to be returned to said original position; and
a processor for receiving said signal and drawing said window object on said display at said original position using said information in said data structure.
0. 7. The system of
0. 9. The method of
0. 10. The method of
0. 11. The method of
0. 12. The method of
0. 13. The method of
0. 14. The method of
0. 15. The method of
0. 16. The method of
0. 17. The method of
responsive to detecting a user's interest in a second one of the windows prior to detecting the end of the user's interest in the first window;
moving the second window from its initial location to a temporary location overlapping the moved first window.
0. 18. The method of
responsive to detecting the end of the user's interest in the second window, removing the second window from its temporary location and displaying the window in its initial location and position in the order of the overlapping windows.
0. 20. The system of
0. 21. The system of
0. 22. The system of
0. 23. The system of
0. 24. The system of
0. 25. The system of
0. 26. The system of
0. 27. The system of
0. 28. The system of
responsive to detecting a user's interest in a second one of the windows prior to detecting the end of the user's interest in the first window;
causing the output device to move the second window from its initial location to a temporary location overlapping the moved first window.
0. 29. The method of
responsive to detecting the end of the user's interest in the second window, causing the output device to remove the second window from its temporary location and display the window in its initial location and position in the order of the overlapping windows.
0. 31. The computer program product of
0. 32. The computer program product of
0. 33. The computer program product of
0. 34. The computer program product of
0. 35. The computer program product of
0. 36. The computer program product of
0. 37. The computer program product of
0. 38. The computer program product of
0. 39. The computer program product of
responsive to detecting a user's interest in a second one of the windows prior to detecting the end of the user's interest in the first window;
move the second window from its initial location to a temporary location overlapping the moved first window.
0. 40. The computer program product of
responsive to detecting the end of the user's interest in the second window, remove the second window from its temporary location and display the window in its initial location and position in the order of the overlapping windows.
|
Notice: More than one reissue application has been filed for the reissue of U.S. Pat. No. 6,072,488. This application is a reissue of U.S. Pat. No. 6,072,488 and is also a continuation of application Ser. No. 10/165,040 filed Jun. 6, 2002, which is a reissue of U.S. Pat. No. 6,072,488.
The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to methods and systems for replacing open windows which have been sprung to a new display location as controlled by graphical user interfaces.
The evolution of the computer industry is arguably 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 those 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).
One type of GUI is based on a visual metaphor which uses a monitor screen as a work surface called a “desktop” where documents are presented in relocatable regions termed “windows”. The user interacts with the computer by, for example, moving objects on the desktop, choosing commands from menus, and manipulating window controls, such as check-boxes and scroll bars. An exemplary desktop screen is reproduced as FIG. 1.
The success of this type of interface is evident from the number of companies which have emulated the desktop environment. Even successful concepts, however, must continually be improved in order to keep pace with the rapid growth in this industry. The advent of multimedia, especially CD-ROM devices, has provided vast quantities of secondary storage which have been used to provide video capabilities, e.g., live animation and video clips, as regular components of application displays. With these new resources at their disposal, application designers, and others, desire more and more control over the appearance of the display, including the desktop environment and, in particular, objects on the desktop.
Windows, filing cabinets, folders and documents are several examples of conventional desktop objects which extend the desktop visual metaphor. Folder windows can be configured to “spring” open when a user holds an item over a container item (e.g., a disk, folder, catalog, mailbox, viewer, server, or trash icon) which has one or more folders therein. Folder windows that are sprung open are temporarily centered under the cursor or as close to this centered position as possible while remaining on one monitor.
Occasionally, the folder windows which are sprung open by the user's actions relative to a container object are already open elsewhere on the desktop. Consider, for example, that a folder entitled “Five” is embedded in a hierarchical tree of folders such that folder “One” holds folder “Two” which holds folder “Three” which holds folder “Four” which holds folder “Five”. That is, to open folder “Five”, a user would open folders One, Two, Three, Four and Five in that order. This could result, for example, in the cascaded series of open folder windows shown in FIG. 2. Note that these folder windows are numbered 1, 2, 3, 4 and 5, respectively, for ease of reference in this text and that the folders and their respective folder windows will both be referred to using the same numbers.
Now suppose that a user springs open a container which happens to include folder 3 therein. As mentioned above, folder windows which are sprung open are drawn centered at the cursor location, if possible. Thus, folder window 3 will be closed at its location in the display space between the cascaded folder windows 2 and 4 and redrawn at a location centered on the cursor. This example is illustrated in FIG. 3. Note that the folder windows 1, 2, 4, and 5 are opened in a first portion 10 of the display space 12, but folder window 3 has been sprung open at a second portion 14 of the display space 12 centered about a cursor (not shown). A gap is left between windows 2 and 4 in the position vacated by folder window 3.
When the user releases the mouse button, or otherwise completes the drag, only the destination folder and folders that were open before the drag operation began remain open, e.g., folders 1-5 in this example. If folder 3 is not the destination folder, then this window would close at its displayed location in portion 14 of display space 23. Conventionally, folder window 3 would then be redrawn on top of folder window 5 in portion 10 of the display space 12 as seen in FIG. 4. However, this is considered to be undesirable since folder 3 now appears out of order with respect to folders 1, 2, 4 and 5 and blocks the view of the title bars of the other folder windows.
These and other problems and drawbacks of conventional systems and methods for replacing windows in graphical user interfaces are overcome according to the present invention. According to exemplary embodiments, open windows which are sprung to a new location on the display space are returned to their original location when the springing operation is concluded. A list or other data structure is created when a springing operation is initiated that identifies open windows on the desktop, their relationship to other windows in their original positions, and an indicator that tracks the status of these windows as sprung or unsprung. When the springing operation is concluded, sprung windows can be returned to their original position using the information found in the list or data structure which was created when the springing operation commenced.
The foregoing, and other, objects, features and advantages of the present invention will be more readily understood by those skilled in the art upon reading the following detailed description in conjunction with the drawings in which:
FIG. 5(a) is a block diagram of an exemplary computer system which can be used to implement the present invention;
FIG. 5(b) is a block diagram illustrating various exemplary functional units of the computer system of FIG. 5(a);
Exemplary embodiments of the present invention will be described in terms of various visual aspects created or drawn in a display space controlled by a graphical user interface. Those skilled in the art will appreciate that such an interface can, for example, be used in conjunction with a computer such as that illustrated in FIG. 5(a). Therein, a personal computer is illustrated as having a box 16 which contains, among other elements, circuit boards associated with the computer's functions, a keyboard 18, a pointing device 20 and a monitor 22 having a display space 24. The circuit boards included in box 16 can include boards which accommodate functional units such as those illustrated by the block diagram of FIG. 5(b). Therein RAM 30, ROM 32, processor 34, and I/O 36 are all interconnected via system bus 38.
Of course the personal computer illustrated in FIGS. 5(a) and 5(b) is purely exemplary of one type of computer system in which graphical user interfaces according to the present invention may be implemented. For example, although the display space 24 of the system depicted in FIG. 5(a) consists of that provided by monitor 22, those skilled in the art will recognize that additional display devices could be arranged proximate monitor 22 to create a display space bridging several monitors. Moreover, although the present invention is described herein by way of exemplary, illustrative embodiments, some of which refer to graphical user interfaces implemented using the Macintosh® computer system as a reference for explaining the present invention, those those skilled in the art will readily appreciate that systems and methods according to the present invention can be applied to any type of display system having a user interface. Those wishing additional information with respect to the Macintosh® system are referred to Inside Macintosh, Vols. 1-6.
Returning now to the discussion of spring loaded folders, according to exemplary embodiments of the present invention windows which were open at the beginning of a springing operation be returned to their original location at the end of the operation. In terms of the foregoing example, window folder 3 will be returned to its original position relative to folders 1, 2, 4 and 5 (as shown in
When a drag is initialized, a data structure is created which stores certain information relating to windows which are open in the display space at that point in time. Although the following text refers to this data structure as a “list”, those skilled in the art will readily appreciate that any data structure capable of holding such information could be used for this purpose, e.g., a database, an array, etc. A list 60 used to capture information relating to the example provided in
When folder window 3 is sprung to the portion 14 of the display space illustrated in
Initially, the process begins by examining the window furthest to the back as rendered on the display space, e.g., WindowID 1 of list 60, at block 70. The WindowID of this window is compared, at decision block 72, with the WindowID of the window to be returned, in this case folder window 3. Until a match is found (block 72) or the end of the list is reached (block 74), the process iterates through each WindowID on the list from back to front by incrementing a list pointer after each set of decisions (at block 76) and branching back to the top of the loop. If the end of the list is reached without a match (“Yes” at block 74), then the process ends and the window to be returned is not redrawn in this portion of the display space. This can occur, for example, when a window which was not open at the time that the springing operation began is processed according to the present invention.
For the purposes of this example, however, a match will occur on the third iteration when the current WindowID has been incremented to three. Then the flow proceeds to block 78 where the next WindowID in the list 60 is examined to determine, at block 80, if folder window 4 has been sprung by checking the status of the location indicator field of list 60. In this example, as seen in
Consider now the case seen in FIG. 8. Therein, folder window 4 has also been sprung and is shown beneath the sprung version of folder window 3 in display space portion 14. Revisiting decision block 80 of
The above-described exemplary embodiments are intended to be illustrative in all respects, rather than restrictive, of the present invention. For example, the present invention is described herein by way of exemplary, illustrative embodiments, some of which refer to graphical user interfaces implemented using the Macintosh® computer system as a reference for explaining the present invention. However, those skilled in the art will readily appreciate that systems and methods according to the present invention can be applied to any type of display system having a user interface. Thus the present invention is capable of many variations in detailed implementation that can be derived from the description contained herein by a person skilled in the art. All such variations and modifications are considered to be within the scope and spirit of the present invention as defined by the following claims.
Patent | Priority | Assignee | Title |
8341541, | Jan 18 2005 | Microsoft Technology Licensing, LLC | System and method for visually browsing of open windows |
Patent | Priority | Assignee | Title |
4819189, | May 26 1986 | Kabushiki Kaisha Toshiba | Computer system with multiwindow presentation manager |
4862389, | Dec 26 1986 | Kabushiki Kaisha Toshiba | Information processor with multi-window display function |
4954818, | Oct 18 1985 | Hitachi, Ltd.; Hitachi Microsoftware Systems, Inc. | Multi-window display control system |
5046001, | Jun 30 1988 | IBM Corporation; INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Method for accessing selected windows in a multi-tasking system |
5075675, | Jun 30 1988 | International Business Machines Corporation; INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Method and apparatus for dynamic promotion of background window displays in multi-tasking computer systems |
5305435, | Jul 17 1990 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Computer windows management system and method for simulating off-screen document storage and retrieval |
5333255, | Jan 03 1991 | XEROX CORPORATION, STAMFORD, COUNTY OF FAIRFIELD, CONNECTICUT A CORP OF NEW YORK | Apparatus for displaying a plurality of two dimensional display regions on a display |
5377317, | Dec 20 1991 | International Business Machines Corporation | Method and apparatus for distinctively displaying windows on a computer display screen |
5412775, | Apr 13 1988 | Hitachi, Ltd. | Display control method and apparatus determining corresponding validity of windows or operations |
5412776, | Dec 23 1992 | C G ELECTRODES LLC | Method of generating a hierarchical window list in a graphical user interface |
5479497, | Nov 12 1992 | Wilmington Trust, National Association, as Administrative Agent | Automatic call distributor with programmable window display system and method |
5604861, | Dec 28 1992 | International Business Machines Corporation | Method and apparatus for improved notebook control in a data procesing system |
5664128, | Feb 23 1995 | Apple Inc | Object storage apparatus for use with data sets in computer applications |
5956030, | Jun 11 1993 | Apple Inc | Computer system with graphical user interface including windows having an identifier within a control region on the display |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 16 2006 | Apple Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 19 2010 | ASPN: Payor Number Assigned. |
Sep 19 2011 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 09 2013 | 4 years fee payment window open |
Aug 09 2013 | 6 months grace period start (w surcharge) |
Feb 09 2014 | patent expiry (for year 4) |
Feb 09 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 09 2017 | 8 years fee payment window open |
Aug 09 2017 | 6 months grace period start (w surcharge) |
Feb 09 2018 | patent expiry (for year 8) |
Feb 09 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 09 2021 | 12 years fee payment window open |
Aug 09 2021 | 6 months grace period start (w surcharge) |
Feb 09 2022 | patent expiry (for year 12) |
Feb 09 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |