throbber

`
`
`
`
`
`Ex. 1022
`EX. 1022
`
` US Patent No. 6,404,433 (“Ruff”)
`US Patent No. 6,404,433 (“Ruff”)
`
`
`
`
`
`

`

`USOO6404433B1
`US006404433B1
`United States Patent
`United States Patent
`(10) Patent No.:
`(12)
`US 6,404,433 B1
`(10) Patent N0.:
`(12)
`US 6,404,433 B1
`Ruff et al.
`(45) Date of Patent:
`Jun. 11, 2002
`
`(45) Date of Patent:
`Jun. 11, 2002
`Ruff et al.
`
`(54) DATA-DRIVEN LAYOUT ENGINE
`(54) DATA-DRIVEN LAYOUT ENGINE
`
`(75) Inventors: Joseph Ruff, Palo Alto, CA (US);
`Inventors: Joseph Rufi', Palo Alto,
`Robert G. Johnston, Jr., Gainesville,
`Robert G_ Johnston, Jr” Gainesvflle’
`.
`-
`~
`-
`e
`-
`EIL(USC)’AR829" Ulmh’ Mountam
`º (ºr Ulrich, Mountain
`lew’
`(
`)
`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 of this
`º ºsº: º, º under 35
`ginseng 1:52;???6% Cara aSJuSted under 35
`-----------
`y
`yS.
`'
`'
`'
`y
`y '
`
`(*) Notice:
`( * ) Notice:
`
`EP
`EP
`
`(21) Appl. No.: 08/644,360
`(21) APPL N05 (ls/6443360
`(22)
`Filed:
`May 10, 1996
`(22) Filed:
`May 10, 1996
`Related U.S. Application Data
`Related US. 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,
`ºº *Nº.” and application No. 08/243,
`111021” Pai/INoigfifgéZ‘ma and apphcatlon NO- 08/243:
`, Illed on May 10, 1994.
`7
`9
`e 0“
`ay
`9
`'
`7
`(51) Int. Cl.' ................................................ G06F 15/00
`Int. Cl.
`.............................................. .. G06F 15/00
`(51)
`(52) US. Cl.
`..................................................... .. 345/441
`(52) U.S. Cl. ....................................................... 345/441
`(58) Field of Search ................................. 345/432, 433,
`(58) Field of Search ............................... .. 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.
`........... .. 345/419
`5,561,747 A * 10/1996 Crocker et al. ............. 345/419
`
`5,600,778 A 2/1997 Swanson et al. ............ 395/500
`A
`Swanson et al.
`5,603,034 A 2/1997 Swanson .................... 395/701
`5,603,034 A
`2/1997 Swanson ............... .. 395/701
`
`5,675,220 A
`10/1997 Pitt, 111 et al.
`364/578
`5,675,220 A 10/1997 Pitt, III et al. .............. 364/578
`5,675,752 A * 10/1997 Scott et al.
`................. 395/333
`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. ................ 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, Arbitrary Area
`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, JP, et al., Irregular Polygon F111 Us1ng 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, Flrst
`Impression of NewS, pp. 39–57 (1988).
`ImpreSSiOH 0f 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 next page.)
`(List continued on next page.)
`.
`.
`-
`-
`Primary Examiner—Phu K. Nguyen
`Primary Examiner—Pm K~ Nguyen
`(74) Attorney, Agent, or Firm—Burns Doane Swecker &
`(74) Attorney, 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 a1.
`........ N 364521
`objects on a user interface are described. Sets of objects can
`Sioison A 3/1992 Davenport et al. ......... 395/152
`objects on a user interface are described. Sets of objects can
`5:101:364 A
`3/1992 Davenport et al.
`N
`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 .............
`... 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 et al. .....
`... 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 Padawer et a1.
`..
`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 et al. ................. 395/155
`dures. To buffer applications from the switchable nature of
`5’327’529 A
`7/1994 Fun? et al‘
`395/155
`2
`66: :11’
`graphical user interfaces according to the present invention,
`sº º ?º º º º - - - - - - - - - - - - - - - - †: graphical user interfaces according to the present invention,
`s37.s?a A 12/1994 Andrew et al".
`--- 395/155
`colors and patterns used to implement the interface objects
`5’371’844 A
`12/1994 Andrew M £11"" "
`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 Squires et al.. I: ....... .2 395/157
`are 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-up tables
`5,438,659 A
`8/1995 Notess et al.
`............. .. 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. ................ 395/126
`54 Claims, 16 Drawing Sheets
`
`(56)
`(56)
`
`
`
`
`
`
`User
`500
`
`User
`500
`Interface
`Interface
`
`
`Window
`
`
`Window
`Definition
`510
`570
`Definition
`
`Object
`Object
`
`
`Resource
`Resource
`Loadin
`Load/n
`9 Functions
`550
`9.
`5.30
`Functions
`
`
`
`
`
`
`
`520
`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/2®2.0 On My
`S. Levenson et al., “Now That I Have OS/292.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 TM Presentation
`Manager Programming”, pp. 139–143 (1993).
`Manager Programming”, pp. 139—143 (1993).
`
`McComb et al., Macintosh Graphics, 1985, pp. 49, 50, 107
`McComb et al., 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.
`I—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 III—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—TWindows lets you add Windows to your application
`programs,” Feb. 1989, pp. 283–291.
`programs,” Feb. 1989, pp. 283—291.
`Atkinson et al., “Filling by Quadrants or Octants,” 1986, pp.
`Atkinson et al., “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
`US. Patent
`
`Jun. 11, 2002
`Jun. 11,2002
`
`Sheet 1 of 16
`Sheet 1 0f 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`
`
`
`
`E0838$283
`
`
`
`85cozoozaqo__oEmo2#6208
`
`
`
`
`
`m;:xofimfiucomcEuwt3:mouse.
`
`
`5%__<EEmm
`
`mm
`
`
`
`mmEcanoooSF:coroEmEsoou8838mm:32:Ems;.xmficozoozaa.
`
`
`
`
`
`co:009:2:850:05__oE..
`
`
`
`988532m
`
`80:89me8029:55
`
`81mew:
`
`ED
`
`.cozoBEQo9t.
`
`25:
`
`Ex«SE5.muP.‘
`
`683200
`xoonqobm
`
`2E528
`
`0m033885Howamaw/‘o
`
`&Sm32m:
`
`32m:
`
`ZMMQIQ
`
`SEK.32m:
`
`ksmkbb
`
`MSE0.x
`
`EOQZNE
`
`95,3
`
`x;095$:
`
`m:E9«$2.
`
`

`

`U.S. Patent
`US. Patent
`
`Jun. 11, 2002
`Jun. 11,2002
`
`Sheet 2 of 16
`Sheet 2 0f 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`Title Bar
`Tit/e Bar
`
`
`
`Scroll bar
`Scroll bar
`FIG. 2A PRIOR ART
`FIG, 2A PRIOR ART
`
`
`
`D untitled 2
`Duntitled 2
`
`
`
`FIG. 2B
`FIG. 23
`
`

`

`US. Patent
`
`Jun. 11,2002
`
`Sheet 3 0f 16
`
`US 6,404,433 B1
`
`8xmaEDI
`
`Domfmfiq—
`
`EBmom
`
`683$
`
`:8:
`
` SE«SEONNEK
` :03 383ioc:o_on_“25$Lou.E0;
`
`
`
`EchEEoo265m_H_Lmvom;E82xmfi265mEco_m$>265mBmmfim$2832360_H_
`632265mEE:32m.mmuma$555:
`E26Brom@822_H_25Egobm©DD13G@503
`
`
`8%261m_N_
`
`_omgvcox004
`
`
`
`
`
`668m3322>:82:
`
`EB853onODDDG
`
`

`

`U.S. Patent
`US. Patent
`
`Jun. 11, 2002
`Jun. 11,2002
`
`Sheet 4 of 16
`Sheet 4 0f 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`Bun265mB0©0EssocmEWWW$qu®4V0vs».§0a«A258590ngGD2588%£22D25Eggm©aofa952:8A
`
`6263WEEM;
`
`:28?265Dmoum$2882860_H_
`
`>No.
`??????ZZZZZZZZZZZ
`3%}.
`mmas00v4-
`
`
`?Q
`
`‘
`
`4:
`$1
`$0
`“1
`$$
`S
`9.$3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`33¢mESQ.—.Sm;fiflm2E@
`
`QN6E
`
`2×2×2×2×2×2×2×2
`“44‘0444“44“44“44“44“44“4
`
`
` vchEEoo265mD626;ESEYEU265mm
`
`N2
`
`KN
`
`X&S & NXC & & KN X.
`"s
`
`
`
`
`
`

`

`US. Patent
`
`Jun. 11,2002
`
`Sheet 5 0f 16
`
`US 6,404,433 B1
`
`\ZmEEL
`
`IIInIIIIIIInIIInIIIIIIIIIIInIIIIIIII
`
`ml
`
`EMS/m. MN.GE
`9%9L<zm$232m—
`
`
`P2320
`
`$93262m
`
`92:303Emfim:65E
`
`SEES263Evac/m:7:87:V56302m.&293w;germEmmfim$39Efsjém.
`
`&ag©©g
`
`2.1.».s
`
`2%.as..“a.
`1.....uni‘..
`
`
`
`D§§>QE“mam;Mo“.ES
`
`9%$3230aaaa9%£213aaaDawas23
`
`«E:$3
`
`

`

`U.S. Patent
`US. Patent
`
`Jun. 11, 2002
`Jun. 11,2002
`
`Sheet 6 of 16
`Sheet 6 0f 16
`
`US 6,404,433 B1
`US 6,404,433 B1
`
`APPLICATION
`APPLICA TION
`TT 20
`25
`I
`20
`25
`f
`
`
`
`10
`70
`
`25
`25
`
`25
`
`25
`
`
`| |
`1 I
`GRAPHICS SUBSYSTEM
`GRAPHICS SUBS Y5 TEM
`
`
`
`} |
`I I
`
`JO
`30
`
`
`
`
`
`
`
`
`
`
`
`APPLICATION
`APPLICA TION
`
`
`
`POINTERS
`POIN TERS
`
`DRAWING PROCEDURES
`DRA WING PROCEDURES
`
`
`
`APPEARANCE MANAGEMENT LAYER
`APPEARANCE MANAGEMENT LA YER
`
`
`
`PATTERN || ANIMATION
`THEME
`THE ME
`PA TTERN
`ANIMA TI0N
`THEME
`THEME
`TABLES
`/SOUND
`SWITCHING | | RUNTIME
`TABLES
`/50UND
`RUN TIME
`SWITCHING
`
`— —
`Z
`\
`
`
`
`50
`50
`
`
`
`
`
`FIG 3 ge
`FIG. 3
`38
`
`
`
`
`
`
`
`
`
`/ GRAPHICS SUBSYS tº
`' GRAPHICS SUBSYSTEM
`
`
`
`
`
`56
`56
`
`52
`52
`
`FIG. 4
`FIG. 4
`
`48
`48
`
`54
`54
`
`40
`40
`
`

`

`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
`
`

`

`US. Patent
`
`Jun. 11,2002
`
`Sheet 12 0f 16
`
`US 6,404,433 B1
`
`
`oQOEmtoQ V\\\\\\\\\\\s
`
`.6totootodqc
`
`
`
`«QED.35:.ch
`
`
`
`«EncrsogétmmEmEmE
`
`em
`

`
`Emtol
`
`EEEEQ
`
`.6:SU§
`
`E3on
`
`55:ch
`
`mEEmoi
`
`m.GE
`
`Nam
`
`3%H.0:.&as
`
`xmbtfigobx
`
`$3onmEmE
`
`3%:$633
`
`Wm
`
`
`
`
`
`
`

`

`US. Patent
`
`Jun. 11,2002
`
`Sheet 13 0f 16
`
`US 6,404,433 B1
`

`

`
`mm
`
`.6totoutquc
`
`
`
`«98¢coc§mq
`
`
`
`D«xmnctsogéquitommwmsms
`
`m6
`
`—whenmeimo
`
`3%
`
`0»kawwkDEB
`
`
`
`xmbtfigoox8am53Nom
`
`Nb
`
`9atg
`
`
`
`5,0309.Emtul
`
`
`
`5:3ch3:3ch
`
`
`
`km:8.6m:$on09$
`
`53onmEmE
`
`"0389333
`
`
`
`
`
`
`
`
`

`

`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 user provides an associated input, e.g., clicking on a
`close button or box causes the window to close. These are
`termed functional attributes.
`A third category of attr

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket