|
Claims  |
|
|
Having thus described our invention, what we claim as new and desire to
secure by Letters Patent is as follows:
1. In an open hypermedia system in which data for individual applications
may be displayed on a screen of a display device in separate application
windows for each of said applications, each of said application windows
including a main application workspace in which said data is displayed, a
method performed by said hypermedia system and providing a uniform and
consistent graphical user interface for applications which utilize
hypermedia services available from said open hypermedia system, said
method presenting, independent of said applications, a menu of selectable
hypermedia services to a user and comprising the steps of:
establishing an awareness between said hypermedia system and an application
upon application initialization;
monitoring a current position of a user controlled pointer on said display
device; and
responsive to a first input by a user and said current position of said
pointer, displaying a menu of selectable services appropriate to a current
position of said user controlled pointer within an application window.
2. The method recited in claim 1 further-comprising the step of sending a
message to said application indicating receipt of a request for execution
of said selected service.
3. The method recited in claim 2 further comprising the step of receiving a
message from said application if the application requests said hypermedia
system to process said selected service.
4. The method recited in claim 1 wherein said user controlled pointer is a
cursor on the screen of said display device, said window further including
an action bar, wherein said step of displaying a menu comprises the step
of displaying a pop-down menu having selectable services corresponding to
a command in said action bar when said cursor is positioned over said
command at the time of said user input.
5. The method recited in claim 1 wherein said user controlled pointer is a
cursor on the screen of said display device wherein said step of
displaying a menu comprises the step of displaying a context menu having
selectable services according to a location of said cursor within said
main application workspace at the time of said user input.
6. The method recited in claim 1 wherein said user controlled pointer is a
cursor on the screen of said display device, said window further including
an action bar, wherein said step of displaying a menu comprises the steps
of:
displaying a pop-down menu having selectable services corresponding to a
command in said action bar when said cursor is positioned over said
command at the time of said user input; or
displaying a context menu having selectable services according to a
location of said cursor within said main application workspace at the time
of said user input, said pop-down menu and said context menu having a
uniform and consistent format independent of said application.
7. The method recited in claim 1 further comprising the step of displaying
a dialog box on said screen for receiving additional user input in
response to a selection by the user of a service from a menu when
additional information is required in order to process a selected service.
8. The method recited in claim 7 wherein said dialog box provides the user
with the option to modify an object displayed on said screen, further
comprising the steps of:
receiving a user input to modify an object;
passing a message to the application that said hypermedia system intends to
process the user input to modify said object; and
processing the user input if the application accepts said message.
9. The method recited in claim 8 further comprising the step of notifying
the application when the user input has been processed.
10. In an open hypermedia system in which data for individual applications
may be displayed on a screen of a display device in separate application
windows, each of said windows including a main application workspace in
which said data is displayed, said hypermedia system providing a uniform
and consistent graphical user interface for applications which utilize
hypermedia services available from said open hypermedia system, said
method performed by said hypermedia system and comprising the steps of:
displaying on said screen a first link marker within an application window,
said link marker being linked to one or more link markers and/or objects;
maintaining a database of said link markers; and
in response to activation of said first link marker by a user, searching
said database and displaying on said screen a link marker or object linked
to said first link marker.
11. The method recited in claim 10 wherein said first link marker is linked
to a plurality of link markers and/or objects, further comprising the step
of displaying on said screen a representation of said links and prompting
said user to select a link to be navigated.
12. The method recited in claim 11 further comrising the step of navigating
a user selected link to display on said screen a link marker or object
linked to said first link marker.
13. The method recited claim 10 wherein a second link marker or an object
linked to said first link marker are within data of a second application
further comprising the step of displaying on said screen said data
including said second link marker or said object within an application
window for said second application.
14. The method recited in claim 13 wherein if said second application is
not currently running, further comprising the steps of:
launching said second application; and
opening an application window on said screen for said second application.
15. The method recited in claim 10 wherein said link markers are windows
containing data of an application of said hypermedia system.
16. The method recited in claim 15 wherein said link markers may be either
opaque or transparent.
17. The method recited in claim 15 wherein a user controlled cursor having
a default shape is displayed on the screen of said display device, said
method further comprising the steps of:
monitoring a current position of said cursor on said display device; and
changing said default shape of said cursor to a second shape denoting a
link marker whenever said cursor is moved over a link marker on said
display device.
18. The method recited in claim 17 wherein a link marker may have a
transparent attribute and the changing of the default shape of said cursor
to said second shape identifies the presence of a link marker at the
location of said cursor.
19. The method recited in claim 10 wherein a user is provided with options
for creating, editing or deleting link markers.
20. The method of claim 19 further comprising the steps of:
establishing links from a link marker to another link marker or an object
when a link marker is created, links between a link marker and another
link marker being bidirectional and links between a link marker and an
object being unidirectional;
changing attributes of a link marker including links when a link marker is
edited; and
deleting all links to a link marker when a link marker is deleted.
21. In a windowing computer display in which data from one or more
applications may be displayed in separate windows, said windows being
individually movable on a screen of said computer display in such a manner
windows may overlay one another and normally obscure portions of
underlying windows, the method of supporting transparent windows on said
display screen comprising the steps of:
allocating an area on said screen for a window;
checking said window for a transparent attribute;
painting said window on said screen if said transparent attribute is not
detected; but
if said transparent attribute is detected, hiding said window and then, if
said window overlies a second window, repainting said second window.
22. The method recited in claim 21 further comprising the step of showing a
boundary of said transparent window by a highlight without obscuring data
in a window below said transparent window.
23. The method recited in claim 21 wherein a cursor is movable on said
screen under user control and further comprising the step of changing a
shape of said cursor within said area of said transparent window to
indicate the location of said transparent window.
24. The method recited in claim 21 wherein said transparent window overlies
said second window and a third, non-transparent window at least partially
overlies said transparent window, further comprising the steps of:
moving said third window so as not to overlie said transparent window; and
repainting said second window in that area where said thrid window formerly
overlied said second window including the area of said transparent window.
25. An open hypermedia system in which data for individual applications may
be displayed on a screen of a display device in separate application
windows for each of said applications, each of said application windows
including a main application workspace in which said data is displayed,
said hypermedia system providing a uniform and consistent graphical user
interface for applications which utilize hypermedia services available
from said open hypermedia system, said hypermedia system presenting,
independent of said applications, a menu of selectable hypermedia services
to a user and comprising:
means for establishing an awareness between said hypermedia system and an
application upon application initialization;
means for monitoring a current position of a user controlled pointer on
said display device; and
means responsive to a first input by a user and said current position of
said pointer for displaying a menu of selectable services appropriate to a
current position of said user controlled pointer within an application
window.
26. The hypermedia system recited in claim 25 further comrpising means for
sending a message to said application indicating receipt of a request for
execution of said selected service.
27. The hypermedia system recited in claim 26 further comprising means for
receiving a message from said application if the application requests said
hypermedia system to process said selected service.
28. The hypermedia system recited in claim 25 wherein said user controlled
pointer is a cursor on the screen of said display device, said window
further including an action bar, wherein said means for displaying a menu
comprises means for displaying a pop-down menu having selectable services
corresponding to a command in said action bar when said cursor is
positioned over said command at the time of said user input.
29. The hypermedia system recited in claim 25 wherein said user controlled
pointer is a cursor on said display device wherein said means for
displaying a menu comprises means for displaying a context menu having
selectable services according to a location of said cursor within said
main application workspace at the time of said user input, said pop-down
menu and said context menu having a uniform and consistent format
independent of said application.
30. The hypermedia system recited in claim 25 wherein said user controlled
pointer is a cursor on said display device, said window further including
an action bar, wherein said means for displaying a menu comprises:
means for displaying a pop-down menu having selectable services
corresponding to a command in said action bar when said cursor is
positioned over said command at the time of said user input; and
means for displaying a context menu having selectable services according to
a location of said cursor within said main application workspace at the
time of said user input, said pop-down menu and said context menu having a
uniform and consistent format independent of said application.
31. The method of claim 25 further comprising means for displaying a dialog
box on said screen for receiving additional user input in response to a
selection by the user of a service from a menu when additional information
is required in order to process a selected service.
32. The method of claim 31 wherein said dialog box provides the user with
the option to modify an object displayed on said screen, further
comprising:
means for receiving a user input to modify an object;
means for passing a message to the application that said hypermedia system
intends to process the user input to modify said object; and
means for processing the user input if the application accepts said
message.
33. The hypermedia system recited in claim 32 further comprising means for
notifying the application when the user input has been processed.
34. An open hypermedia system in which data for individual applications may
be displayed on a screen of a display device in separate application
windows, each of said windows including a main application workspace in
which said data is displayed, said hypermedia system providing a uniform
and consistent graphical user interface for applications which utilize
hypermedia services available from said open hypermedia system, said
hypermedia system comprising:
means for displaying on said screen a first link marker within an
application window, said link marker being linked to one or more link
markers and/or objects;
means for maintaining a database of said link markers; and
means responsive to activation of said first link marker by a user for
searching said database and displaying on said screen a link marker or
object linked to said first link marker.
35. The hypermedia system recited in claim 34 wherein said first link
marker is linked to a plurality of link markers and/or objects, further
comprising means for displaying on said screen a representation of said
links and prompting said user to select a link to be navigated.
36. The hypermedia system recited in claim 35 further comrising means for
navigating a user selected link to display on said screen a link marker or
object linked to said first link marker.
37. The hypermedia system recited in claim 34 wherein a second link marker
or an object linked to said first link marker are within data of a second
application further comprising means for displaying on said screen said
data including said second link marker or said object within an
application window for said second application.
38. The hypermedia system recited in claim 37 wherein if said second
application is not currently running, further comprising:
means for launching said second application; and
means for opening an application window on said screen for said second
application.
39. The hypermedia system recited in claim 34 wherein said link markers are
windows containing data of an application of said hypermedia system.
40. The hypermedia system recited in claim 39 wherein said link markers may
be either opaque or transparent.
41. The hypermedia system recited in claim 40 wherein a user controlled
cursor having a default shape is displayed on the screen of said display
device, said hypermeida system further comprising:
means for monitoring a current position of said cursor on said display
device; and
means for changing said default shape of said cursor to a second shape
denoting a link marker whenever said cursor is moved over a link marker on
said display device.
42. The hypermedia system recited in claim 41 wherein a link marker may
have a transparent attribute and the changing of the default shape of said
cursor to said second shape identifies the presence of a link marker at
the location of said cursor.
43. The hypermedia system recited in claim 34 wherein said hypermedia
system provides a user with options for creating, editing or deleting link
markers.
44. The hypermedia system recited in claim 43 further comprising:
means for establishing links from a link marker to another link marker or
an object when a link marker is created, links between a link marker and
another link marker being bidirectional and links between a link marker
and an object being unidirectional;
means for changing attributes of a link marker including links when a link
marker is edited; and
means for deleting all links to a link marker when a link marker is
deleted.
45. A windowing computer display system in which data from one or more
applications may be displayed in separate windows, said windows being
individually movable on a screen of said computer display system in such a
manner windows may overlay one another and normally obscure portions of
underlying windows, said windowing computer display system supporting
transparent windows on said display screen and comprising:
means for allocating an area on said screen for a window;
means for checking said window for a transparent attribute; and
means for painting said window on said screen if said transparent attribute
is not detected; but
if said transparent attribute is detected, said means for checking hiding
said window and then, if said window overlies a second window, said means
for painting repainting said second window.
46. The windowing computer display system recited in claim 45 further
comprising means for showing a boundary of said transparent window by a
highlight without obscuring data in a window below said transparent
window.
47. The windowing computer display system recited in claim 45 wherein a
cursor is movable on said screen under user control and further comprising
means for changing a shape of said cursor within said area of said
transparent window to indicate the location of said transparent window.
48. The windowing computer display system recited in claim 45 wherein said
transparent window overlies said second window and a third,
non-transparent window at least partially overlies said transparent
window, further comprising means for moving said third window so as not to
overlie said transparent window, said means for painting thereafter
repainting said second window in that area where said thrid window
formerly overlied said second window including the area of said
transparent window. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
CROSS-REFERENCE TO RELATED APPLICATION
The invention disclosed in this application is related in subject matter to
application Ser. No. 273,527 filed Nov. 18, 1988, by P. Y. Chang et al.
and assigned to the assignee of this application. The disclosure of the
foregoing application is incorporated herein by reference.
DESCRIPTION
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention generally relates to a software facility for
providing relatively seamless integration of "hypertext/hypermedia"
services into existing, as well as new, computer program applications and,
more particularly, to support for an end user interface, link and link
marker authoring, link navigation and link marker abstracts, using an open
system architecture. This includes support for the end user interface as
well as storage in a database.
2. Definition of Terms
The following terminology is used throughout this disclosure.
Abstract: A text object consisting of keywords, phrases, and/or statements,
which summarize the important information that would be found at a link
marker with which the text object is associated.
Application: A computer program, other than an operating system, such as a
word processor, spreadsheet, database management, graphics designer, and
the like. As used herein, an application program is also referred to as a
presenter.
Application Programming Interface (API): A means by which a program may
call a service.
Client application: An application (presenter/program) which uses LMS
services.
Context menu: Often referred to as "popup" menus, context menus are
visually and functionally similar to pull-down menus, but are not tied to
the action or command bar. They may appear at arbitrary positions in
windows. Additionally, while the contents of a pull-down menu typically do
not change based on the state of the application at any given time (though
they may be enabled or disabled/grayed), the contents of a context menu,
on the other hand, are dynamic, and change based on the state of the
application; in other words, they are context sensitive. For instance, if
a context menu contained an item which said, "Save", when the context menu
is displayed and no data has been modified, the "Save" option would not
appear in the menu. Context menus are typically displayed when the end
user clicks a mouse button over some window. Context menus typically
contain similar function to pull-down menus, but only include those items
which are relevant to the object clicked on, at a given time.
Document: A named set of data (such as a text file, an image file, a video
passage, etc.) usually, but not necessarily, discernible by an end user
(when rendered by a presenter). Thus, the term "document" is not limited
to a text file but may be text, bitmap graphics, a spreadsheet or some
other data presentation. In some cases, other objects are considered as
"documents" by LMS. These objects include audio files, motion video files
and clips, and a series of image files (i.e., slide shows).
End User Interface (EUI): The methodology, including devices, by which an
end user interacts with a system, system component, and/or system
application.
Graphical User Interface (GUI): An EUI which is graphical; for example, end
user interactions with the system via windows, icons, menus, pointing
devices, etc.
Hypertext/Hypermedia: In the generic and simplest sense, these terms mean
touch and get. They embody the notion of an end user being able to touch
(e.g., using some kind of pointing device) an object (e.g., a word,
phrase, graphical object, etc.) and thereby cause one or more associated
information entities to be obtained. A survey of hypertext systems is
provided in "Hypertext: An Introduction Survey" by Jeff Conklin, IEEE
Computer, September 1987, pp. 17-41, and "An Overview of Hypertext and
Hypermedia", Concepts & Issues, McGraw-Hill, November 1989.
Link: An object which associates a point in one document with a point in
another document (or different point in the same document). Links may be
bidirectional and therefore may be followed from either end.
Link Manager Services (LMS): A complete integrated set of
hypertext/hypermedia services.
Link marker: A (typically) visual indication to the end user, contained
within a document, indicating that there may be one or more links present
at this point (the link marker's location) in the document. If there are
links emanating from a link marker and the link marker is triggered (e.g.,
by the end user with a mouse), the link marker's links may be navigated.
LMS provides link markers that can have many different appearance styles,
including (1) push-buttons which may optionally contain text, (2) black
frames which allow the end user to see through the link marker's framed
area to the client application's underlying rendered data, (3) highlight
frames which, like black frames, provide for transparency, but which have
frames which are guaranteed to be visible (particularly useful compared to
black frames when some of the underlying data may be black or very dark),
(4) highlight areas which are also transparent in that the patterns of the
underlying data will be discernible, but the colors of the underlying data
will be changed (also sometimes known as reverse video, e.g., all
underlying black color is changed to white, all white color is changed to
black, all blue color is changed to yellow, etc.), and (5) invisible which
are truly invisible with regard to any occlusion of the underlying data.
Mouse: The term mouse, when used in this document, really refers to any
type of operating system supported pointing device including, but not
limited to a mouse, track ball, lightpen, touch screen, and the like.
Also, the screens, keyboard and mouse operations, menus, etc. with which
an end-user interacts with when using an application.
Navigation: The following, or traversal, of a link.
Open system: A hypermedia system which allows any application (presenter)
to participate in linking. Such applications need not be aware of
documents and/or presenters at the other ends of links, thus allowing for
the seamless integration of applications and application-rendered data
developed totally independently from one another.
Presenter: An application which renders data (e.g., text files, image
files, audio passages, etc.) for an end user.
Pull-down menu: These are the menus which are tied to the action bar (menu
bar) at the top of a window. These menus may also contain submenus, which
are known as cascade menus.
2. Description of the Prior Art
A number of hypertext/hypermedia systems are programmed in an
object-oriented programming language, such as Smalltalk and C++. The
former was developed at the Xerox Palo Alto Research Center (PARC), and a
good description of that language may be had by reference to the textbook
by Adele Goldberg and David Robson entitled Smalltalk-80: The Language and
Its Implementation, Addison-Wesley, 1983. The C++ language was developed
by Bjarne Stroustrup of AT&T Bell Laboratories and described, for example,
in his book entitled The C++ Programming Language, Addison-Wesley, 1986.
Among the advantages of Object-Oriented Programming Systems (OOPS) are
modular structure and object-oriented user interfaces using icons. Further
information on object oriented programming and hypersystems may be
obtained from "Design and Use of Hyperdedia Systems" by Robert Akscyn of
Knowledge Systems, Inc., Conference on Human Factors in Computing Systems,
May 14, 1988, and "Intermedia: The Architecture and Construction of An
Object Oriented Hypermedia System and Application Framework" by Norman
Meyrowitz, IRIS, Brown University, OOPSLA Proceedings, September 1986.
Insofar as the inventors are aware, there are no hypertext/hypermedia
systems, or system services, which enable applications (presenters) to
seamlessly and easily incorporate hypertext/hypermedia capabilities in an
open system architecture, as well as automatically provide a consistent
end user hypermedia interface which is managed by the hypermedia services,
and not the presenter itself. Additionally, even those hypermedia systems
which are somewhat "open" systems cannot alter the user interface upon
future releases without requiring all hypermedia applications in the
system to be modified and rebuilt.
The prior art discussed below are representative of products and/or
services which implement hypertext/hypermedia capabilities.
HyperCard published by Apple Corp. is considered by many (including its
author, Bill Atkinson) to not be a hypermedia product, but rather an
"application builder" or "stack of cards". When viewed as a hypermedia
system (in that cards are "linked" together) it is a closed hypermedia
system; e.g., one must use only the presentation facilities supplied by
the product. HyperCard provides no facility for enabling other
(non-HyperCard-supplied) applications (presenters) with hypermedia
capabilities.
The SuperCard program by Silicon Beach Software is a HyperCard
"look-alike", with more power than HyperCard. It provides stacks of
"cards", as well as application generation. Other examples of closed
hypermedia systems include Guide 2.0 by OWL International, Inc. which
provides no facility for enabling other (nonGuide-supplied) applications
(presenters) with hypermedia capabilities; IRIS Intermedia by Institute
for Research in Information and Scholarship (IRIS), Brown University,
which also provides no facility for enabling other
(non-Intermedia-supplied) applications (presenters) with hypermedia
capabilities; and LinkWay 2.0 by IBM Educational Systems and which
provides no facility for enabling other (non-LinkWay-supplied)
applications (presenters) with hypermedia capabilities.
Sun Link Service by Sun Microsystems is the only other open hypermedia
system known to the inventors as an available product. Sun's facility does
provide a set of services which allow other (non-Sun-supplied)
applications to be enabled with hypermedia capabilities; however, this
enablement is neither seamless nor easy. Additionally, the Sun Link
Service does not manage the end user interface for the hypermedia
capabilities, which means that each application must implement its own
notion in that regard. Additional information on this product may be found
in an article entitled "Sun's Link Service: A Protocol for Open Linking"
by Amy Pearl on pages 137-146 of the Hypertext-'89 Proceedings.
In addition to the foregoing, several other products which implement
hypertext/hypermedia capabilities were reviewed in the October 1990 issue
of PC/Computing Magazine at pages 201-210. These include Folio Views 2.0
by Folio Corp., Hyperties by Cognetics Corp., HyperWriter by Ntergaid,
Spinnaker Plus 2.0 by Spinnaker Software Corp., and Transtext by MaxThink.
Folio Views was reviewed as: "An information management system that lets
you compress large text files into a customized `infobase` and create
cross-referencing links." Nothing further is known of this product,
however, the review suggests that this would not allow for linking between
different presenters and/or different types of data. This also suggests
that no method is provided for enabling other (non-Folio Views-supplied)
applications (presenters) with hypermedia capabilities.
Hyperties was reviewed as: "An interactive system that lets you create
hypertext documents and manuals from a variety of media, including
existing files, online information, scanned material and video." Hyperties
is a closed hypermedia system; e.g., one must use only the presentation
facilities supplied by the product. Nothing further is known of this
product, however, the review suggests that no method is provided for
enabling other (non-Hyperties-supplied) applications (presenters) with
hypermedia capabilities.
HyperWriter was reviewed as: "A hypertext authoring tool with audio and
video capabilities and a limited scripting language."
Spinnaker Plus 2.0 was reviewed as :"A hypertext programming environment
for developing and running custom information management applications."
Although no more information than this is known, it appears from the
review that Spinnaker is more of an application generator program than a
"true" hypertext product.
Transtext was reviewed as: "A word processor that lets you create hypertext
links to many other commercially available applications." Nothing further
is known of this product, however, the review seems to indicate that
unidirectional links out of the product may be established, which probably
simply cause the launching of existing commercially available
applications, simply passing them user-specified parameters.
In addition, KnowledgePro by Knowledge Garden, Inc., was reviewed in the
November 1989 issue of Concepts & Issues, referenced above, as: ". . .
while some skill in programming is useful in becoming familiar with the
product, its developers claim such skill is not a prerequisite to learning
the program . . . a programming environment that combines an expert system
generator with hypertext . . . It can read external files, call external
programs, and be extended by routines written in other languages." In
addition, the review also suggests that the programming environment/expert
system generator combination could yield some sophisticated searching
capabilities. However, nothing more specific is known either about the
search capabilities or the degree of openness contained in the product.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to provide a set of
system linking services, which enable applications (presenters) to
seamlessly and easily incorporate hypertext/hypermedia capabilities in an
open system architecture, as well as automatically provide end users with
a consistent hypermedia interface which is completely managed by the
underlying linking services and not the presenter itself.
It is a more specific object of the invention to provide a consistent set
of menus and dialog boxes for client applications which are built by the
hypermedia system independent of the applications.
It is yet another object of the invention to provide an end user with a
link marker facility to identify the location of one or more links at a
given point in a document.
It is still another object of the invention to provide an invisible or
transparent windowing procedure of general utility.
According to the invention, an end user interface management provides a
consistent end user interface across all client applications for
hypermedia menus, dialog boxes, mouse processing, and link marker display
management. These facilities not only provide for the appearance of these
notions, but also result in the execution of code to semantically satisfy
the end user's request. One of the primary methods of interaction between
an end user and a program (in a GUI environment) is through the use of
menus. Menus, therefore, become a primary vehicle through which an end
user accesses a program's functionality. In most applications, menu
management is an arduous task, often producing an inconsistent EUI across
applications. The menu support provided by LMS solves this problem by
managing the building and maintenance of menus. LMS will also perform all
functions contained within the menu without requiring any client
application involvement.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, aspects and advantages will be better
understood from the following detailed description of a preferred
embodiment of the invention with reference to the drawings, in which:
FIG. 1 is pictorial representation of a personal computer;
FIG. 2 is a system block diagram of the personal computer shown in FIG. 1;
FIG. 3 is a functional block diagram of the link manager services
implemented on the personal computer shown in FIGS. 1 and 2;
FIG. 4A is a block diagram illustrating a marker to object (unidirectional)
link, and FIG. 4B is a block diagram illustrating a marker to marker
(bidirectional) link;
FIG. 5 is a block diagram showing the functional relationship of Link
Manager Services in an open system;
FIG. 6 is a flow diagram showing the logic of the client application window
procedure;
FIG. 7 a screen showing a document and marker before navigation;
FIG. 8 is a screen showing a new document and marker after navigation;
FIG. 9 is a screen showing a context menu when a mouse has been clicked on
a document;
FIG. 10 is a screen showing a context menu when a mouse has been clicked on
a link marker;
FIG. 11 is a screen showing a pull-down menu when a mouse has been clicked
on LINK in the command bar;
FIG. 12 is a screen showing a second pull-down menu when a mouse has been
clicked on MANAGE MARKERS in the first pull-down menu of FIG. 11;
FIG. 13 is a screen showing a third pull-down menu when a mouse has been
clicked on CREATE MARKER in the second pull-down menu of FIG. 12;
FIG. 14 is a screen showing a second pull-down window when a mouse has been
clicked on MANAGE LINKS in the pull-down window of FIG. 11;
FIG. 15 is a screen showing a third pull-down window when a mouse has been
clicked on CREATE LINK in the second ,pull-down window of FIG. 14;
FIG. 16 is a flow diagram showing the logic of the pull-down menu
processing performed by LMS;
FIG. 17 is a flow diagram showing the logic of the context menu processing
performed by LMS;
FIG. 18 is a flow diagram showing the logic of the non-menu command message
processing performed by LMS;
FIG. 19 is a flow diagram showing the logic of the create marker procedure
performed by LMS;
FIG. 20 is a flow diagram showing the logic of the marker window procedure
performed by LMS;
FIG. 21 is a flow diagram showing the logic of the window painting
procedure which supports transparent or invisible windows;
FIG. 22 is a screen print showing the location of an invisible marker
(i.e., window) by reverse video highlighting;
FIG. 23 is a screen showing multiple, overlying windows to illustrate the
procedure normally followed when a window is painted on the screen;
FIG. 24 is a screen showing an example of an LMS dialog box for selecting a
link marker style;
FIG. 25 is a screen showing another example of an LMS dialog box for
managing links;
FIG. 26 is a screen showing a third example of an LMS dialog box for
initiating a search of the LMS hypermedia database;
FIG. 27 is a flow diagram showing the logic of the dialog box management
procedure performed by LMS;
FIG. 28 is a flow diagram showing the logic of the LMS database update
procedure;
FIG. 29 is a flow diagram showing the logic of the link marker and link
database update procedure called by the procedure shown in FIG. 28; and
FIG. 30 is a block diagram showing the functional relationships between
LMS, an application and the EUI.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION
The invention may be run on a variety of computers under a number of
different Operating Systems (OS). The computer could be, for example, a
personal computer, a mini computer or a main frame computer. The computer
may a standalone system, part of a network such as a Local Area Network
(LAN) or Wide Area Network (WAN) or a larger teleprocessing system. For
purposes of illustration only, the invention is described below as
implemented on a personal computer, such as IBM's PS/2 series, although
the specific choice of computer is limited only by memory and disk storage
requirements. For additional information on IBM's PS/2 series of
computers, the reader is referred to Technical Reference Manual Personal
System/2 (Model 50, 60 Systems), IBM Corporation, Part No. 68X2224, Order
No. S68X-2224, and Technical Reference Manual, Personal System/2 (Model
80), IBM Corporation, Part No. 68X2256, Order No. S68X-2256.
The operating system on which a preferred embodiment of the invention was
implemented was IBM's OS/2 with Presentation Manager (PM), but it will be
understood that the invention could be implemented on other and different
operating systems and, more importantly, could be integrated into, and
therefore be a part of, an operating system. For more information on IBM's
OS/2 operating system, the reader is referred to IBM Operating Systems/2,
Version 1.2, Standard Edition Technical Reference, IBM Corporation.
Referring now to the drawings, and more particularly to FIG. 1, there is
shown a personal computer 10 comprising a system unit 11, a keyboard 12, a
mouse 13 and a graphics display device or monitor 14. The keyboard 12 and
the mouse 13 constitute user input devices, and the display device 14 is a
user output device. The mouse 13 is used to control a cursor 15 displayed
on the screen 16 of the display device 14. The Graphic User Interface
(GUI) supported by this system allows the user to "point-and-shoot" by
moving the cursor 15 to an icon or specific location on the screen 16 and
then press one of the mouse buttons to perform a user command or
selection.
FIG. 2 shows in block diagram form the components of the personal computer
shown in FIG. 1. The system unit 11 includes a system bus 21 to which the
various components are attached and by which communication between the
various components is accomplished. A microprocessor 22 is connected to
the system bus 21 and is supported by Read Only Memory (ROM) 23 and Random
Access Memory (RAM) 24, also connected to system bus 21. The
microprocessor 22 in the IBM PS/2 series of computers is one of the Intel
family of microprocessors including the 80286, 80386 or 80486
microprocessors, but other microprocessors including, but not limited to,
Motorola's family of microprocessors such as the 68000, 68020 or 68030
microprocessors and various RISC (Reduced Instruction Set Computer)
microprocessors manufactured by IBM, Hewlett Packard, Sun Microsystems,
Intel, Motorola and others may be used in a specific computer.
The ROM 23 contains, among other code, the Basic Input/Output System (BIOS)
which controls basic hardware operations, such as interactions of the disk
drives and the keyboard. The RAM 24 is the main memory into which the
operating system and application programs are loaded. A memory management
chip 25 is connected to the system bus 21 and controls Direct Memory
Access (DMA) operations, including paging data between RAM 24 and a hard
disk drive 26 and a floppy disk drive 27.
To complete the description of the system unit 11, there are three I/O
controllers. These are the keyboard controller 28, the mouse controller 29
and the video controller 30, all of which are connected to the system bus
21. As their names imply, the keyboard controller 28 provides the hardware
interface for the keyboard 12, the mouse controller 29 hardware interface
for the mouse 13, and the video controller 30 provides the hardware
interface for the graphic display device 14.
The hardware illustrated in FIGS. 1 and 2 is typical but may vary for a
specific application; that is, there may be other peripherals, such as
optical storage media, audio I/O, printers and the like. The invention is
specifically directed to an enhancement to the Operating System (OS) which
controls or "runs" the hardware. As mentioned, the invention may be added
to an existing OS or it may be integrated into the OS, but it will be
assumed for purposes of this disclosure that the OS supports a GUI. Such
an operating system is IBM's OS/2 with Presentation Manager (PM) on which
the invention has been implemented.
The invention provides an open system which supports and provides a
consistent environment for a variety of unrelated application programs, as
generally illustrated in FIG. 3. In FIG. 3, the Link Manager Systems (LMS)
31 is shown by way of example as supporting five application programs
including a spreadsheet program 32, a word processing program 33, a motion
video program 34, a graphical image program 35, and an audio program 36.
As will be described in more detail hereinafter, the LMS 31 maintains via
a database 37, stored for example on hard disk drive 26 (FIG. 2), various
links specified by the user to each of the several application programs.
The database 37 is a collection of associations that LMS maintains. LMS was
specifically and intentionally designed to keep this information separate
so as not to require the client applications to have to modify or corrupt
their data in order to be an LMS participant. This increases the openness
of the LMS system.
There are basically two types of links which may be established. The first,
illustrated in FIG. 4A, is a unidirectional link. This is a marker to
object link. In FIG. 4A, 41 and 42 represent windows in which various
applications may be running. For example, in window 41, there may be
displayed a text document genera | | |