WINDOW FOCUSING METHOD AND APPARATUS

Abstract: In a graphical user interface including a display area (500) for displaying a number of windows (530-600), a method controlling the arrangement of the windows in the display area (500) comprises the steps of arranging the windows (530-600) in the display area (500) so that a predetermined part of each window is visible to a user. Upon a window gaining focus (590), the window is repositioned in the display area to be visible to the user; and the other windows are re-arranged so that at least a substantial portion of the predetermined part of each window remains visible to the user.

Description: WINDOW FOCUSING METHOD AND APPARATUS The present invention relates to graphical user interfaces and particularly to a system and method for arranging windows in a graphical user interface. In computer-based systems which use window-based display environments, the amount of space available in the system's display area in which windows can be displayed is typically limited, normally by the size of the computer system's screen and the resolution of the display area. Individual windows are commonly used to display separate applications, although an application may use more than one window at once to display different types of data and allow the user to input further data. Multiple Document Interface applications (MDI) allow an application to open and display several documents simultaneously, each in a separate window. For example, MDI could be used to create a spreadsheet application that lets users have several spreadsheets open at once. MDI applications commonly have a shared workspace window, which is often called the parent, and other windows, often called child windows, are used to display the documents, dialogues and other data. Normally child windows cannot be moved outside of the confines of the parent window. Depending on the particular application, a window may have a fixed size or it may occupy a variable amount of the display area, being resizable by the user or the computer system. Normally, the user will only give his or her attention at any one time to one window, or a single child window in an MDI application. Most environments would give that window what is referred to as the 'focus' by making that window active for receiving commands from an input device and, if the computer system is single tasking, giving the window the available processing resources. A window is shown to be in focus to the user by bringing it into the foreground of the display area so as to be in front of all other windows and possibly changing the colour of its title bar. Windows can normally be positioned and repositioned by either the user or the computer system. Even in multitasking environments, where the computer system can perform a number of operations concurrently, such as displaying a video stream in one window whilst allowing the user to surf the World Wide Web in another, users cannot normally give their attention to more than one or two windows at any particular moment. A window normally gains and loses focus by being selected or deselected by a user (by clicking with a mouse in the window or using a predetermined combination of keys) or through some operation of the computer system. For example, if an error occurs, an error window may be given focus to notify the user, or when an email arrives, the email application may be given focus to alert the user of this. A particular problem with window-based display environments is that the window which has focus often obscures other open windows to the extent that neither the other windows' contents nor their title can be seen by the user. Whilst this can sometimes be merely inconvenient, requiring the user to select a partially hidden window to see its title bar or contents, where there are a large number of windows, or a number of very large windows, some windows may be totally obscured by other windows, requiring the user to close some windows to find others. In an attempt to allow users to reduce obscuring of windows, some window-based display environments have cascade, tile and stack arrangement methods. Cascading arranges windows so that they are positioned one on top of each other from the top left corner of the display area towards the bottom right corner. The first window is normally placed at pixel coordinates (0,0) of the display area and each successive window then is positioned in the display area shifted down and to the right a predetermined number of pixels overlying the preceding window, so that at least the title bar of each window is visible. Cascading can start from any position in the display area and windows can be cascaded in any direction, not necessarily even in a straight line. Tiling arranges windows as a mosaic so that they fill the controlling application's client area and so that no window overlaps another. This is performed by resizing those windows which can be resized so that, in combination, they fill as much of the display area as possible. Normally, all tiled windows are resized so as to have the same size. This can severely reduce the size of windows so that, in some cases where there are a large number of windows to be tiled, only a small part of their title and window area are visible. In order to use a window which has been tiled, it is often necessary to resize it. Stacking arranges windows by tiling them only vertically, resizing them so that they fill the controlling application's client area and no window overlaps another. This arrangement of course suffers similar limitations to tiling. Current window-based display environments offer these arrangement methods via menu options which the user must manually select each time they wish to re-arrange windows. Each of these approaches suffers from similar limitations in that they only offer a one time ordering of windows at the user's request and once a window has been selected, thereby bringing it into focus, it often obscures the other windows again. An example of this problem is shown with reference to Figures 1a, 1b and 1c. In Figure 1a, four windowed applications are shown. Figure 1b shows the four respective windows after they have been cascaded. Figure 1c demonstrates the obscuring that can occur after a number of the windows have been subsequently selected. According to an aspect of the present invention, in a graphical user interface including a display area for displaying a number of windows, a method controlling the arrangement of the windows in the display area comprises the steps of arranging the windows in the display area so that a predetermined part of each window is visible to a user, upon a window gaining focus, repositioning the window in the display area to be visible to the user, and re-arranging the other windows so that at least a substantial portion of the predetermined part of each window remains visible to the user. Preferably, upon a window gaining focus, it is repositioned in the z-axis of the display area. The window may also be repositioned in the x-axis and/or the y-axis of the display area. Windows may be arranged to cascade in the display area such that windows cascade away from a window with focus. Preferably, windows are arranged in the display area such that windows are cascaded vertically, wherein a window with focus is positioned to protrude from the cascade. Windows without focus may be substantially vertically aligned. Alternatively, they may be staggered horizontally across some or all of the display area. A window gaining focus may be repositioned horizontally to protrude from the cascade. It may also be repositioned vertically so that a display area of the window is fully within the display area. Windows without focus having a substantial portion of the predetermined part obscured by the window gaining focus after it is repositioned may be repositioned horizontally. An advantage of the present invention is that windows in and out of focus are arranged for best visibility. This is preferably performed dynamically so that on each change of focus (any event that causes a change in the position or focus of a window), the windows are rearranged for best visibility. A display area of a window without focus which is visible to the user may be covered. By covering the display area of a window, it is clear to the user that the uncovered window does not have focus. In addition, system resources which would otherwise be needed to keep the contents of that window up to date are saved. A rank may be associated with each window and the arrangement of the windows in the display area may be performed according to the rank. The rank may define the relative vertical position and/or z-axis position of the window in the display area. In associating a rank indicating a relative vertical position with each window when first ordering them in a cascade type arrangement, subsequent reordering may be based on the rank and processing of vertical positions may be avoided. According to another aspect of the present invention, there is provided a media display apparatus for displaying windows, including windows corresponding to a number of received signals, the apparatus including a display area and a processor, in which the processor displays the received signals in windows in the display area, wherein the windows are arranged according to one of the methods previously discussed. The received signals may include selected ones of television, audio, email, World Wide Web data, teletext, and an electronic programme guide. Examples of the present invention will now be described in detail with reference to the accompanying figures in which: Figures 1a-1c are examples of known focusing techniques; Figures 2a and 2b are schematic diagrams showing a number of application windows in a window-based display environment are which are ordered according to the method of the present invention; Figures 3a-3d show a number of application windows in a window-based display environment which are ordered according to another method of the present invention; Figures 4a-4d show a number of application windows in a window-based display environment which are ordered according to another method of the present invention; and, Figure 5 is a schematic diagram of a television apparatus of a preferred embodiment of the present invention. Figures 2a and 2b show a number of application windows in a window- based display environment which are ordered according to a method of the present invention. In Figure 2a, the windows are cascaded from top right to bottom left. No window is presently selected and there is therefore no focus. In Figure 2b, one of the application windows (the fourth application) is selected by the user, thereby gaining focus. The window-based display environment is configured to automatically cascade those windows without focus away from that with focus as is shown in Figure 2b. Upon each change of focus, the cascading operation is repeated to maximise the display area of windows which are not in focus. Figures 3a and 3b show a number of application windows in a window- based display environment which are ordered according to another method of the present invention. In Figure 3a, a number of application windows are shown, none of which have focus. The windows are cascaded vertically in a tower style down the left-hand side of the display area. When an application window is given focus, such as by selection by the user, it is moved to the right-hand side of the display area and is brought into the foreground of the display area to prevent it being overlapped by other windows, as is shown in Figure 3b for the fifth application window. When the application window in focus loses that focus, for example the user selects another application window, the application window is moved back to the left-hand side of the display area into an appropriate position in the tower. An algorithm for the above ordering method is shown below: Algorithm A: positioning when no window is focus 1. Place the first window at the top left of the display area 2. Place subsequent windows vertically offset with respect to each other Algorithm A': positioning when a window is given focus 1. Reorder windows according to algorithm A 2. Position selected window with the right edge of the window against the right edge of the display area Where there is a limited display area, windows may be positioned in the tower arrangement so that only their title bars are shown. Algorithm A' could be altered so that, in addition to positioning a selected window against the right edge of the display area, the selected window is also moved vertically so that the entire contents of the window are within the display area and are therefore visible. An example of this is shown in Figure 3c, which shows that the window for the 11 th application is moved upwards as well as to the right, because in the original cascade the 11 th window fell partially outside the display area. In an alternative to arranging windows in a linear tower, out of focus windows may be arranged to exhibit a certain amount of indentation to expose a greater proportion of each window's perimeter. An example of such an arrangement shown in Figure 3d, in which the windows are arranged in a saw tooth pattern. In such an arrangement, it is preferable that during the processing of the position of windows according to algorithm A, the x-axis position of each window is dependant on the selected window, which is positioned against the right-hand side of the display area. It can then be ensured that the selected window does not overlap the other windows' title bars. In a further arrangement according to the method of the present invention, the available width of the display area is used to snake the windows, from left to right and from top to bottom ensuring a substantial portion of each window's title bar is visible. An example of this is shown in Figure 4a. An algorithm which organises windows in such a manner is presented below: Algorithm B 1. Place first window at the coordinates (0,0) of the display area (top right for the arrangement shown in Fig. 4a) 2. Place subsequent windows on top of each previous window, each window being offset in x and in y by dx and dy respectively, until the condition: "Does the perimeter of a window exceed the bounds of the display area in x?" is satisfied or all windows are positioned 3. If all windows are positioned then end, otherwise set dx to -(dx) 4. Go to step 2 When an application window gains focus, it is brought to the front of the display area, namely it is moved to the highest position in the z-axis and the remaining windows are cascaded behind it as is shown in Figure 4b in which the first application is brought into focus. In order to prevent other application windows being severely overlapped, as is shown in Figure 4c with the third application window brought into focus, the arrangement of the cascaded windows may be repositioned horizontally to compensate, as is shown in Figure 4d. An Algorithm which organises windows in such a manner is presented below, Algorithm C 1. Position the window with focus with its right edge at the right edge of the display area 2. For windows vertically above the window with focus, cascade away in the direction towards the top left-hand corner of the display area, snaking across the display area according to step 2 of Algorithm B, if necessary 3. For Windows vertically below the window with focus, cascade away in the direction towards the bottom right-hand corner of the display area, snaking across the display area according to step 2 of the previous algorithm if necessary In order to prevent the vertical edges of windows aligning as the snake pattern progresses down the display area, the offset dx may be varied. For example instead of changing dx to -dx, a variation factor may also be applied such as changing dx to (dx x -2/3). Furthermore, the variation factor may itself be varied, alternating between two or more values or being randomly selected. In a preferred embodiment of the present invention, variation factors of 2/3 and 4/3 are alternately used. It is possible that although no window has focus, the contents of one window would still be visible to the user. In order to prevent confusion on the part of the user and also to reduce processing load (as the computer system would have to dedicate resources to keep the contents of the visible window up to date or refreshed), a mask may be placed over the visible window area so that only the title bar is visible as with other windows. In this manner, the computer system would not have to repeatedly regenerate contents of a window which the user is not presently interested in. Windows will either be ordered in a cascading fashion so that each window is positioned on top of the previous window, or in the event of one window having focus, the windows above and below the selected window will be positioned so that the windows closest to the window in focus are highest in the arrangement, the next windows next highest and so forth. In order to prevent re-calculation of window positions each time a window gains focus, a rank may be initially associated with each window and the re-ordering is based on the ranks. To illustrate a preferred use of the present invention, Figure 5 is a schematic diagram of a television apparatus 500 having access to an electronic programme guide and internet services. The television apparatus 500 includes a processor 510 capable of processing and displaying television pictures and other data received via an aerial 520 and/or a data connection such as a satellite data feed, network connection or telephone line. According to a display format selected by the user or predetermined for the particular television apparatus, the processor displays each received signal in a separate window 530-600 on the television apparatus 500. Signals received in addition to standard television channels may include the electronic programme guide, and other facilities for email, teletext and world wide Web browsing. Each window 530-600 occupies space in the very limited display area of the television and the processor 510 is therefore programmed to arrange the windows, or a subset of the windows, according to one of the previously described methods. The "tower cascading" described above is particularly advantageous in such an environment. As reception bandwidth may be limited, windows 540-600 other than that displaying the television signal are preferably masked when they are not in use (not in focus). Other uses of the present invention may include use in mobile telephones and other telecommunication devices and , indeed, any apparatus utilising a window-based user interface.

Claims: CLAIMS 1. In a graphical user interface including a display area for displaying a number of windows, a method controlling the arrangement of the windows in the display area comprises the steps of: arranging the windows in the display area so that a predetermined part of each window is visible to a user; upon a window gaining focus, repositioning the window in the display area to be visible to the user; and, re-arranging the other windows so that at least a substantial portion of the predetermined part of each window remains visible to the user. 2. A method according to claim 1 , in which upon a window gaining focus, it is repositioned in the z-axis of the display area. 3. A method according to claim 1 or 2, in which upon a window gaining focus, it is repositioned in the x-axis and/or the y-axis of the display area. 4. A method according to any preceding claim, in which windows are arranged to cascade in the display area such that windows cascade away from a window with focus. 5. A method according to claim 1 , 2 or 3, in which windows are arranged in the display area such that windows are cascaded vertically, wherein a window with focus is positioned to protrude from the cascade. 6. A method according to claim 5, in which a window gaining focus is repositioned horizontally to protrude from the cascade. 7. A method according to claim 6, in which a window gaining focus is repositioned vertically so that a display area of the window is fully within the display area. 8. A method according to claim 6 or 7, in which windows without focus having a substantial portion of the predetermined part obscured by the window gaining focus after it is repositioned are repositioned horizontally. 9. A method according to claim 8, in which the rank defines the relative vertical position and/or z-axis position of the window in the display area. 10. A media display apparatus for displaying windows, including windows corresponding to a number of received signals, the apparatus including a display area and a processor, in which the processor displays the received signals in windows in the display area, wherein the windows are arranged according to the method steps of any one of the preceding claims. 11. A media display apparatus according to claim 10, in which the received signals include selected ones of television, audio, email, World Wide Web data, teletext, and an electronic programme guide. 12. A media display apparatus according to claim 10 or 11 , in which the windows also display selected ones of office applications, control applications for the media display apparatus and control applications for the received signals. 13. A computer readable storage medium containing executable instructions for performing the method steps of any one of claims 1 to 9.

Inventors: THOMASON GRAHAM G, THOMASON, GRAHAM, G.
Applicants: KONINKL PHILIPS ELECTRONICS NV, KONINKLIJKE PHILIPS ELECTRONICS N.V.
Application year: 2000
Main classification: G06F3
IPC codes: G06F3