Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent
5072412
Henderson, Jr. , ; et al.
December 10, 1991
Title
User interface with multiple workspaces for sharing display system objects
Abstract
Workspaces provided by an object-based user interface appear to share windows and other display objects. Each workspace's data structure includes, for each window in that workspace, a linking data structure called a placement which links to the display system object which provides that window, which may be a display system object in a preexisting window system. The placement also contains display characteristics of the window when displayed in that workspace, such as position and size. Therefore, a display system object can be linked to several workspaces by a placement in each of the workspaces' data structures, and the window it provides to each of those workspaces can have unique display characteristics, yet appear to the user to be the same window or versions of the same window. As a result, the workspaces appear to be sharing a window. Workspaces can also appear to share a window if each workspace's data structure includes data linking to another workspace with a placement to the shared window. The user can invoke a switch between workspaces by selecting a display object called a door, and a back door to the previous workspace is created automatically so that the user is not trapped in a workspace. A display system object providing a window to a workspace being left remains active so that when that workspace is reentered, the window will have the same contents as when it disappeared. Also, the placements of a workspace are updated so that when the workspace is reentered its windows are organized the same as when the user left that workspace. The user can enter an overview display which shows a representation of each workspace and the windows it contains so that the user can navigate to any workspace from the overview.
Inventors:
Henderson, Jr.; D. Austin
(Palo Alto,
CA
)
, Card; Stuart K.
(Los Altos Hills,
CA
)
, Maxwell, III; John T.
(Sunnyvale,
CA
)
Assignee:
Xerox Corporation
(Stamford,
CT
)
Appl. No.:
030766
Filed:
March 25, 1987
Current U.S. Class:
715/804
715/835
715/853
715/854
715/788
Current International Class:
G06F 3/033 (20060101)
Field of Search:
364/518-522 340/724,716 382/44-46
U.S. Patent Documents
4484302
November 1984
Cason et al.
4542376
September 1985
Bass et al.
4555775
November 1985
Pike
4574364
March 1986
Tabata et al.
4598384
July 1986
Shaw et al.
4658351
April 1987
Teng
4688167
August 1987
Agarwal
4692858
September 1987
Redford et al.
4695966
September 1987
Takakura et al.
4713754
December 1987
Agarwal et al.
4769636
September 1988
Iwami et al.
4783648
November 1988
Homma et al.
4806919
February 1989
Nakayama et al.
4807142
February 1989
Agarwal
4823108
April 1989
Pope
4885717
December 1989
Beck et al.
4905168
February 1990
McCarthy et al.
4914568
April 1990
Kodosky et al.
4962475
October 1990
Hernandez et al.
Foreign Patent Documents
0108520
May., 1984
EP
0249399
Dec., 1987
EP
0273248
Jul., 1988
EP
Other References
Programming the User Interface, Volume B, pp. 85-106, 179-185, 247-253, Aug. 1986. .
Feiner, Steven et al., "An Experimental System for Creating and Presenting Interactive Graphical Documents", ACM Transactions on Graphics, vol. 1, No. 1, Jan. 1982, pp. 59-77. .
Chan, P. P., Learning Considerations in User Interface Design: The Room Model, Report CS-84-16, University of Waterloo Computer Science Department, Waterloo, Ontario, Canada, Jul. 1984. .
Smith, D. C., et al., "Designing the Star User Interface", BYTE, vol. 7, No. 4, (Apr. 1982), pp. 242-282. .
diSessa, Andrea A., "A Principled Design for an Integrated Computational Environment", Human-Computer Interaction, 1985, vol. 1, pp. 1-47. .
Furnas, G., "Generalized Fisheye Views", in Mantei, M. and Orbeton, P., (eds.), Human Factors in Computing Systems-III, CHI, Apr. 1986 Proceedings, pp. 16-23. .
Goldberg, A., Smalltalk-80--The Interactive Programming Environment, Addison-Wesley, Reading, Mass., 1984, pp. 42-46, 49, 68-73, 322-339. .
Bannon, L. et al., "Evaluation and Analysis of Users' Activity Organization", Proceedings of the ACM Human Factors in Software Conference, CHI '83, (1983), pp. 54-57. .
William, G., "The Lisa Computer System", BYTE, Feb. 1983, pp. 33-50. .
IntelliCorp KEE Software Development System User's Manual, IntelliCorp, Jul. 25, 1986, pp. 2-19 to 2-23. .
diSessa, A. A., and Abelson, H., "Boxer: A Reconstructible Computational Medium", Comm. of the ACM, vol. 29, No. 9 (Sep. 1986), pp. 859-868. .
Richards, J., "META4--A Database Adventure", Your Computer, Jul. 1985, pp. 113-121. .
MacWrite Manual, Apple Computer, Inc., pp. 9-10, 23, 29, 40-41, 50, 70-71, 93-101, 116-117, 131-136. .
MacPaint Manual, Apple Computer, Inc. .
Markoff, J. and Shapiro, E., "FidoNet, Sidekick, Apple, Get Organized!, and Handle", BYTE, vol. 9, No. 11, (Oct. 1984), pp. 357-364. .
Smith, D., "Pygmalion", PhD Thesis, Dept. of Computer Science, Stanford University, 1975, pp. 93-121. .
Spence, R. and Apperly, M., "Data Base Navigation: An Office Environment for the Professional", Behavior and Information Technology, vol. 1, No. 1, (1982), pp. 43-54. .
Donahue, J. and Widom, J., "Whiteboards: A Graphical Database Tool", ACM Transactions on Office Information Systems, Jan. 1986, vol. 4, No. 1, pp. 24-41. .
Fisher, S. S., et al., "Virtual Environment Display Screen", ACM Workshop on Interactive 3D Graphics, Chapel Hill, N.C., Oct. 1986. .
Herot, C. F., "Spatial Management of Data", ACM Trans. on Database Systems, vol. 5, No. 4, (Dec. 1980), pp. 493-514. .
Robertson, G., et al., "The ZOG Approach to Man-Machine Communication", Int'l Journal of Man-Machine Studies, vol. 14, No. 4, May 1981, pp. 461-488. .
Engelbart, D. E., et al., "A Research Center for Augmenting Human Intellect", AFIPS Fall Joint Computer Conference, vol. 33 (1968), pp. 395-410. .
Teitelman, W., "Ten Years of Window Systems--A Retrospective View", in Hopgood, F. R. A. et al., Eds., Methodology of Window Management, Springer-Verlag, Berlin, 1986, pp. 35-46. .
Halasz, F. G., Moran, T. P. and Trigg, R. H., "NoteCards in a Nutshell", in Carroll, J. M. and Tanner, P. P., Eds. CHI + GI 1987 Conference Proceedings, ACM, New York, 1987, pp. 45-52. .
Bolt, R. A., The Human Interface, Lifetime Learning Publications, Belmont, Calif., 1984, pp. 8-34. .
Sutherland, I. E., "Sketchpad--A Man-Machine Graphical Communication System", AFIPS Spring Joint Computer Conference, vol. 23 (1963), pp. 329-346. .
Monty, M., "Evaluation and Analysis of the Organization of Users' Activities", presented at ACM SIGCHI [83 Conference on Human Factors in Computing Systems, Boston, Dec. 12-15, 1983. .
Schultz, J. R., Cantrill, S. V., and Morgan, K. G., "An Initial Operational Problem-Oriented Medical Record System--For Storage Manipulation, and Retrieval of Medical Data", in Hurst, J. W. and Walker, H. K., Eds., The Problem-Oriented System, Medcom, New York, 1972, pp. 201-218. .
Wilson, K. S., "Palenque: An Interactive Multimedia Optical Disc Prototype for Children", Bank Street College of Education Center for Children and Technology, New York, Working Paper No. 2, Mar. 1987, pp. 1-8. .
8010 STAR Information System Reference Library, Feature Descriptions, Xerox Corporation, 1984, pp. 314-315. .
Note Cards.TM. Release 1.2i Reference Manual, Xerox Corporation, 1985. .
Xerox Corporation, Filing Protocol, XNSS 108605, publication No. 610P50679, May 1986. .
Scheifler, R. W., Gettys, J., and Newman, R., X Window System, Digital Press, 1988, pp. xxiv-xxix. .
Rosenthal, D. S. H., Inter-Client Communication Conventions Manual, Version 1.0, 1989, pp. 21-23 and 32. .
Shuey, D., Bailey, D., Morrissey, T. P., "PHIGS: A Standard, Dynamic, Interactive Graphics Interface", IEEE Computer Graphics and Applications, Aug. 1986, pp. 65-72. .
Krasner, G. E., and Pope, S. T., "A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80", Journal of Objected Oriented Programming, Aug./Sep. 1988, pp. 26-49. .
Newman, W. M. and Sproull, R. F., Principles of Interactive Computer Graphics, Second Edition, McGraw-Hill, New York, 1979, pp. 127-143..~
Primary Examiner:
Herndon; Heather R.
Attorney, Agent or Firm:
Beran; James T.
Claims
What is claimed:
1. A system comprising:
a display;
first and second workspace data structures relating respectively to first and second workspaces that can be presented on the display; each of the first and second workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display;
display object means for generating first and second display objects; the first workspace data structure being linked to the display object means so that the first display object is in the respective set of display objects of the first workspace; the second workspace data structure being linked to the display object means so that the second display object is in the respective set of display objects of the second workspace; and
control means for accessing the first workspace data structure to cause the display to present the first workspace including the first display object; the control means further being for accessing the second workspace data structure to cause the display to present the second workspace including the second display object; the display object means generating the first and second display objects so that the second display object is perceptible as the same tool as the first display object when the second workspace is presented after the first workspace.
2. The system of claim 1, further comprising a first linking data structure linking the first workspace data structure to the display object means and a second linking data structure linking the second workspace data structure to the display object means; the control means further being for accessing the first linking data structure after accessing the first workspace data structure to cause the display to present the first workspace including the first display object; the control means further being for accessing the second linking data structure after accessing the second workspace data structure to cause the display to present the second workspace including the second display object.
3. The system of claim 2 in which the first linking data structure includes first display characteristic data indicating a respective display characteristic of the first display object and the second linking data structure includes second display characteristic data indicating a respective display characteristic of the second display object, the control means further being for accessing the first display characteristic data while accessing the first linking data structure to cause the display to present the first display object with its respective display characteristic; the control means further being for accessing the second display characteristic data while accessing the second linking data structure to cause the display to present the second display object with its respective display characteristic.
4. The system of claim 3 in which the respective display characteristics of the first and second display objects are respective positions, the first and second display characteristic data indicating the respective positions of the first and second display objects, respectively.
5. The system of claim 3 in which the respective display characteristics of the first and second display objects are respective sizes, the first and second display characteristic data indicating the respective sizes of the first and second display objects, respectively.
6. The system of claim 2 in which the control means is further for accessing the display object means with a unique identifier identifying the display object means, the first and second linking data structures each including the unique identifier.
7. The system of claim 1, further comprising a first linking data structure linking the first workspace data structure to the display object means and a second linking data structure linking the second workspace data structure to the first workspace data structure so that the second workspace data structure is linked to the display object means through the first workspace data structure; the control means further being for accessing the first linking data structure after accessing the first workspace data structure to cause the display to present the first workspace including the first display object; the control means further being for accessing the second linking data structure after accessing the second workspace data structure to cause the display to present the second workspace including the second display object.
8. The system of claim 1 in which the display object means generates the first and second display objects with shared features so that the first and second display objects are perceptible as the same display object.
9. The system of claim 1 in which the first and second display objects each contain a respective plurality of internal display objects that are perceptible as having relative positions within a respective part of an internal space; the first display object's respective part of the internal space having a first location in the internal space and the second display object's respective part of the internal space having a second location in the internal space; the display object means providing the first and second display objects with the first and second locations being the same so that the second display object appears to the user to be the same tool as the first display object when the second workspace is presented after the first workspace.
10. The system of claim 9 in which the first and second display objects are windows and the internal display objects are characters in a text.
11. The system of claim 1, further comprising input means for receiving signals from a user; the signals from the user including a first signal requesting an operation affecting the first display object and a second signal requesting an operation affecting the second display object; the display object means further being for receiving the first and second signals from the input means; the display object means responding to the first signal by generating a first response, the display object means further responding to the second signal by generating a second response, the display object means further generating the first and second responses so that the second display object is perceptible as the same tool as the first display object when the second workspace is presented after the first workspace.
12. The system of claim 1, further comprising input means for receiving signals from a user; the first display object containing a user selectable display feature; the signals from the user including a signal selecting the user selectable display feature and requesting an operation; the display object means further being for receiving and responding to the signal selecting the user selectable display feature by performing the requested operation; after performing the requested operation, the display object means generating the first and second display objects differently than before receiving the signal such that the second display object is perceptible as the same tool as the first display object when the second workspace is presented after the first workspace.
13. The system of claim 1, further comprising input means for receiving signals from a user, the signals from the user including a signal requesting a switch from the first workspace to the second workspace; the control means further being for responding to the signal requesting a switch from the first workspace to the second workspace by causing the display to cease presenting the first workspace and to begin presenting the second workspace.
14. The system of claim 13 in which the first workspace's respective set of display objects further includes a selectable workspace switch display object; the system further comprising, in addition to the first above-mentioned display object means, a second display object means for generating the workspace switch display object, the first workspace data structure being linked to the second display object means; the control means further being for accessing the first workspace data structure to cause the display to present the first workspace including the workspace switch display object; the signal requesting the switch being a signal selecting the workspace switch display object.
15. The system of claim 13, further comprising a workspace return display object means for generating a selectable workspace return display object, the control means further responding to the switch sequence by linking the workspace return display object means to the second workspace data structure, the second workspace's respective set of display objects including the workspace return display object after the second workspace data structure is linked to the workspace return display object means; the control means further being for accessing the second workspace data structure to cause the display to present the second workspace including the workspace return display object; the signals from the user further including a signal selecting the workspace return display object; the control means further being for responding to the signal selecting the workspace return display object by causing the display to cease presenting the second workspace and to begin presenting the first workspace.
16. The system of claim 13 in which the display object means maintains a continuous state while the control means causes the display to cease presenting the first workspace and to begin presenting the second workspace.
17. The system of claim 13 in which the input means comprises a mouse.
18. The system of claim 1 in which the display has a display area, each workspace occupying the entire display area when it is presented.
19. The system of claim 1 in which the first workspace's respective set of display objects further includes a third display object, the system further comprising, in addition to the first above-mentioned display object means, a second display object means for generating the third display object, the first workspace data structure being linked to the second display object means so that the third display object is one of the respective set of display objects of the first workspace; the control means further being for accessing the first workspace data structure to cause the display to present the first workspace including the third display object; the second workspace's respective set of display objects not including a display object that is perceptible as the same tool as the third display object.
20. The system of claim 1 in which the first workspace's respective set of display objects further includes a third display object and the second workspace's respective set of display objects further includes a fourth display object, the system further comprising, in addition to the first above-mentioned display object means, a second display object means for generating the third and fourth display objects; the first workspace data structure being linked to the second display object means so that the third display object is one of the respective set of display objects of the first workspace; the second workspace data structure being linked to the second display object means so that the fourth display object is one of the respective set of display objects of the second workspace; the control means further being for accessing the first workspace data structure to cause the display to present the first workspace including the third display object and for accessing the second workspace data structure to cause the display to present the second workspace including the fourth display object; the fourth display object being perceptible as the same tool as the third display object when the second workspace is presented after the first workspace.
21. A method of operating a system that includes:
a display;
input means for receiving signals from a user;
display object means for generating a plurality of display objects; each of the display objects being perceptible as a distinct, coherent set of display features;
the method comprising the steps of:
causing the display to present a first set of the display objects, the display objects of the first set being perceptible as having spatial positions relative to each other when presented on the display; the first set of display objects including a switching display object and a first tool display object;
while the first set of display objects is being presented, receiving a switch request signal from the input means, the switch request signal indicating selection of the switching display object; and
responding to the switch request signal by causing the display to cease presenting the first set of display objects and to begin presenting a second set of the display objects, the display objects of the second set being perceptible as having spatial positions relative to each other when presented on the display; the second set of display objects including a second tool display object, the first and second tool display objects being perceptible as the same tool.
22. The method of claim 21 in which the switching display object has a type, the type indicating whether it is necessary to include in the second set of display objects a return switching display object for switching back to the first set of display objects, the display object means further being for generating the return switching display object, the step of responding to the switch request signal comprising the substep of including the return switching display object in the second set of display objects if the type of the switching display object indicates that it is necessary to do so.
23. The method of claim 22, further comprising the steps of:
while the second set of display objects are being presented, receiving from the input means the return switch request signal; and
responding to the switch request signal by causing the display to cease presenting the second set of display objects and to begin presenting the first set of display objects.
24. A method of operating a system that includes:
a display;
input means for receiving signals from a user;
first and second workspace data structures relating respectively to first and second workspaces that can be presented on the display; each of the first and second workspaces including a respective set of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; and
display object means for generating first and second display objects; the first workspace data structure being linked to the display object means so that the first display object is in the respective set of display objects of the first workspace; the second workspace data structure being linked to the display object means so that the second display object is in the respective set of display objects of the second workspace;
the method comprising the steps of:
causing the display to present the first workspace, the step of causing the display to present the first workspace comprising the substep of accessing the first workspace data structure so that the first workspace includes the first display object generated by the display object means;
receiving a switch signal from the input means while the first workspace is being presented, the switch signal requesting a switch from the first workspace to the second workspace;
responding to the switch signal by causing the display to cease presenting the first workspace and to begin presenting the second workspace, the step of responding to the switch signal comprising the substep of accessing the second workspace data structure so that the second workspace includes the second display object; the display object means generating the first and second display objects so that the second display object is perceptible as the same tool as the first display object.
25. The method of claim 24 in which the system further includes a linking data structure linking the second workspace data structure to the display object means; the step of responding to the switch signal comprising, after the substep of accessing the second workspace data structure, the further substep of accessing the linking data structure.
26. The method of claim 25 in which the linking data structure includes a unique identifier identifying the display object means, the step of responding to the switch signal comprising, after the substep of accessing the linking data structure, the further substep of accessing the display object means with the unique identifier so that the display object means generates the second display object.
27. The method of claim 25 in which the linking data structure includes display characteristic data indicating a display characteristic of the second display object, the step of responding to the switch signal comprising, after the substep of accessing the linking data structure, the further substep of accessing the display object means with the display characteristic data so that the display object means generates the second display object with the indicated display characteristic in the second workspace.
28. The method of claim 24 in which the step of responding to the switch signal comprises the substep of maintaining the display object means in a continuous state.
29. The method of claim 24 in which the step of responding to the switch signal comprises the substep of causing the display object means to cease generating the first display object and to begin to generate the second display object.
30. The method of claim 29 in which the substep of causing the display object means to cease generating the first display object and to begin to generate the second display object comprises the substeps of:
causing the display object means to change from generating the first display object to generating an invisible display object; and
causing the display object means to change from generating the invisible display object to generating the second display object.
31. The method of claim 30 in which the substep of causing the display object means to change from generating the first display object to generating an invisible display object comprises the substep of causing the display object means to generate the invisible display object at a different location than the first display object, the different location not being presented on the display.
32. The method of claim 24 in which the system further includes a first linking data structure linking the first workspace data structure to the display object means and a second linking data structure linking the second workspace data structure to the first workspace data structure so that the second workspace data structure is linked to the display object means through the first workspace data structure; the step of responding to the switch signal comprising, after the substep of accessing the second workspace data structure, the further substeps of:
accessing the second linking data structure;
accessing the first workspace data structure after the substep of accessing the second linking data structure; and
accessing the first linking data structure after accessing the first workspace data structure to cause the display to present the second display object.
33. The method of claim 24, comprising the further steps of:
while the display is presenting the second workspace, receiving a return signal from the input means, the return signal requesting a switch back from the second workspace to the first workspace; and
responding to the return signal by causing the display to cease presenting the second workspace and to begin presenting a redisplayed form of the first workspace.
34. The method of claim 33 in which the step of responding to the switch signal comprises the substep of storing display organization data indicating the organization of the first workspace and the step of responding to the return signal comprises the substep of organizing the redisplayed form of the first workspace according to the display organization data.
35. The method of claim 34 in which the substep of storing display organization data comprises storing display organization data in a linking data structure linking the first workspace data structure and the display object means, the organizing substep comprising accessing the linking data structure to retrieve the display organization data.
36. The method of claim 33, further comprising the step of continuing operation of the display object means from the presentation of the first wordspace through the presentation of the redisplayed form of the first workspace so that the first display object in the redisplayed form of the first workspace is generated by display object means operations which continue from those which generated the first display object in the presentation of the first workspace.
37. The method of claim 24 in which the step of responding to the switch signal comprises the substep of causing the display to cease presenting the first workspace and to begin presenting the second workspace rapidly enought that the user perceives a change of location from the first display object to the second display object.
38. A system comprising:
a display;
display object means for generating a plurality of display objects, each of the display objects being perceptible as a distinct, coherent set of display features when presented on the display; the plurality of display objects including first and second display objects;
first and second workspace data structures relating respectively to first and second workspaces that can be presented on the display; each of the first and second workspaces including a respective set of the display objects; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display;
first and second linking data structures; the first linking data structure linking the first workspace data structure to the display object means so that the first display object is one of the respective set of display objects of the first workspace; the second linking data structure linking the second workspace data structure to the display object means so that the second display object is one of the respective set of display objects of the second workspace; the display object means generating the first and second display objects so that the first and second display objects are perceptible as the same tool; and
control means for accessing the first workspace data structure and the first linking data structure to cause the display object means to generate the first display object when the first workspace is presented and for accessing the second workspace data structure and the second linking data structure to cause the display object means to generate the second display object when the second workspace is presented.
39. The system of claim 38 in which the first linking data structure includes first display characteristic data indicating a respective display characteristic of the first display object and the second linking data structure includes second display characteristic data indicating a respective display characteristic of the second display object, the control means further being for accessing the first display characteristic data while accessing the first linking data structure to cause the display to present the first display object with its respective display characteristic; the control means further being for accessing the second display characteristic data while accessing the second linking data structure to cause the display to present the second display object with its respective display characteristic.
40. The system of claim 39 in which the respective display characteristics of the first and second display objects are respective positions, the first and second display characteristic data indicating the respective positions of the first and second display objects, respectively.
41. The system of claim 39 in which the respective display characteristics of the first and second display objects are respective sizes, the first and second display characteristic data indicating the respective sizes of the first and second display objects, respectively.
42. The system of claim 38 in which the control means is further for accessing the display object means with a unique identifier identifying the display object means, the first and second linking data structures each including the unique identifier.
43. The system of claim 38, further comprising input means for receiving signals from a user, the signals from the user including a request for a display system operation and a request for a workspace transition; the display object means further being for responding to the request for the display system operation and the control means further being for responding to the request for the workspace transition.
44. A method of operating a system that includes:
a display;
display object means for generating a plurality of display objects, each of the display objects being perceptible as a distinct, coherent set of display features when presented on the display; the plurality of display objects including first and second display objects;
first and second workspace data structures relating respectively to first and second workspaces that can be presented on the display; each of the first and second workspaces including a respective set of the display objects; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; and
first and second linking data structures; the first linking data structure linking the first workspace data structure to the display object means so that the first display object is one of the respective set of display objects of the first workspace; the second linking data structure linking the second workspace data structure to the display object means so that the second display object is one of the respective set of display objects of the second workspace; the display object means generating the first and second display objects so that the first and second display objects are perceptible as the same tool;
the method comprising the steps of:
accessing the first workspace data structure and the first linking data structure to cause the display object means to generate the first display object when presentation of the first workspace begins; and
accessing the second workspace data structure and the second linking data structure to cause the display object means to generate the second display object when presentation of the second workspace begins.
45. The method of claim 44 in which the first linking data structure includes first display characteristic data indicating a respective display characteristic of the first display object and the second linking data structure includes second display characteristic data indicating a respective display characteristic of the second display object; the step of accessing the first workspace data structure and the first linking data structure comprising the substep of accessing the display object means with the first display characteristic data to cause the display to present the first display object with its respective display characteristic; the step of accessing the second workspace data structure and the second linking data structure comprising accessing the display object means with the second display characteristic data to cause the display to present the second display object with its respective display characteristic.
46. The method of claim 44 in which the first and second linking data structures each includes a unique identifier identifying the display object means; the step of accessing the first workspace data structure and the first linking data structure comprising accessing the display object means with the unique identifier so that the display object means generates the first display object; the step of accessing the second workspace data structure and the second linking data structure comprising accessing the display object means with the unique identifier so that the display object means generates the second display object.
47. The method of claim 44 in which the system further includes input means for receiving signals from a user; the method further comprising the steps of:
while the first workspace is being presented, receiving from the input means a request for transition from the first workspace to the second workspace; and
responding to the request by causing the display to cease presenting the first workspace and to begin presenting the second workspace, the step of responding to the request including the step of accessing the second workspace data structure and the second linking data structure.
48. The method of claim 47 in which the signals from the user further include a request for a return transition from the second workspace to the first workspace; the method further comprising the steps of:
while the second workspace is being presented, receiving from the input means a request for a return transition from the second workspace to the first workspace; and
responding to the request by causing the display to cease presenting the second workspace and to begin presenting the first workspace, the step of responding to the request including the step of accessing the first workspace data structure and the first linking data structure.
49. A system comprising:
a display;
input means for receiving signals from a user;
display object means for generating a plurality of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; and
control means for causing the display to present a first set of the display objects, the display objects of the first set being perceptible as having spatial positions relative to each other when presented on the display; the first set of display objects including a switching display object and a first tool display object; the signals from the user including a switch request signal indicating selection of the switching display object; the control means further being for receiving the switch request signal from the input means; the control means further being for responding to the switch request signal by causing the display to cease presenting the first set of display objects and to begin presenting a second set of the display objects, the display objects of the second set being perceptible as having spatial positions relative to each other when presented on the display; the second set of display objects including a second tool display object, the first and second tool display objects being perceptible as the same tool.
50. The system of claim 49 in which the switching display object is not location sensitive.
51. The system of claim 50 in which the switching display object is an icon.
52. The system of claim 50 in which the switching display object is perceptible as a miniature door.
53. A method of operating a system that includes:
a display;
input means for receiving signals from a user;
display object means for generating a plurality of display objects; each of the display objects being perceptible as a distinct, coherent set of display features;
first and second workspace data structures relating respectively to first and second workspaces that can be presented on the display; each of the first and second workspaces including a respective set of the display objects; the display objects of each respective set being perceptible as having spatial positions relative to each other when the respective workspace is presented on the display; and the first workspace data structure being linked to the display object means so that a first one of the display objects is in the respective set of display objects of the first workspace;
the method comprising the steps of:
causing the display to present the first workspace, the step of causing the display to present the first workspace comprising the substep of accessing the first workspace data structure so that the first workspace includes the first display object generated by the display object means;
while presenting the first workspace, receiving from the input means a switch signal requesting a switch from the first workspace to the second workspace and requesting a transfer of the first display object between the first workspace and the second workspace; and
responding to the switch signal by causing the display to cease presenting the first workspace and to begin presenting the second workspace, the step of responding to the switch signal comprising the substeps of linking the second workspace data structure to the display object means so that a second one of the display objects is in the respective set of display objects of the second workspace and then accessing the second workspace data structure so that the second workspace includes the second display object; the display object means generating the first and second display objects so that the second display object appears to be the same tool as the first display object.
54. The method of claim 53 in which the transfer is a move operation.
55. The method of claim 53 in which the transfer is a copy operation.
56. A system comprising:
a display;
input means for receiving signals from a user;
display object means for generating a plurality of display objects; each of the display objects being perceptible as a distinct, coherent set of display features; and
control means for causing the display to present a first set of the display objects, the display objects of the first set being perceptible as having spatial positions relative to each other when presented on the display; the first set of display objects including a first tool display object; the signals that can be received by the input means including a switch request signal requesting a switch from the first set of display objects to a second set of display objects; the control means further being for responding to the switch request signal by causing the display to cease presenting the first set of display objects and to begin presenting a second set of the display objects, the display objects of the second set being perceptible as having spatial positions relative to each other when presented on the display; the second set of display objects including a second tool display object, the first and second tool display objects being perceptible as the same tool; the control means further being for responding to the switch request signal by storing data indicating display characteristics of the first display object before causing the display to cease presenting the first set of display objects.
57. The system of claim 56 in which the data indicating display characteristics of the first display object is data indicating the position of the first display object.
58. The system of claim 57 in which the data indicating display characteristics of the first display object is data indicating the size of the first display object.
59. A method of operating a system that includes:
a display;
input means for receiving signals from a user;
display object means for generating a plurality of display objects; each of the display objects being perceptible as a distinct, coherent set of display features;
the method comprising the steps of:
causing the display to present a first set of the display objects, the display objects of the first set being perceptible as having spatial positions relative to each other when presented on the display; the first set of display objects including a first tool display object;
while presenting the first set of the display objects, receiving from the input means a switch request signal requesting a switch from the first set of display objects to a second set of display objects; and
responding to the switch request signal by causing the display to cease presenting the first set of display objects and to begin presenting the second set of the display objects, the display objects of the second set being perceptible as having spatial positions relative to each other when presented on the display; the second set of display objects including a second tool display object, the first and second tool display objects being perceptible as the same tool; the step of responding to the switch request signal comprising the substep of storing data indicating display characteristics of the first display object before causing the display to cease presenting the first set of display objects.
60. The method of claim 59, further comprising the steps of:
while the second set of display objects is being presented, receiving from the input means a return switch request signal requesting a switch back from the second set of display objects to the first set of display objects; and
responding to the return switch request signal by causing the display to cease presenting the second set of display objects and to being presenting the first set of display objects; the step of responding to the return switch request signal comprising the substep of accessing the stored data indicating display characteristics of the first display object and presenting the first display object in the first workspace with the indicated display characteristics.
61. The method of claim 59 in which the step of responding to the switch request signal comprises the substep of accessing the stored data indicating display characteristics of the first display object and presenting the second display object in the second workspace with the indicated display characteristics.
62. The method of claim 59, further comprising the steps of:
while the first set of display objects is presented, receiving from the input means a display object change signal requesting a change in the display characteristics of the first display object; and
responding to the display object change signal by presenting the first display object with its display characteristics changed as requested;
the substep of storing data indicating display characteristics comprising storing data indicating the changed display characteristics of the first display object.
Description
BACKGROUND OF THE INVENTION
The present invention relates to the user interface of a data processing system. More specifically, the invention relates to the organization of display objects such as windows into groups which are displayed together on a display-based user interface, each group being appropriate to a particular user task.
Current user interfaces typically include various types of input/output (I/O) devices-display outputs such as a cathode ray tube (CRT) and manually operated inputs such as a keyboard and a mouse. For example, a user provides alphanumeric and other inputs using the keyboard and provides inputs indicating position on the display using the mouse. The data processing system provides a display that helps the user to provide a sequence of manual inputs which will lead to the results the user desires.
One conventional technique for helping the user of a display-based user interface is to provide visually distinct display objects on the screen, each object fulfilling a corresponding function. For example, a pointer such as an arrow can be displayed on the screen, moving in response to a mouse or other pointer control device. The pointer appears to move over a number of other display objects which the user may select. The user typically selects a selectable display object or a distinct internal part of such a display object by a pointer signal, as by pressing an appropriate button on the mouse, when the pointer is on that display object or that distinct internal part. A user selection initiates operations of the data processing system which bear some logical relation to that display object.
The selectable display objects take many forms. The term "window" is applied to selectable display objects of various types, and one typical characteristic of windows is that the effect of a pointer signal within a window depends on the pointer location. The term "menu" is usually applied to another type of display object which also has this characteristic of distinct internal locations, because a menu typically has several areas within it, each of which represents an option which the user may select with a pointer signal in that area. The term "icon", on the other hand, is usually applied to a display object which does not have this characteristic of distinct internal locations, but which is a relatively small and visually suggestive of its function. A pointer signal within an icon typically produces the same effect regardless of the pointer's location within the icon.
Conventional display-based user interfaces thus may include at least three categories of display objects: a position indicating display object, such as a pointer; selectable display objects without internal location distinctions, such as icons; and selectable display objects with internal location distinctions, such as windows and menus. In addition, the user interface includes a set of procedures according to which the data processing system responds to selections and other inputs from the user.
A central constraint on user interface design is the relatively small size of the display screen, because it limits the number of perceptible objects which can be displayed to the user at any given time. On the other hand, the user tends to switch back and forth between tasks, each relating to a different group of display objects. Bannon, L., Cypher A., Greenspan, S. and Monty, M.L., in Proceedings of the ACM Human Factors in Software Conference, CHI'83, (1983), pp. 54-57 and in a talk delivered by Melissa Monty at CHI'83, Boston, December 1983, describe a number of reasons for task switching. As a result of task switching, the relatively small display typically becomes cluttered with a large number of objects, many of which are not relevant to the current task.
One set of techniques permits the user to reduce cluttering by distorting display objects within the workspace which appears on the screen. Smith, D., "Pygmalion", PhD Thesis, Dept. of Computer Science, Stanford University, 1975, describes the shrinking of windows to icons or small pictures reminding the user of the contents of the window. Goldberg, A., Smalltalk-80--The Interactive Programming Environment, Addison-Wesley, Reading, Mass., 1984, describes the user interface of the Smalltalk-80
system, in which a rectangular area on the display in which information may be accessed is called a "view" rather than a window, and in which views may overlap, allowing windows to cover each other, leaving only a portion to remind the user of what lies behind. Smalltalk permits two independent views of a single application, so that modifications of the data engaged by that application in one view are visible in the other view, even though the two views are produced by different objects in the system. Furnas, G., "Generalized Fisheye Views", in Mantei, M. and Orbeton, P. (eds.), Human Factors in Computing Systems--III, Proceedings of the CHI ' 86 Conference, Boston, April 1986, pp. 16-23, describes a fish-eye distortion technique in which all the objects are forced to fit by selectively showing objects based on their intrinsic importance and the user's current focus of attention. Spence, R. and Apperly, M., "Data Base Navigation: An Office Environment for the Professional", Behavior and Information Technology, Vol. 1, No. 1 (1982), pp. 43-54 describes a similar technique. DiSessa, A., "A Principled Design for an Integrated Computational Environment", Human-Computer Interaction, Vol. 1, No. 1 (1985), pp. 1-47, describes a spatial box metaphor in which boxes are nested in a hierarchy, and individual boxes can either appear expanded or shrunk to a symbol, depending on the user's position in the hierarchy.
Several other techniques permit the user to reduce cluttering by allocating screen usage between a number of tasks based on a desktop metaphor. Smith, D.C., Irby, C., Kimball, R., Verplank, B., and Harslem, E., "Designing the Star User Interface", BYTE, Vol. 7, No. 4 (April 1982), pp. 242-282, describe the Xerox Star user interface which employs a desktop metaphor, with icons representing familiar items which would appear on one's desk or in one's office, such as a document, a file folder, or a file drawer. In this type of user interface, the allocation of screen space can be switched from one display system object to another by, for example, shrinking the windows of one task to icons and expanding the icons of another task to windows. G. Williams, "The Lisa Computer System", BYTE, February 1983, pp. 33-50, describes the Lisa user interface which, like the Xerox Star, employs a desktop metaphor; at pages 36-38, Williams describes icons and windows which appear on the desktop, and also describes a window capable of containing icons. The further development of these features in the Macintosh user interface is described in the MacWrite Manual and the MacPaint Manual published by Apple Computer, Inc.
Other techniques are based on a large virtual workspace metaphor in which the screen is thought of as a movable viewport onto the workspace. Sutherland, I.E., "Sketchpad: A Man-machine Graphical Communication System", AFIPS Spring Joint Computer Conference, Vol. 23, (1963), pp. 329-346, describes Sketchpad, an early graphical program using this technique. Bolt, R.A., The Human Interface, Lifetime Learning Publications, Belmont, Calif. (1984), describes Dataland, in which color pictorial and textual data are arranged in three screens, one for an overview of the whole space, one for a detailed view of some portion of the space, and one touch-screen for control. The user can translate the detailed view to a different area or zoom to obtain more detail. Donahue, J. and Widom, J., "Whiteboards: A Graphical Database Tool", ACM Transactions on Office Information Systems, January 1986, Vol. 4, No. 1, pp. 24-41, describe operations for examining the contents of a Whiteboard display within which objects have spatial locations. Fisher, S. S., McGreevy, M., Humphries, J. and Robinett, W., "Virtual Environment Display System", presented at ACM Workshop on Interactive 3D Graphics, Chapel Hill, N.C., October 1986, which is not prior art in relation to the present invention, describe head-mounted displays used by NASA to monitor user head and body movements and provide a complete simulated three-dimensional visual space.
Another set of techniques provide multiple virtual workspaces, allowing more convenient access to non-displayed display objects by switching quickly from one virtual workspace to another. At pages 42, 49 and 67-73, Goldberg, cited above, describes a Smalltalk display object called a "project", which is a collection of views which takes up the entire display. The projects are organized hierarchically, so that one path to each project is through a window, referred to as a "door", which appears in the display of the project in which it is created, called its parent. The user can return to the current project's parent by selecting a menu command "exit project". At pages 322-339, Goldberg describes a project browser which can also be used to access a project. The project browser has two subviews, one containing a list menu with the titles of all existing projects and the other containing editable text which describes a project being created or accessed.
Bolt, cited above, and Herot, C. F., "Spatial Management of Data", ACM Trans. on Database Systems, Vol. 5, No. 4 (December 1980), pp. 493-514, describe the CCA system, a further development of Dataland, in which the user is swept into a subworkspace upon zooming close enough to a port, the subworkspaces being arranged hierarchically.
Chan, P. P., Learning Considerations in User Interface Design: The Room Model, (Report CS-84-16) University of Waterloo Computer Science Department, Waterloo, Ontario, Canada, 1984, in Chapter 3, proposes another type of multiple virtual workspaces, the Room user interface. In this interface, a group of icons is displayed in a container called a room, with some of the icons being door icons which, when selected, result in the display of a different room. At page 26, Chan compares this with the Xerox Star user interface, noting that the Room user interface provides "multiple desktops" in the form of multiple rooms, made possibly by the door icons. In Chapter 5, Chan describes the hierarchical data structure within which each room contains the data structure of each of its icons. Chan notes in Chapter 6 that the desktop model of Xerox Star provides a single workspace, requiring the user to waste time rearranging the displayed objects, while the room model reduces this form of waste. Chan also suggests a number of additional features, including a higher level display system object for manipulating rooms and, when the attributes of an icon are being examined, growing the icon as much as necessary and leaving other icons partially visible behind the opened icon.
Feiner, S., Nagy, S., and Van Dam, A., "An Experimental System for Creating and Presenting Interactive Graphical Documents", ACM Trans. on Graphics, Vol. 1, No. 1 (January 1982), pp. 59-77, describe documents which are directed graphs whose nodes are referred to as pages. The pages are organized into subchapters and chapters. A page may contain a button which can provide access to another page.
Hypertext systems typically include small, often textual, networks of displayed data units connected with arbitrary patterns of typed links providing paths between locations within the data units. PROMIS, described by Hurst, J. and Walker, K. (eds.), The Problem-Oriented System, MEDCOM Press, N.Y. (1972), and ZOG, described by Robertson, G., McCracken, D. and Newell, A., "The ZOG Approach to Man-Machine Communication", Int'l Journal of Man-Machine Studies, Vol. 14, No. 4, May 1981, pp.
461-488, each display a single data unit at a time. NLS, described by Engelbart, D. E. and English, W. K., "A Research Center for Augmenting Human Intellect", Proceedings of the AFIPS Fall Joint Computer Conference, Vol. 33 (1968), pp. 395-410, provides access to a subtree of data units if screen space permits. Notecards, a product of Xerox Corporation, provides access to any arbitrary set of data units.
A problem shared by the large virtual workspace techniques and the multiple virtual workspace techniques is that the user needs help navigating. In the large virtual workspaces such as Dataland, the user may navigate much as in space, by translating and zooming, and may be assisted by having both global and local views. In multiple virtual workspaces such as Smalltalk projects, the project browser similarly can relate a limited number of projects for user navigation. In the hypertext systems such as the electronic book and NoteCards, browsers may be used as well as presentations of local connections between workspaces.
Some related features have been described in the patent literature. Ikegami et al., European Patent Application Publication No. 0,108,520, describe a method of controlling windows to display card images lengthwise on a display; a group of card images may be processed as a box, as explained at pages 4-5. Cason et al., U.S. Pat. No. 4,484,302, describe multiple virtual displays at columns 2 and 5. Shaw et al., U.S. Pat. No. 4,598,384, describe at column 2 a graphics display with independent windows, several of which may be simultaneously operated from one or more application programs. Pike, U.S. Pat. No. 4,555,775, describes graphics software under which each of several bitmap layers or windows is always active regardless of its visibility, beginning at column 1. Tabata et al., U.S. Pat. No. 4,574,364, describe a display technique in which a window management table is used to manage the information about plural windows. It would be advantageous to have a more useful multiple workspace user interface.
SUMMARY OF THE INVENTION
The present invention provides a multiple workspace user interface which has a number of useful features.
One aspect of the invention is to provide techniques for switching from one workspace display to another. The user can organize a collection of tools such as windows or other display objects into groups, with the tools of each group being linked to a respective workspace so that they are displayed when it is. A display system object can be linked to more than one workspace, to provide a respective tool in each of those workspaces. If the user provides signals causing a switch from one of those workspaces to another, the respective tools share features so that the user perceives them as the same tool, and the state of the display system object maintains continuity.
Another aspect of the invention is to provide linking data structures which can be used to link workspace data structures to the display system objects of a preexisting object-based display system. Each display system object in such a system provides a respective independent display object set, by providing each display object in that set for display and by receiving signals relating to each such display object and responding to those signals. A workspace system can be added to the display system by providing workspace data structures and procedures and by linking the workspace data structures to the display system objects using placements. More than one placement can link to the same display system object. Each placement may contain a handle for the linked object and display characteristics, such as position and size, according to which that display system object provides a display object in the linked workspace.
Another aspect of the invention is to provide techniques for leaving and entering workspaces so that the user, upon reentering a workspace, can recognize it based on its organization. In leaving a workspace, the display characteristics of the display objects are stored in the placements which link their display system objects to the workspace's data structure. When that workspace is reentered, the placements are accessed to retrieve the display characteristics, which are then provided to the display system object.
Another aspect of the invention is to provide aids to navigation between workspaces. A special navigational display called the overview can be entered from a workspace. The overview includes a pictogram representing each of the existing workspaces, within which are window pictograms representing each window within that workspace. The user may select a window pictogram to obtain more information about the corresponding display object. The user may select a workspace pictogram to enter that workspace, leaving the overview.
Another aspect of the invention is to provide techniques for the apparent transfer of display objects from one workspace to another. Although a display object cannot be transferred between workspaces, the user may select a display object and cause its apparent transfer to another workspace. The user may, for example, transfer the pictogram representing that display object between workspaces in the overview, in which case a new placement is created linking to the new workspace. The user can also move the pictogram into an included workspace, in which case it will appear to be transferred into each of the other workspaces which include that workspace. The user could put the display object into a special workspace which is effectively included in all the other workspaces. Or the user could pick up the display object in leaving one workspace so that it will be transferred into the next workspace to be entered, in which case a placement will be created linking the display object to the next workspace.
Another aspect of the invention provides techniques for manipulating workspaces, including file operations on groups of workspaces. By a save operation, descriptors of the display system objects to which the selected workspaces are linked are stored in a file and the linking placements are changed so that they contain file handles, so that the workspace data structures can be stored in the file in a form which permits recreation of the workspaces. By a restore or augment operation, the display system objects are recreated from their descriptors and their new display system handles are used to modify the linking placements so that the workspace data structures are again linked to the display system objects and the workspaces can be displayed. These file operations can be used to deliver applications. These and other objects, features and advantages of the present invention will be more fully understood from the following description together with the claims and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is a schematic diagram of the display of a first workspace.
FIG. 1B is a schematic diagram of the display of a second workspace displayed.
FIG. 2 is a schematic diagram of workspace data structures with associated placements.
FIG. 3 is a flowchart showing steps for leaving a workspace.
FIG. 4 is a flowchart showing steps for entering a workspace.
FIG. 5 is an example of an overview display showing representations of workspaces.
FIG. 6 is a flowchart showing steps for entering the overview.
FIG. 7 is a flowchart showing steps for exiting the overview.
FIG. 8 is a schematic diagram showing an inclusion linking two workspace data structures.
FIG. 9 is a flowchart showing steps for file operations on workspace data structures.
FIG. 10 is a schematic diagram showing an overall workspace data structure.
FIG. 11 is a state and transition diagram showing procedures and modes of a workspace system.
FIG. 12 is a flowchart showing steps for the system setup procedure of FIG. 11.
FIG. 13 is a flowchart showing steps for the exit workspace procedure of FIG. 11.
FIG. 14 is a flowchart showing a number of user signal sequences by which a user may signal a workspace exit in FIG. 13.
FIG. 15A is a flowchart showing steps for a routine for creating a list of workspaces in FIG. 13.
FIG. 15B is a flowchart showing steps of a recursive procedure called in FIG. 15A.
FIG. 16 is a flowchart showing steps for creating a list of controlling placements in FIG. 13.
FIG. 17 is a flowchart showing steps for testing the order of placements and for reordering placements in a workspace in FIG. 13.
FIG. 18A is a flowchart showing steps for a routine for walking through a workspace data structure to enter a workspace.
FIG. 18B is a flowchart showing steps of a recursive procedure called in FIG. 18A.
FIG. 19 is a flowchart showing steps for entering the overview.
FIG. 20 is a schematic block diagram showing the window registration system.
FIGS. 21A and 21B are a flowchart showing steps for a save operation on workspaces.
FIG. 22 is a flowchart showing steps for a restore operation and an augment operation on a saved file.
FIG. 23 shows a display object for delivering applications which may be used with the augment operation of FIG. 22.
FIG. 24 shows another display object for delivering applications which is available from the display object of FIG. 23.
DETAILED DESCRIPTION
A. Conceptual Framework
The following terms provide a conceptual framework for describing the present invention.
A "display object" is defined herein as a visually distinguishable display feature or set of features which is coherent, in the sense of sticking together in a display. An alphanumeric character is a common display object, and early user interfaces typically were only capable of displaying such objects. Windows and icons, described above, are more advanced display objects. Some display objects, such as characters within an icon's label, may not be separately user selectable, while others, such as the icon itself, may be selected for the performance of a specified operation. The types of display objects available, the manner in which they are selected and the available operations are all characteristics of the particular system providing the display, and the system includes hardware and software components.
The term "container" is defined herein to mean a display object which may contain other display objects within its boundaries. A window is an example of a container because it may be occupied by a number of characters or other display objects. A window is itself a display object, however, so that the display characteristics of the window, including its dimensions, place a constraint on the display objects it contains. A container such as a window may, however, remain invisible when displayed, even though display objects it contains are visible. Also, a container may be location sensitive, meaning that a user selectable display feature within it may be selected by user signals indicating the location of that feature. In general, a container may be analyzed into display characteristics, such as position, size and other features which depend on the particular presentation, and its contents, including the display objects and other features which do not depend on the particular presentation.
The term "display system" is defined herein to mean a system for managing or controlling a display. A display system is therefore an example of the more general term "user interface", meaning a system for receiving signals from a user or for providing signals to a user, or both. The user interface will typically be one of a number of subsystems within an overall system.
An "object-based display system" is a display system that presents a number of display objects as if each was an independent object, meaning that each of those display objects appears to the user as if it were receiving signals from the user and responding to those signals independently from the other display objects, according to its own receiving and response procedures. The display objects that are managed in this manner may include containers such as windows and also non-containers such as icons. An object-based display system may also present several display objects as if they were not independent, such as two windows that differ in position and size but have the same contents or a window and its icon or shrunken form. Each group of display objects that are not independent of each other but that are independent of all other display objects is referred to herein as an "independent display object set". An object-based display system can be implemented in a multitude of ways. An object-based display system for managing windows, for example, is referred to herein as a "window system", and each independent display object set in a window system can be interactively manipulated independently of other windows not in that set.
The term "display system object" is defined herein to mean the means within an object-based display system for providing a corresponding independent display object set, meaning that the display system object provides the visible features of each of the display objects in that display object set and receives and responds to user signals relating to those display objects. A display system object may include one or more data structures and a number of procedures, and a data structure or procedure such as an editor or other application could be called by more than one display system object, each of which also includes a respective set of changeable display characteristics for presenting the corresponding display objects. Each window in a window system, for example, is provided by a display system object, which determines not only the contents of the window but also the display characteristics of the window. A single display system object may provide more than one window if those two windows are not independent of each other and may also provide an icon or shrunken form of a window it provides. A display system object is one instance of the more general term "signal source" , meaning any means for generating data that a user can perceive.
The term "display workspace", or simply "workspace", is defined herein to mean the display system entity that includes a collection of display objects together with spatial display relations between them. A workspace is referred to as being displayed when the display objects in it are available for display in accordance with the spatial display relations they have within that workspace. The workspace itself need not be visible as a distinct display object when it is displayed and could occupy the entire display area. The display objects within it may be user selectable, and if a display object is selectable by user signals indicating its location within the display, the workspace is location sensitive. A display system or part of a display system that manages or controls workspaces is termed a "workspace system". A workspace system may be implemented in many ways, some of which are described below.
A workspace system may provide only one workspace that is always displayed, or it may provide more than one workspace, in which case one or more of the workspaces may not be displayed at times. Workspaces may thus be referred to as "virtual workspaces", with the display objects in each workspace being available for display when that workspace is displayed. In other words, the workspace itself is virtual, yet a part of it may be made real by being displayed.
The more general term "perceptural space", or simply "space", is used herein to refer to any range of perception that may be occupied by signals which are distinguishable by a user. A display workspace is but one example of a space, the type of space that display objects like windows and icons may ocupy. Another example of space would be the perceptual space that different tones or voices may occupy.
In general, the distinguishable signals generated by a user interface, whether windows or voices, may be referred to as "user interface objects". An "object-based user interface system" is one that can provide a number independent user interface objects, meaning that each of these objects seems to the user to be receiving signals from the user and responding to those signals independently from the other objects, according to its own receiving and response procedures. An object-based user interface system may also present several user interface objects as if they were not independent, and each group of objects that are not independent of each other but that are independent of all other objects is referred to herein as an "independent interface object set". An "interface system object" is the means within an object-based user interface system for providing each of the user interface objects in a given independent interface object set and for receiving and responding to user signals relating to those user interface objects.
The above terms have the meanings indicated above both in the following description and in the attached claims.
B. General Features
FIGS. 1-9 illustrate a number of general features of the present invention, including switching from the display of one workspace to another; placements linking display objects to workspaces; methods of leaving and entering workspaces; aids to navigating between workspaces; techniques for transferring display objects from one workspace to another; the inclusion of a workspace in another workspace; techniques for manipulating workspaces; and techniques for transferring a group of workspaces.
1. Workspace Display Switching. FIGS. 1A and 1B each show a respective display screen presenting a plurality of display objects. These display screens are examples of workspace displays, each displaying part or all of a workspace occupied by a number of distinguishable display objects, such as windows and icons.
Workspace display 10 in FIG. 1A is a display of a first workspace, which includes windows 12 and 14 and icon 16, positioned within display 10 in accordance with their spatial relations within the first workspace. Window 12 presents several alphabetic characters from a text editing application and window 14 presents a triangular solid from a graphics application. Each of these windows may be location sensitive, so that the user, by selecting a location within a window and invoking an operation, can send a signal corresponding to that location to the display system object providing that window. For example, in an editing window, the user may modify a display feature by selecting the location at which that feature is displayed and invoking an editing operation. Door icon 16, on the other hand, is not location sensitive. Pointer 18 is currently pointing at door icon 16, and if the user provides a select signal at this time, door icon 16 will be selected as a unit, without regard to the position of pointer 18 within the icon. The user may then invoke a door opening operation, causing workspace display 10 to disappear and workspace display 20 to appear, as shown in FIG. 1B.
Workspace display 20 is a display of a second workspace, which includes windows 22 and 24 and icon 26, positioned in accordance with their spatial relations within the second workspace. Window 22, which is provided by the same display system object as window 12 in workspace display 10, is presented in a different location on the screen and with different dimensions than window 12, as can be seen from the cutting off of the character "d". Window 24 presents a cylindrical solid from another graphics application and a different door icon 26, a "back door" that can be used to return to workspace display 10.
Workspace displays 10 and 20 each include a group of display objects as described above. As noted, two of those display objects, windows 12 and 22, are provided by the same display system object, which calls a text editing application as one of its procedures. If the user edits the contents of window 12 and then uses door icon 16 to enter workspace display 20, the changes made will be reflected in the contents of window 22 and the state of the underlying display system object will be continuous. It is also possible for the user to remove window 12 from workspace display 10 without removing window 22 from workspace display 20.
Windows 12 and 22 illustrate the phenomenon of object constancy, under which two successively displayed objects are perceived as the same object. Object constancy can result from many cues, including position, size, context, contents, labels, history and so forth. Here, windows 12 and 22 appear to be the same object despite having different display characteristics, including different positions, sizes and contexts. But because they each contain a fragment of shared text, the user typically perceives them as the same object. That perception is reinforced if they also share response procedures so that user invoked operations, such as scrolling or selecting and operating on contents, have the same effect in each window. Other shared features which can result in object constancy include sharing of an application, such as an editor; sharing of data; sharing of the state of the application as applied to the data; sharing of a history of continuous operation without interruption, i.e. without disengaging the application from the data.
The above described features of the present invention are based on the recognition of a problem which previous user interface techniques have not completely solved, the problem of tool faulting, which precludes fast task switching. Tool faulting is not limited to a display-based user interface, but occurs in any object-based user interface. Each user interface object in effect serves as a tool, and the user treats each tool as an external memory or processor that augments the user's own capabilities. These tools could be display objects, audible objects or entities, mechanical gesturing objects, tactile objects or objects providing any other signal perceptible by the user.
The invention is based in part on the recognition that a user's activities are organized around tasks, during each of which the user employs a collection of tools appropriate to that task. This phenomenon is called locality of reference, meaning that within any given short period of time the number of different tools employed will be small while the number of instances of use of each tool employed is relatively high. Therefore, references to tools occur in clusters. These clusters are separated, however, by distinct task switches, during which the user stops employing one collection of tools and begins to employ a different collection. When the task switch is completed, a cluster of references to the new collection of tools will occur, followed by another task switch, and so forth.
The problem can be understood more fully by considering the capacity and access time of such a tool. If the user interface is display-based, for example, the number of display objects to which the user has direct access is limited by the size of the display. The user tends to increase the number of visible display objects and also to increase the size of each display object in accordance with current needs, up to the limit imposed by the display size. This tendency conflicts, however, with the need for a different set of tools when a task switch occurs.
During a task switch, the user needs fast access to the tools associated with the new task that are not currently available, and the process of accessing each such tool is referred to as a tool fault, during which the user does whatever is necessary to find that tool and make it available for use. In a display-based user interface, for example, it may be necessary to obtain a window with a command or a menu or by expanding an icon or it may be necessary to make a window visible by making it the top window or by inactivating, resizing or moving other windows. A tool fault thus provides access to a tool which is unavailable on the display but needed; and amount of time spent by the tool fault may be greater if the tools being used previously required a large amount of display area. In other words, there may be a tradeoff between the display area currently being used and the access time for a different set of tools.
The present invention is further based on the recognition that this problem cannot be solved simply by organizing the tools into mutually exclusive groups between which the user can switch. The user may require a given tool during a number of tasks. If the tools are organized into mutually exclusive groups, a great deal of tool faulting will still be necessary to access such tools.
The present invention solves this problem by enabling the user to organize the tools into groups among which tools may effectively be shared and between which the user can rapidly switch. The tools of each group occupy a respective perceptual space and, when presented to the user, are free to occupy substantially all of the system-to-user capacity of that space. The user is able to provide a sequence of signals that causes a switch from one space to another space. When the user switches from a first space to a second space, as by going from one workspace to another using a door icon in a display-based interface, tool faulting occurs much more rapidly for the group of tools than if the user had to handle each tool fault individually. And if the first and second workspaces share a tool, a first display object in the first workspace and a second display object in the second workspace share features so that the user perceives them as the same display object or tool and can continue working with the second display object on that basis. Therefore, the invention permits fast and effective task switching.
2. Placements. Another aspect of the invention is based on the recognition that a number of software systems which provide display objects such as windows and icons already exist. Because a window system requires voluminous software, it is undesirable to rewrite the entire window system software in order to implement the above described features of the invention. This aspect of the invention is based on the discovery of techniques for implementing workspaces with an existing window system without extensively modifying the existing window system's software. Because some of those techniques permit a distinction between the window system which manages the windows and the workspace system within which the windows are displayed, the window system and the workspace system can develop separately.
FIG. 2 illustrates part of a data structure used in implementing the invention in a manner requiring only minimal changes in a window system used with it. The data structure includes workspace data structure 30 for workspace 10 displayed in FIG.
1A, and this workspace data structure has a number of associated data structures including placements 32 and 34. A placement is a data structure which links a respective workspace to a display object included in that workspace. A placement may also include data about the display characteristics of that display object when displayed within that workspace, from which the spatial display relations of that display object to other display objects in that workspace may be determined. For example, workspace data structure 30 includes data for providing workspace display 10, while placement 32 provides the location and size of window 14 and placement 34 provides the location and size of window 12.
Each placement is linked to a display system object, and if the workspace system is implemented with a preexisting window system each display system object is within the window system. When a workspace display is set up, each placement linked to its workspace data structure provides the location and size of a window or other display object to the display system object which provides that window. Placements 32 and 34 respectively link display system objects 36 and 38 to workspace data structure
30 so that windows 14 and 12 are presented in workspace display 10. Similarly, placements 42 and 44 link display system objects 46 and 38 to workspace data structure 40 so that windows 24 and 22 are presented in workspace display 20. Placements, not shown, could also link display system objects to the workspaces so that doors 16 and 26 are presented.
Because a display system object may be linked by different placements to different workspaces, the contents it provides may be displayed differently in those workspaces. For example, placements 34 and 44 in FIG. 2 link workspace data structures
30 and 40 with a shared display system object 38, making it possible for window 12 in workspace display 10 to have the same contents and receiving and response procedures as window 22 in workspace display 20 while having a different position and size. At the same time, placement 32 retains display placement data about window 14 in workspace display 10 even while workspace display 20 is visible so that when the user selects door icon 26, workspace display 10 returns with window 14 presented at the appropriate position and size. Placements thus make it possible for each of a number of windows with the same visible contents and receiving and response procedures to appear in a respective workspace at a unique position and size. This is possible even though the shared contents and procedures of all of the windows are from a single display system object which is part of an independent window system. This feature of placements is also applicable to display objects other than windows.
3. Leaving and Entering a Workspace. Another aspect of the present invention is based on the recognition that the transition from one workspace to another may be confusing to the user unless the newly displayed workspace has some distinctive identifying characteristics and familiar organization and contents. This problem is closely related to the problem of fast task resumption, because a user is not able to resume a task quickly unless the display provides cues about the user's previous place in that task. This aspect of the invention is based on the discovery of techniques which assist the user in recognizing a newly displayed workspace. One technique is to provide identifying visual features such as a distinctive background or name to appear with the newly displayed workspace. In order to give the user a sense of familiarity with the organization of the workspace, however, it is also important that the display objects within the workspace appear with the same organization as when the user last left that workspace. Also, the contents of each window, to the extent not modified through windows in other workspaces, should appear the same as when the user last left. In order to return the display objects to the same state, appropriate information must be stored when the user leaves a workspace.
FIG. 3 shows a sequence of steps for leaving a workspace according to the invention. In box 60, the user initiates the operation of leaving a workspace by signaling that the display system should display another workspace or the overview, a user interface feature discussed below. In either case, it is necessary to preserve the state of the currently displayed workspace before leaving it, and the system will lock out the user temporarily so that it can perform the necessary steps to do so.
In box 62, the system stores data about the currently displayed objects in the placements which link them to the currently displayed workspace. This data may be retrieved based on the changes the user has made while in the current workspace, as discussed in more detail below. Some or all of this data could alternatively be maintained during operations in the current workspace by updating a list of the placements controlling currently displayed objects whenever an operation changes the data in a placement. In either case, the data stored in the placements includes any feature of each display object which can be different when it is displayed in different workspaces. Therefore, the placement data should include at least the position and size of the display object, and may also include other features of its appearance. It is necessary to store this data so that when the user again enters this workspace, the display objects in it can be caused to appear the same as when the user left.
The system proceeds in box 64 to make the display objects in the current workspace invisible. Because display objects with the same contents may appear in other workspaces, the contents may be modified before the user reenters the current workspace. Therefore, it is not possible to ensure that the contents will remain the same. But each display object must be removed from the display so that the next workspace can be displayed, and the display system object providing the contents of each active display object such as an open window should be kept active. When those contents are next displayed, either in another workspace or upon reentering this workspace, they should be the same as when this workspace was left, and the state of the display system object providing them should be continuously active, without interruption. One technique for removing the contents of a window without changing the state of the respective display system object is to cause the display system object to provide those contents to a dummy position, called a "hiding place" herein, in which they will be ignored in creating the display. While those contents are being provided to the hiding place, it is important that the display system object not receive user signals, of course, and it is convenient to think of the display system object itself as being in the hiding place. Another technique is to use a boolean variable in the display system object to cause it to stop displaying any display object until that boolean variable is reset. Whatever technique is used, each display object would be invisible upon completion of the step in box 64 and would remain invisible until displayed again in a workspace.
The step in box 66 provides for procedures upon leaving a workspace, which may be unique to that workspace. Procedures in box 66 may preserve useful information about the workspace itself, as opposed to the steps in boxes 62 and 64 which preserve useful information about the workspace's placements and their respective display system objects. For example, an identifier of the current workspace may be stored in a location which indicates that it is the previous workspace. In addition, information may be stored about the manner in which it was left. Procedures may be performed for transferring the contents of a display object in the current workspace to a new display object provided by the same display system object in the next workspace. Also, user supplied procedures for modifying the system, for example by changing global variables, may be performed. When all of these procedures are completed, the system enters the next workspace or the overview, in box 68.
FIG. 4 shows a sequence of steps for entering a workspace, which is generally the reverse of the sequence in FIG. 3. In box 80, the workspace's data structure is accessed using an identifier of that workspace. The workspace identifier may result from a user signal to enter that workspace. Upon accessing the workspace's data structure, its entry procedures are performed in box 82. Those procedures may include providing a way to return to the previous workspace and storing this workspace's identifier in a location indicating it is the current workspace. In box 84, the system retrieves the data about the display objects in this workspace from the placements associated with this workspace's data structure. The linked display objects are then made visible in accordance with that data in box 86, which includes moving them from the hiding place to a location within the display. At this point, the system is ready to receive further user inputs.
The process of leaving and entering a workspace, as shown in FIGS. 3 and 4, thus returns the display objects in a newly displayed workspace to approximately the same state as when the user last left that workspace. The invention thus solves the problem of fast task resumption, because the user is ordinarily able to recall the resumed task based on the organization and contents of its display objects.
4. Navigation Aids. Another aspect of the invention is based on the recognition that the user must have the ability to navigate efficiently between workspaces. This problem involves several more specific problems. The user is very likely to need an efficient way to return to the previous workspace. The user should be able to find and enter any other workspace. The user should be able to find a desired display object in any other workspace.
A return to the previous workspace can be provided by creating a back door to the previous workspace in the step in box 82 in FIG. 4. Also, access to any other workspace can be provided by a pop-up menu with a list of all existing workspace names. But it would be beneficial to have a more powerful navigational tool.
This aspect of the invention is further based on the recognition that many navigational problems can be solved with a user interface feature which displays the existing workspaces together with information which assists the user in finding display objects within workspaces. In accordance with the invention, this feature is implemented by a special display referred to as the overview.
FIG. 5 shows overview 100, with eleven currently existing workspaces, each represented by a pictogram. Workspace pictogram 102, for example, represents a workspace named "CONTROL". Each workspace pictogram shows the general organization of display objects within the respective workspace. Workspace pictogram 102, for example, includes window pictogram 104, and the user can, by an appropriate sequence of signals, obtain more information about the contents of the window corresponding to pictogram 104 or any other display object within overview 100.
FIG. 6 shows a sequence of steps for entering overview 100 which can be understood with reference to FIG. 5. The sequence begins in box 120 with the step of providing inactive display features of overview 100 such as the background pattern and title 106. The title in FIG. 5 is "Overview of rooms", a title which includes the word ROOMS, a trademark of Xerox Corporation used in connection with one implementation of the present invention. The step in box 122 provides a number of display features of overview 100 which, although independent of the currently existing workspaces and their contents, are display tools for facilitating user actions, such as buttons 108, 110 and 112 and prompt window 114. The user may use buttons 108, 110 and
112 to save, restore and augment operations on a group of workspaces, and may receive prompt messages through prompt window 114. These and other display tools of overview 100 are discussed in more detail below.
The sequence of FIG. 6 continues with the layout of the workspace pictograms, in box 124. In this step, the system goes through the existing workspaces and determines how they should be laid out on the display. A position and size may be assigned to each of the workspaces so that the workspace pictograms will be displayed in a sequence, such as the alphabetical order shown in FIG. 5.
The step in box 126 continues by generating the detail for each workspace pictogram. This step may involve retrieving data from the placements associated with each workspace about the position and size of each display object within that workspace. The display system object linked to each placement could also be accessed to retrieve data about the contents of the respective display object, in which case the display object pictogram could include more information about the contents. Rather than accessing the placements and the display system objects to provide each pictogram every time the overview is displayed, however, this step may involve determining whether a given workspace has changed since the overview was last displayed. If not, the previous pictogram can be retrieved from an overview cache saving the previously displayed pictograms.
When the pictograms have been laid out and detailed, the step in box 128 switches the system into an overview interactive mode, in which the user inputs are handled by procedures appropriate to the overview rather than to the underlying window system. In effect, the window system enters a special state with a special set of display objects and with special procedures to implement the overview.
The manner in which inputs are handled in the overview interactive mode is described in greater detail below, but the user is able to provide sequences of inputs which, for example, cause the system to leave the overview and enter a selected workspace or which cause the respective display object of a selected display object pictogram to appear at a position and size determined by its placement, showing its current contents. Thus the overview interactive mode facilitates user navigation by permitting the user to move to any workspace or to find any desired display object.
FIG. 7 shows a short sequence of steps for leaving the overview. In box 130, the user signals the system to enter one of the workspaces. Then, in box 132, the overview display objects are removed from the display and, in box 134, the system enters the selected workspace. As discussed below, it is possible to exit the overview in this manner because the overview display may be kept current in response to every user signal.
5. Display Object Transfer and Workspace Inclusions. Another aspect of the invention is based on the recognition that the user often needs to move, copy or otherwise transfer a display object from one workspace to another. Conventional techniques of transferring display objects rely on simultaneous display of the source and destination of a transfer operation so that the user can indicate both, but two workspaces are not typically displayed simultaneously. Furthermore, since each display object is a result of the presentation of its contents in accordance with a given placement and since that placement is linked to a given workspace, it is not really possible to transfer a display object from one workspace to another. This aspect of the invention is based on the discovery of a number of techniques which permit the apparent transfer of display objects between workspaces.
Some techniques for the apparent transfer of display objects between workspaces involve the creation of a new placement linking the same display system object to the transferee workspace. For example, any pictogram in overview 100 may be selected and then moved or copied to another workspace. The move or copy operation includes creating a new placement linking that display object to the transferee workspace and including the same display characteristics as the existing placement linking it to the transferor workspace. Additionally, in a move operation, the existing placement is also deleted. The pictograms are then changed in accordance with the changed placements, resulting in a new display object in the transferee workspace which has the same display characteristics as the display object in the transferor workspace. Therefore, it appears to the user that the display object has been moved or copied.
FIG. 5 also illustrates another technique according to the invention for the apparent transfer of display objects between workspaces. Pictogram 102, labeled "CONTROL", includes window pictogram 104 and a number of other pictograms, each representing a window or other display object. Pictogram 102 represents a special workspace, referred to as a control panel, which includes a number of display objects which are useful in many other workspaces. Control panel boundary 116, which may itself be a window, provides a visual cue identifying the control panel workspace. As shown in FIG. 5, boundary 116 and the other display objects in pictogram 102 appear in nearly all the other currently existing workspaces. This result is obtained by actually including the control panel workspace in the other workspaces in accordance with the invention, so that the switch from a first workspace which includes the control panel to a second appears to transfer each of the display objects in the control panel from the first workspace to the second. Because the control panel workspace represented by pictogram 102 is included in other workspaces, it can also be used to transfer display objects into the workspaces which include it. In other words, any display object which is transferred into the control panel will simultaneously be transferred into each of the workspaces which includes the control panel.
A workspace may be invisible even when displayed, so that a workspace may include several other workspaces as long as their display objects do not conflict, either with display objects of other included workspaces or with display objects of the including workspace. A conflict could occur, for example, if two or more of the workspaces include placements linking them to the same display system object, in which case one placement might clobber the other one, preventing it from presenting a display object. Some means should be provided to resolve any such conflicts and to avoid a cyclic relation in which two workspaces include each other. Other than that, few constraints on the inclusion of workspaces within workspaces are necessary.
FIG. 8 illustrates schematically the features of the data structure which permit inclusion of one workspace within another. Workspace data structure 140 includes the information necessary to generate the mail workspace, represented by pictogram
118 in FIG. 5. Workspace data structure 142 similarly includes the information for the control panel, represented by pictogram 102. Inclusion 144 is a workspace inclusion data structure which links data structures 140 and 142 so that the control panel is included in the mail workspace display. This means that boundary 116, the window represented by pictogram 104 and the other display objects represented in pictogram 102 are included in the mail workspace display, and they all appear at the same position and size as in the control panel.
Rather than being included in a subset of the other workspaces, a workspace could be included in all the other workspaces, in which case that workspace could be thought of as the user's pockets, a workspace which goes with the user into any other workspace. The display objects included in the pockets are displayed at the same position and size in every workspace. The user can use a special sequence of user inputs to transfer a display object into or out of the pockets without going to the overview. When the user invokes an operation transferring a display object into or out of the pockets, the system creates or deletes the placement linking the corresponding display system object to the pockets workspace. As discussed below, the technique for including the pockets in the other workspaces may differ from the inclusion technique shown in FIG. 8, and may make use of the workspace leaving step in box 66 in FIG. 3 and the workspace entry step in box 82 in FIG. 4.
Another technique for transferring display objects from one workspace to another also makes use of the steps in boxes 66 and 82. As described above, those steps involve operations performed whenever the user leaves or enters a given workspace. If the user provides a sequence of signals indicating that display objects are to be moved or copied from the workspace being left into the workspace being entered, the user is given an opportunity to designate which display objects are to be moved or copied, such display objects being referred to as "baggage". If a display object is being moved or copied, the procedures in box 66 include creating a new placement to ink the corresponding display system object to the workspace being entered, after which the placement linking it to the previous workspace is deleted if the display object is being moved. Then, the procedures in box 82 include linking the new placements to the workspace being entered so that the display objects in the baggage are displayed at the same position and size as in the previous workspace.
6. Workspace Manipulation. Another aspect of the invention is based on the recognition that the user must be able to create, delete and otherwise modify workspaces and modify their contents. The invention includes a number of techniques for solving this problem. Some of those techniques use the overview, in which a display object can be deleted from one workspace or from all workspaces containing it, and in which an entire workspace can be deleted or copied. In addition, the user can edit a description of a workspace from the overview or within the workspace with an appropriate sequence of signals. This aspect of the invention is further based on the discovery of techniques which permit treatment of a group or suite of workspaces as a distinct data structure. This suite of workspaces can be made available to other users, as by storing it on a server, and another user can then add it to an existing set of workspaces through a process called augmenting.
FIG. 9 shows a sequence of steps implementing these techniques. In box 150, an expert or other user creates a suite of workspaces which are useful for a set of tasks. These workspaces may be suitable, for example, for a novice user of workspaces who needs a basic set of workspaces. Or the workspaces could be suitable for a specialist in a given field who needed a set of workspaces for certain specialized tasks. The creator then invokes a save operation on the suite of workspaces through an appropriate sequence of signals.
The save operation includes loading data relating to display system objects into a file, in box 152. The display system objects for which data is loaded are those which correspond to display objects in the suite of workspaces being saved, and the data loaded about each display system object will depend on the type of display system object, as discussed in more detail below. Next, the data structures of the workspaces themselves are loaded, in box 154. The data structure of each workspace is modified so that references to display system objects refer to the display system object as stored in the file, not as it existed in the display system. When the file has been loaded in this manner, it is sent to a file server or other appropriate storage medium in box 156.
The file may remain on the file server for an indeterminate length of time, as indicated by the dashed line after box 156. Then, at some point, a user accesses it, in box 158. The user invokes an operation which recreates the contents of the file. In box 160, the display system objects are recreated on the display system, and are directed to provide the corresponding display objects to the hiding place, so that those display objects are not displayed. Then, in box 162, the workspaces themselves are recreated, and the handles of the recreated display system objects in the display system are inserted into the workspace data structures. The user will typically access the file from the overview, so that the overview is updated in box
164, permitting the user to enter one of the newly added workspaces or perform overview operations.
The technique of FIG. 9 can be used for a number of purposes, including application delivery. As described in greater detail below, another aspect of the invention is to provide a user interface for that purpose.
The various aspects of the invention may be implemented in numerous ways. We will first examine data structures which provide workspaces, and from that continue to leaving and entering a workspace and other procedures; the overview; and saving, restoring and augmenting suites of workspaces.
C. Data Structures
As described above, one aspect of the invention involves implementing workspaces with a preexisting display system such as a conventional window system. It would also be possible, of course, to implement the invention by creating an entirely new display system. The following description focuses on that part of the data structure which must be added to an underlying window system, whether conventional or specially created, in order to implement the invention.
FIGS. 2 and 8, discussed above, show schematic data structure