`
`
`
`
`
`Ex. 1022
`Ex. 1022
`
`US Patent No. 6,404,433 (‘Ruff’)
` US Patent No. 6,404,433 (“Ruff”)
`
`
`
`
`
`
`
`US006404433B1
`US006404433B1
`United States Patent
`United States Patent
`(10) Patent No.:
`(12)
`US 6,404,433 B1
`(10) Patent No.:
`(12)
`US 6,404,433 B1
`Ruff et al.
`(45) Date of Patent:
`Jun. 11, 2002
`Ruff et al.
`(45) Date of Patent:
`Jun. 11, 2002
`
`
`(54) DATA-DRIVEN LAYOUT ENGINE
`(54) DATA-DRIVEN LAYOUT ENGINE
`
`(75) Inventors: Joseph Ruff, Palo Alto, CA (US);
`(75)
`Inventors: Joseph Ruff, Palo Alto, CA (US);
`Robert G. Johnston, Jr., Gainesville,
`Robert G. Johnston, Jr., Gainesville,
`.
`:
`“
`-
`e
`-
`ViewCAUS) Ulrich, Mountain
`º (ºr Ulrich, Mountain
`iew, CA (US)
`?
`(73) Assignee: Apple Computer, Inc., Cupertino, CA
`(73) Assignee: Apple Computer, Inc., Cupertino, CA
`(US)
`(US)
`Subject to any disclaimer, the term of this
`Subject to any disclaimer, the term ofthis
`rec 7styb““ a adiusted under 35
`º ºsº: º, º under 35
`—
`y
`ys:
`-----------
`y
`yS.
`
`(*) Notice:
`(*) Notice:
`
`EP
`EP
`
`(21) Appl. No.: 08/644,360
`(21) Appl. No.: 08/644,360
`(22)
`Filed:
`May10, 1996
`(22) Filed:
`May 10, 1996
`Related U.S. Application Data
`Related U.S. Application Data
`(63) Continuation-in-part of application No. 08/242,963, filed on
`(63) Continuation-in-part of application No. 08/242,963,filed on
`May 16, 1994, application No. 08/243,368, filed on May 16,
`May 16, 1994,application No. 08/243,368,filed on May 16,
`ionsled PakNOBO and application No. 08/243,
`ºº *Nº.” and application No. 08/243,
`2
`MO OD
`MAY
`B02
`ae
`, Illed on May 10, 1994.
`7
`7
`Tint. C0eceeecneseneneceneneeenees GO06F 15/00
`(51)
`(51) Int. Cl.' ................................................ G06F 15/00
`(52) US. C1. cece cescnseeeecnesenseecenseesenecassenees 345/441
`(52) U.S. Cl. ....................................................... 345/441
`(58) Field of Search ................................. 345/432, 433,
`(58) Field of Search oo... 345/432, 433,
`345/333, 334, 335, 441
`345/333, 334, 335, 441
`
`5,485,600 A 1/1996 Joseph et al. ............... 395/500
`5,485,600 A
`1/1996 Joseph et al... 395/500
`5,561,747 A * 10/1996 Crocker et al.
`.....0.... 345/419
`5,561,747 A * 10/1996 Crocker et al. ............. 345/419
`5,600,778 A 2/1997 Swanson et al. ............ 395/500
`5,600,778 A
`2/1997 Swanson etal. ............ 395/500
`
`
`5,603,034 A
`2/1997 Swanson ......cseeeeeeeeeee 395/701
`5,603,034 A 2/1997 Swanson .................... 395/701
`5,675,220 A
`10/1997 Pitt, Iet al.
`.............. 364/578
`5,675,220 A 10/1997 Pitt, III et al. .............. 364/578
`seesesssessseeee- 395/333
`5,675,752 A * 10/1997 Scott et ale
`5,675,752 A * 10/1997 Scott et al. ................. 395/333
`5,754,173 A * 5/1998 Hiura et al. ................ 345/333
`5,754,173 A *
`5/1998 Hiura et al. we. 345/333
`FOREIGN PATENT DOCUMENTS
`FOREIGN PATENT DOCUMENTS
`0 561 517
`9/1993
`() 561 517
`9/1993
`OTHER PUBLICATIONS
`OTHER PUBLICATIONS
`Ying, D., et al., Computer Graphics Forum 4,ArbitraryArea
`Ying, D., et al., Computer Graphics Forum 4, Arbitrary Area
`Filling in a Fast Procedure, pp. 363-370 (1985).
`Filling in a Fast Procedure, pp. 363–370 (1985).
`Shinde, Y., et al., Computer Graphics Forum 5, Algorithms
`Shinde, Y., et al, Computer Graphics Forum 5, Algorithms
`for Handling the Fill Area Primitive of GKS, pp. 105-117
`for Handling the Fill Area Primitive of GKS, pp. 105–117
`(1986).
`(1986).
`-- - - - -
`Gourret, J.P., et al., Irregular Polygon Fill Using Contour
`Gourret, J.P., et al., Irregular Polygon Fill Using Contour
`Encoding, pp. 317–325 (undated).
`. .
`-
`Encoding, pp. 317-325 (undated).
`Roberts, W., et al., Computer Graphics Forum 7, First
`Roberts, W., et al., Computer Graphics Forum 7, First
`Impression of NewS, pp. 39–57 (1988).
`Impression of NeWS,pp. 39-57 (1988).
`Myers, B., et al., ACM vol. 20, No. 4, Creating highly—inter
`Myers, B., et al., ACM vol. 20, No. 4, Creating highly—inter-
`active and Graphical User Interface by Demonstration, pp.
`active and Graphical User Interface by Demonstration, pp.
`249-258 (1986).
`249–258 (1986).
`(List continued on nextpage.)
`(List continued on next page.)
`;
`}
`-
`-
`Primary Examiner—Phu K. Nguyen
`Primary Examiner—Phu K. Nguyen
`(74) Attorney, Agent, or Firm—Burns Doane Swecker &
`(74) Altorney, Agent, or Firm—Burns Doane Swecker &
`Mathis, L.L.P.
`Mathis, L.L.P.
`ABSTRACT
`(57)
`References Cited
`ABSTRACT
`(57)
`References Cited
`Systems and methods for providing a user with increased
`U.S. PATENT DOCUMENTS
`Systems and methods for providing a user with increased
`U.S. PATENT DOCUMENTS
`flexibility and control over the appearance and behavior of
`4.866.638 A
`9/1989 Cosentino et al.
`.......... 364/521
`flexibility and control over the appearance and behavior of
`4.866,638 A.
`9/1989 Cosentino et al. .......... 364/521
`objects on a user interface are described. Sets of objects can
`5,101,364 A
`3/1992 Davenport et al.
`......... 395/152
`objects on a user interface are described. Sets of objects can
`Sioison A 3/1992 Davenport et al. ......... 395/152
`be grouped into themes to provide a user with a distinct
`5,121,478 A 6/1992 Rao .............
`... 395/157
`be grouped into themes to provide a user with a distinct
`5,121,478 A
`6/1992 Rao wesc
`wees 395/157
`overall impression of the interface. These themes can be
`5,179,700 A
`1/1993 Aihara et al. .....
`... 364/578
`overall impression of the interface. These themes can be
`5,179,700 A
`1/1993 Aihara etal. .....
`... 364/578
`switched dynamically by switching pointers to drawing
`5,220,675 A 6/1993 Padawer et al. ............ 395/800
`switched dynamically by switching pointers to drawing
`5,220,675 A
`6/1993 Padaweret al.
`............. 395/800
`procedures or switching data being supplied to these proce
`5,287,514 A 2/1994 Gram ...........
`~ 395/700
`procedures or switching data being supplied to these proce-
`5,287,514 A
`2/1994 Gram...
`395/700
`dures. To buffer applications from the switchable nature of
`5,327,529 A
`7/1994 Fults etal.
`....
`+ 395/155
`dures. To buffer applications from the switchable nature of
`5,327,529 A
`7/1994 Fults et al. ................. 395/155
`graphical user interfaces according to the present invention,
`epi A
`sivtood ve e “ ™
`” sons7
`sº º ?º º º º - - - - - - - - - - - - - - - - †: graphical user interfaces according to the present invention,
`5371844 A
`12/1994 Andrew et al...
`” 395/155
`colors and patterns used to implement the interface objects
`s37.s?a A 12/1994 Andrew et al".
`--- 395/155
`colors and patterns used to implement the interface objects
`
`sºsº. A 2/1995 sie, ºr a .39sis" are abstracted from the interface by, for example, pattern
`5,388,202 A
`2/1995 Squireset al. .............. 395/157
`az@ abstracted from the interface by, for example, pattern
`5,394,521 A 2/1995 Henderson, Jr. et al. .... 395/158
`look-up tables.
`5,394,521 A
`2/1995 Henderson,Jr. et al.
`.... 395/158
`look-uptables.
`5,438,659 A
`8/1995 Notess et al. oe. 395/155
`5,438,659 A 8/1995. Notess et al. ............... 395/155
`5,452,406 A 9/1995 Butler et al. ................ 395/126
`54 Claims, 16 Drawing Sheets
`5,452,406 A
`9/1995 Butler et al. we 395/126
`54 Claims, 16 Drawing Sheets
`
`(56)
`(56)
`
`
`
`
`
`
`
`
`
`
`User
`500
`User
`500
`Interface
`
`Interface
`
`
`
`Window
`Window
`
`510
`Definition
`510
`Definition
`Object
`
`Object
`
`Resource
`Resource
`9 Functions
`Loadin
`Loadin
`550
`9.
`5.30
`Functions
`
`
`
`
`
`
`
`920
`520
`
`
`
`US 6,404,433 B1
`US 6,404,433 B1
`Page 2
`Page 2
`
`OTHER PUBLICATIONS
`OTHER PUBLICATIONS
`Brassel, K., et al., Computer Graphics, vol. 13, No. 2, An
`Brassel, K., et al., Computer Graphics, vol. 13, No. 2, An
`Algorithm For Shading of Regions On Vector Display
`Algorithm For Shading of Regions On Vector Display
`Devices, pp. 126–133 (1979).
`Devices, pp. 126-133 (1979).
`Lipkie, D., et al., Computer Graphics, vol. 16, No. 3, Star
`Lipkie, D., et al., Computer Graphics, vol. 16, No. 3, Star
`Graphics: An Object-Oriented Implementation, pp.
`Graphics: An Object-Oriented
`Implementation,
`pp.
`115–124 (1982).
`115-124 (1982).
`Lieberman, H., Computer Graphics, vol. 19, No. 3, There’s
`Lieberman, H., Computer Graphics, vol. 19, No. 3, There’s
`More to Menu System Than Meets the Screen, pp. 181–190
`More to Menu System Than Meets the Screen, pp. 181-190
`(1985).
`(1985).
`Pavlidis, T., Computer Graphics, vol. 15, No. 3, Contour
`Pavlidis, T., Computer Graphics, vol. 15, No. 3, Contour
`Filling in Raster Graphics, pp. 29–36 (1981).
`Filling in Raster Graphics, pp. 29-36 (1981).
`D. Moskowitz et al., “OS.2 2.1 Unleashed”, pp. 152–157,
`D. Moskowitz et al., “OS.2 2.1 Unleashed”, pp. 152-157,
`193 & 222–229 (1993).
`193 & 222-229 (1993).
`S. Levenson et al., “Now That I Have OS/292.0 On My
`S. Levenson et al., “Now That I Have OS/2®2.0 On My
`Computer, Wha Do I Do Next?”, pp. 11–13 (1992).
`Computer, Wha Do I Do Next?”, pp. 11-13 (1992).
`IBM Technical Disclosure Bulletin, “User Interface Tech
`IBM Technical Disclosure Bulletin, “User Interface Tech-
`nique for Selecting Multiple Interface Themes”, vol. 37, No.
`nique for Selecting Multiple Interface Themes”, vol. 37, No.
`3, pp. 635–638 (Mar. 1994).
`3, pp. 635-638 (Mar. 1994).
`IBM: “OS/2 2.0 Presentation Manager Graphics Program
`IBM: “OS/2 2.0 Presentation Manager Graphics Program-
`ming Guide”, 5–1, 5–5 and 7–1, 7–9 (Mar. 1992).
`ming Guide”, 5-1, 5-5 and 7-1, 7-9 (Mar. 1992).
`Thomas Burge et al., “Advanced Os/2 " Presentation
`Thomas Burge et al., “Advanced Os/2 ™ Presentation
`Manager Programming”, pp. 139–143 (1993).
`Manager Programming”, pp. 139-143 (1993).
`
`McComb et al., Macintosh Graphics, 1985, pp. 49, 50, 107
`McCombetal., Macintosh Graphics, 1985, pp. 49, 50, 107
`and 108.
`and 108.
`Apple Computer Inc., Inside Macintosh, vol. I, 1985, pp.
`Apple Computer Inc., Inside Macintosh, vol. I, 1985, pp.
`1-272 to I-274 and I-297 to I-300.
`I–272 to I–274 and I–297 to I–300.
`Apple Computer Inc., Inside Macintosh, vol. III, 1985, pp.
`Apple Computer Inc., Inside Macintosh, vol. III, 1985, pp.
`III-195 to I1I-200.
`III–195 to III–200.
`Apple Computer Inc., Inside Macintosh, vol. V, 1988, pp.
`Apple Computer Inc., Inside Macintosh, vol. V, 1988, pp.
`V-197 to V-213.
`V—197 to V–213.
`Apple Computer Inc., Inside Macintosh, vol. VI, 1988, pp.
`Apple Computer Inc., Inside Macintosh, vol. VI, 1988, pp.
`17-25.
`17–25.
`Butler, BYTE Magazine, “Turbo Pascal Windowing Sys
`Butler, BYTE Magazine, “Turbo Pascal Windowing Sys-
`tem—TWindows lets you add windows to your application
`tem—TWindowslets you add windowsto your application
`programs,” Feb. 1989, pp. 283–291.
`programs,” Feb. 1989, pp. 283-291.
`Atkinson et al., “Filling by Quadrants or Octants,” 1986, pp.
`Atkinsonetal., “Filling by Quadrants or Octants,” 1986, pp.
`138-155.
`138—155.
`Abram et al., ACM., vol. 19, No. 3, “Efficient Alias—free
`Abram et al., ACM., vol. 19, No. 3, “Efficient Alias—free
`Rendering Using Bit—Masks and Look-Up Tables,” 1985
`Rendering Using Bit-Masks and Look-Up Tables,” 1985
`pp. 53–59.
`pp. 53-59.
`Perlin, ACM., vol. 19, No. 3, “An Image Synthesizer,” 1985,
`Perlin, ACM., vol. 19, No. 3, “An Image Synthesizer,” 1985,
`pp. 287–296.
`pp. 287-296.
`Peachey, ACM., vol. 19, No. 3, “Solid Texturing of Complex
`Peachey, ACM., vol. 19, No. 3, “Solid Texturing of Complex
`Surfaces,” 1985 pp. 279–286.
`Surfaces,” 1985 pp. 279-286.
`* cited by examiner
`* cited by examiner
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jun. 11, 2002
`Jun. 11, 2002
`
`Sheet 1 of 16
`Sheet 1 of 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`
`
`
`
`JUSWNDOP3x9]Yoda]
`
`SERIES589QEtetSSOBeERIS
`
`PALAAAAMIIIILLAD
`S11]‘AojdsippudBuripa3x0}sapinoudVXIV12185
`
`
`
`
`S9IUDdWIODDD}DU}UO!}OJUaUINDOppdaO}
`
`
`
`
`}DY}UOol}DDIjddo|JOWWSDSijxXB]|Yoda
`SJBSN$9]]!Q4ayM‘ySIPUO!}OOI|ddo
`
`
`uDUOapnjour0}ybnoua|joWspupoadiigMOUS
`
`
`SOOUDIIJBI310Ndnyinis
`
`‘uoiypaijddoau}Swe}!2S
`
`ll44ap|o4yax80Q}NO
`paogdiig
`
`lavs0Idd[|“Blo
`
`401D|NI|D4
`
`(me)LJ)
`
`PDdSWA}]
`
`dVNNIW
`
`NNINW
`
`NISOHD
`
`WALINNIN
`
`YOSUND
`
`HNILIV
`
`MOGNIM
`
`MOCGNIM
`
`HILIVNI
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jun. 11, 2002
`Jun. 11, 2002
`
`Sheet 2 of 16
`Sheet 2 of 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`Title Bar
`Title Bar
`
`
`
`Zoom
`box
`
`Scroll
`
`bor Size
`
`FY box
`Scroll bar
`Scroll bar
`FIG. 2A PRIOR ART
`FIG. 2A PRIOR ART
`
`
`
`D untitled 2
`
`Ljuntitled 2
`
`FIG. 2B
`FIG. 2B
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 3 of 16
`
`US 6,404,433 B1
`
`48!GP4OH
`
`$9alOldLJ
`
`[se
`
`Usa1SD7ePosyi9}}e]
`
`josodold
`
`jDID9adS=jaqD]MAAPZAlly
`SMOIAUIT OUI]D|IOg|“SMAIA4OJ
`
`9ZIS
`
`pub0}dousskomly[]
`
`S]UdLULUODMOUS[_]
`LavsolidOFOld
`
`UOISIBAMOUS[]a1Dpmous[_K]
`|@qD|mous[x]
`PulyMoUs—X]
`{994PUDyoo]
`
`JapoayulOjuly¥sSIPMOUSKK]
`pubpese6bo15©a)0U0puByybi0ns@®OghQO
`jUO4
`
`
`SAZISJep|o}a}ojno\09[7]
`
`
`
`SMAIA}S!7
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jun. 11, 2002
`Jun. 11, 2002
`
`Sheet 4 of 16
`Sheet 4 of 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`
`
`pulymousKI]
`
`@}DpMOUsA]
`
`ouryeyeg|:SMaIAJO}}UO4
`
` deOld
`>No.
`2×2×2×2×2×2×2×2
`————————St=RS{inRSIEKaraEatPOWNRINE
`
`??????ZZZZZZZZZZZ
` pasabboisOa0U0pub0}dousskomiy[]pubyybinys©Oat0SMIIAUOOT plub
`
`
`
`
`
`SjUsWUWODMOUS[|]JapbayulOjulY¥SIPMOUS|]
`
`
`UOISJSAMOUS[_]SOZISJaPjO}9}OjND|OD[_]
`jaqo)mousFyO890
`9ZISMOUSJ]S7,©
`
`fetoadsjeqey]Mal,UPRayB
`
`
`
`
`
`
`SMAIASI]
`X&S & NXC & & KN X.
`ee
`SONY
`SONYivOSSS
`
`SRWSOR
`
`
`
`KNXSoo
`
`XX
`
`ZS
`
`N2
`
`KN
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 5 of 16
`
`US 6,404,433 B1
`
`NYALSVA
`
`WS0d0%
`
`|aaHai5iaaaH|aa1aaaaaaaaaaaHa||aaaaa
`
`1391MOS
`
`aLVOMO
`
`
`
`3215nOWSEX)
`
`ONIYMOUSEX]
`
`4¢Old
`
`NIIBOWMAINJI31d
`INO2
`IYOOLJYNSSAVAWIX]ayosHows@UUOU
`
`
`SJNINNODMOHS[X]YA0VIHNIO4NISIOMOLSEX]
`
`NOISY3AMOSEX]S925¥2010431V1NI)DX]
`
`
`
`>TNIOIAOYd|:SMJIAYOI
`aveonsowsoUQg'g
`
`YSI0dy
`
`L
`
`Od8yoo
`
`SNAIANOI
`
`SHIA1511
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jun. 11, 2002
`Jun. 11, 2002
`
`Sheet 6 of 16
`Sheet 6 of 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`APPLICATION
`APPLICATION
`ty
`40
`TT 20
`25
`
`
`25
`
`| |
`ty
`GRAPHICS SUBSYSTEM
`GRAPHICS SUBSYSTEM
`
`10
`10
`
`25
`25
`
`JO
`30
`
`
`
`} |
`t f
`
`FIG 3 ge
`FIG. 3
`5,
`
`APPLICATION
`
`POINTERS
`
`DRAWING PROCEDURES
`
`APPEARANCE MANAGEMENT LAYER
`
`
`
`THEME
`THE ME
`SWITCHING | | RUNTIME
`
`PATTERN || ANIMATION
`TABLES
`/SOUND
`
`
`
`
`
`
`
`
`
`
`
`
`
`50
`
`
`
`54
`
`
`
`40
`
`APPLICATION
`
`Z
`
`\
`
`/ GRAPHICS SUBSYS tº
`
`56
`
`52
`
`FIG. 4
`FIG. 4
`
`48
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 7 of 16
`
`US 6,404,433 B1
`
`
`
`
`
`
`
`
`
`510
`
`
`
`5.30
`
`User
`Interface
`
`
`
`Window
`Definition
`
`520
`
`Resource
`Loading
`Functions
`
`º'
`3
`§
`?
`&\o?
`& Ö S$
`§ & & S & &
`6° W
`SAS N
`NY
`& 3.
`Aft .* & & N
`§ 3 &
`O
`O
`§
`580
`
`584
`
`586
`
`VALUE
`
`590
`
`582
`
`LIMIT
`
`LIMIT
`
`FIG. 5C
`
`588
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 8 of 16
`
`US 6,404,433 B1
`
`
`
`
`
`
`
`560
`
`562
`
`
`
`
`
`
`
`
`
`
`
`
`
`SELECT NEXT
`PART IN LA YOUT
`RESOURCE
`
`MEMBER
`OF CURRENT
`SET2
`
`DRAW PART
`A T SPECIFIED
`BOUNDARIES
`
`568
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 9 of 16
`
`US 6,404,433 B1
`
`
`
`Highlight
`
`Highlight
`
`<ÇE-EX
`
`OLULION
`
`Enable
`
`Highlight
`
`Control Highlight
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 10 of 16
`
`US 6,404,433 B1
`
`Toi Toz Toº Toa Toº Toa Toz Dog Dog
`
`
`
`
`
`
`
`
`
`
`
`s
`LC
`
`27 || autº?ºlº
`
`
`
`FIG. 7
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 11 of 16
`
`US 6,404,433 B1
`
`
`
`UTILITY
`
`61
`
`DRAWING PROC. –
`
`
`
`6.3
`
`SWITCHER -
`
`65
`
`-TS
`DELEGATION
`IMPLEMENTATION 1
`IMPLEMENTATION 2
`
`
`
`67
`
`FIG. 8
`
`140
`
`Theme: | Apple Defoult
`@ Apple Computer, Inc. 1995
`Settings:
`a T-Bockground
`
`
`
`
`
`Sz
`
`
`
`
`
`
`
`
`
`
`
`<Preview or module settings
`here
`
`|
`|
`
`Selection Color
`
`Screen Sover
`
`
`
`
`
`
`
`
`
`
`
`
`
`142
`
`FIG 11
`
`144
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 12 of 16
`
`US 6,404,433 B1
`
`
`
`
`
`
`
`}SI]40}29/)3/QD{204d
`
`6Ul
`
`rg
`
` (204UOlsUulfag
`40uol}o0dd\y/)
`
`QO189yoIlld
`
`
`
`uol}/UYaguonUyag
`
`
`
`ajqo,dnyoo7
`
`U9}}O¢U19}}0g
`
`UJI}JOGaway]
`
`
`
`2p0d}294III4—
`
`“
`
`
`
`jodx=pulyXOPUIIOjO)¥
`
`99d$usa}}0qg
`
`
`
`(Xapuysojojy)JIIYIIlJAWIAY]
`
`OME!
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 13 of 16
`
`US 6,404,433 B1
`
`OLDid69
`
`
`
`}SI]40]I9/3/GO]204d
`
`
`
`
`
`xR OS
`
`4ouo1021ddy)
`
`
`
`(204duo}}IULJag
`
`7%
`Ox,
`YOe
`%O95
`oe
`Se
`x?ROO
`n
`Os
`oe
`On
`Se
`Y
`orERE
`CH
`
`axo
`
`89
`
`
`
`239dUs9}}Og
`
`X9PUsIOjODy
`
`
`
`UO}{UOUI}{ULI
`
`
`
`ajgqo,dnyoo7
`
`U19}}0gUs9}]0g
`
`
`Ut9}]Dqaway]
`
`
`
`J0qXId930349
`
`0}usnjasPud
`
`
`
`0g
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 14 of 16
`
`US 6,404,433 B1
`
`Theme
`Supplied
`Definitions
`
`
`
`69 º | Iº
`
`Appearances
`CDE V
`Appearances
`Manager
`
`Fills, Frames, Pen
`Pattern Tables
`
`Theme Preferences
`Theme Property List
`Theme Data Resources
`System Icons to override
`
`FIG. 12
`
`72
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 15 of 16
`
`US 6,404,433 B1
`
`OPEN NEW
`THEME
`
`CREATE THEME INFO
`RECORD
`
`CREATE NEW
`RESOURCE CHAIN
`
`CREATE NEW
`THEME'S RESOURCE
`CHAIN
`
`
`
`CONNECT TO NEW
`THEME'S RUNTIME
`CODE
`
`LOAD NEW THEME'S
`PROPERTY LIST
`
`LOAD NEW THEME'S
`LOOK–UP TABLE
`
`BUILD TRANSI TION
`POINTER TABLE
`
`INITIALIZE NEW
`THE ME
`
`100
`
`102
`
`104
`
`106
`
`108
`
`110
`
`112
`
`114
`
`END
`
`FIG. 13
`
`
`
`U.S. Patent
`
`Jun. 11, 2002
`
`Sheet 16 of 16
`
`US 6,404,433 B1
`
`SWITCH
`THEMES
`
`RELEASE OLD
`THE ME
`
`PRESENT
`TRANSITION EFFECT
`
`SWITCH OLD
`THEME'S RESOURCE
`CHAIN
`
`SWITCH OLD
`THEME'S RESOURCE
`CHAIN IN
`
`128
`
`CALL DEALLOCATE
`FUNCTION
`
`1,30
`
`CALL DRAWING
`PROCS WITH
`DEALLOCATE
`
`
`
`DISPOSE OF OLD
`TRANSITION POINTER
`TABLE
`
`DISPOSE OF OLD
`PATTERN TABLE
`
`DISPOSE OF OLD
`PROPERTY LIST
`
`132
`
`134
`
`136
`
`CLOSE RESOURCE
`CHAIN
`
`1,38
`
`DISPOSE OF OLD
`THEMES INFO RECORD) \;40
`
`116
`
`
`
`
`
`118
`
`
`
`120
`
`
`
`
`
`
`
`
`
`122
`
`
`
`124
`
`SET NEW THEME
`INFO RECORD TO THE
`CURRENT RECORD
`
`SWITCH NEW
`THEME'S RESOURCE
`CHAIN IN
`
`
`
`
`
`126
`
`
`
`CALL DRAWING
`PROCS WITH
`INITIALIZE
`
`FIG. 14
`
`END
`
`FIG. 15
`
`
`
`1
`DATA-DRIVEN LAYOUT ENGINE
`
`RELATED APPLICATIONS
`This application is a continuation-in-part of U.S. patent
`application Ser. No. 08/242,963 entitled “Pattern and Color
`Abstraction in a Graphical User Interface”, U.S. patent
`application Ser. No. 08/243,368 entitled “Switching
`Between Appearance/Behavior Themes in Graphical User
`Interfaces” now U.S. Pat. No. 5,554,746 and U.S. patent
`application Ser. No. 08/243,327 entitled “A System and
`Method for Customizing Appearance and Behavior of
`Graphical User Interfaces”, all of which were filed on May
`16, 1994 and all of which are hereby incorporated by
`reference.
`
`COPYRIGHT NOTICE
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction of the patent disclosure as it appears in the
`Patent and Trademark Office patent file or records, but
`otherwise reserves all copyright rights whatsoever.
`
`BACKGROUND
`The present invention relates generally to graphical user
`interfaces for computer systems. More particularly, the
`present invention relates to systems and methods for inter
`facing applications and operating systems which provide for
`flexible customization of graphical user interfaces.
`The evolution of the computer industry is unparalleled in
`its rate of growth and complexity. Personal computers, for
`example, which began as little more than feeble calculators
`with limited memory, tape-driven input and monochrome
`displays are now able to tackle almost any data processing
`task. While this meteoric increase in power was almost
`sufficient to satisfy the demand of application programmers
`and end users alike, the corresponding increase in complex
`ity created an ease-of-use problem which the industry was
`somewhat slower in solving. Thus, designers were faced
`with a new challenge: to harness this computing power in a
`form usable by even those with relatively little computer
`training to smooth the transition of other industries into a
`computer-based information paradigm.
`As a result, in the early to mid-1980’s many new I/O
`philosophies, such as “user friendly”, “WYSIWYG’’ and
`“menu driven” came to the forefront of the industry. These
`concepts are particularly applicable to microcomputers, also
`known as personal computers, which are intended to appeal
`to a broad audience of computer users, including those who
`previously feared and mistrusted computers. An important
`aspect of computers which employ these concepts was, and
`continues to be, the interface which allows the user to input
`commands and data and receive results, which is commonly
`referred to as a graphical user interface (GUI).
`One type of GUI display is based on a visual metaphor
`which uses a monitor screen as a work surface called a
`“desktop” where documents are presented in relocatable
`regions termed “windows”. The user interacts with the
`computer by, for example, moving objects on the desktop,
`choosing commands from menus, and manipulating window
`controls, such as checkboxes and scroll bars. An exemplary
`desktop screen is reproduced as FIG. 1.
`The success of this type of interface is evident from the
`number of companies which have emulated the desktop
`environment. Even successful concepts, however, must con
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,404,433 B1
`
`2
`tinually be improved in order to keep pace with the rapid
`growth in this industry. The advent of multimedia, especially
`CD-ROM devices, has provided vast quantities of secondary
`storage which have been used to provide video capabilities,
`e.g., live animation and video clips, as regular components
`of application displays. With these new resources at their
`disposal, application designers, and others, desire more and
`more control over the appearance of the display, including
`the desktop environment and, in particular, objects on the
`desktop.
`Windows are one example of desktop objects which can
`be virtually any size, shape, or color. Some standard types of
`windows are commonly predefined for the interface
`including, for example, a document window and a dialog
`box. One example of a standard for a document window is
`illustrated in FIG. 2A. Each document window which con
`forms to this standard has a title bar with a title drawn in a
`system-defined font and color. Active document windows
`can also have controls as illustrated in FIG. 2A, for example,
`a close box, a zoom box, a size box, and scroll bars. These
`standard types of windows (as well as other standard desk
`top objects) are beyond the reach of users who wish to alter
`the appearance and/or behavior.
`Accordingly, application developers can define their own
`nonstandard window types as desired, although each non
`standard window requires a relatively large block of
`memory. Further, even these nonstandard window types
`provide only limited flexibility and control over the appear
`ance and behavior of desktop objects in that they are
`application-specific and do not present a consistent interface
`across all applications, i.e., if three different applications are
`running, each might present a different “look” on desktop.
`Once again, the user has virtually no control over the
`appearance and/or behavior of these nonstandard window
`objects.
`Since the window format, including the appearance,
`behavior and function of standard windows and window
`parts, is known a priori to applications which were designed
`for such conventional systems, these applications are written
`to take advantage of such knowledge. As seen in FIG. 3,
`suppose, for example, that an application 10 desires to draw
`a rectangle in the color of the title bar (beige, in this
`example) in a window (not shown on the desktop). The
`application assumes knowledge of the color of the title bar
`when using predefined standard window definitions 25 and,
`if this application uses window definitions created by the
`application itself, the application will have actual knowledge
`of colors defined by those windows. Accordingly, the appli
`cation will simply send a command to the interface instruct
`ing that a beige rectangle be drawn in the window.
`Each standard window, as well as any nonstandard
`window, conventionally has a corresponding window defi
`nition 25. The window definition 25 includes all of the data
`necessary to define the window. Looking at the active
`window illustrated in FIG. 1, data included in the window
`definition 25 for such an active window would include, for
`example, the size of the window, the relative location of the
`close box and zoom box in the upper lefthand and righthand
`corners, respectively, the number of parallel lines and their
`locations relative to the close box and the zoom box, and the
`upper boundary of the window and all of the other defining
`features of that particular window. The application supplies
`the variable parameters such as the location of the window
`on the desktop interface and, perhaps, the colors and/or fonts
`to be used for the text and/or figures in the window. As one
`can imagine, the window definitions can include a large
`amount of data and, therefore, can require a large amount of
`memory for each definition.
`
`
`
`US 6,404,433 B1
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`3
`In addition to the amount of memory used to create
`non-standard window definitions, another problem with this
`conventional method of providing variety of appearance in
`the graphical user interface is the lack of a consistent
`appearance between objects drawn on the desktop by dif
`ferent applications. With multitasking i.e., multiple applica
`tions running simultaneously on a desktop, it is now com
`mon for users to simultaneously run multiple applications
`each of which has its own window on the desktop. However,
`if each application uses its own combination of standard and
`non-standard window definitions that result in each appli
`cation having its own appearance and behavior. The dis
`similarity in appearance and behavior between applications
`can be annoying and confusing to a user.
`Accordingly, it would be desirable to allow application
`designers and application users to have additional flexibility
`and greater control over the appearance and behavior of
`desktop objects and individual controls for those objects.
`SUMMARY
`According to exemplary embodiments of the present
`invention, an improved visual appearance can be provided to
`GUIs by providing a layout engine which provides a data
`driven facility to customize the appearance and behavior of
`the desktop. This layout engine can, for example, be
`designed to receive commands from definition objects and
`provide instructions to the graphic subsystem which actually
`writes to the display. In this way, a level of abstraction is
`provided between the client and the system so that customi
`zation can be facilitated without requiring the client to have
`a detailed knowledge of the interface environment, which
`may be constantly changing.
`According to exemplary embodiments of the present
`invention, data structures for the layout resources are
`designed to allow the layout engine to operate efficiently.
`For example, a layout resource is specified so that the parts
`are redrawn correctly when the parent rectangle changes
`size. This type of functionality is provided by layout bound
`aries. The layout boundaries for each part identified in the
`layout resource can be placed on the display relative to a
`parent shape, e.g., a rectangle. When the layout engine is
`called to either draw or create a region, it first places the
`boundaries stored in the data structures associated with the
`layout resource. The location of the boundary can be cal
`culated and stored so that when a part is drawn relative to the
`boundary, the part can be drawn on the screen in the right
`place.
`Once the boundaries are placed, then the parts list is
`traversed by the layout engine. The layout engine checks to
`see if the part is a member of the set which is currently being
`drawn. If that part is not a member of the set, which can
`occur since layout resources can be used to draw different
`types of window objects, for example, then the listed part is
`not drawn. If the part is a member of the set being drawn, the
`attributes provided within the layout resource data structure
`for that part are checked to see if the part is valid. If the part
`is a member of the correct set and it is valid, then the part
`is drawn at the position specified by its previously placed
`boundaries.
`A significant advantage of the data structures described
`above is that they are organized as a list of boundary
`parameters and part parameters which need only be tra
`versed once by the layout engine to create the associated
`object. This provides benefits in terms of execution speed
`when rendering objects on the user interface.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The foregoing, and other, objects, features and advantages
`of the present invention will be more readily understood by
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`those skilled in the art upon reading the following detailed
`description in conjunction with the drawings in which:
`FIG. 1 shows a conventional desktop screen;
`FIG. 2A shows a conventional document window;
`FIG. 2B illustrates a document window according to an
`exemplary embodiment of the present invention;
`FIG. 2C illustrates a conventional user interface;
`FIG. 2D illustrates the user interface of FIG. 2C operating
`under a theme according to an exemplary embodiment of the
`present invention;
`FIG. 2E illustrates the user interface of FIG. 2C operating
`under a second theme according to another exemplary
`embodiment of the present invention;
`FIG. 3 illustrates a functional overview of a system for
`customizing a user interface according to an exemplary
`embodiment of the present invention;
`FIG. 4 illustrates an exemplary architecture showing
`theme and application interaction according to an exemplary
`embodiment of the present invention;
`FIG. 5A illustrates a block diagram representation of
`various layers used to provide a user interface according to
`an exemplary embodiment of the present invention;
`FIG. 5B illustrates the use of boundaries according to an
`exemplary embodiment of the present invention;
`FIG. 5C is another illustration which describes the use of
`boundaries according to exemplary embodiments of the
`present invention;
`FIG. 5D depicts variations in rendering a title bar for
`different window size conditions;
`FIG. 5E is a flowchart used to describe operation of an
`exemplary layout engine according to an exemplary embodi
`ment of the present invention;
`FIG. 6 is a state diagram used to illustrate transitions of
`an interface object part according to an exemplary embodi
`ment of the present invention;
`FIG. 7 is an exemplary matrix used to describe behavior
`transitions according to exemplary embodiments in the
`present invention;
`FIG. 8 is a block diagram illustrating inheritance accord
`ing to an exemplary embodiment of the present invention;
`FIG. 9 is a block diagram which illustrates pattern
`abstraction according to an exemplary embodiment of the
`present invention;
`FIG. 10 is a block diagram which also illustrates pattern
`abstraction, but according to another exemplary embodi
`ment of the present invention;
`FIG. 11 illustrates an exemplary appearance control panel
`according to an exemplary embodiment of the present
`invention;
`FIG. 12 illustrates an interaction between an appearance
`management layer, an application, and a theme according to
`an exemplary embodiment of the present invention; and
`FIGS. 13–15 are flowcharts which illustrate exemplary
`methods used to switch themes according to exemplary
`embodiments of the present invention.
`DETAILED DESCRIPTION
`The present invention is described herein by way of
`exemplary, illustrative embodiments, some of which use the
`Macintosh(B) computer system as a reference for explaining
`the present invention. However, those skilled in the art will
`readily appreciate that systems and methods according to the
`present invention can be applied to any type of display
`
`
`
`25
`
`5
`system having a user interface. Further, while window
`objects are used to illustrate how exemplary embodiments of
`the present invention affect the appearance and behavior of
`desktop objects in general, those skilled in the art will
`recognize that the present invention can be used to control
`the appearance and behavior of any desktop object
`including, for example, icons, menus, lists, control elements,
`cursors, menu bars, etc.
`Windows can be characterized in a variety of ways. For
`example, a window can be characterized by the shape, size
`and color of the window as well as by the location, size,
`shape and color of its component parts, e.g., those parts
`identified in FIG. 2A. These attributes of a window and
`window parts are categorized herein as a window’s appear
`ance attributes. The window and its parts also have associ
`ated therewith one or more functions which are invoked
`when a u