USRE39610E1 - Systems and methods for replacing open windows in a graphical user interface - Google Patents

Systems and methods for replacing open windows in a graphical user interface Download PDF

Info

Publication number
USRE39610E1
USRE39610E1 US10/165,040 US16504002A USRE39610E US RE39610 E1 USRE39610 E1 US RE39610E1 US 16504002 A US16504002 A US 16504002A US RE39610 E USRE39610 E US RE39610E
Authority
US
United States
Prior art keywords
window
windows
computer program
order
detecting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US10/165,040
Inventor
Max McFarland
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Priority to US10/165,040 priority Critical patent/USRE39610E1/en
Priority to US11/601,281 priority patent/USRE41113E1/en
Application granted granted Critical
Publication of USRE39610E1 publication Critical patent/USRE39610E1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance

Definitions

  • 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.
  • GUI graphical user interface
  • 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 .
  • 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.
  • a container item e.g., a disk, folder, catalog, mailbox, viewer, server, or trash icon
  • folder windows which are sprung open by the user's actions relative to a container object are already open elsewhere on the desktop.
  • 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 .
  • 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.
  • 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.
  • FIG. 3 This example is illustrated in FIG. 3 .
  • 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 .
  • 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 .
  • folder window 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.
  • 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.
  • 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.
  • FIG. 1 shows a conventional desktop screen
  • FIG. 2 illustrates an exemplary set of cascaded open windows used to describe exemplary embodiments of the present invention
  • FIG. 3 shows the cascaded open windows of FIG. 2 lacking one of the windows which has been sprung open to a new location on the display space;
  • FIG. 4 depicts the result of a conventional technique for returning the sprung window of FIG. 3 ;
  • 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);
  • FIG. 6 illustrates an exemplary data structure used to capture open window information according to an exemplary embodiment of the present invention
  • FIG. 7 is a flowchart describing a technique for returning the sprung window of FIG. 3 back to its original position as seen in FIG. 2 according to an exemplary embodiment of the present invention.
  • FIG. 8 illustrates another case wherein two windows are sprung from their original positions.
  • FIG. 5 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).
  • RAM 30 , ROM 32 , processor 34 , and I/O 36 are all interconnected via system bus 38 .
  • 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.
  • the display space 24 of the system depicted in FIG. 5 (a) consists of that provided by monitor 22
  • additional display devices could be arranged proximate monitor 22 to create a display space bridging several monitors.
  • window folder 3 will be returned to its original position relative to folders 1 , 2 , 4 and 5 (as shown in FIG. 2 ) in the portion 10 of the display space 12 rather than returning to portion 10 of the display space 12 as the front window (as shown in FIG. 4 ). Exemplary techniques for accomplishing this result will now be described with respect to FIGS. 6 and 7 .
  • a data structure which stores certain information relating to windows which are open in the display space at that point in time.
  • this data structure 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 FIGS. 2 and 3 is illustrated as FIG. 6 .
  • Each of the folder windows 1 - 5 is identified in the list 60 using a “Window ID” field.
  • Window ID the actual numerical value of this field will vary depending upon the system implementation, but will suffice to identify the open window and its original location in display space 12 .
  • the order of the open windows can be established in the list 60 by, for example, listing these windows in front-to-back order.
  • a location indicator is also associated with each open window to keep track of its current status, i.e., sprung or unsprung. Since folder windows 1 - 5 are all unsprung at the time of drag initialization, each of these indicators is set to a Boolean value indicating that they are unsprung, depicted as an “N” in FIG. 6 .
  • folder window 3 When folder window 3 is sprung to the portion 14 of the display space illustrated in FIG. 3 , the list 60 of FIG. 6 changes to reflect the springing of folder window 3 by changing the location indicator value to the Boolean value associated with a sprung, rather than an original, position e.g., the letter “Y” for FIG. 6 .
  • folder window 3 When the user ends the drag operation, and assuming that folder window 3 is to be closed in display space portion 14 , folder window 3 will be returned to its original position among the cascaded, open windows 1 , 2 , 4 and 5 using the information in the list 60 at that time. This operation can be performed as illustrated in the exemplary flowchart of FIG. 7 .
  • 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 .
  • 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.
  • 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.
  • 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 FIG. 7 for the case depicted in FIG. 8 , the flow would proceed via the “Yes” path to decision block 84 since folder window 4 has been sprung and is not in its original position in display space portion 10 as would be indicated by an appropriate location identifier value for WindowID 4 in list 60 . If folder window 4 was at the end of the list 60 , i.e., the frontmost window in the list, then the flow would proceed to block 86 where folder window three would be drawn as the frontmost window.
  • this example includes window 5 in list 60 so the flow instead loops back to block 78 where window 5 is now examined. Since window 5 has not been sprung, window 3 is placed behind window 5 such that the window order from front to back in display space portion 10 will now be 5 , 3 , 2 and 1 . Note that by determining whether a window has been sprung prior to returning another window, the situation is avoided where, for example, window folder 3 is redrawn behind folder window 4 in display space portion 14 rather than among the cascaded open windows in display space portion 10 .

Abstract

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.

Description

BACKGROUND
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 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).
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.
SUMMARY
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.
BRIEF DESCRIPTION OF THE DRAWINGS
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. 1 shows a conventional desktop screen;
FIG. 2 illustrates an exemplary set of cascaded open windows used to describe exemplary embodiments of the present invention;
FIG. 3 shows the cascaded open windows of FIG. 2 lacking one of the windows which has been sprung open to a new location on the display space;
FIG. 4 depicts the result of a conventional technique for returning the sprung window of FIG. 3;
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);
FIG. 6 illustrates an exemplary data structure used to capture open window information according to an exemplary embodiment of the present invention;
FIG. 7 is a flowchart describing a technique for returning the sprung window of FIG. 3 back to its original position as seen in FIG. 2 according to an exemplary embodiment of the present invention; and
FIG. 8 illustrates another case wherein two windows are sprung from their original positions.
DETAILED DESCRIPTION
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 FIG. 2) in the portion 10 of the display space 12 rather than returning to portion 10 of the display space 12 as the front window (as shown in FIG. 4). Exemplary techniques for accomplishing this result will now be described with respect to FIGS. 6 and 7.
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 FIGS. 2 and 3 is illustrated as FIG. 6. Therein each of the folder windows 1-5 is identified in the list 60 using a “Window ID” field. Of course the actual numerical value of this field will vary depending upon the system implementation, but will suffice to identify the open window and its original location in display space 12. The order of the open windows can be established in the list 60 by, for example, listing these windows in front-to-back order. A location indicator is also associated with each open window to keep track of its current status, i.e., sprung or unsprung. Since folder windows 1-5 are all unsprung at the time of drag initialization, each of these indicators is set to a Boolean value indicating that they are unsprung, depicted as an “N” in FIG. 6.
When folder window 3 is sprung to the portion 14 of the display space illustrated in FIG. 3, the list 60 of FIG. 6 changes to reflect the springing of folder window 3 by changing the location indicator value to the Boolean value associated with a sprung, rather than an original, position e.g., the letter “Y” for FIG. 6. When the user ends the drag operation, and assuming that folder window 3 is to be closed in display space portion 14, folder window 3 will be returned to its original position among the cascaded, open windows 1,2, 4 and 5 using the information in the list 60 at that time. This operation can be performed as illustrated in the exemplary flowchart of FIG. 7.
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 FIG. 3, folder window 4 has not been sprung so the flow proceeds to block 82 where folder window 3 is redrawn behind window folder 4, i.e., such that the configuration seen in FIG. 2 is restored.
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 FIG. 7, for the case depicted in FIG. 8, the flow would proceed via the “Yes” path to decision block 84 since folder window 4 has been sprung and is not in its original position in display space portion 10 as would be indicated by an appropriate location identifier value for WindowID 4 in list 60. If folder window 4 was at the end of the list 60, i.e., the frontmost window in the list, then the flow would proceed to block 86 where folder window three would be drawn as the frontmost window. However, this example includes window 5 in list 60 so the flow instead loops back to block 78 where window 5 is now examined. Since window 5 has not been sprung, window 3 is placed behind window 5 such that the window order from front to back in display space portion 10 will now be 5,3,2 and 1. Note that by determining whether a window has been sprung prior to returning another window, the situation is avoided where, for example, window folder 3 is redrawn behind folder window 4 in display space portion 14 rather than among the cascaded open windows in display space portion 10.
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 intention 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.

Claims (55)

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;
storing an initial location and position for a window;
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.
2. The method of claim 1, wherein said step of returning further comprises the steps 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.
3. The method of claim 2, wherein said step of placing said window further comprises the step 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.
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;
storing an initial location and position for the first window;
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.
5. The method of claim 4, wherein a third window is disposed in front of both said second window and said first window when rendered in said first portion of said display space, said method further comprising the steps 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.
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 an initial location of said window object and 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.
7. The system of claim 6, wherein said data structure also include information indicating a position of said at least one other window object, and wherein said processor selectively draws said window object in an overlapping relationship with said other window object based upon said position indicating information in said data structure.
8. A computer implemented method for maintaining an order of a plurality of windows on a display, each window having an initial location on the display and a position in the order of the plurality of windows, the method comprising the steps of:
storing the initial location and the position for each of the plurality of windows;
springing one of the windows from its initial location to a temporary location; and
removing the sprung window from its temporary location and displaying the sprung window in its stored initial location and position in the order of the plurality of windows.
9. The method of claim 8, wherein the order of the plurality of windows is a front-to-back order.
10. The method of claim 8, wherein springing the window further comprises removing the window from its initial location.
11. The method of claim 8, wherein the window sprung to the temporary location is brought to a front position in the order of the plurality of windows when sprung.
12. The method of claim 11, wherein the sprung window is displayed in an original position in the order when the sprung window is displayed in its initial location.
13. The method of claim 8, wherein springing of the one of the windows is in response to a user action.
14. The method of claim 13, wherein the user action comprises placing an item over an icon on the display associated with the window that is sprung.
15. A system for maintaining an order of a plurality of windows on a display when one of the plurality of windows is temporarily sprung to a temporary location on the display, the system comprising:
a data structure for storing for each of the plurality of windows, an initial location on the display and a position in the order of the plurality of windows;
a graphical user interface in which each window is displayed in its initial location, and for receiving an input from a user associated with a springing operation; and
computer program logic coupled to the data structure and to the user interface, for displaying each of the plurality of windows on the display, the computer program logic adapted to spring one of the windows to a temporary location on the display in response to the user action, and adapted to remove the sprung window from its temporary location, and display the sprung window in its initial location and position according to the data structure.
16. The system of claim 15, wherein the user action resulting in a springing operation is placing an item over an icon on the display associated with the window that is sprung.
17. The system of claim 15, wherein the order of the plurality of windows is a front-to-back order.
18. The system of claim 15, wherein the computer program logic removes the window from its initial location when springing the window to its temporary location.
19. The system of claim 15, wherein computer program logic displays the sprung window in a front position in the order of the windows.
20. The system of claim 15, wherein computer program logic displays the sprung window in an original position in the order when it displays the sprung window in its initial location.
21. The system of claim 15, wherein the user action comprises placing an item over an icon on the display associated with the window that is sprung.
22. A computer implemented method for maintaining an order of a plurality of windows on a display, each window having an initial location on the display and a position in the order of the plurality of windows, the method comprising the steps of:
responsive to detecting a user's interest in one of the windows:
storing an initial location and position for the window; and
moving the window from its initial location to a temporary location; and
responsive to detecting the end of the user's interest in the window, removing the window from its temporary location and displaying the window in its initial location and position in the order of the plurality of windows.
23. The method of claim 22, wherein detecting a user's interest in one of the windows comprises detecting user input in connection with the window.
24. The method of claim 22, wherein detecting a user's interest in one of the windows comprises detecting a cursor being held over the window, and wherein detecting the end of the user's interest in the window comprises detecting a cursor not being held over the window.
25. The method of claim 22, wherein detecting a user's interest in one of the windows comprises detecting an activation command within the window, and wherein detecting the end of the user's interest in the window comprises detecting an activation command outside the window.
26. The method of claim 25, wherein each activation command comprises a mouse click.
27. The method of claim 22, wherein detecting a user's interest in one of the windows comprises detecting placement of an item over an icon associated with the window.
28. The method of claim 22, wherein the order of the plurality of windows is a front-to-back order.
29. The method of claim 28, wherein moving the window further comprises removing the window from its initial location.
30. The method of claim 28, wherein moving the window further comprises bringing the window to a front position in the order of the plurality of windows.
31. A system for maintaining an order of a plurality of windows on a display, each window having an initial location on the display and a position in the order of the plurality of windows, the system comprising the steps of:
an output device for displaying the plurality of windows;
an input device for detecting a user's interest in one of the windows;
computer program logic coupled to the input device, for:
responsive to the input device detecting a user's interest in one of the windows;
storing an initial location and position for the window; and
causing the output device to move the window from its initial location to a temporary location; and
responsive to the input device detecting the end of the user's interest in the window, causing the output device to remove the window from its temporary location and to display the window in its initial location and position in the order of the plurality of windows.
32. The system of claim 31, wherein detecting a user's interest in one of the windows comprises detecting user input in connection with the window.
33. The system of claim 31, wherein the input device detects a user's interest in one of the windows by detecting a cursor being held over the window, and wherein the input device detects the end of the user's interest in the window by detecting a cursor not being held over the window.
34. The system of claim 31, wherein the input device detects a user's interest in one of the windows by detecting an activation command within the window, and wherein the input device detects the end of the user's interest in the window by detecting an activation command outside the window.
35. The system of claim 34, wherein each activation command comprises a mouse click.
36. The system of claim 31, wherein the input device detects a user's interest in one of the windows by detecting placement of an item over an icon associated with the window.
37. The system of claim 31, wherein the order of the plurality of windows is a front-to-back order.
38. The system of claim 37, wherein the computer program logic further causes the output device to remove the window from its initial location.
39. The system of claim 37, wherein the computer program logic further causes the output device to bring the window to a front position in the order of the plurality of windows.
40. A computer program product for maintaining an order of a plurality of windows on a display, each window having an initial location on the display and a position in the order of the plurality of windows, the computer program product comprising:
a computer-readable medium; and
computer program code, encoded on the medium, for:
storing the initial location and the position for each of the plurality of windows;
springing one of the windows from its initial location to a temporary location; and
removing the sprung window from its temporary location and displaying the sprung window in its stored initial location and position in the order of the plurality of windows.
41. The computer program product of claim 40, wherein the order of the plurality of windows in a front-to-back order.
42. The computer program product of claim 40, wherein the computer program code for springing the window further comprises computer program code for removing the window from its initial location.
43. The computer program product of claim 40, wherein the window sprung to the temporary location is brought to a front position in the order of the plurality of windows when sprung.
44. The computer program product of claim 43, wherein the sprung window is displayed in an original position in the order when the sprung window is displayed in its initial location.
45. The computer program product of claim 40, wherein the computer program code for springing of the one of the windows operates in response to a user action.
46. The computer program product of claim 45, wherein the user action comprises placing an item over an icon on the display associated with the window that is sprung.
47. A computer program product for maintaining an order of a plurality of windows on a display, each window having an initial location on the display and a position in the order of the plurality of windows, the computer program product comprising:
a computer-readable medium; and
computer program code, encoded on the medium, for:
responsive to detecting a user's interest in one of the windows:
storing an initial location and position for the window; and
moving the window from its initial location to a temporary location; and
responsive to detecting the end of the user's interest in the window, removing the window from its temporary location and displaying the window in its initial location and position in the order of the plurality of windows.
48. The computer program product of claim 47, wherein the computer program code for detecting a user's interest in one of the windows comprises computer program code for detecting user input in connection with the window.
49. The computer program product of claim 47, wherein the computer program code for detecting a user's interest in one of the windows comprises computer program code for detecting a cursor being held over the window, and wherein the computer program code for detecting the end of the user's interest in the window comprises computer program code for detecting a cursor not being held over the window.
50. The computer program product of claim 47, wherein the computer program code for detecting a user's interest in one of the windows comprises computer program code for detecting an activation command within the window, and wherein the computer program code for detecting the end of the user's interest in the window comprises computer program code for detecting an activation command outside the window.
51. The computer program product of claim 50, wherein each activation command comprises a mouse click.
52. The computer program product of claim 47, wherein the computer program code for detecting a user's interest in one of the windows comprises computer program code for detecting placement of an item over an icon associated with the window.
53. The computer program product of claim 47, wherein the order of the plurality of windows is a front-to-back order.
54. The computer program product of claim 53, wherein the computer program code for moving the window further comprises computer program code for removing the window from its initial location.
55. The computer program product of claim 53, wherein the computer program code for moving the window further comprises computer program code for bringing the window to a front position in the order of the plurality of windows.
US10/165,040 1995-05-05 2002-06-06 Systems and methods for replacing open windows in a graphical user interface Expired - Lifetime USRE39610E1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/165,040 USRE39610E1 (en) 1995-05-05 2002-06-06 Systems and methods for replacing open windows in a graphical user interface
US11/601,281 USRE41113E1 (en) 1995-05-05 2006-11-16 Systems and methods for replacing open windows in a graphical user interface

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/435,375 US6072488A (en) 1995-05-05 1995-05-05 Systems and methods for replacing open windows in a graphical user interface
US10/165,040 USRE39610E1 (en) 1995-05-05 2002-06-06 Systems and methods for replacing open windows in a graphical user interface

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US08/435,375 Reissue US6072488A (en) 1995-05-05 1995-05-05 Systems and methods for replacing open windows in a graphical user interface

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US08/435,375 Continuation US6072488A (en) 1995-05-05 1995-05-05 Systems and methods for replacing open windows in a graphical user interface

Publications (1)

Publication Number Publication Date
USRE39610E1 true USRE39610E1 (en) 2007-05-01

Family

ID=23728130

Family Applications (3)

Application Number Title Priority Date Filing Date
US08/435,375 Ceased US6072488A (en) 1995-05-05 1995-05-05 Systems and methods for replacing open windows in a graphical user interface
US10/165,040 Expired - Lifetime USRE39610E1 (en) 1995-05-05 2002-06-06 Systems and methods for replacing open windows in a graphical user interface
US11/601,281 Expired - Lifetime USRE41113E1 (en) 1995-05-05 2006-11-16 Systems and methods for replacing open windows in a graphical user interface

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US08/435,375 Ceased US6072488A (en) 1995-05-05 1995-05-05 Systems and methods for replacing open windows in a graphical user interface

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/601,281 Expired - Lifetime USRE41113E1 (en) 1995-05-05 2006-11-16 Systems and methods for replacing open windows in a graphical user interface

Country Status (1)

Country Link
US (3) US6072488A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161861A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation System and method for visually browsing of open windows
US20090195515A1 (en) * 2008-02-04 2009-08-06 Samsung Electronics Co., Ltd. Method for providing ui capable of detecting a plurality of forms of touch on menus or background and multimedia device using the same
US7747965B2 (en) 2005-01-18 2010-06-29 Microsoft Corporation System and method for controlling the opacity of multiple windows while browsing
US20100287494A1 (en) * 2004-04-30 2010-11-11 Apple Inc. User Interface Presentation of Information in Reconfigured or Overlapping Containers
US8136047B2 (en) 2005-01-18 2012-03-13 Microsoft Corporation Multi-application tabbing system

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510668B1 (en) * 2000-04-03 2013-08-13 Google Inc. Indicating potential focus in a user interface
US6915490B1 (en) * 2000-09-29 2005-07-05 Apple Computer Inc. Method for dragging and dropping between multiple layered windows
KR20040048938A (en) * 2001-10-04 2004-06-10 코닌클리케 필립스 일렉트로닉스 엔.브이. Device running a user interface application
EP1588249A2 (en) * 2003-01-14 2005-10-26 Koninklijke Philips Electronics N.V. Creating views on a computer screen
US20060041846A1 (en) * 2004-08-19 2006-02-23 International Business Machines Corporation Method of window management for a windowing system
US7552397B2 (en) * 2005-01-18 2009-06-23 Microsoft Corporation Multiple window behavior system
US7478326B2 (en) * 2005-01-18 2009-01-13 Microsoft Corporation Window information switching system
US7673255B2 (en) * 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US8739062B2 (en) * 2006-02-24 2014-05-27 Sony Corporation Graphical playlist
US8698845B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface with interactive popup views
US9823831B2 (en) 2010-04-07 2017-11-21 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US9513801B2 (en) 2010-04-07 2016-12-06 Apple Inc. Accessing electronic notifications and settings icons with gestures
US20110252357A1 (en) 2010-04-07 2011-10-13 Imran Chaudhri Device, Method, and Graphical User Interface for Managing Concurrently Open Software Applications
US9244606B2 (en) 2010-12-20 2016-01-26 Apple Inc. Device, method, and graphical user interface for navigation of concurrently open software applications
US9142193B2 (en) 2011-03-17 2015-09-22 Intellitact Llc Linear progression based window management
WO2012170400A1 (en) * 2011-06-06 2012-12-13 Intellitac Llc Linear progression based window management
DE112013002387T5 (en) 2012-05-09 2015-02-12 Apple Inc. Apparatus, method and graphical user interface for providing tactile feedback for operations in a user interface
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
WO2013169875A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying content associated with a corresponding affordance
DE112013002409T5 (en) 2012-05-09 2015-02-26 Apple Inc. Apparatus, method and graphical user interface for displaying additional information in response to a user contact
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
AU2013259642A1 (en) 2012-05-09 2014-12-04 Apple Inc. Device, method, and graphical user interface for moving and dropping a user interface object
DE112013002412T5 (en) 2012-05-09 2015-02-19 Apple Inc. Apparatus, method and graphical user interface for providing feedback for changing activation states of a user interface object
AU2013259630B2 (en) 2012-05-09 2016-07-07 Apple Inc. Device, method, and graphical user interface for transitioning between display states in response to gesture
WO2013169851A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for facilitating user interaction with controls in a user interface
EP2847660B1 (en) 2012-05-09 2018-11-14 Apple Inc. Device, method, and graphical user interface for selecting user interface objects
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
WO2014105275A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for forgoing generation of tactile output for a multi-contact gesture
CN104903834B (en) 2012-12-29 2019-07-05 苹果公司 For equipment, method and the graphic user interface in touch input to transition between display output relation
KR101905174B1 (en) 2012-12-29 2018-10-08 애플 인크. Device, method, and graphical user interface for navigating user interface hierachies
KR102001332B1 (en) 2012-12-29 2019-07-17 애플 인크. Device, method, and graphical user interface for determining whether to scroll or select contents
EP2939095B1 (en) 2012-12-29 2018-10-03 Apple Inc. Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics
US9477404B2 (en) 2013-03-15 2016-10-25 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US9658740B2 (en) 2013-03-15 2017-05-23 Apple Inc. Device, method, and graphical user interface for managing concurrently open software applications
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US9785305B2 (en) 2015-03-19 2017-10-10 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US9674426B2 (en) 2015-06-07 2017-06-06 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US10809875B2 (en) * 2015-08-03 2020-10-20 Lenovo (Beijing) Co., Ltd. Display control method and device, and electronic apparatus
US10637986B2 (en) 2016-06-10 2020-04-28 Apple Inc. Displaying and updating a set of application views
JP2018005091A (en) * 2016-07-06 2018-01-11 富士通株式会社 Display control program, display control method and display controller

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819189A (en) 1986-05-26 1989-04-04 Kabushiki Kaisha Toshiba Computer system with multiwindow presentation manager
US4862389A (en) 1986-12-26 1989-08-29 Kabushiki Kaisha Toshiba Information processor with multi-window display function
US4954818A (en) 1985-10-18 1990-09-04 Hitachi, Ltd. Multi-window display control system
US5075675A (en) * 1988-06-30 1991-12-24 International Business Machines Corporation Method and apparatus for dynamic promotion of background window displays in multi-tasking computer systems
US5305435A (en) * 1990-07-17 1994-04-19 Hewlett-Packard Company Computer windows management system and method for simulating off-screen document storage and retrieval
US5333255A (en) 1991-01-03 1994-07-26 Xerox Corporation Apparatus for displaying a plurality of two dimensional display regions on a display
US5377317A (en) 1991-12-20 1994-12-27 International Business Machines Corporation Method and apparatus for distinctively displaying windows on a computer display screen
US5412775A (en) * 1988-04-13 1995-05-02 Hitachi, Ltd. Display control method and apparatus determining corresponding validity of windows or operations
US5412776A (en) 1992-12-23 1995-05-02 International Business Machines Corporation Method of generating a hierarchical window list in a graphical user interface
US5479497A (en) 1992-11-12 1995-12-26 Kovarik; Karla Automatic call distributor with programmable window display system and method
US5604861A (en) * 1992-12-28 1997-02-18 International Business Machines Corporation Method and apparatus for improved notebook control in a data procesing system
US5664128A (en) * 1995-02-23 1997-09-02 Apple Computer, Inc. Object storage apparatus for use with data sets in computer applications
US5956030A (en) * 1993-06-11 1999-09-21 Apple Computer, Inc. Computer system with graphical user interface including windows having an identifier within a control region on the display

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5046001A (en) * 1988-06-30 1991-09-03 Ibm Corporation Method for accessing selected windows in a multi-tasking system

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4954818A (en) 1985-10-18 1990-09-04 Hitachi, Ltd. Multi-window display control system
US4819189A (en) 1986-05-26 1989-04-04 Kabushiki Kaisha Toshiba Computer system with multiwindow presentation manager
US4862389A (en) 1986-12-26 1989-08-29 Kabushiki Kaisha Toshiba Information processor with multi-window display function
US5412775A (en) * 1988-04-13 1995-05-02 Hitachi, Ltd. Display control method and apparatus determining corresponding validity of windows or operations
US5075675A (en) * 1988-06-30 1991-12-24 International Business Machines Corporation Method and apparatus for dynamic promotion of background window displays in multi-tasking computer systems
US5305435A (en) * 1990-07-17 1994-04-19 Hewlett-Packard Company Computer windows management system and method for simulating off-screen document storage and retrieval
US5333255A (en) 1991-01-03 1994-07-26 Xerox Corporation Apparatus for displaying a plurality of two dimensional display regions on a display
US5377317A (en) 1991-12-20 1994-12-27 International Business Machines Corporation Method and apparatus for distinctively displaying windows on a computer display screen
US5479497A (en) 1992-11-12 1995-12-26 Kovarik; Karla Automatic call distributor with programmable window display system and method
US5412776A (en) 1992-12-23 1995-05-02 International Business Machines Corporation Method of generating a hierarchical window list in a graphical user interface
US5604861A (en) * 1992-12-28 1997-02-18 International Business Machines Corporation Method and apparatus for improved notebook control in a data procesing system
US5956030A (en) * 1993-06-11 1999-09-21 Apple Computer, Inc. Computer system with graphical user interface including windows having an identifier within a control region on the display
US5664128A (en) * 1995-02-23 1997-09-02 Apple Computer, Inc. Object storage apparatus for use with data sets in computer applications

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100287494A1 (en) * 2004-04-30 2010-11-11 Apple Inc. User Interface Presentation of Information in Reconfigured or Overlapping Containers
US9037997B2 (en) * 2004-04-30 2015-05-19 Apple Inc. User interface presentation of information in reconfigured or overlapping containers
US9411487B2 (en) 2004-04-30 2016-08-09 Apple Inc. User interface presentation of information in reconfigured or overlapping containers
US20060161861A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation System and method for visually browsing of open windows
US7747965B2 (en) 2005-01-18 2010-06-29 Microsoft Corporation System and method for controlling the opacity of multiple windows while browsing
US8136047B2 (en) 2005-01-18 2012-03-13 Microsoft Corporation Multi-application tabbing system
US8341541B2 (en) * 2005-01-18 2012-12-25 Microsoft Corporation System and method for visually browsing of open windows
US20090195515A1 (en) * 2008-02-04 2009-08-06 Samsung Electronics Co., Ltd. Method for providing ui capable of detecting a plurality of forms of touch on menus or background and multimedia device using the same

Also Published As

Publication number Publication date
USRE41113E1 (en) 2010-02-09
US6072488A (en) 2000-06-06

Similar Documents

Publication Publication Date Title
USRE39610E1 (en) Systems and methods for replacing open windows in a graphical user interface
US5627954A (en) Systems and methods for positioning a drawer title bar on a graphical user interface
US5835091A (en) Manipulating and displaying a plurality of views in a graphical user interface
US5960199A (en) Model trace view for object-oriented systems
US6756999B2 (en) Method and system for clustering and grouping taskbar buttons
US7712037B2 (en) Computer system with graphical user interface including spring-loaded enclosures
US7739604B1 (en) Method and apparatus for managing windows
US20030197739A1 (en) Distribution of application windows in a computing device display
US6046741A (en) Visual command sequence desktop agent
US5754178A (en) Method and apparatus for improved feedback during manipulation of data on a computer controlled display system
US7536410B2 (en) Dynamic multi-dimensional scrolling
EP0816999B1 (en) Method and apparatus for collapsing and expanding selected regions on work space on a computer controlled display system
US8127239B2 (en) Object transitions
KR101661772B1 (en) Copying of animation effects from a source object to at least one target object
US20070186176A1 (en) System and method for window tab organization
US20030208639A1 (en) Method and apparatus for improved interaction with an application program according to data types and actions performed by the application program
US20070226642A1 (en) Apparatus and method for displaying transparent windows when copying or moving items between windows
KR20140081892A (en) Selective enabling of multi-input controls
EP0670540A2 (en) Folder rack icons
US20020154169A1 (en) Graphical list grouping widget and methods of use thereof
US7020842B1 (en) Method and apparatus for providing dynamic assistance for disabled user interface resources
US20110107256A1 (en) Zooming Task Management
US8533625B1 (en) Methods and systems for dynamically arranging interface objects
CN1177297C (en) Processing method for figure module
Dudley Report generation using a visual programming interface

Legal Events

Date Code Title Description
FPAY Fee payment

Year of fee payment: 8