WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Realtime communication of hand drawn images in a multiprogramming window environment    
United States Patent5309555   
Link to this pagehttp://www.wikipatents.com/5309555.html
Inventor(s)Akins; Anthony S. (Pearland, TX); Lee; Peter A. (Houston, TX); Seaburg; Gunnar P. (Friendswood, TX); Arbeitman; Gordon W. (Potomac, MD)
AbstractAn advanced user interface operates in an integrated operating environment which supports realtime handwriting, graphical and image data. The integrated operating environment is capable of running several application programs on a standard stand-alone processor, such as a personal computer, each in its own display window. A communication window is established in a first window. Image data is imported into it from a second window. And freehand drawing data is added to the first window. The contents of the first window can then be sent to a second processor. In this manner, hand drawn images can be combined with other image data and communicated over a network.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5309555
Realtime communication of hand drawn images in a multiprogramming window

     environment - US Patent 5309555 Drawing
Realtime communication of hand drawn images in a multiprogramming window environment
Inventor     Akins; Anthony S. (Pearland, TX); Lee; Peter A. (Houston, TX); Seaburg; Gunnar P. (Friendswood, TX); Arbeitman; Gordon W. (Potomac, MD)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     May 3, 1994
Application Number     07/882,997
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 14, 1992
US Classification     715/756 715/759 715/781
Int'l Classification     G06F 015/62
Examiner     Zimmerman; Mark K.
Assistant Examiner     Jankus; Almis
Attorney/Law Firm     Hoel; John E. LaBaw; Jeffrey S. ,
Address
Parent Case     This application is continuation of U.S. Ser. No. 07/524,770 filed May 15, 1990, now abandoned.
Priority Data    
USPTO Field of Search     340/706 340/707 340/708 340/709 340/710 340/711 340/712 340/713 340/714 340/715 340/716 340/717 340/718 340/719 340/720 340/721 395/153 395/155 395/156 395/157 395/158 395/155 395/156 395/157 395/158 345/119
Patent Tags     realtime communication hand drawn images multiprogramming window environment
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5119319
Tanenbaum
709/205
Jun,1992

[0 after 0 votes]
4977520
McGaughey, III
715/753
Dec,1990

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A first data processing system for transmission and reception of realtime freehand drawing to and from a second data processing system, each system having a processor coupled to a memory, a display and an input device, each of said system having an operating system which runs a plurality of application programs each displayed in a respective one of a plurality of windows on the display, the first data processing system comprising:

means for presenting a first set of points in a first window on the display in said first data processing system, the first set of points representing freehand drawing generated by the input device at the first data processing system;

means for sending the first set of points to the second data processing system;

means for receiving and presenting a second set of points in the first window, the second set of points representing freehand drawing generated at the second data processing system;

means for presenting a first set of image data from a first image handling application in a second window in said first data processing window;

means for importing said first image data from said second window to said first window;

said sending means, sending said first image data to said second data processing system from said first window;

wherein the input device is a touch sensitive overlay disposed over the viewing surface of a display which generates the first set of points as the overlay is contacted on a surface facing opposite to the viewing surface of the display.

2. A first data processing system for transmission and reception of realtime freehand drawings to and from a second data processing system, each system having a processor coupled to a memory, a display and an input device, each of said system having an operating system which runs a plurality of application programs each displayed in a respective one of a plurality of windows on the display, the first data processing system comprising:

means for presenting a first set of points in a first window on the display in said first data processing system, the first set of points representing freehand drawing generated by the input device at the first data processing system;

means for sending the first set of points to the second data processing system;

means for receiving and presenting a second set of points in the first window, the second set of points representing freehand drawing generated at the second data processing system;

means for presenting a first set of image data from a first image handling application in a second window in said first data processing system;

means for importing said first image data from said second window to said first window;

said sending means, sending said first image data to said second data processing system from said first window;

wherein the means for importing and presenting image data is a screen capture module which can capture image data from the first image handling application even if the first image handling application cannot interact with a utility of the operating system which transfers data between applications.

3. A first data processing system for transmission and reception of realtime freehand drawing to and from a second data processing system, each system having a processor coupled to a memory, a display and an input device, each of said system having an operating system which runs a plurality of application programs each displayed in a respective one of a plurality of windows on the display, the first data processing system comprising:

means for presenting a first set of points in a first window on the display in said first data processing system, the first set of points representing freehand drawing generated by the input device at the first data processing system;

means for sending the first set of points to the second data processing system;

means for receiving and presenting a second set of points in the first window, the second set of points representing freehand drawing generated at the second data processing system;

means for presenting a first set of image data from a first image handling application in a second window in said first data processing system;

means for importing said first image data from said second window to said first window;

said sending means, sending said first image data to said second data processing system from said first window;

means for presenting a second window on the display the second window presenting an overall image which is larger than and includes the image presented in the first window and a rectangle indicating which portion of the overall image is presented in the first window.

4. A first data processing system for transmission and reception of realtime freehand drawing to and from a second data processing system, each system having a processor coupled to a memory, a display and an input device, each of said system having an operating system which runs a plurality of application programs each displayed in a respective one of a plurality of windows on the display, the first data processing system comprising:

means for presenting a first set of points in a first window on the display in said first data processing system, the first set of points representing freehand drawing generated by the input device at the first data processing system;

means for sending the first set of points to the second data processing system;

means for receiving and presenting a second set of points in the first window, the second set of points representing freehand drawing generated at the second data processing system;

means for presenting a first set of image data from a first image handling application in a second window in said first data processing system;

means for importing said first image data from said second window to said first window;

said sending means, sending said first image data to said second data processing system from said first window;

wherein, the first data processing system is in communication with a plurality of data processing systems each equipped similarly to the first data processing system, the second window presenting the overall image and a plurality of rectangles indicating which portions of the overall image are presented in a respective first window of each of the plurality of data processing systems.

5. A method for transmission and reception of realtime freehand drawing between a first data processing system and a second data processing system, each of the data processing systems having a processor, a memory, an input device and a display and an operating system which runs a plurality of application programs each displayed in a respective one of a plurality of windows on the display, the method comprising the steps of:

presenting a first set of image data from a first image handling application in a first window on the display of the first data processing system;

importing said first image data from said first window to a second window on the display of said first data processing system;

presenting a first set of points representing freehand drawing in the second window, the first set of points generated by the input device at the first data processing system;

sending the first image data and the first set of points from said second window to the second data processing system;

receiving and presenting a second set of points representing freehand drawing in the second window, the second set of points generated at the second data processing system; and

presenting a third window on the display, the third window presenting an overall image which is larger than and includes the image presented in the second window and a rectangle to indicate which portion of the overall image is presented in the second window.

6. The method as recited in claim 5 wherein the system is in communication with a plurality of data processing systems each equipped similarly to the first data processing system, the third window presenting the overall image and a plurality of rectangles to indicate which portions of the overall image are presented in a respective second window of each of the plurality of data processing systems.

7. The method as recited in claim 6 which further comprises the step of sending the image presented in the second window of the first data processing system to the plurality of data processing systems to assure that the same image is shared by the plurality of data processing system for the portion of the overall image presented by the second window of the first data processing system.
 Description Submit all comments and votes
 


DESCRIPTION

Field of the Invention

The present invention relates generally to electronic data processing systems which allows real time conferencing of image data. More particularly, it relates to a method and apparatus for providing a realtime conference facility which transmits freehand drawings, graphical data, image data and screen capture bitmap data between remote data processing systems connected by a variety of communications media.

BACKGROUND OF THE INVENTION

Communication activities such as face to face meetings are a large part of the typical businessman's daily activities. It is recognize that a meeting with all the necessary parties, which allows a spontaneous exchange of information is often the spark which leads to important decisions. However, there is a great desire to avoid the cost, dislocation delays and inconveniences associated with travel. While voice telephone communication is readily available for long distance communication, it is limited in the types of information which can be transmitted. While there have been many efforts in the past to provide automated communication facilities which integrate voice and image data, relative few of these system are commercially available. The systems are expensive and typically require high speed phone lines as well as special video equipment.

Many conferencing systems have been proposed in the prior art. All of these system, while providing image data in addition to voice data, require dedicated proprietary hardware. All parties must have the same equipment and are often medium specific. A given prior art system may operate effectively on telephone lines, yet have no provision for local area network or other data line communication. The necessity for specialized hardware has limited the appeal and acceptance of the prior art conferencing systems. Other deficiencies in the prior art include the limitation of the sources of image data transmitted to the remote data processing systems. A particular conferencing system will contain provisions for input from hand drawn messages from a digitizing tablet, but will contain no provision for image input from scanners or other nonvolatile storage of images. Other prior art systems may contain provisions for facsimile or video data, but contain no provision for hand writing data. These deficiencies might be overcome if it were possible to link several of the prior art systems together. However, the prior art methods typically operate in closed environments, i.e., they do not interact with other software or hardware, thus preventing the importation of facilities from other transmission devices or software.

In view of the deficiencies of the known prior art it would be advantageous to provide a method and generalized apparatus which allows multiple users to carry on long distance conferencing activities independent of special hardware. Optimally, the apparatus and method would allow input from a variety of graphical and image sources, as well as providing an open architecture to take advantage of feature not originally programmed or provided and to keep up with future advances in image devices and hardware.

SUMMARY OF THE INVENTION

It is therefore an object of the invention to allow multiple users to interact in a realtime conferencing facility supporting freehand drawing, graphical function and image data.

It is another object of the invention to provide a realtime conferencing facility which does not require specialized hardware or a particular communications medium.

It is still another object of the invention to allow a user to select from a plurality of image data derived from a variety of input devices namely a touch sensor, a scanner, a television camera and previously stored image data from disk storage.

It is yet another object of the invention to accommodate input from other application software which may be running on the apparatus of the present invention.

These objects and others are accomplished by an advanced user interface which operates in an integrated operating environment. The integrated operating environment and its associated operating system is capable of running a plurality of application programs running on a standard standalone processor, such as a personal computer. In the preferred embodiment, a processor is coupled to a system bus which is also coupled to a memory. The memory stores a set of program instructions as code modules. Some of these code modules contain instructions for a variety of input devices which are also coupled to the system bus. Other code modules contain instructions which control printer and display functions of the data processing system. Further, the memory also contains a plurality of applications which operate within an integrated operating environment and pass data in a compatible manner. One of the applications provides a realtime conferencing facility supporting freehand drawings, graphical and image data.

The Telesketch Application an application which uses a touch interface to provide a "real time conference facility" using freehand drawings and images. Freehand figures can be drawn in the Telesketch window using a touch pointing device or a mouse pointing device. The image seen in the local Telesketch window is also seen on another window of the Telesketch application running on a remote machine. The computer systems may be connected via asynchronous (modem/dialup) lines, or via NETBIOS sessions across a Token-Ring LAN. System users at each end of the connection may draw on the shared underlying image, while speaking with each other over the telephone. In addition to freehand drawing, Telesketch provides a number of simple image primitives to easily produce lines, rectangles, filled rectangles, circles, filled circles, and erased rectangles with the touch stylus or finger. Text may also be entered into the image using the keyboard. Images may also be scanned from documents using a scanner compatible with the operating system running on the local machine. Combining the Telesketch scanning and communications features makes it possible to use Telesketch like a facsimile machine. Images may be "captured" from the currently available other desktop application windows in the operating environment and placed within the current Telesketch image. In the preferred embodiment, images may also be pasted from the Presentation Manager.TM. clipboard into the Telesketch image. The intent of Telesketch is to focus on the remote conference capabilities provided rather than image editing functions. It is assumed that a full-fledged image editing program of some sort will be available and used if complex image editing is desired. The invention allows multiple people to participate in a Telesketch conference at the same time.

BRIEF DESCRIPTION OF THE DRAWINGS

The above objects and other objects features and advantages of the present invention will be more fully appreciated with reference to the following drawings.

FIGS. 1A and 1B are block diagrams of two computer systems in realtime communication using freehand drawing and image data according to the present invention.

FIG. 2 is a block diagram of components of the Telesketch computer module which controls communication between the two systems depicted in FIGS. 1A and 1B.

FIG. 3 is a pictorial representation of a display window according to the present invention in which geometric functions and freehand drawings have been utilized.

FIG. 4 is a flow diagram of a method according to the present invention which can generate the pictorial representation of FIG. 3.

FIG. 5 is a pictorial representation of a display window according to the present invention in which the user has annotated scanner input.

FIG. 6 is a flow diagram depicting a method by which the pictorial representation of FIG. 5 may be generated.

FIG. 7 is pictorial representation of a window according to the present invention in which a bitmap from disk storage has been read in to the application and has been annotated by the user.

FIG. 8 is the flow diagram depicting a method of generating the pictorial representation in FIG. 7.

FIG. 9 is a pictorial representation of the overview window feature of the present invention.

FIG. 10 is a pictorial representation of the overview window depicted in FIG. 9 after the user has scrolled his individual workspace.

DESCRIPTION OF PREFERRED EMBODIMENT

The invention is preferably implemented in two or more stand alone processors such as a personal computers, i.e., the IBM PS/2.TM. computer. These computers can be connected by any number of communication media including a local area network (LAN) or other data link lines, ISDN or regular phone lines, cellular phones or satellite communications networks. Further, the invention could be implemented in a distributed data processor such as an IBM 3090 mainframe attached to plurality of individual workstations. In general, the invention can be implemented on any hardware configuration which includes the components described in the following illustrative embodiment.

The preferred embodiment of the invention utilizes two or more data processing systems as depicted in FIGS. 1A and 1B. For clarity of discussion, only the interconnections of the data processing system in FIG. 1A are discussed. The data processing system in FIG. 1B in this example is set up in an identical manner. A processor 11A is connected via system bus 12A to a memory 13A. The memory 13A stores a set of program instructions in the form of code modules which the processor 11A utilizes to control the elements of the data processing systems. General operating system functions are handled by the code in module 15A. The integrated operating environment code module 17A allows applications stored in memory 13A to interact with each other. In the preferred embodiment discussed in the following pages, the operating system 15A is OS/2.TM.. Also, in the preferred embodiment, the integrated operating environment 17A is or Presentation Manager.TM..

The memory 13A also contains code modules which control specific components of the data processing system. The display code 19A is used to control presentation of information to the user on the display 20A. Printer code 21A is used to control output by the printer 22A. FIG. IA also depicts a number of input devices by which the user can input data into the data processing system. Scanner code 23A interprets the electrical signals sent by scanner 24A when a document is scanned and converted to a bitmap for further processing. The keyboard driver 25A interprets user inputs from the keyboard 26A, as the mouse driver 27A interprets electrical signals generated by the mouse 28A. The preferred embodiment is particularly adapted to operate with the touch driver 29 and touch sensor 30A and stylus 31A described in commonly assigned U.S. Pat. No. 4,868,332 to E. Greanias et al., entitled "Combined Finger Touch and Stylus Detection System For Use On the Viewing Surface Of A Visual Display Device", filed Jun. 26, 1986 which is hereby incorporated by reference. However, any touch sensor device which supports handwriting or freehand drawing could be utilized in the present invention. Also, included in the data processing system of FIG. 1A is a read only memory 32A which contains fixed instructions executed by processor 11A to carry out elementary operations for the computer system. Disk storage 33A can permanently store code modules when they are not in use in memory 13A. The asynchronous driver code 35A and the NETBIOS driver code 37A control communications between the data processing system via the I/O devices 38A. The asynchronous driver is used for communication to the remote computer system in FIG. 1B via a modem and telephone lines 39A, where as the NETBIOS striver 37A is used for communications over a local area network (LAN) 39A to the remote computer system in FIG. 1B. Although only two communication media are depicted in the preferred embodiment, the present invention can utilize any suitable transmission medium. Finally, the memory 13A also stores several application programs 40A, 42A, 44A one of which is Telesketch 40A. It is envisioned that one of the other applications running on the system would be a full fledged editing application program.

As depicted in FIG. 2, Telesketch 40 contains a number of separate program modules. These modules work together as described below. The main window procedure 43 is a standard Presentation Manager (PM) application window. It handles all of the regular PM messages which result from user input such as mouse pointer movements, button presses, and key strokes as well as input from the touch sensor 30, scanner 24 and bitmaps from the disk storage 33. The application 40 also handles bitmaps from a screen capture program 41 which may optionally be incorporated in the code package with Telesketch 40. The main window procedure 43 is responsible for updating the common underlying image and scrolling the locally viewed image, and all of the typical actions caused by local user input at the Telesketch window. Further, this module 43 controls the various communication states and connections between the other modules of the application.

Outgoing drawing and protocol messages are sent from the main window procedure 43 to the communication router 45 if a remote connection has been established. The communications router 45 performs preliminary compaction 51 (compression) of outgoing messages from the main window procedure 43 and calls the appropriate send function depending upon the current connections to the remote data processing system. Messages destined to be sent to an asynchronous connection such as a telephone line are placed in a circular buffer which is used by the asynchronous send module 47. Messages destined for a local area network (LAN) are sent directly to the NETBIOS send module 49. Other LAN protocols could be supported in alternate embodiments of the invention. In OS/2.TM., individual subprograms may be assigned individual "threads" to aid processing by the computer system. This multithreaded technique is analogous to multitasking except that separate portions of a single application are divided on to separate threads, rather than separate applications as is the case with multitasking. Because asynchronous communication is relatively slow, Telesketch 40 has been designed so that the asynchronous send module 47 is on a separate thread. However, because LAN communication is very rapid, as compared to asynchronous communication, no separate thread is needed for the NETBIOS send module 49.

Next, the Telesketch message is sent from either the async send module 47 or NETBIOS send module 49 to the message compact module 51. This module 51 compacts (compresses) the Telesketch message into a smaller format for quicker transmission if appropriate. As a local area network has a high band width, a great deal of information can be sent very quickly. It is rarely necessary to compress or compact a message when the communication with the remote data processing system is carried out over a local area network. However, when an asynchronous phone line is used it is almost always necessary to compress the data. The outgoing message is sent to the async driver 35A or a NETBIOS driver 37A as appropriate. In the preferred embodiment, these drivers are not part of the Telesketch application 40, but are part of the operating system 15A. The async driver 35A handles all asynchronous communication, whereas the NETBIOS driver 37A handles all communication over the LAN.

Incoming messages from remote computer systems are handled either by the async driver 35A or the NETBIOS driver 37A. The incoming messages are sent to the async receive module 53 if phoneline is used as a communication medium or the NETBIOS received module 55 if the local area network is used. The async receive module 53 is delegated a separate thread, and continually reads the async device driver 35 for incoming messages. When the message comes in, it is sent to the uncompact function 57 to be uncompacted or decompressed. A separate thread is also used for the NETBIOS receive module 55 which continually reads the NETBIOS driver 57A for incoming data messages. When a LAN message comes, it is sent to the message uncompact function 57 where the message may or may not be decompressed. The message uncompact function 57 is used to expand Telesketch messages from their compressed format into a standard 10 byte format if necessary. Decompression is generally not be necessary for messages handled via over the LAN.

The message director module 59A handles incoming Telesketch messages from the remote data system. Some processing functions are included in a message director 59A. In some cases, however, the messages are simply posted to the main window procedure 43A for processing.

The overview window procedure 61 handles a reduced version of the Telesketch image displayed by the main window procedure 43 on the display of the data processing system. It depicts the local and remote users' screen position within the overall image. Further discussion of the overview window in connection with FIGS. 9 and 10 is found below.

FIG. 3 is a pictorial representation of the Telesketch window according to the present invention in which the geometric functions of Telesketch and the freehand drawing capability of the touch sensor 30A have been utilized to create the window image. In Presentation Manager(.TM.) 17A, a set of rules called Common User Access (CUA) have been developed to make the graphical user interface of applications which run on Presentation Manager(.TM.) 17A consistent. Telesketch 40A follows the CUA rules in presenting the information. The Telesketch window 70 has an action bar 41 from which the user can select of the Telesketch functions. The client area 72 is used to display the shared image, common to both computer systems engaged in electronic conference. The client area 72 is also the primary workspace in which the user enters data into the Telesketch application 40A.

As Telesketch 40A is a Presentation Manager(.TM.) compatible application it can import data from other Presentation Manager(.TM.) applications. This can be accomplished either by the screen capture function 41 or by "cutting and pasting" output from the other application programs 42A, 44A to the Presentation Manager(.TM.) clipboard. With the Presentation Manager(.TM.) clipboard the other program needs to know how to interact with the clipboard with the screen capture function 41, a screen can be built where the application does not understand how to interact with different PM applications. The screen capture program 41 allows the user to build images using another application program i.e., a page maker could be used for sizing a figure or a paint program could be used for sophisticated pictures or a graphics program could be used to rotate a geometric figure or perform other geometric functions.

In the Telesketch window 70 in FIG. 3, the user has assembled an image using the geometric function of Telesketch and by freehand drawing on the touch sensor. First, the user moves the mouse pointer or the stylus to the draw action in the action bar 71. When the appropriate user input is made, e.g., a double click with a mouse button, a menu pulldown appears on the menu to allow the user to begin geometric and/or freehand drawing in the window 70. As illustrated in FIG. 3, the user first has drawn a series of filled circles 73 which are then connected with four lines 75, and finally has enclosed the circles 73 and lines 75 with a rectangle outline 77. Next, the user selects the freehand subaction from the pulldown to add the note 79 to the client area 72 of the window 70. FIG. 4 is a flow diagram depicting a steps which would generate the pictorial representation of FIG. 3. In step 80 the user invokes the Telesketch application and opens window 70. Next, the user moves the pointer to the draw action in action bar 71, step 81. In step 82, the user selects the primitive geometric functions to draw filled circles 73 lines 75 and a rectangle outline 77 in the client area 72 of the window 70. Next, the user selects the freehand function from the draw pulldown to write note 79 in the client area 72. As the user is drawing on the touch sensor 30 that is creating the pictorial representation depicted in the client area 72 of the window 70, the information is being routed to the user of the computer system depicted in FIG. 1B. In the case of freehand drawing such as the note 79 the image is being transmitted realtime through the communication lines 39A and 39B. In the case of the geometric FIGS. 73, 75 and 77, the image is not transmitted until the user has finished drawing the figure as indicated by the stylus 31 leaving the surface of the touch sensor 30. The messages are first routed to the communication router in step 84. If the communications between the computer system is carried out by phone line the message is routed to the async send module 47 in step 85. Because of the slow speed of a synchronous communication the message is compacted in step 86 by the message compact module 51. The Telesketch message then leaves the Telesketch application 40 and is sent to the asynchronous driver 35A of the computer system depicted in FIG. 1A. The Telesketch message is then routed through the I/O device 38A to phone lines 39A and 39B to the I/O device 38B of the data processing system in FIG. B. It is then routed to the asynchronous driver 35B of the remote data processing system in step 88. The asynchronous receive module 33 in the remote system is monitoring the asynchronous driver 35B for incoming messages. After receipt, in step 90, the async receive module sends the compressed message to the message uncompact module 57 to decompress the message step 90. After decompression, the Telesketch message is sent to the message director 59 in step 91 which hands it off to the main window procedure 43 to be displayed to the remote user in step 92.

FIG. 5 is a pictorial representation of the Telesketch window 100 in which a newspaper article has been scanned by scanner 24 and has been reduced to a bitmap for presentation in client area 102 by the user of the computer system in FIG. 1A. The scanned image was then sent to the user of the computer system in FIG. 1B who added the rectangle outline 104 and a freehand drawing annotation 106. To scan the newspaper article into Telesketch 40, the first user moves a pointer to the edit action in action bar 101, to activate the scan subaction found in the pulldown of edit. Similar to the embodiment depicted in FIG. 3, both the graphic rectangle outline and the freehand annotation 106 are accomplished by the second user through the use of the draw action in action bar 101.

FIG. 6 depicts a flow diagram of the steps used to generate the pictorial representation of the Telesketch 100 in FIG. 5. In step 100, user A, the user of the computer system in FIG. 1A, selects the edit action from action bar 101 after the pulldown is displayed, step 111, the user selects scan. Thereupon the user scans the newspaper article into the scanner 24 to generate the bitmap representation of the newspaper article to be displayed in the local and remote Telesketch windows 100. The bitmap image is then routed through the communications router 45 in the first computer system step 113. Further, the document image is sent through to the NETBIOS send 49 to communicate between the two computer systems beyond local area network. As a local area network has a sufficient band width to eliminate the need for compression, no compression of the bit image is preformed in the message compact module 51. Instead, the next step 115 is to route the document to the NETBIOS driver 37A in the computer system of FIG. IA. The bitmap image is then sent via LAN 39 to the NETBIOS driver 37B of the remote computer system depicted in FIG. 1B. The bitmap image is then routed through the NETBIOS receive 55B step 117, a message director 59B, step 118, and is displayed by the main window procedure 43B in the Telesketch application 40B of the remote computer system, step 119. After seeing the scanned image, the user of the remote computer system selects the draw action from action bar 101 in step 120. The user then selects the rectangle outline 104 in step 121 and the freehand drawing option in step 122. The Telesketch messages associated with a freehand note 106 and the rectangle outline 104 are then routed back to the computer in FIG. 1A steps 123 through 128. First, the Telesketch message goes through the communication router 45 in step 123, then to the NETBIOS send module 49 in step 124 and finally to the NETBIOS driver 37B of the remote computer system. The Telesketch message is transmitted over the LAN 39 and received by the NETBIOS driver 37A of the computer depicted in FIG. 1A. The Telesketch message is then routed through the NETBIOS received module 55 step 127. Further, it is taken by the message director 59A in step 128 to be presented to the first user by the main window procedure 43 as the display is repainted in step 129.

FIG. 7 is a pictorial representation of a window according to the present invention in which a bitmap from disk storage 33 has been read into the client area 132 of the Telesketch window 130. The image from disk store 33 is copied into the window by selecting the file action in action bar 131. When the file action is selected the pulldown displays an open subaction which acts as a standard open dialog box in standard CUA applications. The dialog box allows a user to select the bitmap file from disk storage 33 to be loaded into the Telesketch window 130. As indicated in previous examples, the freehand drawing 134 can be entered into the Telesketch window 130 by selecting the draw action from the action bar 131.

FIG. 8 shows a flow diagram for generating the contents of a Telesketch window 130 depicted in the pictorial representation of FIG. 7. No messaging function to the remote computer system is depicted in FIG. 8. In step 140, the user selects a file action from action bar 131. Next, the user selects the open subaction in the pulldown step 141 and imports the bitmap from disk storage 33 in step 142. After the Telesketch window 130 has been filled by the bitmap image the user selects the draw action from the action bar 131 in step 143. Freehand in the preferred embodiment is a default action 144. The user then annotates the bitmap image in step 145.

INTERACTING WITH THE PRIMARY WINDOW

To draw into the Telesketch primary window, the user touches down with the stylus or finger, and moves the pointer around the window. An "ink trail" is created, just like drawing with a pencil and paper.

The start-up window is sized by the shell using FCF.sub.-- SHELLPOSITION. An underlying bitmap image is first created with an actual size the same as the full screen size. The image displayed in the primary window can be scrolled as desired, using the standard scroll bar controls on the frame.

If the frame window is sized, the underlying image remains in the same position relative to the physical screen. It will not necessarily remain in the same offset relative to the image origin. This has proven to be more intuitive to the user when scrolling and sizing images.

Quick window repainting and scrolling is accomplished by using a bitmap presentation space for the underlying image. All drawing done by the user is drawn into the Telesketch window and also into hpsWork. When a window refresh is needed, i.e, when a WM.sub.-- PAINT message occurs, the client window is redrawn by simply copying the underlying image from the bitmap presentation space into the client area. Scrolling offsets (controlled by the scroll bars) control which portion of the bitmap is copied into the visible Telesketch window.

If a new image is loaded (using the File+Open, Scan, or Send/Receive image operations), the underlying Telesketch image changes size, in PU.sub.-- PELS units, not actual size, to match that of the loaded image.

If the user is currently connected to a remote Telesketch system, pointer movements and drawing on either side will also appear on the other end of the communication, if one user is viewing and drawing into a portion of the Telesketch image while the remote person is viewing another portion (the image windows are scrolled differently), the updates will occur relative to the underlying Telesketch image. They will be viewable again if the user scrolls to the corresponding portion of the image.

ACTION BAR AND PULL-DOWNS

The Telesketch windows depicted in FIG. 3, 5, and 7 provide many more features than described above. A more detailed description of the action bar action and pull-down menu subactions follows. The action bar main menu has the following pull-down structure:

File

1. New (disabled, never used)

2. Open . . .

3. Save (disabled, never used)

4. Save As . . .

5. Print

Edit

1. Mark

2. Copy

3. Paste

4. Print Mark

5. Scan . . .

a. Quick Scan

b. Full Page . . .

c. Using Frame . . .

d. Using Coordinates . . .

6. Erase

7. Capture Screen

8. Send Image

Connection

1. Call . . .

2. Hang Up . . .

3. Beep

Setup

1. Directory . . .

2. Local Name . . .

3. Overview Window

4. Send on Paste

5. Send on Capture Screen

6. Send on Scan

7. Send on Open

Draw

1. Freehand (checked at start-up, default drawing mode)

2. Line

3. Circle

4. Rectangle

5. Erase Rectangle

6. Fill

7. Text

Help

1. Help for help . . .

2. Extended help . . .

3. Keys help . . .

4. Help index . . .

5. Tutorial . . . (disabled, never used)

6. About . . .

These options function as described below. Some of the pull-down choices described in the following are provided in Telesketch for CUA conformance, but are never available. Such options are displayed with "disabled" attributes.

FILE

The File option is used to save and load image files from disk.

New: (This option is disabled and never used.)

Open: This option displays a standard Open dialog box, like those in standard CUA advanced interfaces. It lets a user to select which bitmap file is to be loaded as the current image. The loaded image is initially scrolled to the upper left of the Telesketch window.

Save: (This option is disabled and never used.)

Save As: This option displays a standard Save As dialog box, like that shown in CUA Advanced Interfaces. It lets a user specify the name of a file in which to store the current bitmap image. Images are stored only as BMP (bitmap) files.

Print: This option sends the current image to the default PM print spooler.

EDIT

This menu option is for manipulating the current Telesketch image in some way.

Mark: This option works the same way as the Mark feature of the OS/2 Windowed Command Prompt. It is used to mark an area displayed on the current image for subsequent Copying to the Clipboard. Selecting Mark toggles on and off the Mark mode, as indicated by a checkmark next to the pull-down item.: When in non-Mark mode, the mouse pointer or touch stylus is used to draw into the current image in the primary window.

When in Mark mode the pointer changes to a NSEW 4-arrowed symbol. When a touchdown (WM.sub.-- BUTTON1DOWN) occurs, it defines a corner of a "rubber band" rectangle for a custom tracking routine. The user moves the pointer around the window to drag the opposite corner of the rectangle and stretch the rectangle; the rectangle is redrawn each time to indicate which area is being marked. Unlike WinTrackRect, this routine will allow the user to track the rectangle in any direction.

The marking rectangle is "fixed" into place by lifting off the window or releasing a mouse button). The marked area is defined as the area included inside the rectangle, including the edges of the rectangle. The marked area is relative to the area being viewed in the client window, rather than the underlying image. The user may change the marked area by touching down again. At this point, the previous mark rectangle outline is erased, and the new tracking operation starts. The tracking rectangle cannot be stretched outside the primary Telesketch client area window. The area to be marked must be completely viewable in the Telesketch primary window. If the image is scrolled, the marked are remains constant with respect to the new portion of the image being viewed. The Mark function remains active until explicitly toggled off again by the user, or when a "load image" function occurs (Open, Send/Receive, or Scan).

Copy: Copy is only available if an area has been marked with the Mark pull-down.

When this is selected, the current marked area in the client window is copied as a bitmap image to the PM Clipboard. It is copied in the same bits-per-pel format as it exists in the underlying Telesketch image which may not necessarily match the full capabilities of the display device.

Paste: This option is only selectable if the PM Clipboard currently contains a bitmap image.

When selected, the pointer goes into tracking mode with a rectangle size equal to the image size currently found in the Clipboard so the image can be placed. The user moves the tracking rectangle around the Telesketch client area as a normal tracking operation.

Tracking is started so that no portion of the tracking rectan