WO1994017468A1 - Method and apparatus for generating and displaying visual cues on a graphic user interface - Google Patents

Method and apparatus for generating and displaying visual cues on a graphic user interface Download PDF

Info

Publication number
WO1994017468A1
WO1994017468A1 PCT/US1994/000912 US9400912W WO9417468A1 WO 1994017468 A1 WO1994017468 A1 WO 1994017468A1 US 9400912 W US9400912 W US 9400912W WO 9417468 A1 WO9417468 A1 WO 9417468A1
Authority
WO
WIPO (PCT)
Prior art keywords
coach
slope
cpu
display
point
Prior art date
Application number
PCT/US1994/000912
Other languages
French (fr)
Inventor
Gregory Scott Brewer
Peter Commons
Original Assignee
Apple Computer, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/010,062 external-priority patent/US5488685A/en
Application filed by Apple Computer, Inc. filed Critical Apple Computer, Inc.
Priority to AU62322/94A priority Critical patent/AU6232294A/en
Publication of WO1994017468A1 publication Critical patent/WO1994017468A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
    • G06F3/04895Guidance during keyboard input operation, e.g. prompting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Definitions

  • the present invention relates to apparatus and methods for displaying graphic information, and more particularly, the present invention relates to a computer controlled display system for displaying and generating visual cues on a graphic user interface of a display.
  • GUI window-based graphic user interface
  • Each of the icons represents a function or object on the desktop.
  • a cursor is also displayed which may be selectively moved in response to the movement of a mouse or other pointer control device.
  • the cursor may be moved over display objects which the user may select on the screen.
  • the user may delete information from a window, move data from one window to another, and generally operate on the windows as if an actual file or other physical object is being manipulated.
  • a variety of "pull-down" menus also may be displayed, using a technique for selecting particular command options appearing along a menu bar, and subcommand items corresponding to the command options (See U.S. Patent Re.32,632).
  • An intuitive help interface design as in the case of graphic user interfaces generally, relies on a real world metaphor to permit users to apply common knowledge about the metaphor and operate the computer system.
  • it is difficult to define what constitutes an "intuitive" design for a user interface and it is difficult to design an interface that is completely apparent to all end users, no matter which metaphor is used.
  • the present invention provides an on-screen help system having attributes which ease the acclamation and learning period of the user. Window features are displayed which provide visual cues to coach the user through the use of help to accomplish the desired function.
  • the present invention is described in terms of an on-screen help system in a window- based graphic user interface, it will be apparent from the description below, that the present invention's features and attributes have application in a variety of graphic user interface designs and software applications. Accordingly, the present invention is not limited by the following description, and it will be understood by those skilled in the art, that the present invention may be applied to computer systems offered by a variety of manufacturers, and to user interface designs which utilize a variety of metaphors.
  • the present invention provides apparatus and methods for a help interface for use in a window-based computer display system.
  • the display system includes at least one central processing unit (CPU) which is coupled through appropriate input/output (I/O) circuitry to input devices, such as a keyboard, digital pad, mouse and/or track ball.
  • the CPU is coupled to a hard disk drive for the storage of programs and data, and may also be coupled to a network through which the CPU may communicate with a variety of other system resources and devices.
  • the CPU is further coupled to a display device such as a CRT or liquid crystal display, on which the present invention is displayed.
  • the user interface of the present invention includes an object oriented graphic user interface having overlapping windows.
  • the present invention includes an access window having topics, index and look for button functions for selection by a user.
  • the present invention includes coach mark visual cues generated by the CPU for identifying features on the display which relate to the information disposed within the presentation window.
  • the coach marks are displayed generally concurrently with the display of help information, and appear to approximate a geometric object, such as, for example, an arrow, a circle, an X, and the like.
  • the coach marks encircle, point to, and/or underline objects, features, icons, folders and other display elements to assist the user in operating the computer system.
  • the coach marks are rendered such that they appear on the display as if drawn by hand, by both shape (imperfect geometry), and by speed in approximating the speed in which a human would draw such shapes.
  • the marks may be in color, or black and white, depending on the capability of the particular computer display system.
  • the present invention includes apparatus and methods for generating and displaying the coach marks, such that they appear to be drawn by a human on the interface.
  • FIGURE 1 is a functional block diagram illustrating one possible computer display system incorporating the teachings of the present invention.
  • FIGURE 2 shows a representative display screen illustrating a window-display system utilizing the teachings of the present invention.
  • FIGURE 3 is the access window of the present invention.
  • FIGURE 4 illustrates the access window as shown in Figure 3 once the topics screen has been selected.
  • FIGURE 5 illustrates the access window of Figure 4 once the topic area for "files and disks" has been selected.
  • FIGURE 6 illustrates the access window of Figure 5 and shows the selection of "How do I find a file or folder?" being selected.
  • FIGURE 7 illustrates a presentation window entitled "How do I find a file or folder?” displayed subsequent to the selection illustrated in Figure 6.
  • FIGURE 8 illustrates the access window of the present invention showing the selection of the index screen and the present invention's alpha slider.
  • FIGURE 9 illustrates the present invention's alpha slider placed on the letter "F" contents of the alpha index window within the access window.
  • FIGURES 10 illustrates the access window of Figure 9 once the "files" entry has been selected in the alpha window.
  • FIGURE 11 illustrates the window of Figure 10 once the selection "How do I find a file or folder?" has been selected.
  • FIGURE 12 illustrates the access window of the present invention having the "Look for" screen selected.
  • FIGURE 13 illustrates the access screen of Figure 12 after the word "Find” has been inputted and searched.
  • FIGURE 14 illustrates the access screen of Figure 13 in the selection of "How do I find a file or folder?" being selected.
  • FIGURE 15 illustrates a presentation window entitled "How do I find a file or folder?" displayed subsequent to the selection illustrated in Figure 14.
  • FIGURE 16 illustrates the presentation window of the present invention in conjunction with a coach mark encircling the menu choice "File". Note that in an actual implementation, the Coach mark would not exit from the top of the menu since it would then be completely off the display screen.
  • FIGURE 17 illustrates the presentation window of the present invention disposed over an active window entitled "General Controls" in which a coach mark visual cue encircles a desktop pattern.
  • FIGURE 18 illustrates the presentation window of the present invention and a coach mark visual cue encircling "More Choices" in a window entitled “Find”.
  • FIGURE 19 illustrates the present invention's use of coach marks to identify an area which requires a user to insert data or make a selection.
  • FIGURE 20 illustrates the presentation window of the present invention in which a coach mark has been inserted underlining a portion of the "General Controls" window.
  • FIGURE 21 is an additional illustration of the presentation window of the present invention in which a curved arrow coach mark is used to identify a portion of a window entitled "Keyboard”.
  • FIGURE 22 is an additional illustration of the coach mark of the present invention in which a straight arrow coach mark is used to identify a selection which is required by the user to accomplish a desired function identified in the presentation window.
  • FIGURE 23 conceptually illustrates the components of "The Coach's Chalkboard” code and how they are included in the Reno help system.
  • FIGURE 24 is a flowchart illustrating the present invention's initialization routines on start up of the computer system shown in Figure 1.
  • FIGURE 25 is a flowchart illustrating the processing within the GetNextEvent patch of the present invention.
  • FIGURE 26 is a flowchart showing the present invention's sequence of steps for bit depth independent drawing.
  • FIGURE 27 is a flowchart of the present invention's asynchronous drawing processing routine.
  • FIGURE 28 is a flowchart illustrating the present invention's Apple Event Handler processing.
  • FIGURE 29 is a flowchart of the present invention's Apple Event Handler for erasing a coach mark from the display.
  • FIGURE 30 is a flowchart of the coach mark rename process for renaming a previously drawn coach mark.
  • FIGURE 31 is a flowchart of the present invention's index Event coach mark.
  • FIGURE 32 is a flowchart of the mark location routine to mark a specific location of the display.
  • FIGURE 33 is a flowchart illustrating the mark menu process to mark a specific menu on the display screen.
  • FIGURE 34 is a flowchart of the steps used by the present invention to draw an underline coach mark on the display screen.
  • FIGURE 35 is a flowchart of the steps completed by the present invention to draw an X coach mark on the display.
  • FIGURE 36 is a flowchart of the steps used by the present invention to draw a circle coach mark.
  • FIGURES 37(a) and 37(b) are flowcharts of the steps used by the present invention to draw an arrow coach mark.
  • FIGURES 38(a) - 38(d) conceptually illustrate the rendering of an underline coach mark by the present invention.
  • FIGURES 39(a) - 39(e) conceptually illustrate the rendering of an X coach mark on the display.
  • FIGURES 40(a) - 40(f) conceptually illustrate the rendering of a circle coach mark by the present invention.
  • FIGURES 41(a) - 41(h) conceptually illustrate the rendering of an arrow coach mark by the present invention.
  • the operations are machine operations performed in conjunction with a human operator.
  • Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices.
  • the present invention relates to method steps for operating a computer and processing electrical or other physical signals to generate other desired physical signals.
  • the present invention also relates to apparatus for performing these operations.
  • This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • the algorithms presented herein are not inherently related to any particular computer or other apparatus.
  • various general purpose machines may be used with programs in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps.
  • the required structure for a variety of these machines will appear from the description given below.
  • Machines which may perform the functions of the present invention include those manufactured by the Assignee, Apple Computer, Inc., as well as other manufacturers of computer systems. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • 08/010,061 Filed January 27, 1993, entitled “Method and Apparatus For Displaying And Scrolling Data In A Window-Based Graphic User Interface”; and Serial No. 08/010,064, Filed January 27, 1993, entitled “Method And Apparatus For Presenting Information In A Display Using Floating Windows.
  • the computer controlled display system of the present invention is part of a computer system, such as that illustrated in Figure 1.
  • the computer controlled display system includes a display means 40, such as a CRT monitor or a liquid crystal display (LCD), and further includes a cursor control means 42, such as a mouse of the type shown in U.S. Patent No. Re.32,632, a track ball, joy stick or other device for selectively positioning a cursor 44 on a display screen 68 of the display 40.
  • the cursor control means 42 includes a signal generation means, such as a switch 46 having a first position and a second position.
  • a switch 46 having a first position and a second position.
  • Re.32,632 includes a switch which the user of the computer system uses to generate signals directing the computer to execute certain commands.
  • the cursor control means 42 (hereinafter all types of applicable cursor control devices, such as mice, track balls, joy sticks, graphic tablets, keyboard inputs, and the like, are collectively referred to as the "mouse 42") is coupled to a computer system 48.
  • the computer 48 comprises three major components. The first of these is an input/output (I O) circuit 50 which is used to communicate information in appropriately structured form to and from other portions of the computer 48.
  • the computer 48 includes a central processing unit (CPU) 52 coupled to the I O circuit 50 and a memory 55.
  • CPU central processing unit
  • FIG. 1 Also shown in Figure 1 is a keyboard 56 to input data and commands into the computer 48, as is well known in the art.
  • a magnetic mass memory disk 60 is shown coupled to I/O circuit 50 to provide additional storage capability for the computer 48.
  • a CD ROM 62 is further coupled to the I/O circuit 50 for additional storage capacity. It will be appreciated that additional devices may be coupled to the computer 48 for storing data, such as magnetic tape drives, as well as networks, which are in turn coupled to other data processing systems.
  • the display 40 includes the display screen 68 in which a window 70 is displayed.
  • the window 70 may be in the form of a rectangle or other well known shape, and may include a menu bar 72 disposed horizontally across the length of the window.
  • the movement of the mouse 42 may be translated by the computer 48 into movement of the cursor 44 on the display screen 70.
  • the reader is referred to literature cited in the background describing object-oriented display systems generally, and in particular, desktop metaphor window-based systems for additional description related to other computer systems which may be utilized in accordance with the teachings of the present invention.
  • the system illustrated in Figure 1 is intended to represent a general data processing system capable of providing a graphic user interface display.
  • the window display 70 and window based display system shown in Figure 1 is well known (for example, the Macintosh® series of computers sold by Apple Computer, Inc.), and hence, a detailed description is not necessary herein.
  • the window based user interface of the present invention is generated and displayed using software stored in memory 55 and executed by the CPU 52, as is known.
  • the display screen 68 of the display 40 is shown in additional detail. Illustrated within the display 68, is a known graphic user interface utilized by computers manufactured and sold by Apple Computer, Inc.
  • a menu bar 100 is provided which horizontally spans the display screen 68.
  • the menu bar 100 typically includes a plurality of command options such as a desktop icon in the shape of an Apple 103, "File”, “Edit”, “View”, “Label”, and "Special”.
  • pull down menus may be displayed and selected using a methodology commonly referred to as a "push-drag-release" method.
  • the cursor 44 is placed over a desired command option, after which the switch 46 of the mouse 42 is depressed.
  • the depression of the switch 46 signals the CPU 52 to generate a pull down menu (In Figure 2, a sample pull down menu is shown as menu 104.).
  • the user places the cursor 102 over a desired subcommand item (in the example of Figure 2, the "help" command), and releases the switch 46.
  • the computer system 48 then executes the selected subcommand item.
  • the selection of the subcommand item "help" in menu 104 results in the CPU executing the help system disclosed herein.
  • a reference to placing the cursor 44 "over" an object, icon, list, question or the like shall be understood to mean placing the cursor 44 over at least a portion of the object, icon, list, question or the like sufficient to identify the selection to the CPU 52.
  • a window 108 Shown within the desktop illustrated in Figure 2 is a window 108 which includes a header 110 entitled "Mail".
  • the window 108 lists a variety of documents, messages and the like, which are disposed within the window 108.
  • Other icons are shown, such as icon 120 entitled “Jeffs HD”, which represents a hard disk, and icon 122, which represents a floppy disk to which the CPU 52 has access, and trash can icon 126.
  • the help system of the present invention is initiated by the user selecting the subcommand item identified as "Help" in the pull down menu 104.
  • “Help” the cursor 44 is placed over Balloon help menu icon 112, and switch 46 is depressed.
  • CPU 52 generates and displays menu 104, and the user then places cursor 44 over the "Help” subcommand, and releases switch 46.
  • the user may select the "Help" function by inputting a predetermined keyboard equivalent using keyboard 56.
  • the access window 130 includes a logo 132 and user instructions, as illustrated.
  • the instructions shown within the access window 130, logo 132 and the window itself are part of a help data base stored in memory 55, or alternatively, on disk 60 or CD ROM 62.
  • the access window 130 includes a working area 145 in which the CPU 52 displays instructions, text or command options.
  • the working area 145 includes a vertical slider 48 for scrolling through data displayed within the working area 145. Additional features of the access window 130 will become apparent from the description below.
  • the selection of the topics access method for the access window 130 is illustrated.
  • the user places the cursor 44 over the button marked topics (135) and momentarily activates (“clicks") the switch 46 on the mouse 42.
  • the cursor 44 is within the rectangle defining the button 135 and the button 46 of mouse 42 is depressed, the image of button 135 appears to be inverted as if it were being depressed.
  • CPU 52 generates and displays the access window 130 including a list of topics within a working area 150 as shown in Figure 4.
  • the user may then select one of a plurality of topics which the user desires help in. For example, in Figure 5, if the user places the cursor 44 over the topic "Files and Disks" 160, and clicks button 46, the selection of the topic is sensed by the CPU 52, which then generates and displays a list of statements within the working area 145.
  • the list displayed within the working area 145 comprises statements in groups which may include questions.
  • the heading is a set of words that begins all statements or questions of a particular type (in the example of Figure 5, "How do I").
  • the body is the remainder of the question or statement (for example in Figure 5 "Change the name of an item").
  • the CPU 52 displays the headings in bold.
  • the bodies of the questions or statements appear indented under the heading as shown in the figures.
  • the invention's hierarchical design preserves the statement's format, while removing the redundant heading from each statement in the list. As a result, the list of statements has less text, and longer statements or questions fit more easily in the working area 145.
  • users can easily scan the headings to see the types of statements or questions that are available, using the scroll bar 148.
  • the topic area "files and disks” 160 provides the results in the illustrated questions shown.
  • the cursor 44 is placed through the appropriate movement of the mouse 42 by the user, over the question “Find a file or folder?", and the switch 46 is momentarily clicked.
  • Data and other information provided within the presentation window 165 requests additional information from the user (if required) and guides the user through the desired function.
  • both the access window 130 and the presentation window 165 "float" over other windows displayed on the display screen 68, without disturbing or altering the currently active window being displayed.
  • help information may also be obtained through the selection of the index button function 138.
  • the index 170 is generated and displayed.
  • the index allows users to find relevant questions based on specific terms and phrases (referred to collectively as "index entries").
  • the index screen 170 includes a plurality of entries, and the index button 138 remains inverted to indicate the function is active.
  • the index screen 170 includes an alpha scroll bar 176. Since the index screen 170 contains many entries, the alpha scroll bar 176 allows users to scroll rapidly to a particular letter, similar to a rolodex on a desk. The operation of the alpha scroll bar 176 will be described in more detail below.
  • the user places the cursor 44 over a portion of a desired letter (See Figure 9) and momentarily clicks the switch 46 on the mouse 42.
  • the CPU 52 displays the nearest and all subsequent entries beginning with the selected letter.
  • the user has selected the letter "F”.
  • the CPU 52 displays index entries beginning with the letter "F”.
  • the user may use a scroll bar 178 to scroll the data disposed within the index screen vertically.
  • a user may position the slider 175 over a desired letter by placing the cursor 44 over a portion of the slider 175, depressing the switch 46 on the mouse 42, and dragging the cursor and slider across the alpha scroll bar 177 to a desired letter.
  • the desired letter in Figure 9 "F"
  • the user releases the switch 46 on the mouse 42.
  • the list of entries is displayed beginning with entries having the selected letter.
  • the placement of the cursor 44 over an entry such as "Files” and the momentary clicking of the switch 46 on the mouse 42, results in the display of a list of questions as previously described with reference to Figures 5 and 6.
  • the user selects a question (for example, "How do I find a file or folder?") and momentarily clicks the mouse button 46.
  • a question for example, "How do I find a file or folder?"
  • the mouse button 46 momentarily clicks the mouse button 46.
  • the presentation window 165 is then displayed and operates as previously described.
  • the look for screen 200 permits users to type phrases in a text box 210 and view questions related to the phrase (if any).
  • the look for button 140 has been selected, the button appears inverted, thereby indicating it is currently active.
  • the look for screen 200 also includes a search button function 215. In operation, the user utilizing the keyboard 56, types into the text box 210 a search word (in the example of Figure 13, the word "find").
  • the CPU 52 searches the help data base stored in memory 55, mass memory 60 or CD ROM 62 and displays the list of questions corresponding to the search term within the working area 145, as previously described with reference to Figures 3 through 11.
  • a desired question such as "How do I find a file or folder?"
  • the CPU 52 Upon sensing the selection of the help inquiry, the CPU 52 then generates and displays the presentation window 165, as previously described with reference to Figures 7 and 12. The user then may further define the help request by selecting one of the three (as shown in the example of Figure 15) criteria displayed in the presentation window 165.
  • the present invention provides three access methods for obtaining desired help information from the computer system 48.
  • a user may select the topics button function 135, the index button function 138, or the look for button function 140.
  • an appropriate access window and presentation window is displayed to assist the user in obtaining the desired information necessary to operate the computer system illustrated in Figure 1.
  • the present invention provides an additional feature which further assists users in operating the computer system illustrated in Figure 1.
  • a technique is disclosed for spothghting objects on the display 68 which are referred to in the help presentation windows.
  • the present invention provides visual cues, referred to as "Coach marks", which appear to be hand drawn, but are generated by the CPU 52, to coach the user through the requested help function.
  • the coach marks draw the user's attention to objects displayed on display 68, and are effective in identifying objects even if the user has no prior knowledge of the object's name or function.
  • the coach marks are visual, and as such, operate independent of the language of the user.
  • the present invention as illustrated in Figures 29 through 36 as utilizing coach marks which are black and white, it will be appreciated by one skilled in the art that the coach marks may be rendered in a translucent color as well using a color display system.
  • a presentation window 335 is illustrated overlaying the GFX Sound and Scan window 314.
  • a coach edit mark 340 which encircles the command option "file" on a menu bar 345.
  • the CPU 52 substantially simultaneously with the generation and display of the presentation window 335, the CPU 52 generates and displays the coach mark 340.
  • the generation and display of the coach mark 340 appears to the user to be hand drawn with a hand marker, or the like.
  • the coach mark 340 is rendered in a color which may be selected by the author of the data base, and the coach mark 340 is displayed by the CPU at a speed such that the rendering is intentionally slower than other CPU operations on the display and appears to the user as if animated.
  • the purpose of the coach mark 340 is to identify and draw the user's attention to objects on display 68 which the user must choose or otherwise operate upon, to accomplish the desired help function accessed through the access window and presentation windows of the present invention described above.
  • FIG 17 there is shown another example of the present invention's use of coach marks to assist the user.
  • a presentation window 348 is displayed.
  • An active window identified as general controls 350 is displayed overlaying the control panels window 352 and the GFX Sound and Scan window 314.
  • To assist the user in accomplishing the desired help function which, in the present example, is phrased as "How do I Change the Background
  • a circular coach mark 355 is provided by CPU 52.
  • the CPU 52 upon the generation and display of presentation window 348, also generates coach mark 355, and encircles the icon comprising a desktop pattern 358, as shown, the generation and display of the coach mark 355 draws the users attention to the appropriate icon on the display 68 which the user must operate upon. It has been found that by providing coach marks which appear to be "hand drawn” by a human, the user is better able to visually identify the location of the display 68 on which he must act. Therefore, CPU 52, in the presently preferred embodiment, generates the coach marks of the present invention in a fashion which appears to the user as if a human was drawing on display 68 with a colored marker.
  • the coach mark 355 approximates a circle, and has the visual appearance as if a human drew the mark around the icon 358.
  • the rendering of the coach mark 355 such that it only approximates a circle, as opposed to being a mathematically precise rendition of a circle, has been found to best catch the users attention since the coach mark 355 does not appear completely symmetrical as if drawn by a machine.
  • the coach mark 355 is rendered on the actual interface as it is displayed by CPU 52, and not simply a representation of the interface stored in memory.
  • a presentation window 360 is displayed on the display 68.
  • a "Find" window 362 overlays a GFX Sound and Scan window 365.
  • the GFX Sound and Scan window 365 is currently inactive since it underlies the Find window 362.
  • the CPU 52 further generates a circular coach mark 370 which encircles a button function entitled "More Choices" 372, and displays the coach mark in a translucent color in the case of color monitors, or alternatively, in black and white.
  • a presentation window 378 which overlays a control panels window 380 and a GFX Sound and Scan window 382.
  • a Find window 384 which overlays the control panels window 380, and is active.
  • the Find window 384 and the presentation window 378 are the currently active windows in the example.
  • a coach mark having the general shape of a "X" 386 which draws the user's attention to an area in the Find window 384 which requires the user to input data. The user must insert a search term in a "find" field 390 to obtain the necessary help information identified by the question "How Do I Find a File or Folder?" displayed in the presentation window 378.
  • the coach mark 386 takes the form of what appears to be a hand written "X" which is generated and displayed by the CPU 52, to assist the user in identifying the location at which the user must input data.
  • a presentation window 392 is displayed and overlies a portion of an active window entitled general controls 394.
  • the control panels window 380 and the GFX Sound and Scan window 382 are displayed, but are not active windows.
  • the user has identified the questions "How Do I Change The Blinking Rate of the Insertion Point?", and in response, the CPU 52 has generated the presentation window 392 with instructions on how to accomplish the desired task.
  • the CPU 52 further has generated and displayed an underline coach mark 396 to draw the user's attention to the button functions which must be operated upon to accomplish the desired task of changing the blinking rate of the insertion point.
  • the CPU 52 in response to an inquiry by the user of "How Do I Change the Keyboard Layout?", the CPU 52 then writes and displays a presentation window 400 which overlays the control panels window 380 and a portion of the GFX Sound and Scan window 382, as shown.
  • a window entitled “Keyboard” 402 has been opened and displayed.
  • the CPU 52 generates and displays a coach mark in the shape of an arrow 408.
  • the arrow coach mark 408 draws the user's attention to the necessary item which must be selected to accomplish the desired task of changing the keyboard layout.
  • the CPU 52 generates and displays a presentation window 410 which overlays the control panels window 380 and the GFX Sound and Scan window 382. As illustrated, the presentation window 410 notifies the user that to change the background pattern, the icon entitled “General Controls” 412 must be “opened”. To draw the attention of the user to the general controls icon 412, the CPU 52 generates and displays a straight arrow coach mark 416 as shown.
  • coach marks to draw the user's attention to specific objects, functions or other display elements on screen 68, has been found to greatly assist the user in operating the computer system illustrated in Figure 1. It will be appreciated by one skilled in the art, that although the present invention's use of coach marks has been described with reference to the help system disclosed herein, that use of coach marks is not limited to the help system as provided in this Specification. It is anticipated that the coach marks as disclosed and described in this Specification have application to a variety of graphic user interface functions, and are not limited to use in a graphic help system.
  • FIG 23 there is shown a conceptual diagram of the "coach's chalkboard” comprising the Coach computer code as it relates to the Reno help system modules.
  • the coach code resides in modules known as “Coach's Chalkboard” and “Coach's Specific Resources”.
  • the Coach's Chalkboard includes routines such as initialization (See Figures 24 and 25), specific system patches, general purpose drawing routines and user interface element location finding routines.
  • the coach code can mark interface objects with graphics that appear to be "hand-drawn" on the display 40.
  • the types of objects that are identifiable are generally the same objects on which the help manager is capable of displaying a Balloon in the operating system known as "Apple System 7".
  • the coach code is similar to the Apple Balloon help of System 7 discussed in the background of the invention, in that it classifies the graphical objects on the screen in two ways, as either dynamic or static objects.
  • a static object is an object that resides in a particular window and maintains a constant position within that window.
  • a good example of a static object would be the
  • Control Panel's desktop pattern selector shown circled in Figure 17.
  • static objects are easily supported by the coach code with the addition of simple resources.
  • a dynamic object is an object that resides in a window, but can be created, moved, or deleted by the user. Files and folders within the Finder's windows are good examples of dynamic objects.
  • an application programmer will have to add code to his application that identifies the current location of the dynamic object.
  • the main body of the Coach computer code resides in a system extension that is initialized on booting the program comprising the present invention (INIT) resource.
  • the INTT code segment patches the OS routine "GetNextEvent" after some preliminary initialization.
  • the GNE patch acts as Coach's Main Event loop, from which point, Coach receives and sends Apple events and initiates drawing sequences.
  • Coach uses this patch to provide periodic time for animation and time out (erase) routines.
  • Coach When Coach is attached to the GNE loop, it assumes the identify of the currently running application, and as such, it filters the event records before they are passed to the main application. Its primary function is to look for Coach- specific Apple events that are being sent to an application. When Coach receives such an Apple Event, it "removes it from the Event Queue” and processes the Apple Event directly. Usually the Apple Event will tell Coach to do something specific like "Circle the grow box". (See Figure 25) Because Coach relies heavily on Apple events, the application supporting Coach is compatible with the operating system, and support high-level events. Coach Apple events consist of a command identifier and data. For example, the command could be 'draw', and the data cold be the name of the user interface object that needs attention (i.e. "Shape").
  • Coach When Coach receives a command like the one described above, it then proceeds to use resources to look up the location of the requested object to get it's location on the screen, then, identify the object in some predetermined way. If no resource is found that matches the requested object name, the application is then sent a request asking for the location of the object in question.
  • resources to look up the location of the requested object to get it's location on the screen, then, identify the object in some predetermined way. If no resource is found that matches the requested object name, the application is then sent a request asking for the location of the object in question.
  • Help bundle resources are used to give a definitive name to each important user interface feature (or object) within the application. That is to say, the xiBnd' resource "Bundles" a name with an object.
  • An application programmer adds one TiBnd' resource for each item in the application that has a 5 Balloon resource to describe it (either Tirct' or Tidlg').
  • the following chart illustrates the information 25 that is required in the TiBnd' resources for the Tidlg' resource:
  • TiBnd' resource describes a single Balloon item in the application.
  • each TiBnd' resource contains a Balloon
  • the TiBnd' resources must declare the Coach name for each item listed in the Balloon resource (we call these items objects). In this case,
  • Tidlg' resource there are three objects listed in the Tidlg' resource. They correspond to "Missing Items", “Cancel item”, and "OK item”. This is where the actual name that is used to identify these objects is provided and known as the "bundle name”. This name is not actually resident 5 in the 'hBnd' data structure, but rather, is the name of the TiBnd' resource itself. This name can be any string, up to 32 characters, that can uniquely identify the specified object. Each TiBnd' resource must have a unique name. This string is used by the "Help file"
  • the TiBnd' resource supports a 5 keywords in the resource type field, that is TiAsk'.
  • This keyword tells Coach that no resource item exists for the named object and the object being named is a dynamic object and cannot be described by a Balloon resource. Objects of this type, when
  • 'chlk' resource Another optional resource defined by Coach is the 'chlk' resource. This resource is used to set characteristics of the "chalk" to be used while drawing specific hieroglyphics, the 'chlk' resource defines the shape and style of the graphic to be drawn on the
  • the 'chlk' has a Rez definition as follows: type 'chlk' ⁇ integer; /* chdv ID - hiero 25 definition longint; /* chalk options (chdv spec) longint; /* chalk speed */ integer; /* cpct ID for Pict
  • the final resource used by Coach is the 'chdv' resource. Like a 'wdef , this resource is the code segment that does specific drawing on the screen. This resource is a single entry point code segment that executes the drawing commands required to produce
  • the Coach resources will always reside in the same file as the existing Balloon resources. Although recommended that all help resources reside in the Reno help file, an application programmer will have the option of putting the Coach resources into the Reno help file or the application file itself.
  • Coach is able to identify the location of the required object by using the Balloon 5 help resources in the application, or the person creating the help content or database may give Coach enough information to locate the object. When this happens, Coach has no need to communicate with the host application.
  • query contains a name for the item whose location is requested, as well as any other specific information required for the application to positively identify the item in question.
  • the query tells the application to locate the item (make it visible if necessary) and return
  • the queries that Coach sends to the application are in the form of Apple events. Apple events are identified by a unique pair of long words in the form of eventClass and eventlD. Additionally, when an application responds to a Coach Apple event, it must use Apple events as the response mechanism.
  • the class defines the direction of the message and the eventlD field indicates the type of message that is being sent. Additionally, for certain commands, more information is required to complete the desired function, in which case, a key and data are
  • NIL style name indicates default. Object name of NIL will
  • Origin constant OCon' The origin of the rectangle.
  • the specified rectangle will be considered relative from this location.
  • Location Macro 'IMac' - Identify 5 an object that has a pre-defined location macro for it. This is the functional equivalent to calling TnLoc' with multiple parameters (iRct, oCon, wNam), but the
  • Menu Number 'mNum' The menu number index (0 is apple menu, 1 is file menu, etc.)
  • Menu item style 'mFac' - Temporarily set the specified Menu Item (as specified using the above options) to the requested style.
  • Valid styles are any combination of the following:
  • Taboo rectangle 'tBoo' - A rectangle that is not to be drawn on (could be Reno's portRect, global 15 coordinates)
  • Style name 'sNam' - The marking 20 style to be used (Optional)
  • Object name 'o'Nam' - The name of the item to be marked. This name will have been set by the author.
  • Taboo rectangle 'tBoo' - A rectangle that is not to be drawn on (could be Reno's portRect, global coordinates)
  • Coach is a part of the 35 target application's event stream, they are sending events to themselves in order to communicate.
  • Coach's GNE patch generates, sends, and receives Apple events to the current application to get rectangle information for a named object.
  • the Apple events are sent via AESend by both Coach and the application. As the Apple events come in, they are filtered by the GNE patch. While events destined for Coach are captured and are not passed through to the application, events sent from Coach to the application are allowed to pass through.
  • Coach receives an Apple event from an application it is treated as a command. Coach will carry out the command (usually marking some user-interface object), and program flow will continue as normal. Result codes are returned by all Apple Event Handlers.
  • Coach is hooked into the GetNextEvent loop, it is guaranteed to get time with each application (it becomes an integral part of every running application).
  • Applications and Coach communicate to each other by sending Apple events (with a destination set to kCurrentProcess).
  • Apple events with a destination set to kCurrentProcess.
  • the OS is concerned, the application is just sending application events just to itself, however, in the future, this mechanism may be expanded to allow help messages to be passed from machine to machine.
  • an apphcation In order to receive coach events (item location query event), an apphcation must install an Apple Event Handler for event type "CCAp', and ID of 'ware'. When an apphcation gets a Coach message, it must be processed and responded to within the event handler. The response is installed into the response event record passed into the handler function. Any error condition should be reported by the application in the handler result code. Any non ⁇ zero result passed back by the Coach Event Handler will cause Coach to not draw any mark. Interface between Reno and Coach
  • Reno help program communicates to the coach code through the same mechanism as a target application. That is to say, Reno sends and receives messages to Coach by way of Apple events sent to the target apphcation.
  • Reno sends the 'draw' command to tell Coach to identify the named object.
  • the data field of the command contains the name of the object.
  • the name is used by Coach to look up the Tibnd' resource from which it gets the hot rectangle to identify.
  • Coach responds to Reno with a result code indicating any error for the operation.
  • Coach responds only after it has drawn the graphics. If, however, there is an error, Coach responds immediately, providing the error code to the calling application.
  • FIG 24 is a flow chart illustrating the initialization of the coach code on start up of the computer system illustrated in Figure 1.
  • a patch is installed on the operating system (OS) Trap "GetNextEvent". The purpose of this patch is to allow capturing of any Apple events that are intended for receipt of the Coach's Chalkboard code.
  • Apple events intended for Coach's Chalkboard are intercepted and sent to one of the coach's Apple Event Handlers (see Figure 28).
  • the flowchart of Figure 25 illustrates Coach's Chalkboard code's asynchronous processing.
  • Figure 26 illustrates a flowchart of the operation of Coach's Chalkboard for bit depth independent drawing.
  • the steps shown in Figure 26 provide necessary functionality for the Reno program to draw into overlapping monitors (for example, display 40 of Figure 1) of different bit depth.
  • the code described in Figure 26 results in an off screen pixmap to be plotted into a location described by parameters provided by a 'chdv' routine (see for example Figures 35 - 37).
  • the mathematics of the "chdv" routine calculates a pen path on which multiple pixmaps are to be plotted.
  • Figure 27 is a flow chart of the asynchronous drawing processing routine.
  • FIG 28 illustrates Apple Event Handler processing.
  • Coach's Chalkboard functions. All of coach's Apple events are of type 'ApCC.
  • Coach intercepts such an event from the GNE patch
  • it executes an Apple Event Handler one of which being the code described by the flowchart of Figure 28.
  • the Reno application can send a 'draw' Apple Event to Coach's Chalkboard.
  • the purpose of this event is to tell Coach to identify a user interface feature for the user with a mark known as coach mark.
  • Coach intercepts such an event from the GNE patch
  • the user interface feature to be identified (by circling, underline, etc.) is identified by name (a parameter in the Apple Event) -the name corresponds to the name of a help bundle resource - that resource helps Coach find the user interface feature.
  • Another parameter in this Apple Event is the chalk name, this parameter identifies, by name, the resource that identifies the parameter that Coach will use to draw the Coach mark.
  • the final parameter to this Apple Event is the TabooRect - this rectangle specifies an area on the screen (in global coordinates) that should be drawn on with reduced intensity, it is typically used to identify the rectangle covered with Reno windows, such that all drawing over Reno windows look noticeably different from drawing over any other windows on the display.
  • FIG. 29 the Apple Event Handler for erasing a coach mark is shown.
  • Coach's Chalkboard installs a suite of Apple Event Handlers. These handlers add functionality to Reno to enable all of Coach's Chalkboard functions. All of Coach's Apple events are of type 'ApCC.
  • Coach intercepts such an event from the GNE patch
  • it executes a Apple Event Handler one of which being the code described by this flowchart. Reno can send a 'erse' Apple Event to Coach's Chalkboard. The purpose of this event is to tell Coach to erase a previously drawn Coach mark.
  • Figure 30 is a flowchart illustrating the coach mark rename routine for supporting a "name" Apple Event.
  • FIG 31 is a flowchart illustrating the present invention's index “ndex” Apple event.
  • the purpose of the "ndex” event is to request the coach code to identify the next known (by using Balloon help) user interface item. This command is normally used in conjunction with "name” to create help bundles for user interface items.
  • Figure 32 is a flowchart of the "mloc” routine to request Coach to mark a specific location on display 40, regardless of whether the location has a Help bundle resource associated with it.
  • Figure 33 is a flowchart illustrating the "mmrk” Apple event to request that the coach code to mark a specific menu on the display screen 68 of Figure 1.
  • FIG. 34 a flowchart is illustrated which the present invention's Coach code utilizes to draw an underline Coach mark, as shown in Figures 20 and 38(a) - 38(d).
  • the "chdv" code modules are the mathematics routines that allow the present invention's Coach's Chalkboard program to draw pseudo-geometric shapes on the screen, the shapes are intentionally distorted to give the effect of imprecise human drawing.
  • the shapes are all drawn by repeatedly plotting a color Macintosh® picture over and over again with substantial overlap in a specified direction.
  • the body of code described in this flowchart simply calculates the locations to plot the Macintosh® pictures and repeatedly calls a centralized routine to do the actual drawing.
  • the underline Coach maik is drawn by first setting the start and end points to the lower left and lower right of the screen item to be underlined. Starting and ending vectors are then calculated (See flowchart of Figure 35, step 740).
  • CPU 52 under the direction of the Coach code, begins plotting pen pictures from the start point, then adjusts the location of the next pen picture to overlap the last plotted pen picture in accordance with the vector.
  • the vector value ( Figure 35) is adjusted with each iteration while approaching the end point.
  • CPU 52 continues plotting and incrementing until the pen point is just outside the item rectangle.
  • FIG 36 a flowchart illustrated which describes the steps that the present invention utilizes to draw a circle Coach mark, as shown in Figures 16, 17, 18 and 40.
  • the "chdv" code modules are the mathematics routines that allow the present invention's Coach's Chalkboard program to draw pseudo-geometric shapes on the screen.
  • the shapes are intentionally distorted to give the effect of imprecise human drawing.
  • the shapes are all drawn by repeatedly plotting a color Macintosh® picture over and over again with substantial overlap in a specified direction.
  • the body of code described in this flowchart calculates the locations to plot the Macintosh® pictures and repeatedly calls a centralized routine to do the actual drawing.
  • the circle Coach mark is first drawn by calculating the axis' for the ellipse "a" and "b" (See Figure 40(a)).
  • the CPU 52 begins to draw in quadrants of the ellipse. For the first quadrant, the "b" axis is artificially extended by the height of the pen point's rectangle, and a start point is calculated at the top of the ellipse.
  • the CPU 52 then begins to render and plot pen pictures from the start point, and recalculate the ellipse at each point (See Figure 40(c)). As shown, the CPU 52 continues plotting and recalculating until the first quadrant has been plotted ( Figure 40(d)).
  • the CPU 52 then resizes the "b" axis to the original length and continues to plot the original length and continues to plot the second, third and fourth quadrants (See Figure 40(f)).
  • the equation used for the ellipse calculation is:
  • FIGs 37(a) and 37(b) a flowchart is illustrated which describes the steps utilized by the present invention to draw and arrow Coach mark, shown in Figures 21, 22 and 41.
  • the arrow is drawn by the CPU 52 first setting the start point and end point of the arrow.
  • points on the item rectangle are identified by locations one through eight.
  • the CPU 52 calculates the starting and ending vectors (See Figure 37(a), Step 822), and the change in slope using "imperfect math" (See Figure 37(a) , Steps 826 and 828).
  • CPU 52 then begins to plot pen pictures from the start point, and adjusts the next location by vector. In addition, the vector value is adjusted at each plot iteration while approaching the endpoint (See Figure 41(d)).
  • CPU 52 continues plotting and incrementing until the pen point is plotted just outside the item rectangle.
  • the arrowhead is then rendered by calculating a vector for the first line of the arrowhead ( Figure 41(f)).
  • CPU 52 then plots the pen picture along the vector until the maximum arrowhead length is reached.
  • Another vector is calculated for the second half of the arrowhead and plotted as shown in Figures 41(g) and 41(h).
  • FIGs 35 and 39 the method of the present invention is described for drawing an "x" Coach mark, shown in Figure 19.
  • CPU 52 selects start and end points by randomly adjusting the position of the points up to 10 percent outside of the corners of the item rectangle (See Figure 35, step 732).
  • the starting and ending vectors are calculated (See Figure 35, step 740) as well as the change in slope per iteration (See Figure 39(b)).
  • CPU 52 then begins plotting pen picture, beginning from the start point, then adjusting the location of the next plot by vector. In addition, the vector itself adjusted at each iteration while approaching the end point.
  • the pen points continue to be plotted and incremented until the pen plot is just outside the item rectangle (See Figure 39(d)).
  • opposite start and end points are defined for the opposing side of the "x" Coach mark, and the process is repeated to complete the mark.

Abstract

The present invention includes an object oriented graphic user interface having overlapping windows. The present invention includes an access window having topics, index and look for button functions for selection by a user. To assist the user, the present invention includes visual cues referred to as 'coach marks', generated by the CPU for identifying features on the display which relate to the information disposed within the presentation window. The coach marks are displayed generally concurrently with the display of the presentation window, and appear to approximate a geometric object, such as, for example, an arrow, a circle, an X, and the like. The coach marks encircle, point to, and/or underline objects, features, icons, folders an other display elements to assist the user in operating the computer system. In the present embodiment, the coach marks are rendered such that they appear on the display as if drawn by hand. The marks may be in color, or black and white, depending on the capability of the particular computer display system. Methods are disclosed for the generation and rendering of the coach marks on the graphic user interface.

Description

METHQD AND APPARATUS FOR GENERATING AND DISPLAYING VISUAL CUES ON A GRAPHIC USER
INTERFACE
This Application is a Continuation-in-part Application of Serial No. 08/010,062, Filed January 27, 1993, entitled Method and Apparatus For Providing Visual Cues In A Graphic User Interface, assigned to Apple Computer, Inc., and incorporated herein fully by reference.
10
BACKGROUND OF THE INVENTION
1. Field of the Invention
15 The present invention relates to apparatus and methods for displaying graphic information, and more particularly, the present invention relates to a computer controlled display system for displaying and generating visual cues on a graphic user interface of a display.
20
Background Information
* Over the past decade, a variety of graphic user interfaces have been developed to ease human interaction with 25 computer systems. Many user interfaces utilize metaphors in the design of the interface as a way of maximizing human familiarity, and conveying information between the user and computer. Through the use of familiar metaphors, such as desk tops, notebooks and the like, the interface takes advantage of existing human mental structures to permit a user to draw upon the metaphor analogy to understand the requirements of the particular computer system. It is well known that designing around a familiar metaphor helps reduce human learning time. See for example, Patrick Chan "Learning Considerations in User Interface Design: The Room Model", Report CS-84-16, University of Waterloo Computer Science Department, Ontario, Canada, July, 1984, and references cited therein.
In current generation systems, it is common for computer systems to incorporate so-called "object oriented" display systems which utilize multiple "windows" on a display in which combinations of text and graphics are disposed. Using a desk top metaphor, the windows may take the form of a variety of objects, such a file folders, loose leaf binders, or simple rectangles, and the windows may overlap one another with the "top" window constituting the current work file. A user operating within the context of a window-based graphic user interface ("GUI") operates on objects commonly found in an office, and therefore, provides non expert users with a familiar surrounding in which to interact with the computer. In a typical window-based GUI system, visually distinct display objects are provided on the display screen, and are commonly referred to as "icons". Each of the icons represents a function or object on the desktop. In many systems, a cursor is also displayed which may be selectively moved in response to the movement of a mouse or other pointer control device. The cursor may be moved over display objects which the user may select on the screen. The user may delete information from a window, move data from one window to another, and generally operate on the windows as if an actual file or other physical object is being manipulated. A variety of "pull-down" menus also may be displayed, using a technique for selecting particular command options appearing along a menu bar, and subcommand items corresponding to the command options (See U.S. Patent Re.32,632).
The reader is referred to the following references which describe various aspects, methods and apparatus associated with prior art graphic user interface design: U.S. Patent
Re.32,632, U.S. Patent 4,931,783, U.S. Patent 5,072,412, and U.S. Patent 5,148,154, and the references cited therein.
Although object oriented display systems have shortened the learning and acclamation period of a new user in understanding and operating computer systems, users still require assistance during the actual operation of the computer system. As a result, a variety of on-screen help systems have been developed using window-based graphic user interfaces. Some systems provide a help key which displays on-screen manuals for the reader to review while operating in the particular application program. Other help based systems, such as the Balloon help system which forms a part of System 7.0 of the Apple Macintosh® graphic user interface, provides context sensitive help information by placing the cursor over various icons, labels, windows and other objects on the screen desktop. (See Macintosh® user manuals published by Apple Computer, Inc.)
An intuitive help interface design, as in the case of graphic user interfaces generally, relies on a real world metaphor to permit users to apply common knowledge about the metaphor and operate the computer system. However, it is difficult to define what constitutes an "intuitive" design for a user interface, and it is difficult to design an interface that is completely apparent to all end users, no matter which metaphor is used. As a result, it is desirable to provide a help system which is context sensitive and works in conjunction with the graphic user interface metaphor to assist the user. As will be described, the present invention provides an on-screen help system having attributes which ease the acclamation and learning period of the user. Window features are displayed which provide visual cues to coach the user through the use of help to accomplish the desired function. Although the present invention is described in terms of an on-screen help system in a window- based graphic user interface, it will be apparent from the description below, that the present invention's features and attributes have application in a variety of graphic user interface designs and software applications. Accordingly, the present invention is not limited by the following description, and it will be understood by those skilled in the art, that the present invention may be applied to computer systems offered by a variety of manufacturers, and to user interface designs which utilize a variety of metaphors.
SUMMARY AND OBJECTS OF THE INVENTION
The present invention provides apparatus and methods for a help interface for use in a window-based computer display system. The display system includes at least one central processing unit (CPU) which is coupled through appropriate input/output (I/O) circuitry to input devices, such as a keyboard, digital pad, mouse and/or track ball. The CPU is coupled to a hard disk drive for the storage of programs and data, and may also be coupled to a network through which the CPU may communicate with a variety of other system resources and devices. The CPU is further coupled to a display device such as a CRT or liquid crystal display, on which the present invention is displayed. The user interface of the present invention includes an object oriented graphic user interface having overlapping windows. The present invention includes an access window having topics, index and look for button functions for selection by a user. To further assist the user, the present invention includes coach mark visual cues generated by the CPU for identifying features on the display which relate to the information disposed within the presentation window. The coach marks are displayed generally concurrently with the display of help information, and appear to approximate a geometric object, such as, for example, an arrow, a circle, an X, and the like. The coach marks encircle, point to, and/or underline objects, features, icons, folders and other display elements to assist the user in operating the computer system. In the present embodiment, the coach marks are rendered such that they appear on the display as if drawn by hand, by both shape (imperfect geometry), and by speed in approximating the speed in which a human would draw such shapes. The marks may be in color, or black and white, depending on the capability of the particular computer display system. The present invention includes apparatus and methods for generating and displaying the coach marks, such that they appear to be drawn by a human on the interface.
BRIEF DESCRIPTION OF DRAWINGS
FIGURE 1 is a functional block diagram illustrating one possible computer display system incorporating the teachings of the present invention.
FIGURE 2 shows a representative display screen illustrating a window-display system utilizing the teachings of the present invention.
FIGURE 3 is the access window of the present invention.
FIGURE 4 illustrates the access window as shown in Figure 3 once the topics screen has been selected.
FIGURE 5 illustrates the access window of Figure 4 once the topic area for "files and disks" has been selected.
FIGURE 6 illustrates the access window of Figure 5 and shows the selection of "How do I find a file or folder?" being selected. FIGURE 7 illustrates a presentation window entitled "How do I find a file or folder?" displayed subsequent to the selection illustrated in Figure 6.
FIGURE 8 illustrates the access window of the present invention showing the selection of the index screen and the present invention's alpha slider.
FIGURE 9 illustrates the present invention's alpha slider placed on the letter "F" contents of the alpha index window within the access window.
FIGURES 10 illustrates the access window of Figure 9 once the "files" entry has been selected in the alpha window.
FIGURE 11 illustrates the window of Figure 10 once the selection "How do I find a file or folder?" has been selected.
FIGURE 12 illustrates the access window of the present invention having the "Look for" screen selected.
FIGURE 13 illustrates the access screen of Figure 12 after the word "Find" has been inputted and searched. FIGURE 14 illustrates the access screen of Figure 13 in the selection of "How do I find a file or folder?" being selected.
FIGURE 15 illustrates a presentation window entitled "How do I find a file or folder?" displayed subsequent to the selection illustrated in Figure 14.
FIGURE 16 illustrates the presentation window of the present invention in conjunction with a coach mark encircling the menu choice "File". Note that in an actual implementation, the Coach mark would not exit from the top of the menu since it would then be completely off the display screen.
FIGURE 17 illustrates the presentation window of the present invention disposed over an active window entitled "General Controls" in which a coach mark visual cue encircles a desktop pattern.
FIGURE 18 illustrates the presentation window of the present invention and a coach mark visual cue encircling "More Choices" in a window entitled "Find". FIGURE 19 illustrates the present invention's use of coach marks to identify an area which requires a user to insert data or make a selection.
FIGURE 20 illustrates the presentation window of the present invention in which a coach mark has been inserted underlining a portion of the "General Controls" window.
FIGURE 21 is an additional illustration of the presentation window of the present invention in which a curved arrow coach mark is used to identify a portion of a window entitled "Keyboard".
FIGURE 22 is an additional illustration of the coach mark of the present invention in which a straight arrow coach mark is used to identify a selection which is required by the user to accomplish a desired function identified in the presentation window.
FIGURE 23 conceptually illustrates the components of "The Coach's Chalkboard" code and how they are included in the Reno help system. FIGURE 24 is a flowchart illustrating the present invention's initialization routines on start up of the computer system shown in Figure 1.
FIGURE 25 is a flowchart illustrating the processing within the GetNextEvent patch of the present invention.
FIGURE 26 is a flowchart showing the present invention's sequence of steps for bit depth independent drawing.
FIGURE 27 is a flowchart of the present invention's asynchronous drawing processing routine.
FIGURE 28 is a flowchart illustrating the present invention's Apple Event Handler processing.
FIGURE 29 is a flowchart of the present invention's Apple Event Handler for erasing a coach mark from the display.
FIGURE 30 is a flowchart of the coach mark rename process for renaming a previously drawn coach mark.
FIGURE 31 is a flowchart of the present invention's index Event coach mark. FIGURE 32 is a flowchart of the mark location routine to mark a specific location of the display.
FIGURE 33 is a flowchart illustrating the mark menu process to mark a specific menu on the display screen.
FIGURE 34 is a flowchart of the steps used by the present invention to draw an underline coach mark on the display screen.
FIGURE 35 is a flowchart of the steps completed by the present invention to draw an X coach mark on the display.
FIGURE 36 is a flowchart of the steps used by the present invention to draw a circle coach mark.
FIGURES 37(a) and 37(b) are flowcharts of the steps used by the present invention to draw an arrow coach mark.
FIGURES 38(a) - 38(d) conceptually illustrate the rendering of an underline coach mark by the present invention.
FIGURES 39(a) - 39(e) conceptually illustrate the rendering of an X coach mark on the display. FIGURES 40(a) - 40(f) conceptually illustrate the rendering of a circle coach mark by the present invention.
FIGURES 41(a) - 41(h) conceptually illustrate the rendering of an arrow coach mark by the present invention.
NOTATION AND NOMENCLATURE
The detailed descriptions which follow are presented largely in terms of display images, algorithms, and symbolic representations of operations of data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art.
An algorithm is here, and generally, conceived to be a self consistent sequence of steps leading to a desired result. These steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, images, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.
In the present case, the operations are machine operations performed in conjunction with a human operator. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. In all cases, there should be borne in mind the distinction between the method operations of operating a computer and the method of computation itself. The present invention relates to method steps for operating a computer and processing electrical or other physical signals to generate other desired physical signals.
The present invention also relates to apparatus for performing these operations. This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. The algorithms presented herein are not inherently related to any particular computer or other apparatus. In particular, various general purpose machines may be used with programs in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given below. Machines which may perform the functions of the present invention include those manufactured by the Assignee, Apple Computer, Inc., as well as other manufacturers of computer systems. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
This Application is a Continuation-in-part Application of Serial No. 08/010,062, Filed January 27, 1993, entitled Method and Apparatus For Providing Visual Cues In A Graphic User Interface, assigned to Apple Computer, Inc., and incorporated herein fully by reference.
The following detailed description will be divided into several sections. The first of these will describe a general system arrangement for generating computer graphics in accordance with the teachings of the present invention. Subsequent sections will deal with aspects of the present invention such as the present invention's help access methods and presentation window, alpha slider selection method, floating windows, and computer generated visual cues (referred to as "coach marks"), as well as the overall structure and operation of the present invention's use of coach marks. The reader is referred to the following Specifications for additional information, which are incorporated by reference: Serial No. 08/010,063, Filed January 27,1993, entitled "Method And Apparatus For Providing A Help Based Window System Using Multiple Access Methods"; Serial No. 08/010,061, Filed January 27, 1993, entitled "Method and Apparatus For Displaying And Scrolling Data In A Window-Based Graphic User Interface"; and Serial No. 08/010,064, Filed January 27, 1993, entitled "Method And Apparatus For Presenting Information In A Display Using Floating Windows.
In addition, in the following description, numerous specific details are set forth such as functional blocks representing data processing devices, metaphors, such as desktop and window metaphors, window configurations and arrangements, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well known circuits and structures are not described in detail so as not to obscure the present invention unnecessarily.
General System Configuration
The computer controlled display system of the present invention is part of a computer system, such as that illustrated in Figure 1. The computer controlled display system includes a display means 40, such as a CRT monitor or a liquid crystal display (LCD), and further includes a cursor control means 42, such as a mouse of the type shown in U.S. Patent No. Re.32,632, a track ball, joy stick or other device for selectively positioning a cursor 44 on a display screen 68 of the display 40. Typically, the cursor control means 42 includes a signal generation means, such as a switch 46 having a first position and a second position. For example, the mouse shown and described in U.S. Patent No. Re.32,632 includes a switch which the user of the computer system uses to generate signals directing the computer to execute certain commands. As illustrated, the cursor control means 42 (hereinafter all types of applicable cursor control devices, such as mice, track balls, joy sticks, graphic tablets, keyboard inputs, and the like, are collectively referred to as the "mouse 42") is coupled to a computer system 48.
The computer 48 comprises three major components. The first of these is an input/output (I O) circuit 50 which is used to communicate information in appropriately structured form to and from other portions of the computer 48. In addition, the computer 48 includes a central processing unit (CPU) 52 coupled to the I O circuit 50 and a memory 55. These elements are those typically found in most general purpose computers, and in fact, computer 48 is intended to be representative of a broad category of data processing devices capable of generating graphic displays.
Also shown in Figure 1 is a keyboard 56 to input data and commands into the computer 48, as is well known in the art. A magnetic mass memory disk 60 is shown coupled to I/O circuit 50 to provide additional storage capability for the computer 48. In addition, a CD ROM 62 is further coupled to the I/O circuit 50 for additional storage capacity. It will be appreciated that additional devices may be coupled to the computer 48 for storing data, such as magnetic tape drives, as well as networks, which are in turn coupled to other data processing systems.
As illustrated in Figure 1, the display 40 includes the display screen 68 in which a window 70 is displayed. As is well known in the art, the window 70 may be in the form of a rectangle or other well known shape, and may include a menu bar 72 disposed horizontally across the length of the window. As is well known, the movement of the mouse 42 may be translated by the computer 48 into movement of the cursor 44 on the display screen 70. The reader is referred to literature cited in the background describing object-oriented display systems generally, and in particular, desktop metaphor window-based systems for additional description related to other computer systems which may be utilized in accordance with the teachings of the present invention. The system illustrated in Figure 1 is intended to represent a general data processing system capable of providing a graphic user interface display. The window display 70 and window based display system shown in Figure 1 is well known (for example, the Macintosh® series of computers sold by Apple Computer, Inc.), and hence, a detailed description is not necessary herein. In operation, the window based user interface of the present invention is generated and displayed using software stored in memory 55 and executed by the CPU 52, as is known.
Access And Presentation indo s
Referring now to Figure 2, the display screen 68 of the display 40 is shown in additional detail. Illustrated within the display 68, is a known graphic user interface utilized by computers manufactured and sold by Apple Computer, Inc. A menu bar 100 is provided which horizontally spans the display screen 68. As shown in Figure 2 the menu bar 100 typically includes a plurality of command options such as a desktop icon in the shape of an Apple 103, "File", "Edit", "View", "Label", and "Special". Using the teachings of U.S. Patent Re.32,632 and U.S. Patent 4,931,783, pull down menus may be displayed and selected using a methodology commonly referred to as a "push-drag-release" method. Using this methodology, the cursor 44 is placed over a desired command option, after which the switch 46 of the mouse 42 is depressed. The depression of the switch 46 signals the CPU 52 to generate a pull down menu (In Figure 2, a sample pull down menu is shown as menu 104.). Moving the mouse 42, and maintaining the switch 46 in a depressed state, the user places the cursor 102 over a desired subcommand item (in the example of Figure 2, the "help" command), and releases the switch 46. The computer system 48 then executes the selected subcommand item. As will be described, the selection of the subcommand item "help" in menu 104 results in the CPU executing the help system disclosed herein. In addition, for purposes of this Specification and the description which follows, a reference to placing the cursor 44 "over" an object, icon, list, question or the like, shall be understood to mean placing the cursor 44 over at least a portion of the object, icon, list, question or the like sufficient to identify the selection to the CPU 52.
Shown within the desktop illustrated in Figure 2 is a window 108 which includes a header 110 entitled "Mail". In the example illustrated, the window 108 lists a variety of documents, messages and the like, which are disposed within the window 108. Other icons are shown, such as icon 120 entitled "Jeffs HD", which represents a hard disk, and icon 122, which represents a floppy disk to which the CPU 52 has access, and trash can icon 126.
In the presently preferred embodiment, the help system of the present invention is initiated by the user selecting the subcommand item identified as "Help" in the pull down menu 104. To select "Help", the cursor 44 is placed over Balloon help menu icon 112, and switch 46 is depressed. CPU 52 generates and displays menu 104, and the user then places cursor 44 over the "Help" subcommand, and releases switch 46. Alternatively, the user may select the "Help" function by inputting a predetermined keyboard equivalent using keyboard 56.
Upon selection of the "Help" function, the computer 48 generates and displays a help screen access window 130, illustrated in Figure 3. The access window 130 includes a logo 132 and user instructions, as illustrated. In the presently preferred embodiment, the instructions shown within the access window 130, logo 132 and the window itself are part of a help data base stored in memory 55, or alternatively, on disk 60 or CD ROM 62.
Access to the help data base is provided to the user through a topics button 135, an index button 138, and a lookup button 140, as will be described. In addition, as illustrated in Figure 3, the access window 130 includes a working area 145 in which the CPU 52 displays instructions, text or command options. The working area 145 includes a vertical slider 48 for scrolling through data displayed within the working area 145. Additional features of the access window 130 will become apparent from the description below.
Referring now to Figure 4, the selection of the topics access method for the access window 130 is illustrated. As shown, to enter the present invention's help system through the "topics" button function, the user places the cursor 44 over the button marked topics (135) and momentarily activates ("clicks") the switch 46 on the mouse 42. In the present embodiment, while the cursor 44 is within the rectangle defining the button 135 and the button 46 of mouse 42 is depressed, the image of button 135 appears to be inverted as if it were being depressed. When the switch 46 on the mouse 42 is clicked over the topics button 135, CPU 52 generates and displays the access window 130 including a list of topics within a working area 150 as shown in Figure 4.
As illustrated, the user may then select one of a plurality of topics which the user desires help in. For example, in Figure 5, if the user places the cursor 44 over the topic "Files and Disks" 160, and clicks button 46, the selection of the topic is sensed by the CPU 52, which then generates and displays a list of statements within the working area 145. In the present embodiment, the list displayed within the working area 145 comprises statements in groups which may include questions. The heading is a set of words that begins all statements or questions of a particular type (in the example of Figure 5, "How do I"). The body is the remainder of the question or statement (for example in Figure 5 "Change the name of an item"). In the presently preferred embodiment, the CPU 52 displays the headings in bold. The bodies of the questions or statements appear indented under the heading as shown in the figures. The invention's hierarchical design preserves the statement's format, while removing the redundant heading from each statement in the list. As a result, the list of statements has less text, and longer statements or questions fit more easily in the working area 145. In addition, users can easily scan the headings to see the types of statements or questions that are available, using the scroll bar 148.
Referring now to Figure 6, as illustrated, the topic area "files and disks" 160 provides the results in the illustrated questions shown. In the example of Figure 6, the cursor 44 is placed through the appropriate movement of the mouse 42 by the user, over the question "Find a file or folder?", and the switch 46 is momentarily clicked. Selection of the question "How do I find a file or folder?", coupled with placing the cursor 44 over the "OK" button and clicking switch 46 again, results in CPU 52 generating and displaying a presentation window 165 illustrated in Figure 7. Data and other information provided within the presentation window 165 requests additional information from the user (if required) and guides the user through the desired function. As will be described more fully below, both the access window 130 and the presentation window 165 "float" over other windows displayed on the display screen 68, without disturbing or altering the currently active window being displayed.
Referring now to Figure 8, help information may also be obtained through the selection of the index button function 138. The placement of the cursor 44 over index button 138, and the momentary clicking of switch 46 on the mouse 42, signals the CPU of the selection of the index function 138. As illustrated in Figure 8, upon the selection of index button 138, the index 170 is generated and displayed. The index allows users to find relevant questions based on specific terms and phrases (referred to collectively as "index entries"). The index screen 170 includes a plurality of entries, and the index button 138 remains inverted to indicate the function is active. The index screen 170 includes an alpha scroll bar 176. Since the index screen 170 contains many entries, the alpha scroll bar 176 allows users to scroll rapidly to a particular letter, similar to a rolodex on a desk. The operation of the alpha scroll bar 176 will be described in more detail below.
The user places the cursor 44 over a portion of a desired letter (See Figure 9) and momentarily clicks the switch 46 on the mouse 42. Upon sensing the letter selection, the CPU 52 displays the nearest and all subsequent entries beginning with the selected letter. In the example of Figure 9, the user has selected the letter "F". Upon sensing the selection, the CPU 52 displays index entries beginning with the letter "F". In the event that there is insufficient display space to display all of the entries beginning with the letter "F", the user may use a scroll bar 178 to scroll the data disposed within the index screen vertically. Alternatively, a user may position the slider 175 over a desired letter by placing the cursor 44 over a portion of the slider 175, depressing the switch 46 on the mouse 42, and dragging the cursor and slider across the alpha scroll bar 177 to a desired letter. Upon reaching the desired letter (in Figure 9 "F"), the user releases the switch 46 on the mouse 42. Once selected, the list of entries is displayed beginning with entries having the selected letter. As shown in Figure 10, the placement of the cursor 44 over an entry such as "Files" and the momentary clicking of the switch 46 on the mouse 42, results in the display of a list of questions as previously described with reference to Figures 5 and 6. As in the example of the topics button previously discussed, as shown in Figure 11, the user then selects a question (for example, "How do I find a file or folder?") and momentarily clicks the mouse button 46. As illustrated in Figure 7, the presentation window 165 is then displayed and operates as previously described.
Referring now to Figure 12, the placement of the cursor 44 over the "Look For" button function 140, and the momentary activation of the switch 46 on mouse 42, results in the generation and display of a look for screen identified generally by the numeral 200. The look for screen 200 permits users to type phrases in a text box 210 and view questions related to the phrase (if any). As in the previous examples with respect to the index and topics buttons, when the look for button 140 has been selected, the button appears inverted, thereby indicating it is currently active. As illustrated in Figure 13, the look for screen 200 also includes a search button function 215. In operation, the user utilizing the keyboard 56, types into the text box 210 a search word (in the example of Figure 13, the word "find"). The user then places the cursor over the search button function 215 and momentarily clicks switch 46. Upon the selection of the search button 102, the CPU 52 searches the help data base stored in memory 55, mass memory 60 or CD ROM 62 and displays the list of questions corresponding to the search term within the working area 145, as previously described with reference to Figures 3 through 11. As illustrated in Figure 14, to select a desired question (such as "How do I find a file or folder?"), the user places cursor 44 over the question and momentarily clicks switch 46. To initiate the selected help function, the user then places the cursor 44 over the "OK" button function 225 and once again clicks switch 46. Upon sensing the selection of the help inquiry, the CPU 52 then generates and displays the presentation window 165, as previously described with reference to Figures 7 and 12. The user then may further define the help request by selecting one of the three (as shown in the example of Figure 15) criteria displayed in the presentation window 165.
Accordingly, as described in this Specification, the present invention provides three access methods for obtaining desired help information from the computer system 48. A user may select the topics button function 135, the index button function 138, or the look for button function 140. Using one of the three select button functions, an appropriate access window and presentation window is displayed to assist the user in obtaining the desired information necessary to operate the computer system illustrated in Figure 1.
Coach marfa
Understanding names and identifying objects may be particularly confusing to end users in operating a computer system. Thus, as will be described, the present invention provides an additional feature which further assists users in operating the computer system illustrated in Figure 1. A technique is disclosed for spothghting objects on the display 68 which are referred to in the help presentation windows. The present invention provides visual cues, referred to as "Coach marks", which appear to be hand drawn, but are generated by the CPU 52, to coach the user through the requested help function. As will be appreciated, the coach marks draw the user's attention to objects displayed on display 68, and are effective in identifying objects even if the user has no prior knowledge of the object's name or function. The coach marks are visual, and as such, operate independent of the language of the user. Although the present invention as illustrated in Figures 29 through 36 as utilizing coach marks which are black and white, it will be appreciated by one skilled in the art that the coach marks may be rendered in a translucent color as well using a color display system.
Referring now to Figure 16, there is shown the GFX
Sound and Scan window 314, as previously illustrated in prior figures. In addition, a presentation window 335 is illustrated overlaying the GFX Sound and Scan window 314. Also shown is a coach edit mark 340 which encircles the command option "file" on a menu bar 345. In operation, substantially simultaneously with the generation and display of the presentation window 335, the CPU 52 generates and displays the coach mark 340. In the presently preferred embodiment, the generation and display of the coach mark 340 appears to the user to be hand drawn with a hand marker, or the like. In addition, in the presently preferred embodiment, the coach mark 340 is rendered in a color which may be selected by the author of the data base, and the coach mark 340 is displayed by the CPU at a speed such that the rendering is intentionally slower than other CPU operations on the display and appears to the user as if animated. The purpose of the coach mark 340 is to identify and draw the user's attention to objects on display 68 which the user must choose or otherwise operate upon, to accomplish the desired help function accessed through the access window and presentation windows of the present invention described above. Referring now to Figure 17, there is shown another example of the present invention's use of coach marks to assist the user. In the example, through the appropriate selection of a question in the access window (not shown), a presentation window 348 is displayed. An active window identified as general controls 350 is displayed overlaying the control panels window 352 and the GFX Sound and Scan window 314. To assist the user in accomplishing the desired help function which, in the present example, is phrased as "How do I Change the Background
Pattern?", a circular coach mark 355 is provided by CPU 52. In the example illustrated in Figure 17, the CPU 52, upon the generation and display of presentation window 348, also generates coach mark 355, and encircles the icon comprising a desktop pattern 358, as shown, the generation and display of the coach mark 355 draws the users attention to the appropriate icon on the display 68 which the user must operate upon. It has been found that by providing coach marks which appear to be "hand drawn" by a human, the user is better able to visually identify the location of the display 68 on which he must act. Therefore, CPU 52, in the presently preferred embodiment, generates the coach marks of the present invention in a fashion which appears to the user as if a human was drawing on display 68 with a colored marker. As can be seen in Figure 17, the coach mark 355 approximates a circle, and has the visual appearance as if a human drew the mark around the icon 358. The rendering of the coach mark 355 such that it only approximates a circle, as opposed to being a mathematically precise rendition of a circle, has been found to best catch the users attention since the coach mark 355 does not appear completely symmetrical as if drawn by a machine. In addition, the coach mark 355 is rendered on the actual interface as it is displayed by CPU 52, and not simply a representation of the interface stored in memory.
Referring now to Figure 18, another example of a circular coach mark is illustrated. As shown, a presentation window 360 is displayed on the display 68. A "Find" window 362 overlays a GFX Sound and Scan window 365. In the example, the presentation window 360 and the find window 362 are simultaneously active. The GFX Sound and Scan window 365 is currently inactive since it underlies the Find window 362. As in the example of Figures 16 and 17 upon generating the presentation window 360, the CPU 52 further generates a circular coach mark 370 which encircles a button function entitled "More Choices" 372, and displays the coach mark in a translucent color in the case of color monitors, or alternatively, in black and white.
Referring now to Figure 19, therein is illustrated a presentation window 378 which overlays a control panels window 380 and a GFX Sound and Scan window 382. Also illustrated is a Find window 384 which overlays the control panels window 380, and is active. As such, the Find window 384 and the presentation window 378 are the currently active windows in the example. Also shown is a coach mark having the general shape of a "X" 386 which draws the user's attention to an area in the Find window 384 which requires the user to input data. The user must insert a search term in a "find" field 390 to obtain the necessary help information identified by the question "How Do I Find a File or Folder?" displayed in the presentation window 378. Thus, in the present example, the coach mark 386 takes the form of what appears to be a hand written "X" which is generated and displayed by the CPU 52, to assist the user in identifying the location at which the user must input data.
Referring now to Figure 20, the present invention's use of coach marks is illustrated in which a presentation window 392 is displayed and overlies a portion of an active window entitled general controls 394. The control panels window 380 and the GFX Sound and Scan window 382 are displayed, but are not active windows. As illustrated, using the teachings of the present invention described above, the user has identified the questions "How Do I Change The Blinking Rate of the Insertion Point?", and in response, the CPU 52 has generated the presentation window 392 with instructions on how to accomplish the desired task. In addition, the CPU 52 further has generated and displayed an underline coach mark 396 to draw the user's attention to the button functions which must be operated upon to accomplish the desired task of changing the blinking rate of the insertion point.
With reference to Figure 21, in response to an inquiry by the user of "How Do I Change the Keyboard Layout?", the CPU 52 then writes and displays a presentation window 400 which overlays the control panels window 380 and a portion of the GFX Sound and Scan window 382, as shown. A window entitled "Keyboard" 402 has been opened and displayed. As illustrated, to assist the user, the CPU 52 generates and displays a coach mark in the shape of an arrow 408. The arrow coach mark 408 draws the user's attention to the necessary item which must be selected to accomplish the desired task of changing the keyboard layout.
Similarly, in Figure 22, through the use of the access window of the present invention (not shown), the user has selected the question "How Do I Change the Background Pattern?". In response to this inquiry, the CPU 52 generates and displays a presentation window 410 which overlays the control panels window 380 and the GFX Sound and Scan window 382. As illustrated, the presentation window 410 notifies the user that to change the background pattern, the icon entitled "General Controls" 412 must be "opened". To draw the attention of the user to the general controls icon 412, the CPU 52 generates and displays a straight arrow coach mark 416 as shown.
The use of coach marks to draw the user's attention to specific objects, functions or other display elements on screen 68, has been found to greatly assist the user in operating the computer system illustrated in Figure 1. It will be appreciated by one skilled in the art, that although the present invention's use of coach marks has been described with reference to the help system disclosed herein, that use of coach marks is not limited to the help system as provided in this Specification. It is anticipated that the coach marks as disclosed and described in this Specification have application to a variety of graphic user interface functions, and are not limited to use in a graphic help system.
Referring now to Figures 23 through 41, the present invention's methods and apparatus for generating and displaying coach marks will be described in more detail. Although the below discussion specifically describes coach mark generation using an Apple® graphic user interface, hardware, programming language, and supporting systems, it will be understood that the present invention may be applied to a variety of computer systems, including systems such as those manufactured and sold by IBM®. In addition, for purposes of this Specification, the entire help system as herein before described is known as the "Reno" system, and the visual cues and supporting computer programming is referred to as "Coach marks", and "Coach" or "Coach code", respectively. "Events" are referred to as "Apple events" to identify that they are Apple specific to the operating systems offered by Apple Computer, Inc. in this description. Throughout this specification, it will be noted that Apple® is a registered trademark of Apple Computer, Inc., of Cupertino, California.
Referring now to Figure 23, there is shown a conceptual diagram of the "coach's chalkboard" comprising the Coach computer code as it relates to the Reno help system modules. As shown, the coach code resides in modules known as "Coach's Chalkboard" and "Coach's Specific Resources". The Coach's Chalkboard includes routines such as initialization (See Figures 24 and 25), specific system patches, general purpose drawing routines and user interface element location finding routines.
For purposes of this Specification, the following terms are used with the described characteristics:
Screen Objects
The coach code can mark interface objects with graphics that appear to be "hand-drawn" on the display 40. The types of objects that are identifiable are generally the same objects on which the help manager is capable of displaying a Balloon in the operating system known as "Apple System 7". The coach code is similar to the Apple Balloon help of System 7 discussed in the background of the invention, in that it classifies the graphical objects on the screen in two ways, as either dynamic or static objects.
Static Object
A static object is an object that resides in a particular window and maintains a constant position within that window. A good example of a static object would be the
Control Panel's desktop pattern selector, shown circled in Figure 17. As described below, static objects are easily supported by the coach code with the addition of simple resources.
Dynamic Object
A dynamic object is an object that resides in a window, but can be created, moved, or deleted by the user. Files and folders within the Finder's windows are good examples of dynamic objects. In order for an application to allow Coach to support it's dynamic objects, an application programmer will have to add code to his application that identifies the current location of the dynamic object.
The main body of the Coach computer code resides in a system extension that is initialized on booting the program comprising the present invention (INIT) resource. The INTT code segment patches the OS routine "GetNextEvent" after some preliminary initialization. The GNE patch acts as Coach's Main Event loop, from which point, Coach receives and sends Apple events and initiates drawing sequences.
Additionally, Coach uses this patch to provide periodic time for animation and time out (erase) routines.
When Coach is attached to the GNE loop, it assumes the identify of the currently running application, and as such, it filters the event records before they are passed to the main application. Its primary function is to look for Coach- specific Apple events that are being sent to an application. When Coach receives such an Apple Event, it "removes it from the Event Queue" and processes the Apple Event directly. Usually the Apple Event will tell Coach to do something specific like "Circle the grow box". (See Figure 25) Because Coach relies heavily on Apple events, the application supporting Coach is compatible with the operating system, and support high-level events. Coach Apple events consist of a command identifier and data. For example, the command could be 'draw', and the data cold be the name of the user interface object that needs attention (i.e. "Shape").
When Coach receives a command like the one described above, it then proceeds to use resources to look up the location of the requested object to get it's location on the screen, then, identify the object in some predetermined way. If no resource is found that matches the requested object name, the application is then sent a request asking for the location of the object in question. Both the resource format of the naming resource, and the process with which messages are sent to applications are detailed below.
There are three different resources that assist the coach code to do its work. They are introduced in the following chart, then described in detail below:
Resource Purpose
'hBnd' Associates a name with an interface object, 'chlk' Describes chalk characteristics,
'chdv' Code resource that draws the Coach mark.
hBnd resource
Coach is designed to allow the application programmer to leverage on the work already done to support the Balloon Help resources of System 7 to identify objects. However, to simplify the application's messages to Coach, a new resource has also been defined, the TiBnd' (or help bundle) resource. Help bundle resources are used to give a definitive name to each important user interface feature (or object) within the application. That is to say, the xiBnd' resource "Bundles" a name with an object.
An application programmer adds one TiBnd' resource for each item in the application that has a 5 Balloon resource to describe it (either Tirct' or Tidlg'). hBnd example
Let us assume, for example, we are making TiBnd' resources for the following hdlg resource fragment:
10 resource Tidlg' (256, "Simple Dialog") { HelpMgrVersion, 0, hmDef aultOptions , 15 0,
0, {
/* Missing dialog items info*/ 20 / /** iitteemm CCaanncceell iinnffoc */ /* item 2:OK info*/
} };
The following chart illustrates the information 25 that is required in the TiBnd' resources for the Tidlg' resource:
Data Purpose
1 Current Balloon help version number 'hdlg' Type of resource to be bundled
256 Resource ID of bundled resource
"OK" Coach's name for first dialog item
"Cancel" Coach's name for second dialog item
10 Since there are two help items being described here ("OK", and "Cancel"), there are two separate TiBnd' resources. Each TiBnd' resource describes a single Balloon item in the application.
First, each TiBnd' resource contains a Balloon
15 help version number with which it is compatible. This number must match the version number included in the Balloon resources. In our example, we are assuming the number is 1.
Next, each TiBnd' resources indicates the
20 resource that it is bundling with, in this case, type Tidlg' with ID of 256.
Finally, the TiBnd' resources must declare the Coach name for each item listed in the Balloon resource (we call these items objects). In this case,
25 there are three objects listed in the Tidlg' resource. They correspond to "Missing Items", "Cancel item", and "OK item". This is where the actual name that is used to identify these objects is provided and known as the "bundle name". This name is not actually resident 5 in the 'hBnd' data structure, but rather, is the name of the TiBnd' resource itself. This name can be any string, up to 32 characters, that can uniquely identify the specified object. Each TiBnd' resource must have a unique name. This string is used by the "Help file"
10 author when indicating a screen object to be identified by Coach, then subsequently by Reno when sending messages to Coach. Note that there is no name assigned to "Missing Items" because Coach is not used to identify any missing items.
15 The following code fragment is the TiBnd' resources' complete Rez definition.
20
25
Figure imgf000044_0001
hAsk keyword
In addition to referencing the standard Balloon help resources, the TiBnd' resource supports a 5 keywords in the resource type field, that is TiAsk'.
This keyword, if used, tells Coach that no resource item exists for the named object and the object being named is a dynamic object and cannot be described by a Balloon resource. Objects of this type, when
10 referenced by Reno, cause Coach to query the application for the location of the object. The mechanism for mis communication between Coach and the application is described below. chlk resource
15 Another optional resource defined by Coach is the 'chlk' resource. This resource is used to set characteristics of the "chalk" to be used while drawing specific hieroglyphics, the 'chlk' resource defines the shape and style of the graphic to be drawn on the
20 screen.
The 'chlk' has a Rez definition as follows: type 'chlk' { integer; /* chdv ID - hiero 25 definition longint; /* chalk options (chdv spec) longint; /* chalk speed */ integer; /* cpct ID for Pict
Drawing Color integer; /* cpct ID for Pict Drawing
Black/White
} ; chdv resource
10 The final resource used by Coach is the 'chdv' resource. Like a 'wdef , this resource is the code segment that does specific drawing on the screen. This resource is a single entry point code segment that executes the drawing commands required to produce
15 the desire effect on the screen. The system of Figure 1 will automatically have access to a 'chdv' resource for circles, arrows, strike-out, and underlines. Application programmers may also add their own custom chalk-drawing definitions.
20 Resource location
The Coach resources will always reside in the same file as the existing Balloon resources. Although recommended that all help resources reside in the Reno help file, an application programmer will have the option of putting the Coach resources into the Reno help file or the application file itself.
In many instances, Coach is able to identify the location of the required object by using the Balloon 5 help resources in the application, or the person creating the help content or database may give Coach enough information to locate the object. When this happens, Coach has no need to communicate with the host application.
10 There are, however, instances when resource information is not sufficient, for instance, dynamic objects such as files and folders in the finder. In those cases where Coach is trying to identify a dynamic object, it will send a query to the application. This
15 query contains a name for the item whose location is requested, as well as any other specific information required for the application to positively identify the item in question. The query tells the application to locate the item (make it visible if necessary) and return
20 a global rectangle identifying its location.
The queries that Coach sends to the application are in the form of Apple events. Apple events are identified by a unique pair of long words in the form of eventClass and eventlD. Additionally, when an application responds to a Coach Apple event, it must use Apple events as the response mechanism.
In general, there are two classes of Apple events required by Coach. They are:
EventClass Meaning
'CCAp' Coach is sending a message to an application
'ApCC An application is sending a message to Coach
10
These classes, in conjunction with their corresponding eventlD values, uniquely identify a command or response between Coach and any application (including "CurrentAPP", "Reno", and
15 "Authoring Tool"). The class defines the direction of the message and the eventlD field indicates the type of message that is being sent. Additionally, for certain commands, more information is required to complete the desired function, in which case, a key and data are
20 passed along with the command.
Currently, there are eight Apple events defined for the operation of Coach. Unless otherwise noted, all additional data fields are TEXT fields. NIL style name indicates default. Object name of NIL will
25 assume last indexed object. RenoTheApp Apple events
These are Apple events sent from RenoTheApp to Coach.
erse Erase recently drawn
'ndex' Index to next known object
Object number 'iNum' - The index
10 number of Balloon resource to be marked (Optional)
Style name 'sNam' - The marking
15 style to be used (Optional)
SubRect 'iRct' - (Rect) A sub- rectangle within the item to be marked (Optional)
20
'mLoc' Mark location
DITL Object number 'iNum' - The
25 index number of dialog item to be marked (Optional, otherwise subRect is used as the enclosing rectangle to draw in)
30 Window name "wNam' - The name of the window to draw on. Special strings include
"_FRONTWINDOW_" for the front most window, and
35 "_DESKWINDOW_" is for the desktop window. Style name 'sNam' - The marking style to be used (Optional)
SubRect 'iRct* - (Rect or TEXT) A 5 sub-rectangle within the window or item to be marked (Optional if object number is given). If the right coordinate of the specified rectangle is <= the left coordinate,
10 it is implied that the right coordinate will be set to the right edge of the item or window being marked on. Likewise, if the bottom coordinate of the specified rectangle
15 is <= the top coordinate, it is implied that the bottom coordinate will be set to the bottom edge of he item or window being marked on. To specify a text rectangle, the first
20 four bytes of the passed rectangle must be 'rct=\ followed by the coordinates of the rect delimited by commas or spaces (order must be top, left, bottom, right).
25
Origin constant OCon' - The origin of the rectangle. The specified rectangle will be considered relative from this location. The following
30 constants are defined in
Chdvlnterface.h to support this command:
ORIGIN_TOP_LEFT 35 0
ORIGIN.BOTTOM 1
ORIGIN_TOP_RIGHT 2 ORIGIN_BOTTOM_RIGHT 3
Location Macro 'IMac' - Identify 5 an object that has a pre-defined location macro for it. This is the functional equivalent to calling TnLoc' with multiple parameters (iRct, oCon, wNam), but the
10 parameters have been preset by a resource within the Coach extension. The macro must be specified by name and if non¬ existent, an error will be returned.
15 This parameter takes precedent over the oCon and iRct parameters, however, the target window can be overridden by specifying an alternate window with the wNam
20 parameter. The following macros are included in Coach:
GrowBox (the growbox of the front window) 25 ZoomBox (the zoombox of the front window)
CloseBox (the closebox of the front window)
TitleBar (the titlebar of the 30 front window)
BootDisk (the boot disk icon on the desktop)
'mMrk' Mark Menu
35
Menu Name 'mNam' - The Menu Name to be marked
- or -
40 Menu Number 'mNum' - The menu number index (0 is apple menu, 1 is file menu, etc.)
5 Mark style 'sNam' - The making style to be used (Optional)
The following is optional, used only when a specific menu item needs to 10 be marked via color or style -
Item Name 'iNam' - The Item name to be marked
15 - or -
Item Number 'iNum' - The Item Number to be marked within the menu specified above
20
Menu item color 'mCol' - Temporarily set the specified Menu Item (as specified using the above options) to the requested color.
25 Valid colors are:
1 = Black
2 = Yellow
3 = Magenta 30 4 = Red
5 = Cyan
6 = Green
7 = Blue
8 = White
35
Menu item style 'mFac' - Temporarily set the specified Menu Item (as specified using the above options) to the requested style. Valid styles are any combination of the following:
1 = bold 5 2 = italic
4 = underline 8 = outline 16 = shadow 32 = condense 10 64 = extend
Taboo rectangle 'tBoo' - A rectangle that is not to be drawn on (could be Reno's portRect, global 15 coordinates)
'draw' Identify named object
Style name 'sNam' - The marking 20 style to be used (Optional)
Object name 'o'Nam' - The name of the item to be marked. This name will have been set by the author.
25
Taboo rectangle 'tBoo' - A rectangle that is not to be drawn on (could be Reno's portRect, global coordinates)
30
Coach and application Apple events
These are Apple events sent between Coach and the target application. Since Coach is a part of the 35 target application's event stream, they are sending events to themselves in order to communicate.
'ware' Location query Object name o'Nam' - the name of the item to be marked, this name will have been set by they author.
'wRsp' Location query response
Object Rect 'iRct' - (Rect) Requested object's location. This is a response to the 'ware' event.
Authoring tool Apple events
These are Apple events sent from the authoring tool to Coach.
'name' Rename recently drawn
New Item Name 'iNam' - The new name of the object
Old Item Name ONam' - The old name of the object. (Optional, otherwise last item drawn is assumed)
Referring now to Figure 25, Coach's GNE patch generates, sends, and receives Apple events to the current application to get rectangle information for a named object. The Apple events are sent via AESend by both Coach and the application. As the Apple events come in, they are filtered by the GNE patch. While events destined for Coach are captured and are not passed through to the application, events sent from Coach to the application are allowed to pass through. When Coach receives an Apple event from an application, it is treated as a command. Coach will carry out the command (usually marking some user-interface object), and program flow will continue as normal. Result codes are returned by all Apple Event Handlers.
Because Coach is hooked into the GetNextEvent loop, it is guaranteed to get time with each application (it becomes an integral part of every running application). Applications and Coach communicate to each other by sending Apple events (with a destination set to kCurrentProcess). As far as the OS is concerned, the application is just sending application events just to itself, however, in the future, this mechanism may be expanded to allow help messages to be passed from machine to machine.
In order to receive coach events (item location query event), an apphcation must install an Apple Event Handler for event type "CCAp', and ID of 'ware'. When an apphcation gets a Coach message, it must be processed and responded to within the event handler. The response is installed into the response event record passed into the handler function. Any error condition should be reported by the application in the handler result code. Any non¬ zero result passed back by the Coach Event Handler will cause Coach to not draw any mark. Interface between Reno and Coach
The Reno help program communicates to the coach code through the same mechanism as a target application. That is to say, Reno sends and receives messages to Coach by way of Apple events sent to the target apphcation.
For example, Reno sends the 'draw' command to tell Coach to identify the named object. The data field of the command contains the name of the object. The name is used by Coach to look up the Tibnd' resource from which it gets the hot rectangle to identify. When the rectangle is found and marked, Coach responds to Reno with a result code indicating any error for the operation. Coach responds only after it has drawn the graphics. If, however, there is an error, Coach responds immediately, providing the error code to the calling application.
Referring now to Figures 24 through 37, the programming steps, decisions and operations of the present invention are illustrated in flow chart form. It will be noted that each decision block and operation of the present invention has been provided with a reference number, for the convenience of the reader and reference. However, for brevity, each of the individual steps are not described in detail, since the function and operation of the present invention will be apparent from the figures and the written description herein.
Figure 24 is a flow chart illustrating the initialization of the coach code on start up of the computer system illustrated in Figure 1. As shown in Figure 25, during the initialization process of the Coach's Chalkboard code (see Figure 23) a patch is installed on the operating system (OS) Trap "GetNextEvent". The purpose of this patch is to allow capturing of any Apple events that are intended for receipt of the Coach's Chalkboard code. As shown in Figure 25, Apple events intended for Coach's Chalkboard are intercepted and sent to one of the coach's Apple Event Handlers (see Figure 28). The flowchart of Figure 25 illustrates Coach's Chalkboard code's asynchronous processing.
Figure 26 illustrates a flowchart of the operation of Coach's Chalkboard for bit depth independent drawing. The steps shown in Figure 26 provide necessary functionality for the Reno program to draw into overlapping monitors (for example, display 40 of Figure 1) of different bit depth. The code described in Figure 26 results in an off screen pixmap to be plotted into a location described by parameters provided by a 'chdv' routine (see for example Figures 35 - 37). The mathematics of the "chdv" routine calculates a pen path on which multiple pixmaps are to be plotted. Figure 27 is a flow chart of the asynchronous drawing processing routine. The generation of a coach mark involves rendering complex drawings on the display, and large amounts of memory, therefore, all drawing (and much of the pre-drawing- processing) must be done at "safe time" (or, non-interrupt time). Through the GNE patch (described in the Async processing flowchart of Figure 25), this function is called upon to determine if there are any coach marks to be drawn and, if so, to draw them.
Figure 28 illustrates Apple Event Handler processing. During initialization, Coach's Chalkboard functions. All of coach's Apple events are of type 'ApCC. When Coach intercepts such an event (from the GNE patch) it executes an Apple Event Handler, one of which being the code described by the flowchart of Figure 28.
The Reno application can send a 'draw' Apple Event to Coach's Chalkboard. The purpose of this event is to tell Coach to identify a user interface feature for the user with a mark known as coach mark. When Coach intercepts such an event (from the GNE patch), it executes the code described by the flowchart of Figure 28. The user interface feature to be identified (by circling, underline, etc.) is identified by name (a parameter in the Apple Event) -the name corresponds to the name of a help bundle resource - that resource helps Coach find the user interface feature. Another parameter in this Apple Event is the chalk name, this parameter identifies, by name, the resource that identifies the parameter that Coach will use to draw the Coach mark. The final parameter to this Apple Event is the TabooRect - this rectangle specifies an area on the screen (in global coordinates) that should be drawn on with reduced intensity, it is typically used to identify the rectangle covered with Reno windows, such that all drawing over Reno windows look noticeably different from drawing over any other windows on the display.
Referring now to Figure 29, the Apple Event Handler for erasing a coach mark is shown. As previously discussed, during initialization, Coach's Chalkboard installs a suite of Apple Event Handlers. These handlers add functionality to Reno to enable all of Coach's Chalkboard functions. All of Coach's Apple events are of type 'ApCC. When Coach intercepts such an event (from the GNE patch), it executes a Apple Event Handler, one of which being the code described by this flowchart. Reno can send a 'erse' Apple Event to Coach's Chalkboard. The purpose of this event is to tell Coach to erase a previously drawn Coach mark. Figure 30 is a flowchart illustrating the coach mark rename routine for supporting a "name" Apple Event. The purpose of the "name" Event is to rename a help bundle resource associated with the named coach mark. Figure 31 is a flowchart illustrating the present invention's index "ndex" Apple event. The purpose of the "ndex" event is to request the coach code to identify the next known (by using Balloon help) user interface item. This command is normally used in conjunction with "name" to create help bundles for user interface items. Figure 32 is a flowchart of the "mloc" routine to request Coach to mark a specific location on display 40, regardless of whether the location has a Help bundle resource associated with it. Figure 33 is a flowchart illustrating the "mmrk" Apple event to request that the coach code to mark a specific menu on the display screen 68 of Figure 1.
Referring now to Figure 34, a flowchart is illustrated which the present invention's Coach code utilizes to draw an underline Coach mark, as shown in Figures 20 and 38(a) - 38(d). As previously described, the "chdv" code modules are the mathematics routines that allow the present invention's Coach's Chalkboard program to draw pseudo-geometric shapes on the screen, the shapes are intentionally distorted to give the effect of imprecise human drawing. The shapes are all drawn by repeatedly plotting a color Macintosh® picture over and over again with substantial overlap in a specified direction. The body of code described in this flowchart simply calculates the locations to plot the Macintosh® pictures and repeatedly calls a centralized routine to do the actual drawing. As illustrated in Figures 34 and 38, the underline Coach maik is drawn by first setting the start and end points to the lower left and lower right of the screen item to be underlined. Starting and ending vectors are then calculated (See flowchart of Figure 35, step 740). CPU 52, under the direction of the Coach code, begins plotting pen pictures from the start point, then adjusts the location of the next pen picture to overlap the last plotted pen picture in accordance with the vector. The vector value (Figure 35) is adjusted with each iteration while approaching the end point. As shown in Figure 38(d), CPU 52 continues plotting and incrementing until the pen point is just outside the item rectangle.
Referring now to Figure 36, a flowchart illustrated which describes the steps that the present invention utilizes to draw a circle Coach mark, as shown in Figures 16, 17, 18 and 40. As previously described, the "chdv" code modules are the mathematics routines that allow the present invention's Coach's Chalkboard program to draw pseudo-geometric shapes on the screen. The shapes are intentionally distorted to give the effect of imprecise human drawing. The shapes are all drawn by repeatedly plotting a color Macintosh® picture over and over again with substantial overlap in a specified direction. The body of code described in this flowchart calculates the locations to plot the Macintosh® pictures and repeatedly calls a centralized routine to do the actual drawing. As illustrated in Figures 40(a) - 40(f), the circle Coach mark is first drawn by calculating the axis' for the ellipse "a" and "b" (See Figure 40(a)). The CPU 52 begins to draw in quadrants of the ellipse. For the first quadrant, the "b" axis is artificially extended by the height of the pen point's rectangle, and a start point is calculated at the top of the ellipse. The CPU 52 then begins to render and plot pen pictures from the start point, and recalculate the ellipse at each point (See Figure 40(c)). As shown, the CPU 52 continues plotting and recalculating until the first quadrant has been plotted (Figure 40(d)). The CPU 52 then resizes the "b" axis to the original length and continues to plot the original length and continues to plot the second, third and fourth quadrants (See Figure 40(f)). In the presently preferred embodiment, the equation used for the ellipse calculation is:
x=+-a*SQRT(l-((Y**2)/(B**2)))
Referring now to Figures 37(a) and 37(b), a flowchart is illustrated which describes the steps utilized by the present invention to draw and arrow Coach mark, shown in Figures 21, 22 and 41. As disclosed in the flowcharts, and shown in Figure 41(a), the arrow is drawn by the CPU 52 first setting the start point and end point of the arrow. As illustrated in Figure 41(b), points on the item rectangle are identified by locations one through eight. The CPU 52 then calculates the starting and ending vectors (See Figure 37(a), Step 822), and the change in slope using "imperfect math" (See Figure 37(a) , Steps 826 and 828). CPU 52 then begins to plot pen pictures from the start point, and adjusts the next location by vector. In addition, the vector value is adjusted at each plot iteration while approaching the endpoint (See Figure 41(d)).
As shown in Figure 41(e)), CPU 52 continues plotting and incrementing until the pen point is plotted just outside the item rectangle. The arrowhead is then rendered by calculating a vector for the first line of the arrowhead (Figure 41(f)). CPU 52 then plots the pen picture along the vector until the maximum arrowhead length is reached. Another vector is calculated for the second half of the arrowhead and plotted as shown in Figures 41(g) and 41(h).
Referring now to Figures 35 and 39, the method of the present invention is described for drawing an "x" Coach mark, shown in Figure 19. As illustrated in Figure 39(a), CPU 52 selects start and end points by randomly adjusting the position of the points up to 10 percent outside of the corners of the item rectangle (See Figure 35, step 732). The starting and ending vectors are calculated (See Figure 35, step 740) as well as the change in slope per iteration (See Figure 39(b)). CPU 52 then begins plotting pen picture, beginning from the start point, then adjusting the location of the next plot by vector. In addition, the vector itself adjusted at each iteration while approaching the end point. The pen points continue to be plotted and incremented until the pen plot is just outside the item rectangle (See Figure 39(d)). As shown in Figure 39(e), opposite start and end points are defined for the opposing side of the "x" Coach mark, and the process is repeated to complete the mark.
While the present invention has been described with reference to Figures 1 through 41, it will be appreciated that the figures are for illustration only, and do not limit the spirit and scope of the invention. For example, although the figures have, by necessity, used example windows having certain attributes, icons and/or functions, it will be appreciated that the invention is not limited by the specific examples provided. Rather, the present invention has application in any window-based graphic user interface display system. In addition, it will be noted that the present invention may be realized using a variety of computer programming languages and hardware, and is not limited to any particular hardware or software.
Moreover, it will be appreciated that certain features and aspects of the present invention, such as the present invention's use of visual cue coach marks, are not static events and are perceived by the user as having motion. Due to the limitations of a written specification, the reader is referred to a video tape entitled "Reno Macintosh Help", and a software program under the same name, submitted by the applicant concurrent with the filing of the application on which this patent is based.

Claims

1. In a computer display system having a central processing unit (CPU) coupled to a display, a method for providing visual cues to a user of said display system, comprising the steps of:
generating and displaying a user interface on said display using user interface generation means coupled to said CPU, said user interface including a plurality of objects;
generating coach marks using coach mark generation means coupled to said user interface generation means, said coach marks comprising at least one geometric shape;
displaying said coach marks on said display to visually identify at least one of said objects on said display to said user.
2. The method as defined by Claim 1 wherein said coach marks are displayed in response to a first signal provided by said user to said CPU.
3. The method as defined by Claim 2 wherein said user interface generation means further generates and displays windows on said display in which data and objects are displayed.
4. The method as defined by Claim 3 -wherein said coach marks identify objects within said windows to said user.
5. The method as defined by Claim 3 wherein said first signal comprises a help inquiry inputted by said user to said CPU.
6. The method as defined by Claim 1 wherein at least one of said coach marks is generally in the shape of a circle which encircles an object to be identified to said user.
7. The method as defined by Claim 1 wherein at least one of said coach marks is generally in the shape of an arrow including an arrow head and a shaft, said arrow head pointing toward and identifying an object on said display.
8. The method as defined by Claim 1 wherein at least one of said coach marks is generally in the shape of an X identifying the location of an object on said display.
9. The method as defined by Claim 8 wherein said X identifies a location on said display where said user is to input data.
10. The method as defined by Claim 1 wherein said coach mark is generally in the shape of a horizontal line.
11. The method as defined by Claim 1 wherein said coach marks are displayed in color.
12. The method as defined by Claim 11 wherein said color is translucent.
13. The method as defined by Claim 1 wherein said coach marks are rendered on said display at a rate slower than other objects are displayed by said CPU, such that said marks appear rendered in animation.
14. The method as defined by Claim 10 wherein the step of generating said Coach mark generally in the shape of a horizontal line comprises the steps by said CPU of:
defining an item rectangle to be highlighted with said underline Coach mark;
defining a start and an end point;
calculating start and ending vectors, and a change of slope value for each iteration of a pen point picture; plotting said pen point picture from said start point to said end point, such that the location of each successive pen point picture is a function of said vectors and said slope.
15. The method as defined by Claim 14 wherein said calculating step calculates a starting slope, ending slope and change of slope value for each iteration in accordance with the following:
start slope = -0.1 end slope = 0.1 delta slope = (end slope - start slope)/# iterations current slope = start slope
16. The method as defined by Claim 8 wherein the step of generating said Coach mark generally in the shape of an X comprises the steps by said CPU of:
defining an item rectangle to be highlighted with said X Coach mark;
defining an initial start and an initial end point for a first leg of said X, said CPU randomly adjusting said initial start and said initial end points such that said actual start and end points are disposed outside said item rectangle; calculating first start and first ending vectors, and a first change of slope value for each iteration of a pen point picture;
plotting said pen picture from said actual start point to said actual end point, such that the location of each successive pen point plot is a function of said first start and first ending vectors, said vectors being adjusted on each iteration as said pen point is plotted approaching said endpoint;
said CPU continuing to plot said pen point until said actual endpoint is reached.
17. The method as defined by Claim 16 further including the steps of:
defining initial second start and endpoints for a second leg of said X, said CPU randomly adjusting said initial second start and said initial second endpoints such that said actual second start and actual second endpoints are disposed outside said item rectangle;
calculating second start and second ending vectors, and a second change of slope value for each iteration of said pen point picture; said CPU plotting said pen picture from said actual second start point to said actual endpoint, such that the location of each successive pen point plot is a function of said second start and second ending vectors, said second start and ending vectors being adjusted on each iteration as said pen point is plotted approaching said endpoint;
said CPU continuing to plot said pen point until said actual second endpoint is reached.
18. The method as defined by Claims 16 or 17 wherein said calculating step calculates a starting slope, ending slope and change of slope value for each iteration in accordance with the following:
start slope = (delta Y/delta X)/2 end slope = (delta Y/delta X)*2 delta slope = (end slope - start slope)/# iterations current slope = start slope
19. The method as defined by Claim 6 wherein the step of generating said Coach mark generally in the shape of a circle comprises the following steps by said CPU of :
defining an item rectangle having four quadrants to be highlighted with said circle Coach mark; defining an original minor axis "b" and a major axis "a" from the center point of said item rectangle;
extending said original "b" axis such that it extends beyond said item rectangle in said first quadrant, said extended position defining a start point;
calculating an elliptical function beginning from said start point and plotting a pen point picture in accordance with said elliptical function to a first quadrant end point, such that the location of each successive pen point plot is a function of said elliptical function;
resizing said "b" axis to said original length and recalculating said elliptical function from said first quadrant endpoint and plotting said pen point picture in accordance with said elliptical function through said second, third and fourth quadrants.
20. The method as defined by Claim 7 wherein the step of generating said Coach mark generally in the shape of an arrow comprises the steps by said CPU of:
defining an item rectangle to be highlighted with said arrow Coach mark; defining a start and an end point;
calculating start and end vectors and a change in slope value for each iteration of a pen point picture;
plotting said pen point picture from said start point to said end point, such that the location of each successive pen point picture plot is a function of said vectors and said slope;
calculating a first arrowhead vector and plotting said pen point picture, until a maximum first arrowhead length is reached;
calculating a second arrowhead vector and plotting said pen point picture until a maximum second arrowhead length is reached.
21. A computer display system having a central processing unit (CPU) coupled to a display, comprising:
user interface generation means coupled to said CPU, for generating and displaying a user interface on said display including a plurality of objects; coach mark generation means coupled to said user interface generation means for generating coach marks, said coach marks approximating geometric shapes;
said coach marks displayed on said display such that objects on said display are visually identified to said user by said coach marks.
22. The display system as defined by Claim 21 wherein said coach marks are displayed in response to a first signal provided by said user to said CPU.
23. The display system as defined by Claim 22 wherein said user interface generation means further generates and displays windows on said display in which data and objects are displayed.
24. The display system as defined by Claim 23 wherein said coach marks identify objects within said windows to said user.
25. The display system as defined by Claim 23 wherein said first signal comprises a help inquiry inputted by said user to said CPU.
26. The display system as defined by Claim 21 wherein at least one of said coach marks is generally in the shape of a circle which encircles an object to be identified to a user.
27. The display system as defined by Claim 21 wherein at least one of said coach marks is generally in the shape of an arrow including an arrow head and a shaft, said arrow head pointing toward and identifying an object on said display.
28. The display system as defined by Claim 21 wherein at least one of said coach marks is generally in the shape of an X identifying the location of an object on said display.
29. The display system as defined by Claim 28 wherein said X identifies a location on said display where said user is to input data.
30. The display system as defined by Claim 21 wherein said coach mark is generally in the shape of a horizontal line.
31. The display system as defined by Claim 21 wherein said coach marks are displayed in color.
32. The display system as defined by Claim 31 wherein said color is translucent.
33. The display system as defined by Claim 21 wherein said coach marks are rendered on said display at a rate slower than other objects are displayed by said CPU, such that said marks appear to be rendered in animation.
34. The display system as defined by Claim 30 wherein said Coach mark generation means for generating a Coach mark generally in the shape of a horizontal line comprises:
rectangle defining means coupled to said CPU for defining an item rectangle to be highlighted with said horizontal line Coach mark;
calculating means coupled to said CPU for defining a start and an end point, calculating start and ending vectors and a change of slope value for each iteration plot of a pen point picture;
rendering means coupled to said CPU for plotting said pen point picture from said start point to said end point, such that the location of each successive pen point picture plot is a function of said vectors and said slope.
35. The display system as defined by Claim 34 wherein said calculating means calculates a starting slope, ending slope and change of slope value for each iteration in accordance with the following: start slope = -0.1 end slope = 0.1 delta slope = (end slope - start slope)/# iterations current slope = start slope
36. The display system as defined by Claim 21 wherein said Coach mark generation means for generating a Coach maik generally in the shape of an X comprises:
rectangle defining means coupled to said CPU for defining an item rectangle to be highlighted with said X Coach mark;
calculating means coupled to said CPU for defining an initial start and an initial end point for a first leg of said X, and randomly adjusting said initial start and said initial end points disposed outside said item rectangle; said calculating means calculating first start and first ending vectors, and a first change of slope value for each iteration of a pen point picture;
rendering means coupled to said CPU for plotting said pen picture from said actual start point to said actual end point, such that the location of each successive pen point plot is a function of said first start and ending vectors, said vectors being adjusted on each iteration as said pen point is plotted approaching said end point, said rendering means continuing to plot said pen point until said actual end point is reached.
37. The display system as defmed by Claim 36 wherein:
said calculating means further defining initial second start and end points for a second leg of said X, and randomly adjusting said initial second start and said initial second end points such that said actual second start and actual second end points are disposed outside said item rectangle;
said calculating means calculating second start and second ending vectors, and a second change of slope value for each iteration of said pen point picture;
said rendering means plotting said pen picture from said actual second start point to said actual end point, such that the location of each successive pen point plot is a function of said second start and second ending vectors, said second start and ending vectors being adjusted on each iteration as said pen point is plotted approaching said end point, said rendering means continuing to plot said pen point until said actual second end point is reached.
38. The method as defined by Claims 36 or 37 wherein said calculating means calculates a starting slope, ending slope and change of slope value for each iteration in accordance with the following:
start slope = (delta Y/delta X)/2 end slope = (delta Y/delta X)*2 delta slope = (end slope - start slope)/# iterations current slope = start slope
39. The method as defined by Claim 26 wherein said Coach mark generation means for generating said Coach mark generally in the shape of a circle comprises:
rectangle defining means coupled to said CPU for defining an item rectangle having four quadrants to be highlighted with said circle Coach mark; and for defining an original minor axis "b" and a major axis "a" from the center point of said item rectangle;
calculating means coupled to said CPU for extending said original b axis such that it extends beyond said item rectangle in said first quadrant, said extended position defining a start point; and for calculating an elliptical function beginning from said start point and; rendering means coupled to said CPU for plotting a pen point picture in accordance with said elliptical function to a first quadrant end point, such that the location of each successive pen point plot is a function of said elliptical function;
said rendering means resizing said "b" axis to said original length and recalculating said elliptical function from said first quadrant end point and plotting said pen point picture in accordance with said elliptical function through said second, third and fourth quadrants.
40. The display system as defined by Claim 27 wherein said coach mark generation means for generating said Coach mark generally in the shape of an arrow comprises:
rectangle defining means for defining an item rectangle to be highhghted with said arrow Coach mark; and defining a start and an end point of said arrow Coach mark;
calculating means coupled to said CPU for calculating start and end vectors and a change in slope value for each iteration of a pen point picture; rendering means coupled to said CPU for plotting said pen point picture from said start point to said end point, such that the location of each successive pen point picture plot is a function of said vectors and said slope;
said calculating means calculating a first arrowhead vector, and said rendering means plotting said pen point picture, until a maximum first arrowhead length is reached;
said calculating means calculating a second arrowhead vector and said rendering means plotting said pen point picture until a maximum second arrowhead length is reached.
PCT/US1994/000912 1993-01-27 1994-01-25 Method and apparatus for generating and displaying visual cues on a graphic user interface WO1994017468A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU62322/94A AU6232294A (en) 1993-01-27 1994-01-25 Method and apparatus for generating and displaying visual cues on a graphic user interface

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/010,062 US5488685A (en) 1993-01-27 1993-01-27 Method and apparatus for providing visual cues in a graphic user interface
US08/010,062 1993-01-27
US5636793A 1993-04-30 1993-04-30
US08/056,367 1993-04-30

Publications (1)

Publication Number Publication Date
WO1994017468A1 true WO1994017468A1 (en) 1994-08-04

Family

ID=26680717

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1994/000912 WO1994017468A1 (en) 1993-01-27 1994-01-25 Method and apparatus for generating and displaying visual cues on a graphic user interface

Country Status (2)

Country Link
AU (1) AU6232294A (en)
WO (1) WO1994017468A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366697B1 (en) 1993-10-06 2002-04-02 Xerox Corporation Rotationally desensitized unistroke handwriting recognition
US6567549B1 (en) 1996-12-05 2003-05-20 Palmsource Inc. Method and apparatus for immediate response handwriting recognition system that handles multiple character sets
WO2018039010A1 (en) * 2016-08-25 2018-03-01 Microsoft Technology Licensing, Llc Platform support for user education elements

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Macintosh Reference System 7", 1991, APPLE COMPUTER *
"NON-VERBAL ANIMATED HELP SCREEN FUNCTION", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 34, no. 8, January 1992 (1992-01-01), NEW YORK US, pages 208 - 209, XP000302094 *
"OS/2: CONTEXTUAL ANIMATED-OPEN WINDOW CONTROL", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 34, no. 11, April 1992 (1992-04-01), NEW YORK US, pages 68 - 69, XP000303187 *
"PRESENTING MESSAGES ON AN OBJECT THAT IS NOT CURRENTLY BEING WORKED ON", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 35, no. 6, November 1992 (1992-11-01), NEW YORK US, pages 99 - 101, XP000314078 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366697B1 (en) 1993-10-06 2002-04-02 Xerox Corporation Rotationally desensitized unistroke handwriting recognition
US6816859B2 (en) 1993-10-06 2004-11-09 Xerox Corporation Rotationally desensitized unistroke handwriting recognition
US6567549B1 (en) 1996-12-05 2003-05-20 Palmsource Inc. Method and apparatus for immediate response handwriting recognition system that handles multiple character sets
WO2018039010A1 (en) * 2016-08-25 2018-03-01 Microsoft Technology Licensing, Llc Platform support for user education elements

Also Published As

Publication number Publication date
AU6232294A (en) 1994-08-15

Similar Documents

Publication Publication Date Title
US5550967A (en) Method and apparatus for generating and displaying visual cues on a graphic user interface
US6320602B1 (en) Region layout in a view on a graphical display screen
US5600779A (en) Method and apparatus for providing visual cues in a graphic user interface
US5825355A (en) Method and apparatus for providing a help based window system using multiple access methods
US5469540A (en) Method and apparatus for generating and displaying multiple simultaneously-active windows
US6262728B1 (en) System and method for annotating a graphical user interface display in a computer-based system
US5859638A (en) Method and apparatus for displaying and scrolling data in a window-based graphic user interface
US6330007B1 (en) Graphical user interface (GUI) prototyping and specification tool
US5450538A (en) Graphical user interface control for expansion and re-sizing of data fields in forms
US5991534A (en) Method and apparatus for editing a software component
US5157768A (en) Method and apparatus for displaying context sensitive help information on a display
US5155806A (en) Method and apparatus for displaying context sensitive help information on a display
US5140677A (en) Computer user interface with window title bar mini-icons
US5546525A (en) Computer user interface with multimode selection of displayed controls
US5467448A (en) Text formatting by the direct selection of borders in an editing display
US6201539B1 (en) Method and system for customizing a data processing system graphical user interface
US5708764A (en) Hotlinks between an annotation window and graphics window for interactive 3D graphics
US6836878B1 (en) Visual programming from a tree structure
US20030090473A1 (en) Multiple screen automatic programming interface
US5982365A (en) System and methods for interactively generating and testing help systems
JPS6162170A (en) Compound document editing
JPH11327763A (en) Signal providing method of computer system
JPH04344928A (en) Method and apparatus for graphically associating user-dialogue display with main application in data processing system
EP0697647A1 (en) Multimedia digital foil presentation system
US5802334A (en) Method for displaying object oriented class information and content information

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AT AU BB BG BR BY CA CH CN CZ DE DK ES FI GB HU JP KP KR KZ LK LU LV MG MN MW NL NO NZ PL PT RO RU SD SE SK UA UZ VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA