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.]
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?