Dynamically modifying a graphical user interface window title

An application, method and apparatus for revision of a title of a window containing objects as controlled by a computer system. The computer system has at least a visual operator interface, an operating system for operating applications within the computer system, and memory for storing the application therein. A title is generated for the window containing a list of all of the parent objects, either in the window or represented by child objects in the window. The title is revised dynamically to correspond with modifications in the parent objects. The title revision is done while the window is displayed. Also a means for retaining in the title the name of a parent object even if the parent object becomes temporarily unavailable while the window is displayed. Also a means for saving the revised title so that when the window is opened again in the future, the objects are displayed. Additionally a means for closing the window if all of the objects are deleted.

BACKGROUND OF THE INVENTION AND STATE OF THE PRIOR ART 
1. Field of the Invention 
The present invention relates to graphical user interfaces ("GUI"). More 
particularly, the present invention relates to dynamically modifying, 
adding, removing (or some combination of the foregoing) a window title to 
correspond with changes (i.e. additions or deletions) in the objects 
represented in the window described by the window title. 
2. Description of Related Art 
In order to better understand the terms utilized in this patent 
application, a brief background definition section will be presented so 
that the reader will have a common understanding of the terms employed and 
associated with the present invention. 
A "user interface" is a group of techniques and mechanisms that a person 
employs to interact with an object. The user interface is developed to fit 
the needs or requirements of the users who use the object. Commonly known 
user interfaces can include telephone push buttons or dials, or 
pushbuttons such as on a VCR or a television set remote. With a computer, 
many interfaces not only to allow the user to communicate with the 
computer but also allow the computer to communicate with the user. These 
would include (1) command-line user interfaces (i.e., user remembered 
commands which he/she enters, e.g. "C:.backslash.&gt;DIR" in which "DIR" is a 
typical DOS command entered at the "C" prompt); (2) menu-driven user 
interfaces which present an organized set of choices for the user, and (3) 
graphical user interfaces, ("GUI") in which the user points to and 
interacts with elements of the interface that are visible, for example by 
a "mouse" controlled arrow or cursor. 
An example of a GUI user interface is that which is offered by 
International Business Machines Corporation (IBM) under the name "Common 
User Access" ("CUA"). This GUI incorporates elements of object orientation 
(i.e., the user's focus is on objects and the concept of applications is 
hidden). Object orientation of the interfaces allow for an interconnection 
of the working environment in which each element, called an "object," can 
interact with every other object. The objects users require to perform 
their tasks and the objects used by the operating environment can work 
cooperatively in one seamless interface. With object oriented programming 
using a GUI, the boundaries that distinguish applications from operating 
systems are no longer apparent or relevant to the user. 
In connection with this patent application, an "object" means any visual 
component of a user interface that a user can work with as a unit, 
independent of other items, to perform a task. By way of example, a 
spreadsheet, one cell in a spreadsheet, a bar chart, one bar in a bar 
chart, a report, a paragraph in a report, a database, one record in a 
database, and a printer are all objects. Each object can be represented by 
one or more graphic images, called "icons," with which a user interacts, 
much as a user interacts with objects in the real world. (NOTE: In the 
real world, an object might be an item that a person requires to perform 
work. As an example, an architect's objects might include a scale, 
T-square, a sharp pencil etc. while an accountant's objects might include 
a ledger and a calculator.) However, it is not required that an object 
always be represented by an icon, and not all interaction is accomplished 
by way of icons. For example, a user can interact with an object by 
opening a window that displays more information about the object and 
includes a variety of mechanisms for interacting with the object. 
While classification of objects may follow many different definitions, each 
class of objects has a primary purpose that separates it from the other 
classes. A class may be looked at as a group of objects that have similar 
behavior and information structures. In addition, each of the objects 
enumerated and defined below may contain other objects. There are three 
primary classes of objects. Each is discussed below. 
(1) Container Object: This object holds other objects. Its principal 
purpose is to provide the user with a way to hold or group related objects 
for easy access or retrieval. An operating system, e.g. OS/2.RTM. (a 
trademark of IBM Corporation) or Windows.RTM. (a trademark of Microsoft 
Corporation), typically provides a general-purpose container, for example 
a folder or a program group--that holds any type of object, including 
other containers. For example, imagine a program group (or folder) labeled 
"PRIVATE FOLDER - ICONS". In the program group are three folder icons 
labeled "REPORTS", "PORTFOLIO" and "LETTERS". By selecting with a mouse or 
other pointing device the icon "PORTFOLIO", another window may open 
showing three more icons labeled "OIL PAINTINGS", "WATERCOLORS" and 
"PORTRAITS". In turn, selecting any of those three icons may open 
additional windows with further icons representing further subdivisions, 
or cross-references (e.g., "CUSTOMERS"). 
(2) Data Objects: The principal purpose of a data object is to convey 
information. This information may be textual or graphical information or 
even audio or video information. For example, a business report displayed 
on the computer monitor may contain textual information concerning sales 
of "gadgets" over the past few years (text object) to all customers and 
also may contain a bar chart (graphic object) to pictorially depict, on 
the same monitor screen, the sales information. 
(3) Device Objects: The principal purpose of a device object is to provide 
a communication vehicle between the computer and another physical or 
logical object. Many times the device object represents a physical object 
in the real world. For example, a mouse object or icon can represent the 
user's pointing device, and a modem object can represent the user's modem, 
or a printer object or icon can represent the user's printer. Other device 
objects are purely logical, e.g. an out-basket icon representing outgoing 
electronic mail; a wastebasket object or icon representing a way the user 
may "trash" or dispose of other objects. 
As can be seen from the foregoing, a class of objects may be defined as a 
description of the common characteristics of several objects, or a 
template or model which represents how the objects contained in the class 
are structured. While there are further ways in which to define objects 
and class of objects, typically each class of objects will include similar 
attributes, the values of which the user will alter, modify, replace or 
remove from time to time. (For a more complete discussion of objects, 
attributes, object oriented interfaces etc., see "Object Oriented 
Interface Design: IBM Common User Access" (published by Que, ISBN 
1-56529-170-0). 
In most graphical user interfaces, the title of a given window contains the 
names of objects or entities represented in the window. Current graphical 
interface architectures do not provide a mechanism to facilitate changing 
the title to correspond to changes, such as additions or deletions, in the 
objects or entities represented in the window, particularly while the 
window is displayed. 
The prior art reveals few efforts to solve the problem of "updating" the 
title of a window. In U.S. Pat. No. 5,497,484 to Potter, et al., updates 
of window titles are disclosed, but only as to single objects. Changes to 
multiple objects in the window are not addressed. 
SUMMARY OF THE INVENTION 
It is a principal object of the present invention to provide a means for 
dynamically updating the title of a window to correspond with changes, 
additions, or deletions in the objects in the window, wherein the updating 
occurs even while the window is displayed. 
Another object of the present invention is to permit such dynamic updating 
of the title to apply to other related windows and to future uses of the 
same window. 
Yet another object of the present invention is to provide a means for 
changing the title of a window to correspond to changes, additions, or 
deletions in the objects in the window even when one or more of the 
objects is temporarily unavailable due to system problems. 
A further object of the invention is to provide a means for dynamically 
updating the title of a window where the title is a list of the names of 
objects or entities that are related to the objects or entities that 
appear in the window. 
An application, method and apparatus is disclosed for revision of a title 
of a window containing objects as controlled by a computer system. The 
computer system has at least a visual operator interface, an operating 
system for operating applications within the computer system, and memory 
for storing the application therein. A title is generated for a given 
window containing a list of all of the objects in the window. Selected 
objects, e.g. other applications, parts of applications such as cells in a 
spread sheet, or real objects such as printers, are designated for 
modification and then are modified. The title then is revised dynamically 
to correspond with the modifications in the objects, even while the window 
is displayed. Also disclosed is a means for retaining in the title the 
name of an object in the window even if the object becomes temporarily 
unavailable while the window is displayed. Also disclosed is a means for 
saving the revised title so that when the window is opened in the future, 
the modified objects are displayed. Additionally disclosed is a means for 
closing the window if all of the objects are deleted. 
Other objects of the invention and a more complete understanding of the 
invention may be had by referring to the following description taken in 
conjunction with the accompanying drawings.

DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENT(S) 
In a GUI, the title of a window may contain the names of the objects (or 
other entities) represented in the window. The present invention 
contemplates that the title will be constructed at the time the window is 
invoked (i.e., selected or "called up"). The title of the window is a list 
of the objects represented in the window. 
The objects represented in the window may appear in the window together 
with the name of the object. Alternatively, the objects that appear in the 
window may belong to or be related to the objects whose names appear in 
the title of the window. The present invention addresses both situations. 
Turning now to the drawings, and especially FIGS. 1 and 2, FIG. 1 
diagrammatically shows a computer system 1 which may be connected to a 
Local Area Network system (LAN 20) as shown in FIG. 2. 
As shown in FIG. 1, the computer system 1 comprises a main chassis 10, a 
display means or monitor 12, a connected keyboard 16 and a pointing 
device, in the present instance a mouse 18 which is operator controlled to 
move a pointer cursor 12b (shown in FIG. 3) on the display or monitor 
screen 12c. As shown in FIG. 2, the chassis 10 includes a central 
processing unit, or "CPU" 5, a memory manager and associated random access 
memory, or "RAM" 6, a fixed disk or hard drive 8 (which may include its 
associated disk controller), a display manager 12a which is connected 
externally to the chassis 10 of the display 12; a keyboard manager 16a, 
which through flexible cable (not shown) is connected to the keyboard 16; 
a mouse manager 17 (which in some instances may form part of the display 
manager 12a, and may be in the form of a software driver) for reading the 
motion of the mouse 18 and its control mouse buttons (MB) 18a and 18b, 
shown in FIG. 1. A disk manager or controller 13a which controls the 
action of the disk drive 13 (and an optional drive such as a 
magneto-optical or CD ROM drive 14) shown in FIG. 1, rounds out most of 
the major elements of the computer system 1. 
The pointer element or cursor 12b can be moved over the display screen 12c 
by movement of the mouse 18. The mouse buttons (MB) 18a and 18b give 
commands to the operating system (not shown), usually through a software 
mouse driver provided by the mouse manufacturer. With the first mouse 
button (MB) 18a the operator can select an element indicated on the 
display screen 12c using the pointer or cursor 12b, i.e., signify that an 
action subsequently to be performed is to be carried out on the data 
represented by the indicated element on the display screen 12c. The 
operating system normally gives some visual feedback to the operator to 
indicate that the element has been selected, such as a change in color, or 
a blocking of the icon. The second mouse button (MB) 18b may be a menu 
button, if desired. Conventionally, when the operator presses button 18b, 
a selection menu or dialog with system commands will appear on the display 
screen 12c. The operator may select an object, icon, or item from the 
selection menu or input information into the dialog box as appropriate 
using the cursor 12b and the first mouse button (MB) 18a. Some menu items, 
if selected, may call up another menu or submenu for the operator to 
continue the selection process. 
The use of a mouse and selection menus is well known in the art, for 
example U.S. Pat. No. 4,464,652 to Lapson et al. describes a selection 
menu of the pull-down type in combination with a mouse. It should be 
recognized, of course, that other cursor pointing devices may be employed, 
for example a joystick, ball and socket, or cursor keys on the keyboard. 
The foregoing devices (and corresponding software drivers) within the 
chassis 10 communicate with one another via a bus 7. To round out the 
computer system 1, an operating system (not shown) must be employed. If 
the computer system is a typical IBM-based system, the operating system 
may be DOS-based and include a GUI interface such as contained in 
OS/2.RTM., or WINDOWS.RTM., or other operating system of choice. If the 
computer system is based upon RISC (reduced instruction set computer) 
architecture, then the operating system employed may be, in the instance 
of an IBM-based RISC architectured System/6000.RTM., AIX. Alternatively, 
if the computer system 1 is a large host computer, such as a an IBM 3090, 
it may be running an operating system such as MVS or VM. This operating 
system normally includes a print service facility called PSF, which is a 
system-wide resource manager, which takes a "job" which has been formatted 
for a particular printer, and sends certain files, such as fonts, special 
commands and the like to the printer before sending the file to be 
printed. 
In the illustrated instance, the computer system 1 includes an I/O 
(Input/Output) manager or communications manager 19 (shown in FIG. 2) 
which serves to link the computer system for communications with the 
outside world such as to a systems printer, a modem or a LAN controller 
(such as a Token ring or ETHERNET or even through a modem employing SDLC) 
such as shown at 20 in FIG. 2. The LAN controller may be incorporated 
inside the computer system 1 or located externally as shown 
diagrammatically in FIG. 2, as desired. The LAN controller 20 may connect 
to other computer systems 40 and 41 as well as to other printers such as 
printers 25, 30 and 35 by communications cable 22 and the like. 
To aid in understanding the following discussion of the present invention, 
a short definitions section will be helpful. 
______________________________________ 
Term: Definition: 
______________________________________ 
Top-Window The very highest window in a hierarchical 
window structure. 
Parent-Window 
The next higher window in a hierarchical 
window structure. A parent-Window could be 
the Top-Window. 
Child-Window 
The next lower window in a hierarchical window 
structure. A Child-Window can never be a Top- 
Window. 
Window-Title 
The fully qualified window name. A Window- 
Title is composed of a Window-Name and a list 
of Object-Names. 
Window-Name 
The name of a window (e.g., Program Manager). 
Object-Name 
For a Top-Window, the names of the objects 
that are contained in (appear in) the Top- 
Window. For a Child-Window, the names of the 
Parent-Window objects represented in the 
Child-Window. 
______________________________________ 
Referring now to FIG. 3A, the display screen 12c of the monitor 12 is shown 
with a program manager dialog window 50 thereon which is similar to the 
conventional GUI interfaces employed, for example, with the operating 
systems currently widely used, such as, WINDOWS.RTM. or OS/2.RTM.. As 
illustrated, a plurality of example program groups 52, 54, 56, and 58 are 
shown therein. 
Window 50 is a parent window. The objects 52, 54, 56 and 58 are parent 
objects in that each has related ("child") objects that will appear if the 
parent object is selected by the user. 
As is conventional, when the user desires to open one or more program 
groups, the mouse 18 is moved until the pointer 12b is in contact with the 
desired program group. Depending upon the operating system, simply 
depressing the left mouse button 18b may act to select and open the 
program group. In other operating systems, rapidly depressing the left 
mouse button twice selects and opens the program group. In either 
instance, opening the program group displays in a second window icons 
therein representative of certain programs which have been collected 
within the particular program group. Throughout this discussion, however, 
assume that depressing the mouse button 18a effects the desired action, 
regardless of whether it takes one or two depressions to accomplish the 
result. 
The title 51 of the window 50 is generated when the window 50 is opened. 
Since the objects 52, 54, 56, and 58 in Window 50 are parent objects, the 
title 60 of window 50 is a list of all of the objects the window 50 
contains. The words "Program Manager" are the window name. The window name 
does not change even if the objects in the window change (i.e., are 
modified, added, or deleted). The window name is followed by a colon. The 
colon is followed by the window title, which in this example is 
"Applications Backup Spreadsheets Word Processors." Each object name in 
the title may be separated by a space or a comma or the like. 
Suppose now that the user desires to add, modify, or delete one or more of 
the objects in Window 50 and, in particular, that the user wants to delete 
the Word Processors object 58. The user selects the Word Processors object 
58. The system indicates the selection by placing a dotted line around 
object 58. The user then selects "Delete" 62 from the Action Menu 64. The 
system thus deletes the Word Processor object 58. 
In accordance with the invention, more generally, the user selects the 
objects the user desires to modify, add, append, remove or replace 
(hereinafter collectively referred to as "modify"), and performs the 
desired modifications on the selected objects. After the objects are 
modified, the title of the window 50 will be inaccurate. 
The present invention provides a way to update the window title 60, 
dynamically, while the window is still displayed. 
As shown in FIG. 3B, the Word Processors object 58 now has been deleted 
from window 70. The window name 72 "Program Manager" remains the same as 
in FIG. 3A. The window title 74 now has been modified, however, to remove 
the name of the deleted object. The revised title 74 is "Application 
Backup Spreadsheets." The change in the title 60 to the title 74 is done 
dynamically by the system immediately when object 58 is deleted. There is 
no need to close and reopen window 50 or window 70 to cause the title 60 
to change to the title 74. 
Referring now to FIG. 4A, suppose that the user, when viewing FIG. 3A, 
decides to select the Spreadsheets object 56 and the Word Processors 
object 58. The user wants to open both objects and so then selects open 66 
in the Action Menu 64. Window 80 shown in FIG. 4A then appears. Window 80 
is a child window showing the child objects 86, 88, 90, and 92 related to 
Spreadsheets object 56 and Word Processors object 58. Object 86 is the 
icon for the Borland application program called Quicken. Object 88 is the 
icon for Lotus 123. Object 90 is the icon for WordPerfect, and Object 92 
is the icon for Microsoft Word. 
In FIG. 4A, the window name 82 is Programs. The window title 84 is a list 
of the names of the parent objects. In this case, the window title 84 is 
"Spreadsheets Word Processors." 
Now suppose that the user returns to window 50 in FIG. 3A and deletes the 
Word Processors object 58. The resulting parent window 70 is shown in FIG. 
3B. The child window also changes, as shown in FIG. 4B. The child objects 
90 and 92 of the parent object Word Processors 58 now also are deleted. 
Window 100 in FIG. 4B now shows only the child objects 86 and 88 of 
Spreadsheets object 56. The window name 102 is the same as in FIG. 4A. The 
window title 104, however, now has been dynamically modified such that the 
name of object 58 is no longer in the title 104. The new window title 104 
is simply "Spreadsheets." 
As shown in FIG. 5, a further attribute of the invention is that if, for 
example, one of the objects 52, 54, or 56 shown in FIG. 3B is temporarily 
unavailable in the system while the window is displayed, the window title 
remains the same, so that when the unavailable object or icon becomes 
available, it will appear in the window. In FIG. 4, the unavailable object 
is backup 54. Yet, this object name remains in the updated title 112 of 
the window 110. This aspect of the invention thereby avoids undesired and 
unanticipated changes in the title of the window. 
A third attractive feature of the present invention is that an updated 
title, such as updated title 72 or 104, can be saved so that the next time 
the window, such as window 70 or 100, is pulled up, it will contain the 
modified objects. 
As shown in FIGS. 6A and 6B, a fourth useful aspect of the invention is 
that if there is only one object 122 in a window 120 and that object 122 
is deleted, the operating system (not shown) informs the user in message 
142 that the window 140 is now empty and that the window 140, therefore, 
will be closed. 
FIG. 7 is a flow chart showing the method of the present invention to 
dynamically update the title of a window to correspond to changes in the 
objects of the window. The method is applicable even while the window is 
displayed. 
Although the invention has been described with a certain degree of 
particularity, it should be recognized that elements thereof may be 
altered by person(s) skilled in the art with out departing from the spirit 
and scope of the invention. The invention is limited only by the following 
claims and their equivalents.