Apple, Inc. v. Motorola, Inc. et al

Filing 12

AMENDED COMPLAINT for Patent Infringement against Motorola Mobility, Inc., Motorola, Inc., filed by Apple, Inc.. (Attachments: #1 Exhibit A - '949 patent, #2 Exhibit B - '002 patent, #3 Exhibit C - '315 patent, #4 Exhibit D - RE '486 patent, #5 Exhibit E - '354 patent, #6 Exhibit F - '263 patent, #7 Exhibit G - '983 patent, #8 Exhibit H - '705 patent, #9 Exhibit I - '647 patent, #10 Exhibit J - '852 patent, #11 Exhibit K - '131 patent, #12 Exhibit L - '337 patent, #13 Exhibit M - '867 patent, #14 Exhibit N - '721 patent, #15 Exhibit O - '599 patent) (Peterson, James) [Transferred from Wisconsin Western on 12/1/2011.]

Download PDF
EXHIBIT C 111111111111111111111111111111111111111111111111111111111111111111111111111 US005838315A United States Patent [19] [11] Craycroft et al. [54] [75] [73] [21] [22] [45] 5,838,315 Nov. 17, 1998 Primary Examiner-Thomas G. Black SUPPORT FOR CUSTOM USERINTERACTION ELEMENTS IN A GRAPHICAL, EVENT-DRIVEN COMPUTER SYSTEM Assistant Examiner~uay Lian Ho Attorney, Agent, or Firm-Burns, Doane, Swecker & Mathis, L.L.P. Inventors: Timothy J. Craycroft; Robert R. Ulrich, both of Mountain View, Calif. [57] Assignee: Apple Computer, Inc., Cupertino, Calif. ABSTRACT Explicit support for custom gadgets is provided, at a system software level, in a manner that is essentially applicationtransparent. Specific support is provided for the addition of Appi. No.: 977,059 Filed: Patent Number: Date of Patent: one custom gadget per window. The custom gadget is Nov. 24, 1997 identified by a specific numeric code in the same manner as Related U.S. Application Data [63] [51] [52] [58] [56] the close and zoom boxes. An application simply tells the system software what the custom gadget for a particular Continuation of Ser. No. 593,171, Feb. 1, 1996, Pat. No. 5,692,142. 6 Int. C1. U.S. Cl. Field of Search window should look like. The code responsible for drawing that window's frame then knows where to find the image of G06F 3/14 345/333; 345/326 345/326-334, 345/339-342, 348, 352 the custom gadget and will render it appropriately. When a user clicks in the custom gadget, the system software notifies the application of the event by means of the numeric code associated with the custom gadget. More particularly, in accordance with one embodiment of the invention, a custom interactive user-interface element is provided in a title bar of a window of an application program in a graphical, eventdriven computer system having a computer display. The custom interactive user-interface element is provided by storing information, referring to an icon stored as part of said application program and used to visually represent the custom interactive user-interface element, in a location accessible to a Window Manager. The Window Manager then draws on the computer display a frame of the window including the icon used to visually represent the custom interactive user-interface element. References Cited U.S. PATENT DOCUMENTS 5,140,677 8/1992 Fleming et al. 5,140,678 8/1992 Torres 5,339,392 8/1994 Risberg et al. 5,388,202 2/1995 Squires et al. 5,428,729 6/1995 Chang et al. 5,544,288 8/1996 Morgan et al. 5,546,520 8/1996 Cline et al. 5,581,670 12/1996 Bier et al. 5,598,524 1/1997 Johnston, Jr. et al. 5,696,915 12/1997 Johnston, Jr. et al. 5,754,178 5/1998 Johnston, Jr. et al. 345/348 345/333 345/333 345/334 345/331 345/342 345/342 345/326 345/348 345/335 345/343 OlliER PUBLICATIONS Burge, Thomas E. et aI., "Advanced OS/2, Presentation Manager Programming", John Wiley & Sons, Inc., 293-308 1993. 17 Claims, 1 Drawing Sheet HIT TESTING RETURN PART CODE TO APPLICATION END u.s. Patent 5,838,315 Nov. 17, 1998 ( DRAW WINDOW ) DRAW WINDOW + WDEF DRAW WINDOW USING STANDARD WDEF DRAW STANDARD WINDOW FRAME • DRAW GADGET oVERLA Y USING CUSTOM WDEF DRAW CUSTOM GADGET ICON @ PREDETERMINED SIZE AND LOCA TlON ~ ( END FIG. 1 PRIOR ART FIG. 3 HIT TESTING HIT TESTING HIT TEST USING CUSTOM WDEF YES NO YES HIT TEST USING STANDARD WDEF FIND WINDOW HIT TEST USING WDEF PART CODE (CUSTOM GADGET=9) RETURN PART CODE TO APPLICA TlON FIG. 2 PRIOR ART FIG. 4 5,838,315 1 2 have therefore been implemented by working around system software using multiple software "patches" in a way that is not only cumbersome but also inflexible. A custom WDEF must perform two different functions 5 with respect to custom gadgets, drawing (i.e., providing for This application is a continuation of application Ser. No. actual rendering the custom gadget on the computer screen) 08/593,171, filed Feb. 1, 1996, now U.S. Pat. No. 5,692,142. and hit-testing (i.e., determining when the custom gadget has been clicked). Because application developers wanting BACKGROUND OF THE INVENTION to add a custom gadget typically do not want to completely 10 change a window's appearance from that of a standard 1. Field of the Invention window but only want to augment its appearance, they The present invention relates to graphical, event-driven effectively use custom WDEFs to patch the WDEFs procomputer systems, more particularly to custom interactive vided by the system. The custom WDEFs do their augmenuser-interaction elements in a computer system having a tation before and/or after calling through to a systemwindow-based graphical user interface. 15 provided WDEF. 2. State of the Art The two behaviors such custom WDEFs must alter are the A large amount of effort has been devoted to improving drawing behavior and the hit-testing behavior. As illustrated the ease of using computer systems. One area where this is in FIG. 1, when called to draw a window frame, the custom especially evident is that of computer user interfaces. For WDEF will call the system WDEF to draw the window and example, the use of windows, icons and pulldown, pop-up, or tear-off menus greatly enhances the ease of using a 20 will then draw the custom gadget on top of the window that was just drawn. A significant drawback to this approach is computer system. One computer system which makes extenthat it requires developers to make assumptions about the sive use of windows is the Macintosh computer system geometry and appearance of the system's windows in order manufactured by Apple Computer, Inc. In the Macintosh to attach custom gadgets. If the geometry or appearance of computer, a window is a desktop object that displays information such as a document or a message. Windows can be 25 the window provided by the system should change, the application's custom gadget will be drawn incorrectly in any size, shape or color, and there can be one or many of relation to the other screen elements of the window. As them depending on the application. illustrated in FIG. 2, when hit-testing, the process works in The part of the window that the application draws in is the opposite direction. The custom WDEF will first see if the called the content region. The rest of the window is drawn 30 input point is in the custom gadget. If so, the custom WDEF by a collection of system software routines for creating and will return without calling the system WDEF. If not, the manipulating windows known as the Window Manager. The custom WDEF will call through to the system WDEF to find parts of the window that the Window Manager draws (using where in the window the point lies. Hit-testing therefore a window definition) make up the window frame, which requires a front-end code patch, while drawing requires a usually surrounds the rest of the window. In a standard 35 rear-end code patch. document window, for example, the frame consists of a title The foregoing mechanism is unreliable, since it depends bar and an outline of the window. on system behavior not within the developer's control, A window always has at two regions: a content region, cumbersome and inflexible. What is needed, then, is a which is the area where an application displays information, and a structure region, which is the entire window (the 40 mechanism that explicitly supports custom gadgets (userinteraction elements) in an efficient way that requires a content region plus the window frame). The content region minimum of application involvement. may also contain a size box and scroll bars. A window usually has additional regions including a close box (goSUMMARY OF THE INVENTION away region) and a zoom box. Clicking in the close box closes the window. Clicking in the zoom box causes the 45 The present invention, generally speaking, provides, at a window to grow so that it fills the entire screen or grows as system software level, explicit support for custom gadgets in much as necessary to display all the information it contains. a manager that is essentially application-transparent. SpeOn a Macintosh system, the close box and the zoom box are cific support is provided for the addition of one custom standard interactive user-interface elements, or "gadgets", gadget per window. The custom gadget is identified by a and are located in the title bar portion of a window, the close 50 specific numeric code in the same manner as the close and box in the upper left comer and the zoom box in the upper zoom boxes. An application simply tells the system software right corner. Different systems may provide sets of gadgets what the custom gadget for a particular window should look in a window title bar different from the set in a Macintosh like. The code responsible for drawing that window's frame window. then knows where to find the image of the custom gadget Many application programs written for the Macintosh use 55 and will render it appropriately. When a user clicks in the custom gadget, the application gets the event and calls on the only standard, system-defined windows having only the system software to identify the event. The system software standard gadgets (close box and zoom box) in the title bar. identifies the event to the application by means of the Applications are not limited to using standard windows, however, but are free to define their own windows, having numeric code associated with the custom gadget. More "custom" gadgets particular to that application if desired, 60 particularly, in accordance with one embodiment of the invention, a custom interactive user-interface element is using custom window definitions, or WDEFs. A WDEF is the code responsible for drawing window frames and for provided in a title bar of a window of an application program telling the Window Manager what part of a window a in a graphical, event-driven computer system having a computer display. The custom interactive user-interface eleparticular point is in. Custom gadgets have not been specifically supported by the Macintosh system software. 65 ment is provided by storing information, referring to an icon stored as part of said application program and used to Furthermore, no system is known to allow application to add custom gadgets on a per-window basis. Custom gadgets visually represent the custom interactive user-interface SUPPORT FOR CUSTOM USERINTERACTION ELEMENTS IN A GRAPHICAL, EVENT-DRIVEN COMPUTER SYSTEM 5,838,315 3 4 element, in a location accessible to a Window Manager. The Window Manager then draws on the computer display a frame of the window including the icon used to visually represent the custom interactive user-interface element. custom gadget. As shown in FIG. 3, the WDEF, besides drawing the standard window frame, simply draws the custom gadget icon specified by the application at a predetermined size and location. Since the WDEF already posses 5 information fully describing the window frame, there is no BRIEF DESCRIPTION OF THE DRAWINGS danger of improper placement of the custom gadget as in the prior art. The present invention may be further understood from the Identification of a mouse click in the custom gadget is following description in conjunction with the appended seamlessly integrated into a single hit-testing procedure. drawing. In the drawing: 10 When a user clicks the mouse button, the application calls FIG. 1 is a flow diagram showing a mechanism for the Window Manager (using a FindWindow system call) to drawing custom user-interface elements in accordance with determine the window in which the user clicked FindWinthe prior art; dow also tells the application where in the particular window FIG. 2 is a flow diagram showing a mechanism for the user clicked. Specific codes are defined for each location hit-testing windows including custom user-interface elein a window. A unique code identifies the custom gadget, as 15 shown below: ments in accordance with the prior art; FIG. 3 is a flow diagram showing a mechanism for drawing custom user-interface elements in accordance with //FindWindow return codes the present invention; and enum FIG. 4 is a flow diagram showing a mechanism for 20 inDesk ~ o hit-testing windows including custom user-interface eleinMenuBar = 1 ments in accordance with the present invention. inSysWindow ~ 2 DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 25 inContent = inDrag ~ inGrow = inGoAway ~ ifZoomln = ilZoomOut ~ inCustomGadget inTitleIcon ~ 3 4 5 6 The present invention will be described in detail in 7 relation to the Macintosh computer system and its system 8 ~ software. It should be understood, however, that the inven9 10 tion is broadly applicable to graphical, event-driven com}; puter systems of all types as well as to different graphical 30 user interfaces including, for example, X Windows, AUX, Using the foregoing part codes, FindWindow identifies to Microsoft Windows, MOTIF, etc. the application which window and whichever part of that The invention provides new functionality in system softwindow, including the custom gadget, the click may have ware that removes the need for applications to make assumptions regarding the appearance or geometry of a 35 been in. As shown in FIG. 4, hit-testing is therefore greatly simplified. Once a click has been detected and communiwindow and also removes the need to "work around" the cated to the application, the application simply calls system using assumptions about how the operating system FindWindow, which performs hit-testing according to the works. This functionality insures the smooth integration of normal WDEF and returns a part code to the application. a custom gadget into any system-provided window, allowing Using the arrangement described, explicit support is the appearance of system-provided windows to change 40 provided, at a system software level, for custom gadgets in without affecting applications that use custom gadgets. In a manner that is essentially application-transparent. the Macintosh system, this functionality is provided in the It will be appreciated by those of ordinary skill in the art Window Manager. In other systems, the same functionality that the invention can be embodied in other specific forms may be provided within whatever code module or modules without departing from the spirit or essential character that provide routines for creating and manipulating win- 45 thereof. The presently disclosed embodiments are therefore dows. considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended In accordance with a preferred embodiment of the present invention, an application program interface (API) call Setclaims rather than the foregoing description, and all changes WindowProperty is used to "attach" a given custom gadget which come within the meaning and range of equivalents to a window. In the Macintosh system, properties are tagged 50 thereof are intended to be embraced therein. data that can be attached to various elements in the MacinWhat is claimed is: 1. For use in a graphical, event-driven computer system tosh Toolbox. having a computer display and a graphical user interface, a The syntax of SetWindowProperty is method of providing a customer interactive user-interface SetWindowProperty (theWindow, kCustomGadgetProperty, &gadgetImage, sizeof 55 element in a frame of a window of an application program, in addition to system-defined elements provided in each (Handle)); window displayed by said computer system, said method where the listed parameters have the following meanings; comprising the steps of: storing information referring to an icon, stored as part of kCustomGadgetProperty A tag to identify a custom gadget said application program and used to visually represent 60 appearance property. the custom interactive user-interface element, in a gadgetImage An icon suite in which the appearance location accessible to a window manager; and of the gadget is defined. Identifies the window to which the theWindow the window manager drawing on the computer display a gadget is to be added. frame of the window including drawing, at a size and location determined by the window manager, the icon 65 used to visually represent the custom interactive userUsing the foregoing information, a system-supplied interface element; WDEF is readily able to draw the window including the 5,838,315 5 6 wherein clicking on the custom interface user-interface element causes the application to perform a function that is in addition to functions defined as part of the graphical user interface. 2. The method of claim 1, comprising the further steps of: defining a unique part code, designating a custom interactive user-interface element, within a system resource responsible for, using the window definition system resource, testing to determine in which window and where within that window a user click may have occurred; receiving from the application program a call to the system resource responsible for said testing and in response thereto invoking the system resource responsible for said testing; and returning to the application program a part code designating the custom interactive user-interface element if the click occurred within a region occupied by the icon used to visually represent the custom interface userinterface element. 3. The method of claim 2, wherein the custom user interface element is displayed in a frame of the window. 4. The method of claim 2, wherein system software is responsive to a system call of a predetermined format to add said custom graphical user interface element to said window. 5. The method of claim 4, wherein said system call is a generic call used to set window properties and takes as parameters a window identifier and a string constant indicating that a custom user interface element is to be added to the window. 6. The method of claim 5, wherein said call takes as a further parameter a pointer to at least one icon representing the custom user interface control. 7. A computer system having a graphical user interface and having system software that provides for the addition of a custom user interface control to an application program, comprising: a CPU subsystem; and coupled to the CPU subsystem, a storage subsystem storing said system software, said system software including program instructions for, in response to a system call of a predetermined format from said application program: displaying said custom user interface control as part of a display window belonging to the application program, at a size and location determined by the system software; and notifying the application of a user event in which the custom user interface control is activated. 8. The apparatus of claim 7, wherein the custom user interface control is displayed in a frame of the window. 9. The apparatus of claim 8, wherein said system call is a generic call used to set window properties and takes as parameters a window identifier and a string constant indicating that a custom user interface control is to be added to the window. 10. The apparatus of claim 9, wherein said call takes as a further parameter a pointer to at least one icon representing the custom user interface control. 11. The apparatus of claim 7, wherein notifying the user comprises returning to the application a code associated with the customer user interface control. 12. A machine readable medium storing system software computer program instructions providing for the addition of a custom graphical user interface control to an application program, including instructions for: displaying said custom user interface control as part of a display window belonging to the application program, at a size and location determined by the system software; and notifying the application of a user event in which the custom user interface control is activated. 13. The article of claim 12, wherein the custom user interface control is displayed in a frame of the window. 14. The article of claim 12, wherein said system software is responsive to a system call of a predetermined format to add said custom graphical user interface control to said window. 15. The article of claim 14, wherein said system call is a generic call used to set window properties and takes as parameters a window identifier and a string constant indicating that a custom user interface control is to be added to the window. 16. The article of claim 15, wherein said call takes as a further parameter a pointer to at least one icon representing the custom user interface control. 17. The article of claim 12, wherein notifying the user comprises returning to the application a code associated with the customer user interface control. 5 10 15 20 25 30 35 40 45 * * * * *

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?