Direct manipulation of icons via conversational linking

Abstract: A method is disclosed which permits the user of a computer system to directly manipulate iconic representations of software applications by automatically controlling the communications link between each icon and its associated source application. Upon receiving an indication that a user intends to move an icon displayed within a first client application, communications between the first client application and the icon's source application are automatically terminated. The icon is placed within a second client application and communications between the second client application and the source application are automatically initiated. In the disclosed embodiment of the present invention a conversational data structure designed to support communication between a client application and a source application is automatically created in response to an initiate communications message from a client application to a source application, after a determination has been made that the icon in question is appropriately served by the source application. Client applications containing multiple icons may be simply and easily duplicated by graphically copying each icon and automatically initiating communication between the source application and the application containing the copied icon.

Description: 1. Technical Field: The present invention relates in general to data processing systems and in particular to multi-tasking data processing systems. Still more particularly, the present invention relates to methods which permit the direct manipulation of icons from one application to another within a multi-tasking data processing system. 2. Background Art: Early microcomputers or "personal" computers were designed to provide independent computing power to an individual user. Although designed initially for stand-alone operation, it has become common for individual computers to be coupled together or to a main frame computer by means of a computer network. In recent years the personal computer has become so sophisticated that many are now capable of "multi-tasking", that is, the concurrent performance or interleaved execution of two or more tasks. Multi-tasking is generally accomplished in a personal computer environment by utilization of multiple view ports or "windows", each of which displays information relating to a different application. Examples of such multi-tasking systems include Windows (a trademark of Microsoft Corp.), published by Microsoft, Inc. and OS/2 Presentation Manager (OS/2 is a registered trademark of IBM Corp.), published by International Business Machines Corporation. With either of the aforementioned multi-tasking systems it is possible to provide a "tokenized" or miniature representation of individual applications, generally referred to as "icons". These icons may be displayed within a window and are thus available to a user of that window. This technique is possible when an application draws, maintains, and positions icons for tasks that it may provide within its window. Utilization of these icons by another independent application is not possible without a published set of complex programming interfaces. Likewise, the movement of these icons from the application to another window is not possible without such interfaces. If the applications providing functions via icons are structured such that they are independent of the application displaying the icons, an existing data transfer protocol may be utilized to more simply accomplish the transfer of the icon and the associated application function from one window to another. A protocol known as Dynamic Data Exchange (DDE) utilized by both Windows and OS/2 Presentation Manager may be used for this technique. DDE is a protocol for interprocess communication which consists of a small set of messages and data structures designed to support the interaction between to processes. The communications model utilized by DDE is based upon a client/source application relationship wherein the client application initiates a conversation with the appropriate source application and data then flows from the source application to the client application, supporting the icon disposed therein. For a more detailed description of DDE see Microsoft Systems Journal, November 1987, page 13. While DDE represents an important step forward in multi-tasking environments, it has at least one short fall which must be addressed. A user may desire to transfer an icon from one application to a second client application. Under existing protocols this is a time consuming process which requires a complex programming interface and which may not be accomplished directly. Therefore, it should be obvious that a need exists for an improved method whereby iconic representations of selected applications may be directly manipulated by a user so that an application may be easily transferred to a second client application. SUMMARY OF THE INVENTION It is therefore one object of the present invention to provide an improved data processing system. It is another object of the present invention to provide an improved multi-tasking data processing system. It is yet another object of the present invention to provide an improved multi-tasking data processing system which permits the direct manipulation of icons and associated functions from one application to another. The foregoing objects are achieved as is now described. A user may directly manipulate iconic representations of software applications in accordance with the present invention by controlling the communication link between each icon and its associated source application. Upon receiving an indication that a user intends to move an icon displayed within a first client application, communications between that first client application and the icon's source application are automatically terminated. Then the icon is placed within a second client application and communications between the second client application and the source application are automatically initiated. In the disclosed embodiment of the present invention a conversational data structure designed to support communication between a client application and a source application is automatically created in response to an initiate communication message from a client application to a source application, after a determination has been made that the icon in question is appropriately served by that source application. Client applications containing multiple icons may be simply and easily duplicated by copying each icon and automatically initiating communications between the source application for that icon and the application containing the copied icon. BRIEF DESCRIPTION OF THE DRAWINGS The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: Figure 1 depicts a graphic representation of a computer screen demonstrating the copying of a client application having multiple icons displayed therein; Figure 2 depicts a graphic representation of a computer screen demonstrating the relocation of an icon from one client application to a second client application; Figure 3 depicts a logic flow chart illustrating the direct manipulation logic of the method of the present invention; Figure 4 depicts a logic flow chart illustrating the initiation of communication between a source application and a client application; and Figure 5 depicts a logic flow chart illustrating the termination of communication between a source application and a client application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Throughout the following description, the term "source" application is utilized to describe the program providing the function represented by an icon and the term "client" application is utilized to describe the application providing the window which displays the icon. With reference now to the figures and in particular with reference to Figure 1, there is depicted a graphic representation of a computer screen demonstrating the copying of a client application having multiple icons displayed therein. As may be seen, computer screen 10 includes a client application which is displayed within a viewport or "window" 12, in a manner well known in the prior art. Displayed within window 12 are icons 14 and 16, each of which represents another software application. As may be seen, icon 14 is indicative of a communications application and is supported by a source application which is displayed, for purposes of illustration, within window 20. The communications necessary to serve the application represented by icon 14 are provided from the source application depicted within window 20 to window 12 by means of DDE link 24. Similarly, icon 16 represents a second application which is supported by a second source application, depicted within window 18. As above, the communications necessary to support the application represented by icon 16 are provided from the source application depicted within window 18 to window 12 by means of DDE link 22. Now, in accordance with an important feature of the present invention, should the user desire to copy the application depicted within window 12, he or she may do so by creating window 26. As those skilled in the art will appreciate this may be accomplished by utilizing any technique known in the prior art for the graphic duplication of an element or window displayed on a computer screen. However, in accordance with an important feature of the present invention, after window 26 has been created as a copy of window 12, including icons 28 and 30, a conversational link between the source applications depicted within windows 18 and 20 will be automatically established. That is, the communications necessary to support the application depicted by icon 30 will be provided from the source application depicted within window 18 by the automatic initiation of communication between the source application and the client application by means of the establishment of a communications link via DDE link 32. Similarly, the communications necessary to support the application represented by icon 28 will be automatically initiated, in accordance with the method of the present invention, by the automatic initiation of DDE link 34, between the source application depicted within window 20 and the client application established within window 26. In this manner, the user may copy a client application containing numerous iconic representations of other applications without the necessity of explicitly establishing communication between each iconic representation and its associated source application. Referring now to Figure 2, there is depicted a graphic representation of a computer screen demonstrating the relocation of an icon from one client application to a second client application. As may be seen, computer screen 10 includes a first client application which is displayed within a window 12 and a second client application which is displayed within window 26. As above, each client application may include multiple icons such as 14, 16, 28 and 30, each of which is supported by a source application. For purposes of illustration the source application supporting icons 16 and 30 is displayed within window 18 and the source application supporting icons 14 and 28 is displayed within window 20. Referring again to Figure 1, it may be seen that icon 16 has been relocated from window 12 to window 20. This has been accomplished, in accordance with the method of the present invention, by terminating DDE link 22 upon recognition of the intent of the user to remove icon 16 from window 12. As may be seen, after the user has indicated his or her desire to relocate icon 16 within window 20, DDE link 22 has been automatically reinitiated so that the communications necessary to support icon 16 within window 20 are reestablished. With reference now to Figure 3, there is depicted a logic flow chart illustrating the direct manipulation logic of the method of the present invention. As may be seen, the process begins at block 36 wherein a message is received from the system indicating that an object, such as an icon, has been selected for manipulation. Next, block 38 illustrates the determination of whether or not the object selected for manipulation has an owning or source process. If not, the process returns control to the system, as depicted in block 40. In the event that the object selected for manipulation does indeed have an owning or source process, then block 42 illustrates a determination of whether or not the object is to be copied or moved. In the event the object selected for direct manipulation is to be moved, as determined by block 42, then block 44 illustrates the termination of the DDE conversation link between the client application and the object's source application. This process will be illustrated in greater detail with respect to Figure 5. Thereafter, block 46 illustrates the initiation of a conversation link between the new client application and the object source application. In this manner, an icon or other object may be directly manipulated by the user without the necessity of complex programming interfaces by automatically terminating the conversation link between the icon's previous client application and its source application and thereafter initiating a conversation link between the new client application wherein the icon is now located and the source application for that icon. Referring again to block 42, if the object selected for direct manipulation is to be merely copied, as determined by block 42, then the process proceeds directly to block 46 and a conversation link is initiated between the source application servicing the icon and the new client application wherein the copy is to be located. Referring now to Figure 4, there is depicted a logic flow chart illustrating the initiating of communication between a source application and a client application in accordance with the method of the present invention. As may be seen, this process begins by the receipt of an initiate communications message from a client application. This message is transmitted by a client application, in accordance with the method of the present invention, automatically in response to the graphic relocation or copying of an object into the client application. Next, block 50 illustrates the determination of whether or not the correct application and topic names are present for communication between the client application and the source application which has received the initiate communications message. This is necessary to determine if the icon in question is appropriately served by the source application which has been selected. If the application and topic names are not correct, then, as illustrated in block 52, the control is returned to the system. In the event the correct application and topic names are present, block 54 then illustrates the creation of a conversational data structure for this conversation. The conversational data structure preferably consists of structures designed to support interprocess communication between the client application and the source application. Next, the process is completed by the transmittal of an acknowledgement from the source application to the client application acknowledging the initiate communication message which has been received. Thereafter, the source application is conversationally linked with the client application wherein the object now resides and may from that point forward provide all of the communication necessary to support that object within the client application. With reference now to Figure 5, there is depicted a logic flow chart illustrating the termination of a communications link between a source application and a client application, in accordance with the method of the present invention. As may be seen, this process begins, as illustrated in block 58, by the receipt of a message at the source application to terminate the communications link associated with a particular object or icon. Thereafter, block 60 depicts the deletion of the existing display of that object. Next, block 62 illustrates a determination of whether or not the user has requested advise of update with regard to this particular object. In one embodiment of the present invention, the "advise" message is utilized by the client application to request the source application to supply an update for a data item whenever it changes. In the event that this particular object has been the subject of an "advise" message, then block 64 illustrates the transmittal of an "unadvise" message to the source application for this object. As those skilled in the art will probably appreciate, the "unadvise" message is a request to the source application that a specified item should not longer be updated. After the "unadvise" message has been transmitted, in accordance with block 64, or in the event that an "advise" message has not been requested, then block 66 illustrates the transmittal of a terminate message to the source application. Finally, block 68 illustrates the returning of the control to the system. Those skilled in the art will appreciate upon reference to the foregoing specification that the initiation and termination of iconic exchange conversations utilizing the method of the present invention serves as a unique and relatively simple method for accomplishing the direct manipulation of icons. In the event a user wishes to duplicate a plurality of icons, he or she may simply broadcast a message to all source applications specifying the new client application name, causing all source applications to respond. Thereafter, DDE conversation links are automatically established between each source application and the new client application, causing the application to contain icons representing each existing source application. As disclosed herein, if the user wishes to move one icon from one client application to another, this may be accomplished simply by terminating the link between the source application and the client application from which the icon was moved and automatically initiating a link between the source application and the client application to which the icon was moved. Very little additional code is required to implement this direct manipulation technique. The existing iconic control process provides the function necessary to detect the click of a mouse or other pointer device on an icon and to track the shadow box as the mouse is moved. When the mouse is released at the target application, the icon control process may be utilized to send a notification of the drop and information about the source application to the target application. In this manner, by utilizing DDE links to manage iconic information, a very small amount of code may be utilized to accomplish the direct manipulation of dynamically alterable icons between separate applications. This technique may be utilized to provide an extremely visual working example of the use of DDE to establish permanent links between separate applications. Support from multiple conversation links is added simply by defining one additional message and making extensive use of the window word and window enumeration facilities which are provided by software applications such as Windows and Presentation Manager. Those skilled in the art should appreciate that this expanded DDE link concept may be accomplished in several manners. For example, the second 32 bit parameter of DDE could be utilized to pass all necessary conversation parameters and references to data. Alternately, the second 32 bit parameter may be utilized as a 32 bit pointer to one of several available DDE data structures which may contain the conversation parameters and data references utilized to implement the iconic exchange method of the present invention. While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the invention, as defined by the claims.

Claims: A method for direct user manipulation of an iconic representation of a software application, referred to as an icon, disposed within a first client application providing the window which displays the icon and serviced by a source application providing the function represented by the icon, said method comprising the steps of: automatically terminating communication between said first client application and said source application in response to said user removing said icon from said first client application; and automatically initiating communication between a second client application and said source application in response to said user designating said second client application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 1 further including the step of automatically determining if said icon is appropriately served by said source application prior to initiating communication between said second client application and said source application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 1 further including the step of creating a conversational data structure designed to support communication between said second client application and said source application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 1 wherein said step of automatically initiating communication between a second client application and said source application in response to said user designating said second client application comprises the step of said second client application generating an initiate communications message to said source application in response to said user designating said second client application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 4 further including the step of said source application generating an acknowledgement of said initiate communication message in response thereto. A method for direct user manipulation of an iconic representation of a software application, referred to as an icon displayed within a first client application providing the window which displays the icon and serviced by a source application providing the function represented by the icon, said method comprising the steps of: creating a graphic copy of said icon; designating a location for said copy of said icon within a second client application; and automatically initiating communication between said second client application and said source application in response to said designation of a location for said copy of said icon within said second client application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 6 further including the step of automatically determining if said icon is appropriately served by said source application prior to initiating communication between said second client application and said source application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 6 further including the step of creating a conversational data structure designed to support communication between said second client application and said source application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 6 wherein said step of automatically initiating communication between a second client application and said source application in response to said user designating a location for said copy of said icon within said second client application. The method for direct user manipulation of an icon disposed within a first client application and serviced by a source application according to Claim 9 further including the step of said source application generating an acknowledgement of said initiate communication message in response thereto.

Inventors: FRANKLIN SUSAN MARGARET, PETERS ANTHONY M, FRANKLIN, SUSAN MARGARET, PETERS, ANTHONY M.
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1990
Main classification: G06F3
IPC codes: G06F3, G06F9, G06F15