home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Mops source / Toolbox classes / View < prev    next >
MacBinary  |  1998-01-15  |  17.3 KB  |  [TEXT/MSET]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: View

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file TTComp archive data, binary, 1K dictionary default (weak)
99% file MacBinary II, inited, Thu Jan 15 19:43:59 1998, modified Thu Jan 15 19:43:59 1998, creator 'MSET', type ASCII, 17118 bytes "View" , at 0x435e 381 bytes resource default (weak)
98% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-1K) default (weak)
16% TrID MacBinary 2 default (weak)
0% TrID Sybase iAnywhere database files default (weak)
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MSET]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 04 56 69 65 77 00 00 | 00 00 00 00 00 00 00 00 |..View..|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 53 45 | 54 01 00 00 00 00 00 00 |.TEXTMSE|T.......|
|00000050| 00 00 00 00 00 42 de 00 | 00 01 7d b0 e4 5d cf b0 |.....B..|..}..]..|
|00000060| e4 5d cf 00 00 08 00 00 | 00 00 00 00 00 00 00 00 |.]......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 5a f3 00 00 |........|....Z...|
|00000080| 5c 20 56 49 45 57 20 63 | 6c 61 73 73 2e 0d 0d 5c |\ VIEW c|lass...\|
|00000090| 20 4f 63 74 20 39 31 09 | 6d 72 68 09 49 6e 69 74 | Oct 91.|mrh.Init|
|000000a0| 69 61 6c 20 76 65 72 73 | 69 6f 6e 2e 0d 5c 20 4d |ial vers|ion..\ M|
|000000b0| 61 79 20 39 32 09 6d 72 | 68 09 53 75 70 70 6f 72 |ay 92.mr|h.Suppor|
|000000c0| 74 20 66 6f 72 20 22 6e | 65 77 2d 73 74 79 6c 65 |t for "n|ew-style|
|000000d0| 22 20 63 6f 6e 74 72 6f | 6c 73 0d 5c 20 46 65 62 |" contro|ls.\ Feb|
|000000e0| 20 39 33 09 6d 72 68 09 | 41 64 64 65 64 20 49 44 | 93.mrh.|Added ID|
|000000f0| 4c 45 3a 20 6d 65 74 68 | 6f 64 0d 5c 20 53 65 70 |LE: meth|od.\ Sep|
|00000100| 74 20 39 33 09 6d 72 68 | 09 45 6e 68 61 6e 63 65 |t 93.mrh|.Enhance|
|00000110| 64 20 61 6c 6f 6e 67 20 | 6c 69 6e 65 73 20 6f 66 |d along |lines of|
|00000120| 20 4e 65 77 74 6f 6e 20 | 76 69 65 77 20 73 63 68 | Newton |view sch|
|00000130| 65 6d 65 0d 5c 20 4f 63 | 74 20 39 36 09 6d 72 68 |eme.\ Oc|t 96.mrh|
|00000140| 20 53 70 6c 69 74 20 63 | 6c 69 63 6b 3a 20 69 6e | Split c|lick: in|
|00000150| 74 6f 20 76 69 65 77 5f | 66 6f 72 5f 63 6c 69 63 |to view_|for_clic|
|00000160| 6b 3f 3a 20 61 6e 64 0d | 5c 09 09 09 09 61 20 73 |k?: and.|\....a s|
|00000170| 69 6d 70 6c 65 72 20 63 | 6c 69 63 6b 3a 0d 5c 20 |impler c|lick:.\ |
|00000180| 4f 63 74 20 39 37 09 6d | 72 68 09 55 70 64 61 74 |Oct 97.m|rh.Updat|
|00000190| 65 64 20 66 6f 72 20 50 | 6f 77 65 72 4d 6f 70 73 |ed for P|owerMops|
|000001a0| 2e 0d 0d 0d 28 2a 0d 56 | 49 45 57 20 69 73 20 74 |....(*.V|IEW is t|
|000001b0| 68 65 20 67 65 6e 65 72 | 69 63 20 73 75 70 65 72 |he gener|ic super|
|000001c0| 63 6c 61 73 73 20 66 6f | 72 20 65 76 65 72 79 74 |class fo|r everyt|
|000001d0| 68 69 6e 67 20 74 68 61 | 74 20 63 61 6e 20 62 65 |hing tha|t can be|
|000001e0| 20 64 72 61 77 6e 20 69 | 6e 20 61 0d 77 69 6e 64 | drawn i|n a.wind|
|000001f0| 6f 77 2e 20 20 46 6f 72 | 20 65 78 61 6d 70 6c 65 |ow. For| example|
|00000200| 2c 20 61 6c 6c 20 63 6f | 6e 74 72 6f 6c 73 20 61 |, all co|ntrols a|
|00000210| 72 65 20 6e 6f 77 20 73 | 75 62 63 6c 61 73 73 65 |re now s|ubclasse|
|00000220| 73 20 6f 66 20 76 69 65 | 77 2e 0d 49 6e 20 4d 6f |s of vie|w..In Mo|
|00000230| 70 73 20 61 20 57 69 6e | 64 6f 77 20 69 74 73 65 |ps a Win|dow itse|
|00000240| 6c 66 20 69 73 6e 27 74 | 20 61 20 76 69 65 77 2c |lf isn't| a view,|
|00000250| 20 62 75 74 20 63 6f 6e | 74 61 69 6e 73 20 6f 6e | but con|tains on|
|00000260| 65 20 73 70 65 63 69 61 | 6c 20 76 69 65 77 0d 28 |e specia|l view.(|
|00000270| 74 68 65 20 43 6f 6e 74 | 56 69 65 77 29 20 77 68 |the Cont|View) wh|
|00000280| 69 63 68 20 63 6f 76 65 | 72 73 20 74 68 65 20 77 |ich cove|rs the w|
|00000290| 68 6f 6c 65 20 64 72 61 | 77 69 6e 67 20 61 72 65 |hole dra|wing are|
|000002a0| 61 20 6f 66 20 74 68 65 | 20 77 69 6e 64 6f 77 2e |a of the| window.|
|000002b0| 0d 0d 49 6e 20 74 68 65 | 20 76 69 65 77 2c 20 77 |..In the| view, w|
|000002c0| 65 20 68 61 76 65 20 61 | 6e 20 69 76 61 72 20 77 |e have a|n ivar w|
|000002d0| 68 69 63 68 20 69 73 20 | 61 20 72 65 63 74 2c 20 |hich is |a rect, |
|000002e0| 56 69 65 77 52 65 63 74 | 2e 20 20 54 68 69 73 20 |ViewRect|. This |
|000002f0| 69 73 20 74 68 65 0d 72 | 65 63 74 61 6e 67 6c 65 |is the.r|ectangle|
|00000300| 20 64 65 66 69 6e 69 6e | 67 20 74 68 65 20 6f 75 | definin|g the ou|
|00000310| 74 65 72 20 62 6f 75 6e | 64 61 72 79 20 6f 66 20 |ter boun|dary of |
|00000320| 74 68 69 73 20 76 69 65 | 77 2c 20 72 65 6c 61 74 |this vie|w, relat|
|00000330| 69 76 65 20 74 6f 20 74 | 68 65 0d 63 75 72 72 65 |ive to t|he.curre|
|00000340| 6e 74 20 67 72 61 66 50 | 6f 72 74 2e 20 20 54 68 |nt grafP|ort. Th|
|00000350| 69 73 20 72 65 63 74 20 | 69 73 20 75 73 65 64 20 |is rect |is used |
|00000360| 62 79 20 74 68 65 20 76 | 69 65 77 20 74 6f 20 73 |by the v|iew to s|
|00000370| 65 74 20 74 68 65 20 63 | 6c 69 70 0d 72 65 67 69 |et the c|lip.regi|
|00000380| 6f 6e 20 61 6e 64 20 74 | 68 65 20 63 6f 6f 72 64 |on and t|he coord|
|00000390| 69 6e 61 74 65 20 6f 72 | 69 67 69 6e 20 62 65 66 |inate or|igin bef|
|000003a0| 6f 72 65 20 64 72 61 77 | 69 6e 67 2e 0d 0d 54 68 |ore draw|ing...Th|
|000003b0| 65 20 56 69 65 77 52 65 | 63 74 20 73 68 6f 75 6c |e ViewRe|ct shoul|
|000003c0| 64 6e 27 74 20 6e 6f 77 | 20 62 65 20 73 65 74 20 |dn't now| be set |
|000003d0| 64 69 72 65 63 74 6c 79 | 20 66 72 6f 6d 20 61 20 |directly| from a |
|000003e0| 70 72 6f 67 72 61 6d 20 | 28 77 65 20 64 6f 6e 27 |program |(we don'|
|000003f0| 74 20 68 61 76 65 0d 61 | 20 53 65 74 56 69 65 77 |t have.a| SetView|
|00000400| 52 65 63 74 3a 20 6d 65 | 74 68 6f 64 20 61 6e 79 |Rect: me|thod any|
|00000410| 20 6c 6f 6e 67 65 72 29 | 2c 20 62 75 74 20 74 68 | longer)|, but th|
|00000420| 65 72 65 20 69 73 20 61 | 6e 6f 74 68 65 72 20 72 |ere is a|nother r|
|00000430| 65 63 74 2c 20 42 6f 75 | 6e 64 73 2c 20 77 68 69 |ect, Bou|nds, whi|
|00000440| 63 68 0d 69 73 20 69 6e | 74 65 6e 64 65 64 20 74 |ch.is in|tended t|
|00000450| 6f 20 6d 61 6b 65 20 74 | 68 69 6e 67 73 20 6d 6f |o make t|hings mo|
|00000460| 72 65 20 63 6f 6e 76 65 | 6e 69 65 6e 74 2c 20 73 |re conve|nient, s|
|00000470| 69 6e 63 65 20 69 74 20 | 64 65 66 69 6e 65 73 20 |ince it |defines |
|00000480| 74 68 65 20 76 69 65 77 | 27 73 0d 73 69 7a 65 20 |the view|'s.size |
|00000490| 61 6e 64 20 70 6f 73 69 | 74 69 6f 6e 20 72 65 6c |and posi|tion rel|
|000004a0| 61 74 69 76 65 20 74 6f | 20 69 74 73 20 70 61 72 |ative to| its par|
|000004b0| 65 6e 74 20 6f 72 20 73 | 69 62 6c 69 6e 67 73 2e |ent or s|iblings.|
|000004c0| 20 20 57 68 65 6e 65 76 | 65 72 20 74 68 65 20 70 | Whenev|er the p|
|000004d0| 61 72 65 6e 74 0d 76 69 | 65 77 20 69 73 20 72 65 |arent.vi|ew is re|
|000004e0| 73 69 7a 65 64 2c 20 69 | 74 20 73 65 6e 64 73 20 |sized, i|t sends |
|000004f0| 4d 4f 56 45 44 3a 20 74 | 6f 20 74 68 69 73 20 76 |MOVED: t|o this v|
|00000500| 69 65 77 2c 20 61 6e 64 | 20 42 6f 75 6e 64 73 20 |iew, and| Bounds |
|00000510| 69 73 20 74 68 65 6e 20 | 75 73 65 64 20 69 6e 0d |is then |used in.|
|00000520| 63 6f 6e 6a 75 6e 63 74 | 69 6f 6e 20 77 69 74 68 |conjunct|ion with|
|00000530| 20 74 68 65 20 22 6a 75 | 73 74 69 66 69 63 61 74 | the "ju|stificat|
|00000540| 69 6f 6e 22 20 69 76 61 | 72 73 2c 20 4c 6a 75 73 |ion" iva|rs, Ljus|
|00000550| 74 2c 20 54 6a 75 73 74 | 2c 20 52 6a 75 73 74 20 |t, Tjust|, Rjust |
|00000560| 61 6e 64 20 42 6a 75 73 | 74 2c 0d 74 6f 20 73 65 |and Bjus|t,.to se|
|00000570| 74 20 56 69 65 77 52 65 | 63 74 2e 0d 0d 4e 6f 74 |t ViewRe|ct...Not|
|00000580| 65 20 74 68 61 74 20 76 | 69 65 77 73 20 61 72 65 |e that v|iews are|
|00000590| 20 6c 61 74 65 2d 62 6f | 75 6e 64 20 74 6f 2c 20 | late-bo|und to, |
|000005a0| 73 6f 20 63 61 6e 27 74 | 20 61 70 70 65 61 72 20 |so can't| appear |
|000005b0| 77 69 74 68 69 6e 20 72 | 65 63 6f 72 64 73 2e 0d |within r|ecords..|
|000005c0| 2a 29 0d 0d 5c 20 48 65 | 72 65 20 61 72 65 20 74 |*)..\ He|re are t|
|000005d0| 68 65 20 74 79 70 65 20 | 64 65 66 69 6e 69 74 69 |he type |definiti|
|000005e0| 6f 6e 73 20 66 6f 72 20 | 74 68 65 20 6a 75 73 74 |ons for |the just|
|000005f0| 69 66 69 63 61 74 69 6f | 6e 20 69 76 61 72 73 3a |ificatio|n ivars:|
|00000600| 0d 0d 74 79 70 65 7b 09 | 70 61 72 4c 65 66 74 20 |..type{.|parLeft |
|00000610| 70 61 72 52 69 67 68 74 | 20 70 61 72 43 65 6e 74 |parRight| parCent|
|00000620| 65 72 09 70 61 72 50 72 | 6f 70 09 73 69 62 4c 65 |er.parPr|op.sibLe|
|00000630| 66 74 09 73 69 62 52 69 | 67 68 74 20 20 20 6d 79 |ft.sibRi|ght my|
|00000640| 4c 65 66 74 20 7d 0d 09 | 09 0d 74 79 70 65 7b 09 |Left }..|..type{.|
|00000650| 70 61 72 54 6f 70 20 70 | 61 72 42 6f 74 74 6f 6d |parTop p|arBottom|
|00000660| 20 64 75 6d 6d 79 09 09 | 64 75 6d 6d 79 09 73 69 | dummy..|dummy.si|
|00000670| 62 54 6f 70 09 73 69 62 | 42 6f 74 74 6f 6d 20 20 |bTop.sib|Bottom |
|00000680| 6d 79 54 6f 70 20 7d 0d | 0d 0d 09 30 09 76 61 6c |myTop }.|...0.val|
|00000690| 75 65 09 4d 50 4f 49 4e | 54 09 09 09 5c 20 50 6f |ue.MPOIN|T...\ Po|
|000006a0| 69 6e 74 20 77 68 65 72 | 65 20 61 20 63 6c 69 63 |int wher|e a clic|
|000006b0| 6b 20 6f 63 63 75 72 72 | 65 64 0d 09 09 72 65 63 |k occurr|ed...rec|
|000006c0| 74 09 4c 61 73 74 53 69 | 62 52 65 63 74 0d 0d 0d |t.LastSi|bRect...|
|000006d0| 5c 20 53 6f 6d 65 20 74 | 65 6d 70 20 76 61 6c 75 |\ Some t|emp valu|
|000006e0| 65 73 20 77 65 20 6e 65 | 65 64 20 62 65 63 61 75 |es we ne|ed becau|
|000006f0| 73 65 20 77 65 20 63 61 | 6e 27 74 20 68 61 76 65 |se we ca|n't have|
|00000700| 20 6d 6f 72 65 20 74 68 | 61 6e 20 31 31 20 6c 6f | more th|an 11 lo|
|00000710| 63 61 6c 73 20 6f 6e 20 | 74 68 65 0d 5c 20 20 50 |cals on |the.\ P|
|00000720| 50 43 2e 0d 0d 09 30 09 | 76 61 6c 75 65 09 70 6c |PC....0.|value.pl|
|00000730| 65 66 74 09 09 5c 20 70 | 61 72 65 6e 74 27 73 20 |eft..\ p|arent's |
|00000740| 62 6f 75 6e 64 73 0d 09 | 30 09 76 61 6c 75 65 09 |bounds..|0.value.|
|00000750| 70 74 6f 70 0d 09 30 09 | 76 61 6c 75 65 09 70 72 |ptop..0.|value.pr|
|00000760| 74 0d 09 30 09 76 61 6c | 75 65 09 70 62 6f 74 0d |t..0.val|ue.pbot.|
|00000770| 09 0d 09 30 09 76 61 6c | 75 65 09 73 6c 65 66 74 |...0.val|ue.sleft|
|00000780| 09 09 5c 20 6c 61 73 74 | 20 73 69 62 6c 69 6e 67 |..\ last| sibling|
|00000790| 27 73 20 62 6f 75 6e 64 | 73 0d 09 30 09 76 61 6c |'s bound|s..0.val|
|000007a0| 75 65 09 73 74 6f 70 0d | 09 30 09 76 61 6c 75 65 |ue.stop.|.0.value|
|000007b0| 09 73 72 74 0d 09 30 09 | 76 61 6c 75 65 09 73 62 |.srt..0.|value.sb|
|000007c0| 6f 74 0d 0d 0d 5c 09 09 | 09 3d 3d 3d 3d 3d 3d 3d |ot...\..|.=======|
|000007d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007e0| 3d 3d 3d 3d 3d 3d 3d 0d | 0d 3a 63 6c 61 73 73 09 |=======.|.:class.|
|000007f0| 56 49 45 57 09 73 75 70 | 65 72 7b 20 6f 62 6a 65 |VIEW.sup|er{ obje|
|00000800| 63 74 20 7d 20 20 67 65 | 6e 65 72 61 6c 09 09 5c |ct } ge|neral..\|
|00000810| 20 77 65 20 6c 61 74 65 | 2d 62 69 6e 64 20 74 6f | we late|-bind to|
|00000820| 20 6f 74 68 65 72 20 76 | 69 65 77 73 2c 0d 09 09 | other v|iews,...|
|00000830| 09 09 09 09 09 09 09 09 | 09 09 5c 20 74 68 75 73 |........|..\ thus|
|00000840| 20 77 65 20 75 73 65 20 | 22 67 65 6e 65 72 61 6c | we use |"general|
|00000850| 22 2e 0d 0d 72 65 63 6f | 72 64 0d 7b 09 76 61 72 |"...reco|rd.{.var|
|00000860| 20 09 09 6d 61 67 69 63 | 0d 09 72 65 63 74 09 09 | ..magic|..rect..|
|00000870| 56 49 45 57 52 45 43 54 | 09 09 5c 20 42 6f 75 6e |VIEWRECT|..\ Boun|
|00000880| 64 69 6e 67 20 72 65 63 | 74 61 6e 67 6c 65 2c 20 |ding rec|tangle, |
|00000890| 72 65 6c 20 74 6f 20 67 | 72 61 66 70 6f 72 74 2e |rel to g|rafport.|
|000008a0| 0d 09 72 65 63 74 09 09 | 42 4f 55 4e 44 53 09 09 |..rect..|BOUNDS..|
|000008b0| 09 5c 20 57 65 20 75 73 | 65 20 74 68 69 73 20 74 |.\ We us|e this t|
|000008c0| 6f 20 73 65 74 20 74 68 | 65 20 76 69 65 77 52 65 |o set th|e viewRe|
|000008d0| 63 74 0d 09 70 74 72 09 | 09 09 5e 50 41 52 45 4e |ct..ptr.|..^PAREN|
|000008e0| 54 09 09 09 5c 20 50 6f | 69 6e 74 73 20 74 6f 20 |T...\ Po|ints to |
|000008f0| 70 61 72 65 6e 74 20 28 | 63 6f 6e 74 61 69 6e 69 |parent (|containi|
|00000900| 6e 67 29 20 76 69 65 77 | 0d 7d 0d 70 75 62 6c 69 |ng) view|.}.publi|
|00000910| 63 0d 09 70 74 72 09 09 | 09 5e 4d 79 57 49 4e 44 |c..ptr..|.^MyWIND|
|00000920| 09 09 09 5c 20 50 6f 69 | 6e 74 73 20 74 6f 20 6f |...\ Poi|nts to o|
|00000930| 77 6e 69 6e 67 20 77 69 | 6e 64 6f 77 0d 09 70 74 |wning wi|ndow..pt|
|00000940| 72 4c 69 73 74 09 09 43 | 48 49 4c 44 52 45 4e 09 |rList..C|HILDREN.|
|00000950| 09 5c 20 4c 69 73 74 20 | 6f 66 20 76 69 65 77 73 |.\ List |of views|
|00000960| 20 74 68 61 74 20 74 68 | 69 73 20 6f 6e 65 20 63 | that th|is one c|
|00000970| 6f 6e 74 61 69 6e 73 0d | 09 09 09 09 09 09 09 09 |ontains.|........|
|00000980| 5c 20 20 69 74 20 69 6e | 68 65 72 69 74 73 20 66 |\ it in|herits f|
|00000990| 72 6f 6d 20 73 65 71 75 | 65 6e 63 65 20 73 6f 20 |rom sequ|ence so |
|000009a0| 63 61 6e 27 74 20 62 65 | 0d 09 09 09 09 09 09 09 |can't be|........|
|000009b0| 09 5c 20 20 69 6e 20 61 | 20 72 65 63 6f 72 64 0d |.\ in a| record.|
|000009c0| 70 72 69 76 61 74 65 0d | 72 65 63 6f 72 64 0d 7b |private.|record.{|
|000009d0| 09 78 2d 61 64 64 72 09 | 09 44 52 41 57 09 09 09 |.x-addr.|.DRAW...|
|000009e0| 5c 20 44 72 61 77 20 68 | 61 6e 64 6c 65 72 0d 09 |\ Draw h|andler..|
|000009f0| 78 2d 61 64 64 72 09 09 | 43 6c 69 63 6b 48 6e 64 |x-addr..|ClickHnd|
|00000a00| 6c 72 09 09 5c 20 43 6c | 69 63 6b 20 68 61 6e 64 |lr..\ Cl|ick hand|
|00000a10| 6c 65 72 0d 70 75 62 6c | 69 63 0d 09 62 6f 6f 6c |ler.publ|ic..bool|
|00000a20| 09 09 41 4c 49 56 45 3f | 0d 09 62 6f 6f 6c 09 09 |..ALIVE?|..bool..|
|00000a30| 45 4e 41 42 4c 45 44 3f | 0d 09 62 6f 6f 6c 09 09 |ENABLED?|..bool..|
|00000a40| 77 61 6e 74 73 43 6c 69 | 63 6b 73 3f 09 5c 20 54 |wantsCli|cks?.\ T|
|00000a50| 72 75 65 20 69 66 20 77 | 65 20 63 61 6e 20 61 63 |rue if w|e can ac|
|00000a60| 63 65 70 74 20 63 6c 69 | 63 6b 73 0d 09 62 6f 6f |cept cli|cks..boo|
|00000a70| 6c 09 09 73 65 74 43 6c | 69 70 3f 09 09 5c 20 54 |l..setCl|ip?..\ T|
|00000a80| 72 75 65 20 69 66 20 77 | 65 20 6e 65 65 64 20 74 |rue if w|e need t|
|00000a90| 6f 20 73 65 74 20 74 68 | 65 20 63 6c 69 70 20 28 |o set th|e clip (|
|00000aa0| 64 65 66 61 75 6c 74 29 | 0d 09 62 6f 6f 6c 09 09 |default)|..bool..|
|00000ab0| 63 61 6e 48 61 76 65 46 | 6f 63 75 73 3f 09 5c 20 |canHaveF|ocus?.\ |
|00000ac0| 54 72 75 65 20 69 66 20 | 77 65 20 63 61 6e 20 68 |True if |we can h|
|00000ad0| 61 76 65 20 74 68 65 20 | 66 6f 63 75 73 0d 09 62 |ave the |focus..b|
|00000ae0| 6f 6f 6c 09 09 6d 65 61 | 73 75 72 65 46 72 6f 6d |ool..mea|sureFrom|
|00000af0| 4d 65 3f 09 5c 20 54 72 | 75 65 20 69 66 20 6f 74 |Me?.\ Tr|ue if ot|
|00000b00| 68 65 72 20 73 69 62 6c | 69 6e 67 73 20 61 72 65 |her sibl|ings are|
|00000b10| 20 74 6f 20 75 73 65 20 | 74 68 69 73 0d 09 09 09 | to use |this....|
|00000b20| 09 09 09 09 09 5c 20 20 | 76 69 65 77 20 66 6f 72 |.....\ |view for|
|00000b30| 20 73 69 62 6c 69 6e 67 | 20 72 65 6c 61 74 69 76 | sibling| relativ|
|00000b40| 65 20 6a 75 73 74 69 66 | 69 63 61 74 69 6f 6e 0d |e justif|ication.|
|00000b50| 09 09 09 09 09 09 09 09 | 5c 20 20 6d 6f 64 65 73 |........|\ modes|
|00000b60| 0d 65 6e 64 5f 70 75 62 | 6c 69 63 0d 0d 09 62 79 |.end_pub|lic...by|
|00000b70| 74 65 09 09 23 75 70 64 | 61 74 65 73 09 09 5c 20 |te..#upd|ates..\ |
|00000b80| 43 6f 75 6e 74 73 20 6e | 75 6d 62 65 72 20 6f 66 |Counts n|umber of|
|00000b90| 20 70 65 6e 64 69 6e 67 | 20 75 70 64 61 74 65 73 | pending| updates|
|00000ba0| 0d 09 62 79 74 65 09 09 | 4c 6a 75 73 74 09 09 09 |..byte..|Ljust...|
|00000bb0| 5c 20 4c 65 66 74 20 6a | 75 73 74 69 66 69 63 61 |\ Left j|ustifica|
|00000bc0| 74 69 6f 6e 0d 09 62 79 | 74 65 09 09 54 6a 75 73 |tion..by|te..Tjus|
|00000bd0| 74 09 09 09 5c 20 54 6f | 70 0d 09 62 79 74 65 09 |t...\ To|p..byte.|
|00000be0| 09 52 6a 75 73 74 09 09 | 09 5c 20 52 69 67 68 74 |.Rjust..|.\ Right|
|00000bf0| 0d 09 62 79 74 65 09 09 | 42 6a 75 73 74 09 09 09 |..byte..|Bjust...|
|00000c00| 5c 20 42 6f 74 74 6f 6d | 0d 09 62 79 74 65 09 09 |\ Bottom|..byte..|
|00000c10| 64 75 6d 6d 79 09 09 09 | 5c 20 73 6f 20 73 75 62 |dummy...|\ so sub|
|00000c20| 63 6c 61 73 73 65 73 20 | 73 74 61 72 74 20 6f 75 |classes |start ou|
|00000c30| 74 20 61 6c 69 67 6e 65 | 64 0d 7d 0d 0d 3a 6d 20 |t aligne|d.}..:m |
|00000c40| 47 45 54 56 49 45 57 52 | 45 43 54 3a 09 67 65 74 |GETVIEWR|ECT:.get|
|00000c50| 3a 20 76 69 65 77 52 65 | 63 74 09 3b 6d 0d 3a 6d |: viewRe|ct.;m.:m|
|00000c60| 20 47 45 54 52 45 43 54 | 3a 09 09 67 65 74 3a 20 | GETRECT|:..get: |
|00000c70| 76 69 65 77 52 65 63 74 | 09 3b 6d 09 09 09 5c 20 |viewRect|.;m...\ |
|00000c80| 61 20 73 79 6e 6f 6e 79 | 6d 20 66 6f 72 20 63 6f |a synony|m for co|
|00000c90| 6d 70 61 74 69 62 69 6c | 69 74 79 0d 0d 3a 6d 20 |mpatibil|ity..:m |
|00000ca0| 5e 56 49 45 57 52 45 43 | 54 3a 09 61 64 64 72 3a |^VIEWREC|T:.addr:|
|00000cb0| 20 76 69 65 77 52 65 63 | 74 09 3b 6d 09 09 09 5c | viewRec|t.;m...\|
|00000cc0| 20 4e 65 65 64 65 64 20 | 66 6f 72 20 53 63 72 6f | Needed |for Scro|
|00000cd0| 6c 6c 65 72 20 73 75 70 | 70 6f 72 74 0d 0d 0d 5c |ller sup|port...\|
|00000ce0| 20 4d 6f 73 74 20 76 69 | 65 77 73 20 63 61 6e 20 | Most vi|ews can |
|00000cf0| 62 65 20 73 65 74 20 75 | 70 20 61 74 20 63 6f 6d |be set u|p at com|
|00000d00| 70 69 6c 65 20 74 69 6d | 65 20 75 73 69 6e 67 20 |pile tim|e using |
|00000d10| 73 65 74 42 6f 75 6e 64 | 73 3a 20 61 6e 64 20 73 |setBound|s: and s|
|00000d20| 65 74 4a 75 73 74 3a 2e | 0d 5c 20 54 68 65 6e 20 |etJust:.|.\ Then |
|00000d30| 61 74 20 72 75 6e 20 74 | 69 6d 65 20 61 64 64 56 |at run t|ime addV|
|00000d40| 69 65 77 3a 20 63 61 6c | 6c 73 20 6d 75 73 74 20 |iew: cal|ls must |
|00000d50| 62 65 20 6d 61 64 65 20 | 74 6f 20 65 73 74 61 62 |be made |to estab|
|00000d60| 6c 69 73 68 20 74 68 65 | 20 70 61 72 65 6e 74 2d |lish the| parent-|
|00000d70| 63 68 69 6c 64 0d 5c 20 | 72 65 6c 61 74 69 6f 6e |child.\ |relation|
|00000d80| 73 68 69 70 73 2e 0d 0d | 3a 6d 20 42 4f 55 4e 44 |ships...|:m BOUND|
|00000d90| 53 3a 09 09 28 20 2d 2d | 20 6c 20 74 20 72 20 62 |S:..( --| l t r b|
|00000da0| 20 29 09 09 67 65 74 3a | 20 62 6f 75 6e 64 73 20 | )..get:| bounds |
|00000db0| 20 3b 6d 0d 3a 6d 20 47 | 45 54 42 4f 55 4e 44 53 | ;m.:m G|ETBOUNDS|
|00000dc0| 3a 09 09 09 09 09 09 67 | 65 74 3a 20 62 6f 75 6e |:......g|et: boun|
|00000dd0| 64 73 20 20 3b 6d 09 09 | 5c 20 61 20 73 79 6e 6f |ds ;m..|\ a syno|
|00000de0| 6e 79 6d 0d 0d 3a 6d 20 | 53 45 54 42 4f 55 4e 44 |nym..:m |SETBOUND|
|00000df0| 53 3a 09 28 20 6c 20 74 | 20 72 20 62 20 2d 2d 20 |S:.( l t| r b -- |
|00000e00| 29 09 09 70 75 74 3a 20 | 62 6f 75 6e 64 73 20 20 |)..put: |bounds |
|00000e10| 3b 6d 0d 0d 3a 6d 20 47 | 45 54 4a 55 53 54 3a 09 |;m..:m G|ETJUST:.|
|00000e20| 28 20 2d 2d 20 6c 6a 20 | 74 6a 20 72 6a 20 62 6a |( -- lj |tj rj bj|
|00000e30| 20 29 09 67 65 74 3a 20 | 4c 6a 75 73 74 20 20 67 | ).get: |Ljust g|
|00000e40| 65 74 3a 20 54 6a 75 73 | 74 0d 09 09 09 09 09 09 |et: Tjus|t.......|
|00000e50| 09 09 67 65 74 3a 20 52 | 6a 75 73 74 20 20 67 65 |..get: R|just ge|
|00000e60| 74 3a 20 42 6a 75 73 74 | 20 20 3b 6d 0d 09 09 09 |t: Bjust| ;m....|
|00000e70| 09 09 09 09 09 0d 3a 6d | 20 53 45 54 4a 55 53 54 |......:m| SETJUST|
|00000e80| 3a 09 28 20 6c 6a 20 74 | 6a 20 72 6a 20 62 6a 20 |:.( lj t|j rj bj |
|00000e90| 2d 2d 20 29 09 70 75 74 | 3a 20 42 6a 75 73 74 20 |-- ).put|: Bjust |
|00000ea0| 20 70 75 74 3a 20 52 6a | 75 73 74 0d 09 09 09 09 | put: Rj|ust.....|
|00000eb0| 09 09 09 09 70 75 74 3a | 20 54 6a 75 73 74 20 20 |....put:| Tjust |
|00000ec0| 70 75 74 3a 20 4c 6a 75 | 73 74 20 20 3b 6d 0d 0d |put: Lju|st ;m..|
|00000ed0| 3a 6d 20 4d 65 61 73 75 | 72 65 46 72 6f 6d 3a 20 |:m Measu|reFrom: |
|00000ee0| 20 28 20 62 20 2d 2d 20 | 29 09 09 70 75 74 3a 20 | ( b -- |)..put: |
|00000ef0| 6d 65 61 73 75 72 65 46 | 72 6f 6d 4d 65 3f 20 20 |measureF|romMe? |
|00000f00| 3b 6d 0d 0d 3a 6d 20 46 | 4f 43 55 53 3a 20 20 28 |;m..:m F|OCUS: (|
|00000f10| 20 62 20 2d 2d 20 29 0d | 09 67 65 74 3a 20 63 61 | b -- ).|.get: ca|
|00000f20| 6e 48 61 76 65 46 6f 63 | 75 73 3f 20 20 61 6e 64 |nHaveFoc|us? and|
|00000f30| 20 20 30 45 58 49 54 0d | 09 6e 69 6c 3f 3a 20 5e | 0EXIT.|.nil?: ^|
|00000f40| 6d 79 57 69 6e 64 20 20 | 3f 45 58 49 54 0d 09 5e |myWind |?EXIT..^|
|00000f50| 62 61 73 65 20 20 67 65 | 74 3a 20 5e 6d 79 57 69 |base ge|t: ^myWi|
|00000f60| 6e 64 20 20 70 75 74 3a | 20 69 76 61 72 3e 20 5e |nd put:| ivar> ^|
|00000f70| 76 69 65 77 5f 69 6e 5f | 66 6f 63 75 73 20 69 6e |view_in_|focus in|
|00000f80| 20 63 6c 61 73 73 5f 61 | 73 3e 20 77 69 6e 64 6f | class_a|s> windo|
|00000f90| 77 20 20 3b 6d 0d 0d 0d | 28 2a 09 41 44 44 56 49 |w ;m...|(*.ADDVI|
|00000fa0| 45 57 3a 20 61 64 64 73 | 20 74 68 65 20 70 61 73 |EW: adds| the pas|
|00000fb0| 73 65 64 2d 69 6e 20 76 | 69 65 77 20 74 6f 20 74 |sed-in v|iew to t|
|00000fc0| 68 69 73 20 76 69 65 77 | 27 73 20 6c 69 73 74 20 |his view|'s list |
|00000fd0| 6f 66 20 63 68 69 6c 64 | 72 65 6e 2e 20 20 54 68 |of child|ren. Th|
|00000fe0| 69 73 0d 09 6d 65 74 68 | 6f 64 20 6d 75 73 74 20 |is..meth|od must |
|00000ff0| 62 65 20 63 61 6c 6c 65 | 64 20 61 74 20 72 75 6e |be calle|d at run|
|00001000| 20 74 69 6d 65 2c 20 73 | 69 6e 63 65 20 70 6f 69 | time, s|ince poi|
|00001010| 6e 74 65 72 73 20 61 72 | 65 20 75 73 65 64 2c 20 |nters ar|e used, |
|00001020| 61 6e 64 20 61 6c 73 6f | 20 69 74 20 68 61 73 0d |and also| it has.|
|00001030| 09 74 6f 20 62 65 20 63 | 61 6c 6c 65 64 20 62 65 |.to be c|alled be|
|00001040| 66 6f 72 65 20 4e 45 57 | 3a 2c 20 73 69 6e 63 65 |fore NEW|:, since|
|00001050| 20 4e 45 57 3a 20 61 73 | 73 75 6d 65 73 20 74 68 | NEW: as|sumes th|
|00001060| 65 20 6c 69 73 74 20 69 | 73 20 73 65 74 20 75 70 |e list i|s set up|
|00001070| 20 61 6c 72 65 61 64 79 | 2e 0d 09 4e 6f 74 65 20 | already|...Note |
|00001080| 74 68 61 74 20 74 68 65 | 20 63 68 69 6c 64 20 76 |that the| child v|
|00001090| 69 65 77 20 67 65 74 73 | 20 61 20 73 65 74 50 61 |iew gets| a setPa|
|000010a0| 72 65 6e 74 3a 20 63 61 | 6c 6c 20 61 74 20 74 68 |rent: ca|ll at th|
|000010b0| 69 73 20 74 69 6d 65 2e | 20 20 54 68 75 73 20 69 |is time.| Thus i|
|000010c0| 66 0d 09 69 74 20 68 61 | 73 20 63 68 69 6c 64 20 |f..it ha|s child |
|000010d0| 76 69 65 77 73 20 6f 66 | 20 69 74 73 20 6f 77 6e |views of| its own|
|000010e0| 20 74 68 61 74 20 6e 65 | 65 64 20 74 6f 20 62 65 | that ne|ed to be|
|000010f0| 20 61 64 64 65 64 20 74 | 6f 20 69 74 73 20 6f 77 | added t|o its ow|
|00001100| 6e 20 6c 69 73 74 2c 20 | 74 68 69 73 0d 09 63 61 |n list, |this..ca|
|00001110| 6e 20 62 65 20 64 6f 6e | 65 20 76 69 61 20 61 6e |n be don|e via an|
|00001120| 20 6f 76 65 72 72 69 64 | 65 20 6f 66 20 73 65 74 | overrid|e of set|
|00001130| 50 61 72 65 6e 74 3a 2e | 0d 2a 29 0d 0d 3a 6d 20 |Parent:.|.*)..:m |
|00001140| 41 44 44 56 49 45 57 3a | 20 20 7b 20 5e 76 69 65 |ADDVIEW:| { ^vie|
|00001150| 77 20 2d 2d 20 7d 0d 09 | 5e 76 69 65 77 20 20 61 |w -- }..|^view a|
|00001160| 64 64 3a 20 63 68 69 6c | 64 72 65 6e 0d 09 5e 62 |dd: chil|dren..^b|
|00001170| 61 73 65 20 20 73 65 74 | 50 61 72 65 6e 74 3a 20 |ase set|Parent: |
|00001180| 5b 20 5e 76 69 65 77 20 | 5d 20 20 3b 6d 0d 0d 0d |[ ^view |] ;m...|
|00001190| 3a 6d 20 45 4e 41 42 4c | 45 44 3f 3a 09 67 65 74 |:m ENABL|ED?:.get|
|000011a0| 3a 20 65 6e 61 62 6c 65 | 64 3f 09 3b 6d 0d 3a 6d |: enable|d?.;m.:m|
|000011b0| 20 57 49 4e 44 4f 57 3a | 09 09 67 65 74 3a 20 5e | WINDOW:|..get: ^|
|000011c0| 4d 79 57 69 6e 64 09 3b | 6d 0d 3a 6d 20 53 45 54 |MyWind.;|m.:m SET|
|000011d0| 57 49 4e 44 4f 57 3a 09 | 70 75 74 3a 20 5e 4d 79 |WINDOW:.|put: ^My|
|000011e0| 57 69 6e 64 09 3b 6d 09 | 09 5c 20 4e 6f 72 6d 61 |Wind.;m.|.\ Norma|
|000011f0| 6c 6c 79 20 74 68 69 73 | 20 69 73 20 6f 6e 6c 79 |lly this| is only|
|00001200| 20 63 61 6c 6c 65 64 20 | 66 72 6f 6d 0d 09 09 09 | called |from....|
|00001210| 09 09 09 09 09 09 09 5c | 20 20 74 68 65 20 77 69 |.......\| the wi|
|00001220| 6e 64 6f 77 20 77 68 65 | 6e 20 73 65 74 74 69 6e |ndow whe|n settin|
|00001230| 67 20 75 70 20 69 74 73 | 0d 09 09 09 09 09 09 09 |g up its|........|
|00001240| 09 09 09 5c 20 20 63 6f | 6e 74 56 69 65 77 2e 0d |...\ co|ntView..|
|00001250| 3a 6d 20 57 41 4e 54 53 | 43 4c 49 43 4b 53 3a 09 |:m WANTS|CLICKS:.|
|00001260| 70 75 74 3a 20 77 61 6e | 74 73 43 6c 69 63 6b 73 |put: wan|tsClicks|
|00001270| 3f 20 20 3b 6d 0d 3a 6d | 20 53 45 54 43 4c 49 43 |? ;m.:m| SETCLIC|
|00001280| 4b 3a 09 70 75 74 3a 20 | 43 6c 69 63 6b 48 6e 64 |K:.put: |ClickHnd|
|00001290| 6c 72 20 20 74 72 75 65 | 20 20 70 75 74 3a 20 77 |lr true| put: w|
|000012a0| 61 6e 74 73 43 6c 69 63 | 6b 73 3f 20 20 3b 6d 0d |antsClic|ks? ;m.|
|000012b0| 3a 6d 20 53 45 54 44 52 | 41 57 3a 09 09 70 75 74 |:m SETDR|AW:..put|
|000012c0| 3a 20 64 72 61 77 20 20 | 3b 6d 0d 3a 6d 20 50 41 |: draw |;m.:m PA|
|000012d0| 52 45 4e 54 3a 09 09 67 | 65 74 3a 20 5e 70 61 72 |RENT:..g|et: ^par|
|000012e0| 65 6e 74 20 20 3b 6d 0d | 3a 6d 20 53 45 54 50 41 |ent ;m.|:m SETPA|
|000012f0| 52 45 4e 54 3a 09 70 75 | 74 3a 20 5e 70 61 72 65 |RENT:.pu|t: ^pare|
|00001300| 6e 74 20 20 3b 6d 0d 0d | 5c 20 55 50 44 41 54 45 |nt ;m..|\ UPDATE|
|00001310| 3a 20 67 65 6e 65 72 61 | 74 65 73 20 61 6e 20 75 |: genera|tes an u|
|00001320| 70 64 61 74 65 20 65 76 | 65 6e 74 20 66 6f 72 20 |pdate ev|ent for |
|00001330| 74 68 65 20 76 69 65 77 | 2c 20 61 6e 64 20 43 4c |the view|, and CL|
|00001340| 45 41 52 3a 20 65 72 61 | 73 65 73 20 69 74 2e 20 |EAR: era|ses it. |
|00001350| 20 0d 0d 3a 6d 20 55 50 | 44 41 54 45 3a 09 61 64 | ..:m UP|DATE:.ad|
|00001360| 64 72 3a 20 76 69 65 77 | 52 65 63 74 20 20 49 6e |dr: view|Rect In|
|00001370| 76 61 6c 52 65 63 74 20 | 20 3b 6d 0d 3a 6d 20 43 |valRect | ;m.:m C|
|00001380| 4c 45 41 52 3a 09 63 6c | 65 61 72 3a 20 76 69 65 |LEAR:.cl|ear: vie|
|00001390| 77 52 65 63 74 20 20 3b | 6d 0d 0d 0d 70 72 69 76 |wRect ;|m...priv|
|000013a0| 61 74 65 09 09 09 5c 20 | 73 65 74 74 69 6e 67 20 |ate...\ |setting |
|000013b0| 75 70 20 66 6f 72 20 4d | 4f 56 45 44 3a 0d 0d 3a |up for M|OVED:..:|
|000013c0| 6d 20 28 3e 56 52 29 3a | 20 20 7b 20 6c 65 66 74 |m (>VR):| { left|
|000013d0| 20 72 74 20 50 6c 65 66 | 74 20 50 72 74 20 53 6c | rt Plef|t Prt Sl|
|000013e0| 65 66 74 20 53 72 74 20 | 4c 6a 75 73 74 20 52 6a |eft Srt |Ljust Rj|
|000013f0| 75 73 74 0d 09 09 09 5c | 20 63 65 6e 74 20 6c 65 |ust....\| cent le|
|00001400| 66 74 27 20 72 74 27 20 | 2d 2d 20 6c 65 66 74 27 |ft' rt' |-- left'|
|00001410| 20 72 74 27 20 7d 0d 0d | 09 5c 20 4e 6f 74 65 3a | rt' }..|.\ Note:|
|00001420| 20 77 65 27 72 65 20 73 | 61 79 69 6e 67 20 22 6c | we're s|aying "l|
|00001430| 65 66 74 22 20 61 6e 64 | 20 22 72 69 67 68 74 22 |eft" and| "right"|
|00001440| 20 62 75 74 20 74 68 69 | 73 20 72 6f 75 74 69 6e | but thi|s routin|
|00001450| 65 20 67 65 74 73 20 75 | 73 65 64 0d 09 5c 20 66 |e gets u|sed..\ f|
|00001460| 6f 72 20 74 6f 70 20 61 | 6e 64 20 62 6f 74 74 6f |or top a|nd botto|
|00001470| 6d 20 61 73 20 77 65 6c | 6c 20 73 69 6e 63 65 20 |m as wel|l since |
|00001480| 74 68 65 20 61 6c 67 6f | 72 69 74 68 6d 20 61 6e |the algo|rithm an|
|00001490| 64 20 6a 75 73 74 69 66 | 69 63 61 74 69 6f 6e 0d |d justif|ication.|
|000014a0| 09 5c 20 76 61 6c 75 65 | 73 20 61 72 65 20 65 78 |.\ value|s are ex|
|000014b0| 61 63 74 6c 79 20 74 68 | 65 20 73 61 6d 65 2e 20 |actly th|e same. |
|000014c0| 20 6c 65 66 74 20 61 6e | 64 20 72 74 20 61 72 65 | left an|d rt are|
|000014d0| 20 6d 79 20 62 6f 75 6e | 64 73 2c 20 50 6c 65 66 | my boun|ds, Plef|
|000014e0| 74 0d 09 5c 20 61 6e 64 | 20 50 72 74 20 72 65 66 |t..\ and| Prt ref|
|000014f0| 65 72 20 74 6f 20 6d 79 | 20 70 61 72 65 6e 74 27 |er to my| parent'|
|00001500| 73 20 76 69 65 77 52 65 | 63 74 2c 20 61 6e 64 20 |s viewRe|ct, and |
|00001510| 53 6c 65 66 74 20 61 6e | 64 20 53 72 74 20 73 69 |Sleft an|d Srt si|
|00001520| 6d 69 6c 61 72 6c 79 0d | 09 5c 20 66 6f 72 20 6d |milarly.|.\ for m|
|00001530| 79 20 70 72 65 63 65 64 | 69 6e 67 20 73 69 62 6c |y preced|ing sibl|
|00001540| 69 6e 67 2e 20 20 57 65 | 20 72 65 74 75 72 6e 20 |ing. We| return |
|00001550| 6c 65 66 74 27 20 61 6e | 64 20 72 74 27 2c 20 74 |left' an|d rt', t|
|00001560| 68 65 20 61 63 74 75 61 | 6c 0d 09 5c 20 76 61 6c |he actua|l..\ val|
|00001570| 75 65 73 20 74 6f 20 67 | 6f 20 69 6e 20 6d 79 20 |ues to g|o in my |
|00001580| 76 69 65 77 52 65 63 74 | 2e 0d 09 0d 09 4c 6a 75 |viewRect|.....Lju|
|00001590| 73 74 0d 09 53 45 4c 45 | 43 54 5b 09 70 61 72 4c |st..SELE|CT[.parL|
|000015a0| 65 66 74 09 09 5d 3d 3e | 09 6c 65 66 74 20 50 6c |eft..]=>|.left Pl|
|000015b0| 65 66 74 20 2b 09 2d 3e | 20 6c 65 66 74 27 0d 09 |eft +.->| left'..|
|000015c0| 09 09 09 09 09 0d 09 09 | 20 20 5b 09 70 61 72 52 |........| [.parR|
|000015d0| 69 67 68 74 09 5d 3d 3e | 09 6c 65 66 74 20 50 72 |ight.]=>|.left Pr|
|000015e0| 74 20 2b 09 09 2d 3e 20 | 6c 65 66 74 27 0d 0d 09 |t +..-> |left'...|
|000015f0| 09 20 20 5b 09 70 61 72 | 43 65 6e 74 65 72 09 5d |. [.par|Center.]|
|00001600| 3d 3e 09 50 6c 65 66 74 | 20 50 72 74 20 2b 20 32 |=>.Pleft| Prt + 2|
|00001610| 2f 09 2d 3e 20 63 65 6e | 74 0d 09 09 20 20 09 09 |/.-> cen|t... ..|
|00001620| 09 09 09 6c 65 66 74 20 | 63 65 6e 74 20 2b 09 09 |...left |cent +..|
|00001630| 2d 3e 20 6c 65 66 74 27 | 0d 09 09 20 20 09 09 09 |-> left'|... ...|
|00001640| 09 09 0d 09 09 20 20 5b | 09 70 61 72 50 72 6f 70 |..... [|.parProp|
|00001650| 09 09 5d 3d 3e 20 6c 65 | 66 74 0d 09 09 20 20 09 |..]=> le|ft... .|
|00001660| 09 09 09 09 50 72 74 20 | 50 6c 65 66 74 20 2d 20 |....Prt |Pleft - |
|00001670| 20 31 30 30 30 30 20 2a | 2f 0d 09 09 20 20 09 09 | 10000 *|/... ..|
|00001680| 09 09 09 50 6c 65 66 74 | 20 2b 09 09 09 2d 3e 20 |...Pleft| +...-> |
|00001690| 6c 65 66 74 27 0d 09 09 | 20 20 09 09 09 09 09 0d |left'...| ......|
|000016a0| 09 09 20 20 5b 09 73 69 | 62 4c 65 66 74 09 09 5d |.. [.si|bLeft..]|
|000016b0| 3d 3e 09 6c 65 66 74 20 | 73 6c 65 66 74 20 2b 09 |=>.left |sleft +.|
|000016c0| 2d 3e 20 6c 65 66 74 27 | 0d 09 09 20 20 09 09 09 |-> left'|... ...|
|000016d0| 09 09 0d 09 09 20 20 5b | 09 73 69 62 52 69 67 68 |..... [|.sibRigh|
|000016e0| 74 09 5d 3d 3e 09 6c 65 | 66 74 20 73 72 74 20 2b |t.]=>.le|ft srt +|
|000016f0| 09 09 2d 3e 20 6c 65 66 | 74 27 0d 09 09 20 20 0d |..-> lef|t'... .|
|00001700| 09 09 20 20 44 45 46 41 | 55 4c 54 3d 3e 09 09 09 |.. DEFA|ULT=>...|
|00001710| 31 36 32 20 64 69 65 09 | 09 09 5c 20 62 61 64 20 |162 die.|..\ bad |
|00001720| 73 65 74 4a 75 73 74 3a | 20 70 61 72 61 6d 65 74 |setJust:| paramet|
|00001730| 65 72 0d 09 09 20 20 09 | 09 09 09 09 09 09 09 09 |er... .|........|
|00001740| 5c 20 6e 6f 74 65 3a 20 | 63 61 6e 27 74 20 75 73 |\ note: |can't us|
|00001750| 65 20 6d 79 4c 65 66 74 | 2f 6d 79 54 6f 70 0d 09 |e myLeft|/myTop..|
|00001760| 09 20 20 09 09 09 09 09 | 09 09 09 09 5c 20 66 6f |. .....|....\ fo|
|00001770| 72 20 74 68 65 20 6c 65 | 66 74 2f 74 6f 70 20 76 |r the le|ft/top v|
|00001780| 61 6c 75 65 21 0d 09 5d | 53 45 4c 45 43 54 0d 09 |alue!..]|SELECT..|
|00001790| 09 20 20 0d 09 52 6a 75 | 73 74 0d 09 53 45 4c 45 |. ..Rju|st..SELE|
|000017a0| 43 54 5b 20 70 61 72 4c | 65 66 74 09 09 5d 3d 3e |CT[ parL|eft..]=>|
|000017b0| 09 72 74 20 20 20 50 6c | 65 66 74 20 2b 09 2d 3e |.rt Pl|eft +.->|
|000017c0| 20 72 74 27 0d 0d 09 09 | 20 20 5b 09 70 61 72 52 | rt'....| [.parR|
|000017d0| 69 67 68 74 09 5d 3d 3e | 09 72 74 09 20 50 72 74 |ight.]=>|.rt. Prt|
|000017e0| 20 2b 09 09 2d 3e 20 72 | 74 27 0d 0d 09 09 20 20 | +..-> r|t'.... |
|000017f0| 5b 09 70 61 72 43 65 6e | 74 65 72 09 5d 3d 3e 09 |[.parCen|ter.]=>.|
|00001800| 50 6c 65 66 74 20 50 72 | 74 20 2b 20 32 2f 09 2d |Pleft Pr|t + 2/.-|
|00001810| 3e 20 63 65 6e 74 0d 09 | 09 20 20 09 09 09 09 09 |> cent..|. .....|
|00001820| 72 74 20 20 20 63 65 6e | 74 20 2b 09 09 2d 3e 20 |rt cen|t +..-> |
|00001830| 72 74 27 0d 0d 09 09 20 | 20 5b 09 70 61 72 50 72 |rt'.... | [.parPr|
|00001840| 6f 70 09 09 5d 3d 3e 20 | 72 74 0d 09 09 20 20 09 |op..]=> |rt... .|
|00001850| 09 09 09 09 50 72 74 20 | 50 6c 65 66 74 20 2d 20 |....Prt |Pleft - |
|00001860| 20 31 30 30 30 30 20 2a | 2f 0d 09 09 20 20 09 09 | 10000 *|/... ..|
|00001870| 09 09 09 50 6c 65 66 74 | 20 2b 09 09 09 2d 3e 20 |...Pleft| +...-> |
|00001880| 72 74 27 0d 0d 09 09 20 | 20 5b 09 73 69 62 4c 65 |rt'.... | [.sibLe|
|00001890| 66 74 09 09 5d 3d 3e 09 | 72 74 09 20 73 6c 65 66 |ft..]=>.|rt. slef|
|000018a0| 74 20 2b 09 2d 3e 20 72 | 74 27 0d 09 09 20 20 09 |t +.-> r|t'... .|
|000018b0| 09 09 09 09 0d 09 09 20 | 20 5b 09 73 69 62 52 69 |....... | [.sibRi|
|000018c0| 67 68 74 09 5d 3d 3e 09 | 72 74 09 20 73 72 74 20 |ght.]=>.|rt. srt |
|000018d0| 2b 09 09 2d 3e 20 72 74 | 27 0d 0d 09 09 20 20 5b |+..-> rt|'.... [|
|000018e0| 09 6d 79 4c 65 66 74 09 | 09 5d 3d 3e 09 72 74 09 |.myLeft.|.]=>.rt.|
|000018f0| 20 6c 65 66 74 27 20 2b | 09 2d 3e 20 72 74 27 0d | left' +|.-> rt'.|
|00001900| 0d 09 09 20 20 44 45 46 | 41 55 4c 54 3d 3e 09 09 |... DEF|AULT=>..|
|00001910| 09 31 36 32 20 64 69 65 | 09 09 09 5c 20 62 61 64 |.162 die|...\ bad|
|00001920| 20 73 65 74 4a 75 73 74 | 3a 20 70 61 72 61 6d 65 | setJust|: parame|
|00001930| 74 65 72 0d 09 5d 53 45 | 4c 45 43 54 0d 0d 09 6c |ter..]SE|LECT...l|
|00001940| 65 66 74 27 20 72 74 27 | 0d 3b 6d 0d 0d 0d 3a 6d |eft' rt'|.;m...:m|
|00001950| 20 42 4f 55 4e 44 53 3e | 56 49 45 57 52 45 43 54 | BOUNDS>|VIEWRECT|
|00001960| 3a 20 20 7b 20 5c 09 62 | 6c 65 66 74 20 62 74 6f |: { \.b|left bto|
|00001970| 70 20 62 72 74 20 62 62 | 6f 74 0d 09 09 09 09 09 |p brt bb|ot......|
|00001980| 09 09 76 6c 65 66 74 20 | 76 74 6f 70 20 76 72 74 |..vleft |vtop vrt|
|00001990| 20 76 62 6f 74 20 2d 2d | 20 7d 0d 0d 5c 20 46 69 | vbot --| }..\ Fi|
|000019a0| 72 73 74 2c 20 69 66 20 | 74 68 69 73 20 69 73 20 |rst, if |this is |
|000019b0| 61 20 63 6f 6e 74 56 69 | 65 77 2c 20 74 68 65 72 |a contVi|ew, ther|
|000019c0| 65 27 73 20 6e 6f 20 70 | 61 72 65 6e 74 2c 20 73 |e's no p|arent, s|
|000019d0| 6f 20 77 65 20 6a 75 73 | 74 20 63 6f 70 79 0d 5c |o we jus|t copy.\|
|000019e0| 20 74 68 65 20 62 6f 75 | 6e 64 73 20 74 6f 20 74 | the bou|nds to t|
|000019f0| 68 65 20 76 69 65 77 52 | 65 63 74 20 61 6e 64 20 |he viewR|ect and |
|00001a00| 67 65 74 20 6f 75 74 2e | 0d 0d 09 6e 69 6c 3f 3a |get out.|...nil?:|
|00001a10| 20 5e 70 61 72 65 6e 74 | 0d 09 49 46 09 09 61 64 | ^parent|..IF..ad|
|00001a20| 64 72 3a 20 62 6f 75 6e | 64 73 20 20 2d 3e 3a 20 |dr: boun|ds ->: |
|00001a30| 76 69 65 77 52 65 63 74 | 20 20 45 58 49 54 20 20 |viewRect| EXIT |
|00001a40| 54 48 45 4e 0d 09 09 09 | 09 09 09 09 09 09 09 09 |THEN....|........|
|00001a50| 0d 09 67 65 74 56 69 65 | 77 52 65 63 74 3a 20 5b |..getVie|wRect: [|
|00001a60| 20 67 65 74 3a 20 5e 70 | 61 72 65 6e 74 20 5d 09 | get: ^p|arent ].|
|00001a70| 09 09 09 09 09 09 5c 20 | 70 61 72 65 6e 74 27 73 |......\ |parent's|
|00001a80| 20 76 69 65 77 52 65 63 | 74 0d 09 2d 3e 20 70 62 | viewRec|t..-> pb|
|00001a90| 6f 74 20 2d 3e 20 70 72 | 74 20 2d 3e 20 70 74 6f |ot -> pr|t -> pto|
|00001aa0| 70 20 2d 3e 20 70 6c 65 | 66 74 0d 09 67 65 74 3a |p -> ple|ft..get:|
|00001ab0| 20 6c 61 73 74 53 69 62 | 52 65 63 74 20 20 2d 3e | lastSib|Rect ->|
|00001ac0| 20 73 62 6f 74 20 20 2d | 3e 20 73 72 74 20 20 2d | sbot -|> srt -|
|00001ad0| 3e 20 73 74 6f 70 20 20 | 2d 3e 20 73 6c 65 66 74 |> stop |-> sleft|
|00001ae0| 20 09 5c 20 73 69 62 6c | 69 6e 67 27 73 20 76 69 | .\ sibl|ing's vi|
|00001af0| 65 77 52 65 63 74 0d 09 | 67 65 74 3a 20 62 6f 75 |ewRect..|get: bou|
|00001b00| 6e 64 73 09 09 20 20 2d | 3e 20 62 62 6f 74 20 20 |nds.. -|> bbot |
|00001b10| 2d 3e 20 62 72 74 20 20 | 2d 3e 20 62 74 6f 70 20 |-> brt |-> btop |
|00001b20| 20 2d 3e 20 62 6c 65 66 | 74 20 09 5c 20 6d 79 20 | -> blef|t .\ my |
|00001b30| 62 6f 75 6e 64 73 0d 09 | 62 6c 65 66 74 20 62 72 |bounds..|bleft br|
|00001b40| 74 20 20 70 6c 65 66 74 | 20 70 72 74 20 20 73 6c |t pleft| prt sl|
|00001b50| 65 66 74 20 73 72 74 20 | 20 67 65 74 3a 20 4c 6a |eft srt | get: Lj|
|00001b60| 75 73 74 20 20 67 65 74 | 3a 20 52 6a 75 73 74 20 |ust get|: Rjust |
|00001b70| 20 28 3e 76 72 29 3a 20 | 73 65 6c 66 0d 09 09 2d | (>vr): |self...-|
|00001b80| 3e 20 76 72 74 20 2d 3e | 20 76 6c 65 66 74 0d 09 |> vrt ->| vleft..|
|00001b90| 62 74 6f 70 20 62 62 6f | 74 20 20 70 74 6f 70 20 |btop bbo|t ptop |
|00001ba0| 70 62 6f 74 20 20 73 74 | 6f 70 20 73 62 6f 74 20 |pbot st|op sbot |
|00001bb0| 20 67 65 74 3a 20 54 6a | 75 73 74 20 20 67 65 74 | get: Tj|ust get|
|00001bc0| 3a 20 42 6a 75 73 74 20 | 20 28 3e 76 72 29 3a 20 |: Bjust | (>vr): |
|00001bd0| 73 65 6c 66 0d 09 09 2d | 3e 20 76 62 6f 74 20 2d |self...-|> vbot -|
|00001be0| 3e 20 76 74 6f 70 0d 09 | 76 6c 65 66 74 20 76 74 |> vtop..|vleft vt|
|00001bf0| 6f 70 20 76 72 74 20 76 | 62 6f 74 20 20 70 75 74 |op vrt v|bot put|
|00001c00| 3a 20 76 69 65 77 52 65 | 63 74 0d 09 67 65 74 3a |: viewRe|ct..get:|
|00001c10| 20 6d 65 61 73 75 72 65 | 46 72 6f 6d 4d 65 3f 0d | measure|FromMe?.|
|00001c20| 09 49 46 09 61 64 64 72 | 3a 20 76 69 65 77 52 65 |.IF.addr|: viewRe|
|00001c30| 63 74 20 20 2d 3e 3a 20 | 6c 61 73 74 53 69 62 52 |ct ->: |lastSibR|
|00001c40| 65 63 74 20 20 54 48 45 | 4e 0d 3b 6d 0d 0d 0d 3a |ect THE|N.;m...:|
|00001c50| 6d 20 43 68 69 6c 64 72 | 65 6e 4d 6f 76 65 64 3a |m Childr|enMoved:|
|00001c60| 20 20 7b 20 5c 20 6c 20 | 74 20 72 20 62 20 2d 2d | { \ l |t r b --|
|00001c70| 20 7d 0d 09 67 65 74 3a | 20 6c 61 73 74 53 69 62 | }..get:| lastSib|
|00001c80| 52 65 63 74 0d 09 67 65 | 74 3a 20 76 69 65 77 52 |Rect..ge|t: viewR|
|00001c90| 65 63 74 20 2d 3e 20 62 | 20 2d 3e 20 72 20 2d 3e |ect -> b| -> r ->|
|00001ca0| 20 74 20 2d 3e 20 6c 20 | 20 20 72 20 62 20 6c 20 | t -> l | r b l |
|00001cb0| 74 20 20 70 75 74 3a 20 | 6c 61 73 74 53 69 62 52 |t put: |lastSibR|
|00001cc0| 65 63 74 0d 09 42 45 47 | 49 4e 20 20 65 61 63 68 |ect..BEG|IN each|
|00001cd0| 3a 20 63 68 69 6c 64 72 | 65 6e 20 20 57 48 49 4c |: childr|en WHIL|
|00001ce0| 45 20 20 6d 6f 76 65 64 | 3a 20 5b 5d 20 20 52 45 |E moved|: [] RE|
|00001cf0| 50 45 41 54 0d 09 70 75 | 74 3a 20 6c 61 73 74 53 |PEAT..pu|t: lastS|
|00001d00| 69 62 52 65 63 74 20 20 | 3b 6d 0d 0d 0d 70 75 62 |ibRect |;m...pub|
|00001d10| 6c 69 63 0d 0d 5c 20 4d | 4f 56 45 44 3a 20 6d 65 |lic..\ M|OVED: me|
|00001d20| 61 6e 73 20 74 68 61 74 | 20 73 6f 6d 65 74 68 69 |ans that| somethi|
|00001d30| 6e 67 20 68 61 73 20 68 | 61 70 70 65 6e 65 64 20 |ng has h|appened |
|00001d40| 74 6f 20 63 68 61 6e 67 | 65 20 74 68 65 20 70 6f |to chang|e the po|
|00001d50| 73 69 74 69 6f 6e 20 6f | 66 0d 5c 20 74 68 69 73 |sition o|f.\ this|
|00001d60| 20 76 69 65 77 20 28 73 | 75 63 68 20 61 73 20 74 | view (s|uch as t|
|00001d70| 68 65 20 70 61 72 65 6e | 74 20 76 69 65 77 20 6d |he paren|t view m|
|00001d80| 6f 76 69 6e 67 2c 20 6f | 72 20 74 68 65 20 62 6f |oving, o|r the bo|
|00001d90| 75 6e 64 73 20 6f 72 20 | 6a 75 73 74 69 66 69 63 |unds or |justific|
|00001da0| 61 74 69 6f 6e 0d 5c 20 | 70 61 72 61 6d 65 74 65 |ation.\ |paramete|
|00001db0| 72 73 20 63 68 61 6e 67 | 69 6e 67 29 2c 20 73 6f |rs chang|ing), so|
|00001dc0| 20 77 65 20 6d 75 73 74 | 20 72 65 63 6f 6d 70 75 | we must| recompu|
|00001dd0| 74 65 20 74 68 65 20 76 | 69 65 77 52 65 63 74 2e |te the v|iewRect.|
|00001de0| 20 20 54 68 69 73 20 6d | 65 61 6e 73 0d 5c 20 63 | This m|eans.\ c|
|00001df0| 61 6c 6c 69 6e 67 20 62 | 6f 75 6e 64 73 3e 76 69 |alling b|ounds>vi|
|00001e00| 65 77 52 65 63 74 3a 2c | 20 61 6e 64 20 63 61 6c |ewRect:,| and cal|
|00001e10| 6c 69 6e 67 20 4d 4f 56 | 45 44 3a 20 6f 6e 20 6f |ling MOV|ED: on o|
|00001e20| 75 72 20 63 68 69 6c 64 | 72 65 6e 20 61 73 20 77 |ur child|ren as w|
|00001e30| 65 6c 6c 2e 0d 0d 5c 20 | 54 68 65 20 73 69 74 75 |ell...\ |The situ|
|00001e40| 61 74 69 6f 6e 20 77 69 | 74 68 20 74 68 65 20 63 |ation wi|th the c|
|00001e50| 6c 69 70 20 61 6e 64 20 | 75 70 64 61 74 69 6e 67 |lip and |updating|
|00001e60| 20 69 73 20 61 20 62 69 | 74 20 74 72 69 63 6b 79 | is a bi|t tricky|
|00001e70| 20 2d 20 61 74 20 73 6f | 6d 65 20 73 74 61 67 65 | - at so|me stage|
|00001e80| 0d 5c 20 77 65 20 73 68 | 6f 75 6c 64 20 73 65 74 |.\ we sh|ould set|
|00001e90| 20 74 68 65 20 63 6c 69 | 70 20 74 6f 20 74 68 65 | the cli|p to the|
|00001ea0| 20 6e 65 77 20 76 69 65 | 77 20 70 6f 73 69 74 69 | new vie|w positi|
|00001eb0| 6f 6e 2c 20 61 6e 64 20 | 70 72 6f 62 61 62 6c 79 |on, and |probably|
|00001ec0| 20 61 6e 20 75 70 64 61 | 74 65 0d 5c 20 69 73 20 | an upda|te.\ is |
|00001ed0| 6e 65 65 64 65 64 20 65 | 76 65 6e 74 75 61 6c 6c |needed e|ventuall|
|00001ee0| 79 20 61 73 20 77 65 6c | 6c 2e 20 20 42 75 74 20 |y as wel|l. But |
|00001ef0| 69 6e 20 73 75 62 63 6c | 61 73 73 65 73 20 77 65 |in subcl|asses we|
|00001f00| 20 6d 69 67 68 74 20 61 | 6c 73 6f 20 68 61 76 65 | might a|lso have|
|00001f10| 20 74 6f 0d 5c 20 65 72 | 61 73 65 20 74 68 65 20 | to.\ er|ase the |
|00001f20| 6f 6c 64 20 70 6f 73 69 | 74 69 6f 6e 20 28 43 74 |old posi|tion (Ct|
|00001f30| 6c 20 64 6f 65 73 20 74 | 68 69 73 2c 20 66 6f 72 |l does t|his, for|
|00001f40| 20 65 78 61 6d 70 6c 65 | 29 2c 20 77 68 69 63 68 | example|), which|
|00001f50| 20 77 69 6c 6c 20 70 72 | 6f 62 61 62 6c 79 0d 5c | will pr|obably.\|
|00001f60| 20 62 65 20 6f 75 74 73 | 69 64 65 20 74 68 65 20 | be outs|ide the |
|00001f70| 6e 65 77 20 76 69 65 77 | 20 61 72 65 61 2e 20 20 |new view| area. |
|00001f80| 41 6c 73 6f 20 77 65 20 | 6d 69 67 68 74 20 62 65 |Also we |might be|
|00001f90| 20 69 6e 73 69 64 65 20 | 61 20 73 6d 61 6c 6c 65 | inside |a smalle|
|00001fa0| 72 20 70 61 72 65 6e 74 | 0d 5c 20 76 69 65 77 2c |r parent|.\ view,|
|00001fb0| 20 73 6f 20 73 65 74 74 | 69 6e 67 20 74 68 65 20 | so sett|ing the |
|00001fc0| 63 6c 69 70 20 6d 69 67 | 68 74 20 62 65 20 69 6e |clip mig|ht be in|
|00001fd0| 61 70 70 72 6f 70 72 69 | 61 74 65 2e 20 20 41 73 |appropri|ate. As|
|00001fe0| 20 77 65 6c 6c 20 61 73 | 20 74 68 69 73 2c 20 77 | well as| this, w|
|00001ff0| 65 0d 5c 20 6d 69 67 68 | 74 20 68 61 76 65 20 74 |e.\ migh|t have t|
|00002000| 6f 20 64 6f 20 73 6f 6d | 65 20 6f 74 68 65 72 20 |o do som|e other |
|00002010| 64 72 61 77 69 6e 67 20 | 77 68 69 63 68 20 6d 69 |drawing |which mi|
|00002020| 67 68 74 20 6d 61 6b 65 | 20 61 6e 20 75 70 64 61 |ght make| an upda|
|00002030| 74 65 20 75 6e 6e 65 63 | 65 73 73 61 72 79 2e 0d |te unnec|essary..|
|00002040| 0d 5c 20 53 6f 20 68 65 | 72 65 20 69 6e 20 56 69 |.\ So he|re in Vi|
|00002050| 65 77 2c 20 77 65 20 6a | 75 73 74 20 64 6f 20 74 |ew, we j|ust do t|
|00002060| 68 65 20 62 61 73 69 63 | 20 73 74 75 66 66 2c 20 |he basic| stuff, |
|00002070| 61 6e 64 20 64 6f 6e 27 | 74 20 73 65 74 20 74 68 |and don'|t set th|
|00002080| 65 20 63 6c 69 70 0d 5c | 20 6f 72 20 75 70 64 61 |e clip.\| or upda|
|00002090| 74 65 2e 0d 0d 0d 3a 6d | 20 4d 4f 56 45 44 3a 0d |te....:m| MOVED:.|
|000020a0| 09 62 6f 75 6e 64 73 3e | 76 69 65 77 52 65 63 74 |.bounds>|viewRect|
|000020b0| 3a 20 73 65 6c 66 0d 09 | 67 65 74 3a 20 61 6c 69 |: self..|get: ali|
|000020c0| 76 65 3f 20 49 46 20 20 | 63 68 69 6c 64 72 65 6e |ve? IF |children|
|000020d0| 4d 6f 76 65 64 3a 20 73 | 65 6c 66 20 20 54 48 45 |Moved: s|elf THE|
|000020e0| 4e 0d 3b 6d 0d 0d 0d 5c | 20 4e 45 57 3a 20 20 28 |N.;m...\| NEW: (|
|000020f0| 20 2d 2d 20 29 20 20 66 | 69 72 65 73 20 75 70 20 | -- ) f|ires up |
|00002100| 74 68 65 20 76 69 65 77 | 2e 20 20 54 68 69 73 20 |the view|. This |
|00002110| 6d 65 74 68 6f 64 20 69 | 6e 20 6e 6f 72 6d 61 6c |method i|n normal|
|00002120| 6c 79 20 63 61 6c 6c 65 | 64 0d 5c 20 61 75 74 6f |ly calle|d.\ auto|
|00002130| 6d 61 74 69 63 61 6c 6c | 79 20 66 72 6f 6d 20 74 |maticall|y from t|
|00002140| 68 65 20 6f 77 6e 69 6e | 67 20 77 69 6e 64 6f 77 |he ownin|g window|
|00002150| 20 77 68 65 6e 20 74 68 | 65 20 77 69 6e 64 6f 77 | when th|e window|
|00002160| 20 67 65 74 73 20 61 20 | 4e 45 57 3a 2e 0d 0d 70 | gets a |NEW:...p|
|00002170| 72 69 76 61 74 65 09 09 | 09 5c 20 48 65 72 65 20 |rivate..|.\ Here |
|00002180| 77 65 20 6a 75 73 74 20 | 66 61 63 74 6f 72 20 6f |we just |factor o|
|00002190| 75 74 20 73 6f 6d 65 20 | 73 74 75 66 66 20 77 68 |ut some |stuff wh|
|000021a0| 69 63 68 20 73 75 62 63 | 6c 61 73 73 65 73 20 63 |ich subc|lasses c|
|000021b0| 61 6e 0d 09 09 09 09 5c | 20 63 61 6c 6c 2c 20 73 |an.....\| call, s|
|000021c0| 69 6e 63 65 20 74 68 65 | 79 27 6c 6c 20 75 73 75 |ince the|y'll usu|
|000021d0| 61 6c 6c 79 20 6e 65 65 | 64 20 69 74 2c 20 62 75 |ally nee|d it, bu|
|000021e0| 74 20 6e 6f 74 20 61 6c | 6c 20 61 74 20 6f 6e 63 |t not al|l at onc|
|000021f0| 65 2e 0d 09 09 09 09 5c | 20 54 68 65 20 73 65 74 |e......\| The set|
|00002200| 75 70 4e 65 77 3a 20 6f | 70 65 72 61 74 69 6f 6e |upNew: o|peration|
|00002210| 73 20 77 6f 75 6c 64 20 | 6e 6f 72 6d 61 6c 6c 79 |s would |normally|
|00002220| 20 62 65 20 6e 65 65 64 | 65 64 20 61 74 20 74 68 | be need|ed at th|
|00002230| 65 0d 09 09 09 09 5c 20 | 73 74 61 72 74 20 28 73 |e.....\ |start (s|
|00002240| 69 6e 63 65 20 77 65 20 | 68 61 76 65 20 74 6f 20 |ince we |have to |
|00002250| 6d 61 6b 65 20 74 68 65 | 20 76 69 65 77 52 65 63 |make the| viewRec|
|00002260| 74 20 76 61 6c 69 64 29 | 2c 20 61 6e 64 20 74 68 |t valid)|, and th|
|00002270| 65 0d 09 09 09 09 5c 20 | 77 69 6e 64 75 70 4e 65 |e.....\ |windupNe|
|00002280| 77 3a 20 6f 70 73 20 61 | 74 20 74 68 65 20 65 6e |w: ops a|t the en|
|00002290| 64 2c 20 73 69 6e 63 65 | 20 4e 45 57 3a 20 6d 61 |d, since| NEW: ma|
|000022a0| 79 20 64 72 61 77 20 73 | 6f 6d 65 74 68 69 6e 67 |y draw s|omething|
|000022b0| 2c 0d 09 09 09 09 5c 20 | 61 6e 64 20 74 68 65 20 |,.....\ |and the |
|000022c0| 63 68 69 6c 64 20 76 69 | 65 77 73 20 73 68 6f 75 |child vi|ews shou|
|000022d0| 6c 64 20 6e 6f 72 6d 61 | 6c 6c 79 20 62 65 20 64 |ld norma|lly be d|
|000022e0| 72 61 77 6e 20 61 66 74 | 65 72 0d 09 09 09 09 5c |rawn aft|er.....\|
|000022f0| 20 74 68 65 20 70 61 72 | 65 6e 74 20 28 73 6f 20 | the par|ent (so |
|00002300| 74 68 65 79 20 63 6f 6d | 65 20 6f 75 74 20 6f 6e |they com|e out on|
|00002310| 20 74 6f 70 29 2e 20 20 | 42 75 74 20 74 68 69 73 | top). |But this|
|00002320| 20 69 73 6e 27 74 20 61 | 0d 09 09 09 09 5c 20 68 | isn't a|.....\ h|
|00002330| 61 72 64 20 61 6e 64 20 | 66 61 73 74 20 72 75 6c |ard and |fast rul|
|00002340| 65 2c 20 73 6f 20 77 65 | 20 77 6f 6e 27 74 20 75 |e, so we| won't u|
|00002350| 73 65 20 63 61 6c 6c 46 | 69 72 73 74 2f 63 61 6c |se callF|irst/cal|
|00002360| 6c 4c 61 73 74 0d 09 09 | 09 09 5c 20 68 65 72 65 |lLast...|..\ here|
|00002370| 2e 0d 3a 6d 20 53 65 74 | 75 70 4e 65 77 3a 0d 09 |..:m Set|upNew:..|
|00002380| 62 6f 75 6e 64 73 3e 76 | 69 65 77 52 65 63 74 3a |bounds>v|iewRect:|
|00002390| 20 73 65 6c 66 0d 09 4e | 49 4c 3f 3a 20 5e 70 61 | self..N|IL?: ^pa|
|000023a0| 72 65 6e 74 0d 09 4e 49 | 46 09 09 67 65 74 3a 20 |rent..NI|F..get: |
|000023b0| 5e 70 61 72 65 6e 74 20 | 20 77 69 6e 64 6f 77 3a |^parent | window:|
|000023c0| 20 76 69 65 77 20 20 73 | 65 74 57 69 6e 64 6f 77 | view s|etWindow|
|000023d0| 3a 20 73 65 6c 66 0d 09 | 54 48 45 4e 20 20 3b 6d |: self..|THEN ;m|
|000023e0| 0d 0d 3a 6d 20 57 69 6e | 64 75 70 4e 65 77 3a 0d |..:m Win|dupNew:.|
|000023f0| 09 42 45 47 49 4e 20 20 | 28 20 5e 62 61 73 65 20 |.BEGIN |( ^base |
|00002400| 29 20 20 65 61 63 68 3a | 20 63 68 69 6c 64 72 65 |) each:| childre|
|00002410| 6e 20 20 57 48 49 4c 45 | 20 20 6e 65 77 3a 20 5b |n WHILE| new: [|
|00002420| 5d 20 20 52 45 50 45 41 | 54 0d 09 74 72 75 65 20 |] REPEA|T..true |
|00002430| 20 70 75 74 3a 20 61 6c | 69 76 65 3f 0d 09 67 65 | put: al|ive?..ge|
|00002440| 74 3a 20 6d 65 61 73 75 | 72 65 46 72 6f 6d 4d 65 |t: measu|reFromMe|
|00002450| 3f 0d 09 49 46 09 61 64 | 64 72 3a 20 76 69 65 77 |?..IF.ad|dr: view|
|00002460| 52 65 63 74 20 20 2d 3e | 3a 20 6c 61 73 74 53 69 |Rect ->|: lastSi|
|00002470| 62 52 65 63 74 20 20 54 | 48 45 4e 0d 09 09 09 5c |bRect T|HEN....\|
|00002480| 20 6c 61 73 74 53 69 62 | 52 65 63 74 20 77 61 73 | lastSib|Rect was|
|00002490| 20 70 72 6f 62 61 62 6c | 79 20 63 68 61 6e 67 65 | probabl|y change|
|000024a0| 64 20 77 68 65 6e 20 6e | 65 77 3a 20 77 61 73 20 |d when n|ew: was |
|000024b0| 73 65 6e 74 20 74 6f 20 | 74 68 65 20 63 68 69 6c |sent to |the chil|
|000024c0| 64 72 65 6e 0d 3b 6d 0d | 0d 70 75 62 6c 69 63 0d |dren.;m.|.public.|
|000024d0| 0d 3a 6d 20 4e 45 57 3a | 0d 09 73 65 74 75 70 4e |.:m NEW:|..setupN|
|000024e0| 65 77 3a 20 73 65 6c 66 | 20 20 20 77 69 6e 64 75 |ew: self| windu|
|000024f0| 70 4e 65 77 3a 20 73 65 | 6c 66 20 20 3b 6d 0d 0d |pNew: se|lf ;m..|
|00002500| 0d 3a 6d 20 52 45 4c 45 | 41 53 45 3a 0d 09 42 45 |.:m RELE|ASE:..BE|
|00002510| 47 49 4e 20 20 20 65 61 | 63 68 3a 20 63 68 69 6c |GIN ea|ch: chil|
|00002520| 64 72 65 6e 20 20 57 48 | 49 4c 45 20 20 72 65 6c |dren WH|ILE rel|
|00002530| 65 61 73 65 3a 20 5b 5d | 20 20 52 45 50 45 41 54 |ease: []| REPEAT|
|00002540| 0d 09 72 65 6c 65 61 73 | 65 3a 20 63 68 69 6c 64 |..releas|e: child|
|00002550| 72 65 6e 0d 09 66 61 6c | 73 65 20 20 70 75 74 3a |ren..fal|se put:|
|00002560| 20 61 6c 69 76 65 3f 20 | 20 20 3b 6d 0d 0d 0d 28 | alive? | ;m...(|
|00002570| 2a 09 20 44 52 41 57 3a | 20 69 73 20 74 68 65 20 |*. DRAW:| is the |
|00002580| 6d 65 74 68 6f 64 20 63 | 61 6c 6c 65 64 20 74 6f |method c|alled to|
|00002590| 20 67 65 74 20 74 68 65 | 20 76 69 65 77 20 74 6f | get the| view to|
|000025a0| 20 64 72 61 77 20 69 74 | 73 65 6c 66 2e 20 20 54 | draw it|self. T|
|000025b0| 68 65 72 65 0d 09 61 72 | 65 20 61 20 66 65 77 20 |here..ar|e a few |
|000025c0| 73 75 62 74 6c 65 74 69 | 65 73 2e 20 20 42 65 66 |subtleti|es. Bef|
|000025d0| 6f 72 65 20 64 72 61 77 | 69 6e 67 20 69 73 20 64 |ore draw|ing is d|
|000025e0| 6f 6e 65 2c 20 77 65 20 | 73 65 74 20 74 68 65 20 |one, we |set the |
|000025f0| 63 6c 69 70 20 72 65 67 | 69 6f 6e 0d 09 74 6f 20 |clip reg|ion..to |
|00002600| 76 69 65 77 52 65 63 74 | 2c 20 61 6e 64 20 74 68 |viewRect|, and th|
|00002610| 65 20 6f 72 69 67 69 6e | 20 73 6f 20 74 68 61 74 |e origin| so that|
|00002620| 20 74 68 65 20 74 6f 70 | 20 6c 65 66 74 20 63 6f | the top| left co|
|00002630| 72 6e 65 72 20 6f 66 20 | 76 69 65 77 52 65 63 74 |rner of |viewRect|
|00002640| 0d 09 77 69 6c 6c 20 62 | 65 20 28 30 2c 20 30 29 |..will b|e (0, 0)|
|00002650| 2e 20 20 54 68 65 6e 20 | 61 66 74 65 72 20 64 72 |. Then |after dr|
|00002660| 61 77 69 6e 67 2c 20 77 | 65 20 6e 65 65 64 20 74 |awing, w|e need t|
|00002670| 6f 20 63 61 6c 6c 20 64 | 72 61 77 3a 20 66 6f 72 |o call d|raw: for|
|00002680| 20 61 6c 6c 0d 09 74 68 | 65 20 63 68 69 6c 64 72 | all..th|e childr|
|00002690| 65 6e 2e 20 20 4e 6f 77 | 20 68 65 72 65 27 73 20 |en. Now| here's |
|000026a0| 74 68 65 20 67 6f 6f 64 | 20 70 61 72 74 2e 20 20 |the good| part. |
|000026b0| 42 6f 74 68 20 74 68 65 | 73 65 20 6a 6f 62 73 20 |Both the|se jobs |
|000026c0| 63 61 6e 20 62 65 0d 09 | 64 6f 6e 65 20 76 69 61 |can be..|done via|
|000026d0| 20 74 68 65 20 43 61 6c | 6c 46 69 72 73 74 2f 43 | the Cal|lFirst/C|
|000026e0| 61 6c 6c 4c 61 73 74 20 | 6d 65 63 68 61 6e 69 73 |allLast |mechanis|
|000026f0| 6d 2c 20 73 6f 20 74 68 | 65 20 44 52 41 57 3a 20 |m, so th|e DRAW: |
|00002700| 6d 65 74 68 6f 64 20 69 | 74 73 65 6c 66 0d 09 63 |method i|tself..c|
|00002710| 61 6e 20 6a 75 73 74 20 | 64 6f 20 74 68 65 20 64 |an just |do the d|
|00002720| 72 61 77 69 6e 67 2e 20 | 20 48 65 72 65 20 69 6e |rawing. | Here in|
|00002730| 20 74 68 65 20 56 69 65 | 77 20 63 6c 61 73 73 20 | the Vie|w class |
|00002740| 69 74 73 65 6c 66 2c 20 | 74 68 69 73 20 6a 75 73 |itself, |this jus|
|00002750| 74 0d 09 63 6f 6e 73 69 | 73 74 73 20 6f 66 20 65 |t..consi|sts of e|
|00002760| 78 65 63 75 74 69 6e 67 | 20 74 68 65 20 64 72 61 |xecuting| the dra|
|00002770| 77 20 68 61 6e 64 6c 65 | 72 2e 0d 0d 09 46 6f 72 |w handle|r....For|
|00002780| 20 73 6f 6d 65 20 6b 69 | 6e 64 73 20 6f 66 20 73 | some ki|nds of s|
|00002790| 75 62 76 69 65 77 20 28 | 6e 6f 74 61 62 6c 79 20 |ubview (|notably |
|000027a0| 43 6f 6e 74 72 6f 6c 29 | 2c 20 77 65 20 6d 61 79 |Control)|, we may|
|000027b0| 20 6e 6f 74 20 77 61 6e | 74 20 74 68 65 20 6f 72 | not wan|t the or|
|000027c0| 69 67 69 6e 0d 09 63 68 | 61 6e 67 65 2c 20 62 75 |igin..ch|ange, bu|
|000027d0| 74 20 72 61 74 68 65 72 | 20 77 61 6e 74 20 74 68 |t rather| want th|
|000027e0| 65 20 47 72 61 66 50 6f | 72 74 20 6f 72 69 67 69 |e GrafPo|rt origi|
|000027f0| 6e 2e 20 20 49 6e 20 74 | 68 65 73 65 20 76 69 65 |n. In t|hese vie|
|00002800| 77 73 20 77 65 20 63 61 | 6e 20 6a 75 73 74 0d 09 |ws we ca|n just..|
|00002810| 70 75 74 20 22 30 20 63 | 61 6c 6c 20 53 65 74 4f |put "0 c|all SetO|
|00002820| 72 69 67 69 6e 22 20 62 | 65 66 6f 72 65 20 74 68 |rigin" b|efore th|
|00002830| 65 20 64 72 61 77 69 6e | 67 20 63 6f 64 65 2e 0d |e drawin|g code..|
|00002840| 0d 09 41 6e 6f 74 68 65 | 72 20 75 73 65 66 75 6c |..Anothe|r useful|
|00002850| 20 70 6f 69 6e 74 3a 20 | 77 68 65 6e 20 74 68 65 | point: |when the|
|00002860| 20 64 72 61 77 20 68 61 | 6e 64 6c 65 72 20 69 73 | draw ha|ndler is|
|00002870| 20 65 78 65 63 75 74 65 | 64 2c 20 74 65 6d 70 52 | execute|d, tempR|
|00002880| 65 63 74 20 77 69 6c 6c | 0d 09 63 6f 6e 74 61 69 |ect will|..contai|
|00002890| 6e 20 74 68 65 20 62 6f | 75 6e 64 69 6e 67 20 72 |n the bo|unding r|
|000028a0| 65 63 74 61 6e 67 6c 65 | 20 66 6f 72 20 74 68 65 |ectangle| for the|
|000028b0| 20 64 72 61 77 69 6e 67 | 2c 20 72 65 6c 61 74 69 | drawing|, relati|
|000028c0| 76 65 20 74 6f 20 74 68 | 65 20 63 75 72 72 65 6e |ve to th|e curren|
|000028d0| 74 0d 09 6f 72 69 67 69 | 6e 2e 20 20 54 68 69 73 |t..origi|n. This|
|000028e0| 20 63 61 6e 20 62 65 20 | 75 73 65 64 20 74 6f 20 | can be |used to |
|000028f0| 64 72 61 77 20 61 20 66 | 72 61 6d 65 2c 20 66 6f |draw a f|rame, fo|
|00002900| 72 20 65 78 61 6d 70 6c | 65 2e 0d 0d 09 46 69 6e |r exampl|e....Fin|
|00002910| 61 6c 20 6e 6f 74 65 3a | 20 77 65 20 44 4f 4e 27 |al note:| we DON'|
|00002920| 54 20 63 6c 65 61 72 20 | 74 68 65 20 64 72 61 77 |T clear |the draw|
|00002930| 69 6e 67 20 61 72 65 61 | 20 62 65 66 6f 72 65 20 |ing area| before |
|00002940| 63 61 6c 6c 69 6e 67 20 | 74 68 65 20 64 72 61 77 |calling |the draw|
|00002950| 0d 09 68 61 6e 64 6c 65 | 72 2e 20 20 49 66 20 79 |..handle|r. If y|
|00002960| 6f 75 20 6e 65 65 64 20 | 69 74 20 63 6c 65 61 72 |ou need |it clear|
|00002970| 65 64 2c 20 79 6f 75 20 | 63 61 6e 20 63 61 6c 6c |ed, you |can call|
|00002980| 20 43 4c 45 41 52 3a 20 | 73 65 6c 66 20 69 6e 20 | CLEAR: |self in |
|00002990| 74 68 65 20 64 72 61 77 | 0d 09 68 61 6e 64 6c 65 |the draw|..handle|
|000029a0| 72 2e 0d 2a 29 0d 0d 70 | 72 69 76 61 74 65 0d 0d |r..*)..p|rivate..|
|000029b0| 3a 6d 20 53 65 74 54 65 | 6d 70 52 65 63 74 3a 20 |:m SetTe|mpRect: |
|000029c0| 20 7b 20 5c 20 6c 65 66 | 74 20 74 6f 70 20 72 74 | { \ lef|t top rt|
|000029d0| 20 62 6f 74 20 2d 2d 20 | 7d 0d 09 09 5c 20 53 65 | bot -- |}...\ Se|
|000029e0| 74 73 20 74 65 6d 70 52 | 65 63 74 20 74 6f 20 61 |ts tempR|ect to a|
|000029f0| 20 76 69 65 77 2d 72 65 | 6c 61 74 69 76 65 20 76 | view-re|lative v|
|00002a00| 65 72 73 69 6f 6e 20 6f | 66 20 76 69 65 77 52 65 |ersion o|f viewRe|
|00002a10| 63 74 0d 09 09 5c 20 2d | 2d 20 77 65 20 75 73 65 |ct...\ -|- we use|
|00002a20| 20 74 68 69 73 20 66 6f | 72 20 61 20 6e 75 6d 62 | this fo|r a numb|
|00002a30| 65 72 20 6f 66 20 74 68 | 69 6e 67 73 2e 0d 09 67 |er of th|ings...g|
|00002a40| 65 74 3a 20 76 69 65 77 | 52 65 63 74 20 20 2d 3e |et: view|Rect ->|
|00002a50| 20 62 6f 74 20 20 2d 3e | 20 72 74 20 20 2d 3e 20 | bot ->| rt -> |
|00002a60| 74 6f 70 20 20 2d 3e 20 | 6c 65 66 74 0d 09 30 20 |top -> |left..0 |
|00002a70| 20 30 20 20 72 74 20 6c | 65 66 74 20 2d 20 20 62 | 0 rt l|eft - b|
|00002a80| 6f 74 20 74 6f 70 20 2d | 20 20 70 75 74 3a 20 74 |ot top -| put: t|
|00002a90| 65 6d 70 52 65 63 74 20 | 20 3b 6d 0d 0d 70 75 62 |empRect | ;m..pub|
|00002aa0| 6c 69 63 0d 0d 5c 20 53 | 45 54 43 4c 49 50 3a 20 |lic..\ S|ETCLIP: |
|00002ab0| 73 65 74 73 20 74 68 65 | 20 63 6c 69 70 20 62 65 |sets the| clip be|
|00002ac0| 66 6f 72 65 20 64 72 61 | 77 69 6e 67 2e 20 20 54 |fore dra|wing. T|
|00002ad0| 68 69 73 20 69 73 20 61 | 20 72 61 74 68 65 72 20 |his is a| rather |
|00002ae0| 65 6c 61 62 6f 72 61 74 | 65 0d 5c 20 70 72 6f 63 |elaborat|e.\ proc|
|00002af0| 65 73 73 2c 20 73 69 6e | 63 65 20 77 65 20 6e 65 |ess, sin|ce we ne|
|00002b00| 65 64 20 74 6f 20 73 65 | 74 20 74 68 65 20 63 6c |ed to se|t the cl|
|00002b10| 69 70 20 74 6f 20 74 68 | 65 20 69 6e 74 65 72 73 |ip to th|e inters|
|00002b20| 65 63 74 69 6f 6e 20 6f | 66 20 74 68 69 73 0d 5c |ection o|f this.\|
|00002b30| 20 76 69 65 77 27 73 20 | 76 69 65 77 52 65 63 74 | view's |viewRect|
|00002b40| 20 61 6e 64 20 61 6c 6c | 20 69 74 73 20 70 61 72 | and all| its par|
|00002b50| 65 6e 74 20 76 69 65 77 | 73 27 20 76 69 65 77 52 |ent view|s' viewR|
|00002b60| 65 63 74 73 20 28 77 68 | 69 63 68 20 63 6f 75 6c |ects (wh|ich coul|
|00002b70| 64 20 70 6f 73 73 69 62 | 6c 79 0d 5c 20 62 65 20 |d possib|ly.\ be |
|00002b80| 73 6d 61 6c 6c 65 72 29 | 2e 20 20 54 68 69 73 20 |smaller)|. This |
|00002b90| 63 61 6e 20 61 6c 6c 20 | 62 65 20 69 6e 68 69 62 |can all |be inhib|
|00002ba0| 69 74 65 64 20 62 79 20 | 73 65 74 74 69 6e 67 20 |ited by |setting |
|00002bb0| 53 65 74 43 6c 69 70 3f | 20 66 61 6c 73 65 0d 5c |SetClip?| false.\|
|00002bc0| 20 28 77 68 69 63 68 20 | 77 65 20 64 6f 20 77 68 | (which |we do wh|
|00002bd0| 65 6e 20 73 63 72 6f 6c | 6c 69 6e 67 2c 20 66 6f |en scrol|ling, fo|
|00002be0| 72 20 65 78 61 6d 70 6c | 65 2c 20 73 69 6e 63 65 |r exampl|e, since|
|00002bf0| 20 74 68 65 20 73 79 73 | 74 65 6d 20 68 61 73 20 | the sys|tem has |
|00002c00| 6b 69 6e 64 6c 79 0d 5c | 20 73 65 74 20 74 68 65 |kindly.\| set the|
|00002c10| 20 63 6c 69 70 20 66 6f | 72 20 75 73 20 61 6c 72 | clip fo|r us alr|
|00002c20| 65 61 64 79 29 2e 0d 0d | 5c 20 4e 6f 74 65 3a 20 |eady)...|\ Note: |
|00002c30| 77 68 65 6e 20 74 68 69 | 73 20 6d 65 74 68 6f 64 |when thi|s method|
|00002c40| 20 69 73 20 63 61 6c 6c | 65 64 2c 20 74 68 65 20 | is call|ed, the |
|00002c50| 6f 72 69 67 69 6e 20 68 | 61 73 20 62 65 65 6e 20 |origin h|as been |
|00002c60| 73 65 74 20 73 6f 20 74 | 68 61 74 20 74 68 65 0d |set so t|hat the.|
|00002c70| 5c 20 74 6f 70 20 6c 65 | 66 74 20 6f 66 20 74 68 |\ top le|ft of th|
|00002c80| 69 73 20 76 69 65 77 20 | 69 73 20 28 30 2c 30 29 |is view |is (0,0)|
|00002c90| 2e 20 20 54 68 69 73 20 | 69 73 20 62 65 63 61 75 |. This |is becau|
|00002ca0| 73 65 20 77 65 27 72 65 | 20 67 6f 69 6e 67 20 74 |se we're| going t|
|00002cb0| 6f 20 75 73 65 0d 5c 20 | 74 68 69 73 20 6f 72 69 |o use.\ |this ori|
|00002cc0| 67 69 6e 20 66 6f 72 20 | 74 68 65 20 64 72 61 77 |gin for |the draw|
|00002cd0| 69 6e 67 2c 20 61 6e 64 | 20 75 6e 6c 65 73 73 20 |ing, and| unless |
|00002ce0| 77 65 20 75 73 65 20 74 | 68 65 20 73 61 6d 65 20 |we use t|he same |
|00002cf0| 77 68 65 6e 20 77 65 20 | 73 65 74 20 74 68 65 0d |when we |set the.|
|00002d00| 5c 20 63 6c 69 70 2c 20 | 74 68 65 20 63 6c 69 70 |\ clip, |the clip|
|00002d10| 20 72 65 63 74 61 6e 67 | 6c 65 20 67 65 74 73 20 | rectang|le gets |
|00002d20| 74 72 61 6e 73 6c 61 74 | 65 64 20 61 77 61 79 20 |translat|ed away |
|00002d30| 73 6f 6d 65 77 68 65 72 | 65 20 73 74 72 61 6e 67 |somewher|e strang|
|00002d40| 65 21 0d 0d 5c 20 54 68 | 69 73 20 6d 65 74 68 6f |e!..\ Th|is metho|
|00002d50| 64 20 68 61 73 20 74 6f | 20 62 65 20 70 75 62 6c |d has to| be publ|
|00002d60| 69 63 20 73 69 6e 63 65 | 20 77 65 20 6c 61 74 65 |ic since| we late|
|00002d70| 2d 62 69 6e 64 20 74 6f | 20 69 74 2e 0d 0d 3a 6d |-bind to| it...:m|
|00002d80| 20 53 65 74 43 6c 69 70 | 3a 20 7b 20 5c 20 5e 76 | SetClip|: { \ ^v|
|00002d90| 69 65 77 20 6f 4c 65 66 | 74 20 6f 54 6f 70 20 6c |iew oLef|t oTop l|
|00002da0| 65 66 74 20 74 6f 70 20 | 72 74 20 62 6f 74 20 2d |eft top |rt bot -|
|00002db0| 2d 20 7d 0d 09 09 09 09 | 09 09 09 09 09 5c 20 20 |- }.....|.....\ |
|00002dc0| 4e 6f 74 65 3a 20 6f 72 | 69 67 69 6e 20 69 73 20 |Note: or|igin is |
|00002dd0| 72 65 6c 20 74 6f 20 74 | 68 69 73 20 76 69 65 77 |rel to t|his view|
|00002de0| 2e 0d 09 67 65 74 3a 20 | 73 65 74 43 6c 69 70 3f |...get: |setClip?|
|00002df0| 20 20 4e 49 46 20 20 74 | 72 75 65 20 70 75 74 3a | NIF t|rue put:|
|00002e00| 20 73 65 74 43 6c 69 70 | 3f 20 20 45 58 49 54 20 | setClip|? EXIT |
|00002e10| 20 54 48 45 4e 0d 09 67 | 65 74 3a 20 76 69 65 77 | THEN..g|et: view|
|00002e20| 52 65 63 74 20 20 2d 3e | 20 62 6f 74 20 20 2d 3e |Rect ->| bot ->|
|00002e30| 20 72 74 20 20 2d 3e 20 | 74 6f 70 20 20 2d 3e 20 | rt -> |top -> |
|00002e40| 6c 65 66 74 0d 09 6c 65 | 66 74 20 2d 3e 20 6f 4c |left..le|ft -> oL|
|00002e50| 65 66 74 20 20 74 6f 70 | 20 2d 3e 20 6f 54 6f 70 |eft top| -> oTop|
|00002e60| 09 09 09 5c 20 46 6f 72 | 20 6f 72 69 67 69 6e 20 |...\ For| origin |
|00002e70| 61 64 6a 75 73 74 6d 65 | 6e 74 20 6c 61 74 65 72 |adjustme|nt later|
|00002e80| 0d 09 67 65 74 3a 20 5e | 70 61 72 65 6e 74 20 2d |..get: ^|parent -|
|00002e90| 3e 20 5e 76 69 65 77 0d | 09 42 45 47 49 4e 09 5e |> ^view.|.BEGIN.^|
|00002ea0| 76 69 65 77 20 6e 69 6c | 50 20 3c 3e 0d 09 57 48 |view nil|P <>..WH|
|00002eb0| 49 4c 45 09 5e 76 69 65 | 77 20 20 67 65 74 56 69 |ILE.^vie|w getVi|
|00002ec0| 65 77 52 65 63 74 3a 20 | 76 69 65 77 09 5c 20 4d |ewRect: |view.\ M|
|00002ed0| 73 67 20 74 6f 20 63 6c | 61 73 73 20 66 6f 72 20 |sg to cl|ass for |
|00002ee0| 73 70 65 65 64 0d 09 09 | 62 6f 74 20 6d 69 6e 20 |speed...|bot min |
|00002ef0| 2d 3e 20 62 6f 74 20 20 | 72 74 20 6d 69 6e 20 2d |-> bot |rt min -|
|00002f00| 3e 20 72 74 20 20 74 6f | 70 20 6d 61 78 20 2d 3e |> rt to|p max ->|
|00002f10| 20 74 6f 70 20 20 6c 65 | 66 74 20 6d 61 78 20 2d | top le|ft max -|
|00002f20| 3e 20 6c 65 66 74 0d 09 | 09 5e 76 69 65 77 20 70 |> left..|.^view p|
|00002f30| 61 72 65 6e 74 3a 20 76 | 69 65 77 20 20 2d 3e 20 |arent: v|iew -> |
|00002f40| 5e 76 69 65 77 0d 09 52 | 45 50 45 41 54 0d 09 6c |^view..R|EPEAT..l|
|00002f50| 65 66 74 20 6f 4c 65 66 | 74 20 2d 20 20 74 6f 70 |eft oLef|t - top|
|00002f60| 20 6f 54 6f 70 20 2d 20 | 20 72 74 20 6f 4c 65 66 | oTop - | rt oLef|
|00002f70| 74 20 2d 20 20 62 6f 74 | 20 6f 54 6f 70 20 2d 20 |t - bot| oTop - |
|00002f80| 20 70 75 74 3a 20 74 65 | 6d 70 52 65 63 74 0d 09 | put: te|mpRect..|
|00002f90| 61 64 64 72 3a 20 74 65 | 6d 70 52 65 63 74 20 20 |addr: te|mpRect |
|00002fa0| 43 6c 69 70 52 65 63 74 | 20 20 3b 6d 0d 0d 70 72 |ClipRect| ;m..pr|
|00002fb0| 69 76 61 74 65 0d 0d 5c | 20 53 65 74 75 70 44 72 |ivate..\| SetupDr|
|00002fc0| 61 77 3a 20 69 73 20 74 | 68 65 20 65 71 75 69 76 |aw: is t|he equiv|
|00002fd0| 61 6c 65 6e 74 20 6f 66 | 20 46 6f 63 75 73 28 29 |alent of| Focus()|
|00002fe0| 20 66 6f 72 20 61 20 76 | 69 65 77 20 69 6e 20 4d | for a v|iew in M|
|00002ff0| 61 63 41 70 70 2e 0d 5c | 20 4f 75 72 20 43 61 6c |acApp..\| Our Cal|
|00003000| 6c 46 69 72 73 74 20 6d | 65 63 68 61 6e 69 73 6d |lFirst m|echanism|
|00003010| 20 6d 61 6b 65 73 20 69 | 74 20 61 75 74 6f 6d 61 | makes i|t automa|
|00003020| 74 69 63 21 0d 0d 3a 6d | 20 53 65 74 75 70 44 72 |tic!..:m| SetupDr|
|00003030| 61 77 3a 20 20 7b 20 5c | 20 6c 65 66 74 20 74 6f |aw: { \| left to|
|00003040| 70 20 72 74 20 62 6f 74 | 20 2d 2d 20 70 6f 72 74 |p rt bot| -- port|
|00003050| 20 7d 0d 09 70 75 73 68 | 50 6f 72 74 09 09 09 09 | }..push|Port....|
|00003060| 09 09 09 09 5c 20 53 61 | 76 65 20 63 75 72 72 65 |....\ Sa|ve curre|
|00003070| 6e 74 20 70 6f 72 74 0d | 09 67 65 74 3a 20 5e 6d |nt port.|.get: ^m|
|00003080| 79 57 69 6e 64 20 20 73 | 65 74 3a 20 63 6c 61 73 |yWind s|et: clas|
|00003090| 73 5f 61 73 3e 20 77 69 | 6e 64 6f 77 09 09 5c 20 |s_as> wi|ndow..\ |
|000030a0| 20 61 6e 64 20 73 65 74 | 20 72 69 67 68 74 20 70 | and set| right p|
|000030b0| 6f 72 74 20 66 6f 72 20 | 64 72 61 77 69 6e 67 0d |ort for |drawing.|
|000030c0| 09 30 20 30 20 20 53 65 | 74 4f 72 69 67 69 6e 0d |.0 0 Se|tOrigin.|
|000030d0| 09 67 65 74 3a 20 76 69 | 65 77 52 65 63 74 20 20 |.get: vi|ewRect |
|000030e0| 20 2d 3e 20 62 6f 74 20 | 20 2d 3e 20 72 74 20 20 | -> bot | -> rt |
|000030f0| 2d 3e 20 74 6f 70 20 20 | 2d 3e 20 6c 65 66 74 0d |-> top |-> left.|
|00003100| 09 6c 65 66 74 20 6e 65 | 67 61 74 65 20 74 6f 70 |.left ne|gate top|
|00003110| 20 6e 65 67 61 74 65 20 | 20 53 65 74 4f 72 69 67 | negate | SetOrig|
|00003120| 69 6e 0d 09 67 65 74 3a | 20 73 65 74 43 6c 69 70 |in..get:| setClip|
|00003130| 3f 0d 09 49 46 20 20 73 | 65 74 43 6c 69 70 3a 20 |?..IF s|etClip: |
|00003140| 5b 73 65 6c 66 5d 20 20 | 45 4c 53 45 20 20 74 72 |[self] |ELSE tr|
|00003150| 75 65 20 70 75 74 3a 20 | 73 65 74 43 6c 69 70 3f |ue put: |setClip?|
|00003160| 20 20 54 48 45 4e 0d 09 | 73 65 74 54 65 6d 70 52 | THEN..|setTempR|
|00003170| 65 63 74 3a 20 73 65 6c | 66 20 20 3b 6d 0d 0d 3a |ect: sel|f ;m..:|
|00003180| 6d 20 57 69 6e 64 75 70 | 44 72 61 77 3a 09 09 5c |m Windup|Draw:..\|
|00003190| 20 28 20 70 6f 72 74 20 | 2d 2d 20 29 0d 09 42 45 | ( port |-- )..BE|
|000031a0| 47 49 4e 20 20 65 61 63 | 68 3a 20 63 68 69 6c 64 |GIN eac|h: child|
|000031b0| 72 65 6e 20 20 57 48 49 | 4c 45 20 20 64 72 61 77 |ren WHI|LE draw|
|000031c0| 3a 20 5b 5d 20 20 52 45 | 50 45 41 54 0d 09 30 20 |: [] RE|PEAT..0 |
|000031d0| 30 20 20 53 65 74 4f 72 | 69 67 69 6e 0d 09 30 20 |0 SetOr|igin..0 |
|000031e0| 70 75 74 3a 20 23 75 70 | 64 61 74 65 73 0d 09 70 |put: #up|dates..p|
|000031f0| 6f 70 50 6f 72 74 20 20 | 3b 6d 0d 09 0d 70 75 62 |opPort |;m...pub|
|00003200| 6c 69 63 0d 0d 0d 5c 20 | 28 44 52 41 57 29 3a 20 |lic...\ |(DRAW): |
|00003210| 64 6f 65 73 20 74 68 65 | 20 61 63 74 75 61 6c 20 |does the| actual |
|00003220| 77 6f 72 6b 20 66 6f 72 | 20 44 52 41 57 3a 20 2d |work for| DRAW: -|
|00003230| 20 77 65 20 64 6f 20 69 | 74 20 74 68 69 73 20 77 | we do i|t this w|
|00003240| 61 79 20 73 6f 20 74 68 | 61 74 0d 5c 20 73 75 62 |ay so th|at.\ sub|
|00003250| 63 6c 61 73 73 65 73 20 | 63 61 6e 20 63 61 6c 6c |classes |can call|
|00003260| 20 28 64 72 61 77 29 3a | 20 73 75 70 65 72 20 77 | (draw):| super w|
|00003270| 69 74 68 6f 75 74 20 74 | 72 69 67 67 65 72 69 6e |ithout t|riggerin|
|00003280| 67 20 74 68 65 20 63 61 | 6c 6c 46 69 72 73 74 0d |g the ca|llFirst.|
|00003290| 5c 20 61 6e 64 20 63 61 | 6c 6c 4c 61 73 74 20 63 |\ and ca|llLast c|
|000032a0| 6f 64 65 20 61 67 61 69 | 6e 2e 0d 0d 3a 6d 20 28 |ode agai|n...:m (|
|000032b0| 44 52 41 57 29 3a 09 65 | 78 65 63 3a 20 64 72 61 |DRAW):.e|xec: dra|
|000032c0| 77 20 20 3b 6d 0d 0d 0d | 63 61 6c 6c 46 69 72 73 |w ;m...|callFirs|
|000032d0| 74 09 73 65 74 75 70 44 | 72 61 77 3a 0d 63 61 6c |t.setupD|raw:.cal|
|000032e0| 6c 4c 61 73 74 09 77 69 | 6e 64 75 70 44 72 61 77 |lLast.wi|ndupDraw|
|000032f0| 3a 0d 0d 3a 6d 20 44 52 | 41 57 3a 09 28 64 72 61 |:..:m DR|AW:.(dra|
|00003300| 77 29 3a 20 73 65 6c 66 | 20 20 3b 6d 0d 0d 0d 0d |w): self| ;m....|
|00003310| 3a 6d 20 49 44 4c 45 3a | 09 5c 20 43 61 6e 20 62 |:m IDLE:|.\ Can b|
|00003320| 65 20 75 73 65 64 20 69 | 6e 20 63 68 69 6c 64 20 |e used i|n child |
|00003330| 76 69 65 77 73 20 74 6f | 20 63 61 6c 6c 20 54 45 |views to| call TE|
|00003340| 69 64 6c 65 20 6f 72 20 | 77 68 61 74 65 76 65 72 |idle or |whatever|
|00003350| 2e 0d 09 42 45 47 49 4e | 20 20 65 61 63 68 3a 20 |...BEGIN| each: |
|00003360| 63 68 69 6c 64 72 65 6e | 20 20 57 48 49 4c 45 20 |children| WHILE |
|00003370| 20 69 64 6c 65 3a 20 5b | 5d 20 20 52 45 50 45 41 | idle: [|] REPEA|
|00003380| 54 20 20 3b 6d 20 0d 0d | 3a 6d 20 4d 6f 75 73 65 |T ;m ..|:m Mouse|
|00003390| 48 65 72 65 3f 3a 09 5c | 20 28 20 2d 2d 20 62 20 |Here?:.\| ( -- b |
|000033a0| 29 20 20 52 65 74 75 72 | 6e 73 20 74 72 75 65 20 |) Retur|ns true |
|000033b0| 69 66 20 74 68 65 20 6d | 6f 75 73 65 20 69 73 20 |if the m|ouse is |
|000033c0| 69 6e 20 74 68 69 73 20 | 76 69 65 77 2e 0d 09 77 |in this |view...w|
|000033d0| 68 65 72 65 3a 20 74 68 | 65 4d 6f 75 73 65 20 20 |here: th|eMouse |
|000033e0| 70 61 63 6b 20 20 61 64 | 64 72 3a 20 76 69 65 77 |pack ad|dr: view|
|000033f0| 52 65 63 74 20 20 50 74 | 49 6e 52 65 63 74 20 20 |Rect Pt|InRect |
|00003400| 30 3c 3e 20 3b 6d 0d 0d | 3a 6d 20 43 6c 69 63 6b |0<> ;m..|:m Click|
|00003410| 65 64 48 65 72 65 3f 3a | 09 5c 20 28 20 2d 2d 20 |edHere?:|.\ ( -- |
|00003420| 62 20 29 20 20 52 65 74 | 75 72 6e 73 20 74 72 75 |b ) Ret|urns tru|
|00003430| 65 20 69 66 20 61 20 63 | 6c 69 63 6b 20 77 61 73 |e if a c|lick was|
|00003440| 20 69 6e 20 74 68 69 73 | 20 76 69 65 77 2e 0d 09 | in this| view...|
|00003450| 77 68 65 72 65 3a 20 66 | 45 76 65 6e 74 20 20 67 |where: f|Event g|
|00003460| 2d 3e 6c 20 20 2d 3e 20 | 6d 70 6f 69 6e 74 0d 09 |->l -> |mpoint..|
|00003470| 6d 70 6f 69 6e 74 20 20 | 61 64 64 72 3a 20 76 69 |mpoint |addr: vi|
|00003480| 65 77 52 65 63 74 20 20 | 50 74 49 6e 52 65 63 74 |ewRect |PtInRect|
|00003490| 20 20 30 3c 3e 20 3b 6d | 0d 0d 0d 28 2a 09 76 69 | 0<> ;m|...(*.vi|
|000034a0| 65 77 5f 66 6f 72 5f 63 | 6c 69 63 6b 3f 3a 20 72 |ew_for_c|lick?: r|
|000034b0| 65 74 75 72 6e 73 20 74 | 72 75 65 20 69 66 20 77 |eturns t|rue if w|
|000034c0| 65 20 77 61 6e 74 20 74 | 68 65 20 63 6c 69 63 6b |e want t|he click|
|000034d0| 20 74 68 61 74 20 77 61 | 73 20 6a 75 73 74 20 64 | that wa|s just d|
|000034e0| 6f 6e 65 2c 0d 09 61 6c | 6f 6e 67 20 77 69 74 68 |one,..al|ong with|
|000034f0| 20 74 68 65 20 61 64 64 | 72 20 6f 66 20 74 68 65 | the add|r of the|
|00003500| 20 61 63 74 75 61 6c 20 | 76 69 65 77 20 74 68 61 | actual |view tha|
|00003510| 74 20 77 61 6e 74 73 20 | 74 68 65 20 63 6c 69 63 |t wants |the clic|
|00003520| 6b 20 28 77 68 69 63 68 | 20 6d 61 79 0d 09 62 65 |k (which| may..be|
|00003530| 20 61 20 63 68 69 6c 64 | 20 76 69 65 77 29 2e 0d | a child| view)..|
|00003540| 2a 29 0d 0d 3a 6d 20 76 | 69 65 77 5f 66 6f 72 5f |*)..:m v|iew_for_|
|00003550| 63 6c 69 63 6b 3f 3a 09 | 5c 20 28 20 2d 2d 20 5e |click?:.|\ ( -- ^|
|00003560| 76 69 65 77 20 74 72 75 | 65 20 7c 20 2d 2d 20 66 |view tru|e | -- f|
|00003570| 61 6c 73 65 20 29 0d 0d | 5c 20 46 69 72 73 74 20 |alse )..|\ First |
|00003580| 77 65 20 67 65 74 20 73 | 74 72 61 69 67 68 74 20 |we get s|traight |
|00003590| 6f 75 74 20 69 66 20 77 | 65 20 64 6f 6e 27 74 20 |out if w|e don't |
|000035a0| 77 61 6e 74 20 63 6c 69 | 63 6b 73 20 61 74 20 61 |want cli|cks at a|
|000035b0| 6c 6c 3a 0d 0d 09 67 65 | 74 3a 20 77 61 6e 74 73 |ll:...ge|t: wants|
|000035c0| 43 6c 69 63 6b 73 3f 20 | 20 4e 49 46 20 20 66 61 |Clicks? | NIF fa|
|000035d0| 6c 73 65 20 20 45 58 49 | 54 20 20 54 48 45 4e 0d |lse EXI|T THEN.|
|000035e0| 0d 28 2a 09 4e 6f 77 20 | 77 65 20 67 65 74 20 6f |.(*.Now |we get o|
|000035f0| 75 74 20 69 66 20 74 68 | 65 20 63 6c 69 63 6b 20 |ut if th|e click |
|00003600| 69 73 6e 27 74 20 69 6e | 20 6f 75 72 20 6f 77 6e |isn't in| our own|
|00003610| 20 61 72 65 61 2e 20 20 | 4e 6f 74 65 20 74 68 61 | area. |Note tha|
|00003620| 74 20 76 69 65 77 0d 09 | 73 75 62 63 6c 61 73 73 |t view..|subclass|
|00003630| 65 73 20 63 61 6e 20 64 | 65 66 69 6e 65 20 22 6f |es can d|efine "o|
|00003640| 77 6e 20 61 72 65 61 22 | 20 68 6f 77 65 76 65 72 |wn area"| however|
|00003650| 20 74 68 65 79 20 6c 69 | 6b 65 2e 20 20 54 68 65 | they li|ke. The|
|00003660| 79 20 63 6f 75 6c 64 0d | 09 68 61 76 65 20 73 65 |y could.|.have se|
|00003670| 76 65 72 61 6c 20 6e 6f | 6e 2d 63 6f 6e 74 69 67 |veral no|n-contig|
|00003680| 75 6f 75 73 20 72 65 63 | 74 73 2c 20 72 65 67 69 |uous rec|ts, regi|
|00003690| 6f 6e 73 2c 20 61 6e 79 | 74 68 69 6e 67 2e 0d 09 |ons, any|thing...|
|000036a0| 41 6c 73 6f 20 6e 6f 74 | 65 20 74 68 61 74 20 77 |Also not|e that w|
|000036b0| 65 20 64 6f 20 74 68 69 | 73 20 63 68 65 63 6b 20 |e do thi|s check |
|000036c0| 62 65 66 6f 72 65 20 77 | 65 20 63 68 65 63 6b 20 |before w|e check |
|000036d0| 69 66 20 74 68 65 20 63 | 6c 69 63 6b 20 77 61 73 |if the c|lick was|
|000036e0| 20 69 6e 20 6f 6e 65 0d | 09 6f 66 20 6f 75 72 20 | in one.|.of our |
|000036f0| 63 68 69 6c 64 72 65 6e | 2e 20 20 54 68 69 73 20 |children|. This |
|00003700| 69 73 20 73 69 67 6e 69 | 66 69 63 61 6e 74 2c 20 |is signi|ficant, |
|00003710| 73 69 6e 63 65 20 6f 75 | 72 20 63 68 69 6c 64 72 |since ou|r childr|
|00003720| 65 6e 20 63 61 6e 20 67 | 6f 20 6f 75 74 73 69 64 |en can g|o outsid|
|00003730| 65 0d 09 6f 75 72 20 61 | 72 65 61 20 28 61 73 20 |e..our a|rea (as |
|00003740| 77 69 74 68 20 73 63 72 | 6f 6c 6c 69 6e 67 20 76 |with scr|olling v|
|00003750| 69 65 77 73 29 2e 20 20 | 42 75 74 20 77 65 20 64 |iews). |But we d|
|00003760| 6f 6e 27 74 20 77 61 6e | 74 20 74 6f 20 72 65 73 |on't wan|t to res|
|00003770| 70 6f 6e 64 20 74 6f 0d | 09 63 6c 69 63 6b 73 20 |pond to.|.clicks |
|00003780| 69 6e 20 74 68 65 20 22 | 6f 75 74 73 69 64 65 22 |in the "|outside"|
|00003790| 20 70 61 72 74 20 6f 66 | 20 6f 6e 65 20 6f 66 20 | part of| one of |
|000037a0| 6f 75 72 20 63 68 69 6c | 64 72 65 6e 2c 20 73 69 |our chil|dren, si|
|000037b0| 6e 63 65 20 74 68 69 73 | 20 69 73 20 61 0d 09 70 |nce this| is a..p|
|000037c0| 6c 61 63 65 20 69 6e 20 | 74 68 65 20 63 68 69 6c |lace in |the chil|
|000037d0| 64 20 76 69 65 77 20 77 | 68 69 63 68 20 64 6f 65 |d view w|hich doe|
|000037e0| 73 6e 27 74 20 72 65 61 | 6c 6c 79 20 65 78 69 73 |sn't rea|lly exis|
|000037f0| 74 20 66 72 6f 6d 20 74 | 68 65 20 75 73 65 72 27 |t from t|he user'|
|00003800| 73 20 70 6f 69 6e 74 0d | 09 6f 66 20 76 69 65 77 |s point.|.of view|
|00003810| 2e 0d 2a 29 0d 09 63 6c | 69 63 6b 65 64 48 65 72 |..*)..cl|ickedHer|
|00003820| 65 3f 3a 20 73 65 6c 66 | 20 4e 49 46 20 20 66 61 |e?: self| NIF fa|
|00003830| 6c 73 65 20 20 45 58 49 | 54 20 20 54 48 45 4e 09 |lse EXI|T THEN.|
|00003840| 09 5c 20 6e 6f 74 20 69 | 6e 20 6f 75 72 20 61 72 |.\ not i|n our ar|
|00003850| 65 61 20 2d 20 67 65 74 | 20 6f 75 74 0d 0d 5c 20 |ea - get| out..\ |
|00003860| 4f 4b 2c 20 69 74 27 73 | 20 69 6e 20 6f 75 72 20 |OK, it's| in our |
|00003870| 61 72 65 61 2e 20 20 57 | 65 20 6e 6f 77 20 6c 6f |area. W|e now lo|
|00003880| 6f 6b 20 61 74 20 6f 75 | 72 20 63 68 69 6c 64 72 |ok at ou|r childr|
|00003890| 65 6e 20 66 69 72 73 74 | 2c 20 73 69 6e 63 65 20 |en first|, since |
|000038a0| 74 68 65 79 0d 5c 20 6d | 75 73 74 20 67 65 74 20 |they.\ m|ust get |
|000038b0| 66 69 72 73 74 20 73 68 | 6f 74 20 61 74 20 74 68 |first sh|ot at th|
|000038c0| 65 20 63 6c 69 63 6b 3a | 0d 0d 09 42 45 47 49 4e |e click:|...BEGIN|
|000038d0| 09 65 61 63 68 3a 20 63 | 68 69 6c 64 72 65 6e 0d |.each: c|hildren.|
|000038e0| 09 57 48 49 4c 45 09 76 | 69 65 77 5f 66 6f 72 5f |.WHILE.v|iew_for_|
|000038f0| 63 6c 69 63 6b 3f 3a 20 | 5b 5d 0d 09 09 09 49 46 |click?: |[]....IF|
|00003900| 09 09 09 5c 20 79 65 73 | 2c 20 6f 6e 65 20 6f 66 |...\ yes|, one of|
|00003910| 20 74 68 65 6d 20 77 61 | 6e 74 73 20 69 74 2e 20 | them wa|nts it. |
|00003920| 20 57 65 20 70 61 73 73 | 20 74 68 65 20 76 69 65 | We pass| the vie|
|00003930| 77 27 73 0d 09 09 09 09 | 09 09 5c 20 20 61 64 64 |w's.....|..\ add|
|00003940| 72 65 73 73 20 6f 6e 20 | 6f 75 74 2e 0d 09 09 09 |ress on |out.....|
|00003950| 09 75 6e 65 61 63 68 3a | 20 63 68 69 6c 64 72 65 |.uneach:| childre|
|00003960| 6e 20 20 74 72 75 65 20 | 20 45 58 49 54 0d 09 09 |n true | EXIT...|
|00003970| 09 54 48 45 4e 0d 09 52 | 45 50 45 41 54 0d 0d 5c |.THEN..R|EPEAT..\|
|00003980| 20 49 66 20 77 65 20 67 | 6f 74 20 68 65 72 65 2c | If we g|ot here,|
|00003990| 20 6e 6f 6e 65 20 6f 66 | 20 74 68 65 20 63 68 69 | none of| the chi|
|000039a0| 6c 64 72 65 6e 20 77 61 | 6e 74 65 64 20 69 74 2c |ldren wa|nted it,|
|000039b0| 20 73 6f 20 77 65 27 6c | 6c 20 6a 75 73 74 20 68 | so we'l|l just h|
|000039c0| 61 76 65 20 74 6f 0d 5c | 20 20 68 61 6e 64 6c 65 |ave to.\| handle|
|000039d0| 20 69 74 20 6f 75 72 73 | 65 6c 76 65 73 3a 0d 0d | it ours|elves:..|
|000039e0| 09 5e 62 61 73 65 20 20 | 74 72 75 65 0d 3b 6d 0d |.^base |true.;m.|
|000039f0| 0d 3a 6d 20 43 4c 49 43 | 4b 3a 0d 09 65 78 65 63 |.:m CLIC|K:..exec|
|00003a00| 3a 20 63 6c 69 63 6b 48 | 6e 64 6c 72 0d 09 0d 5c |: clickH|ndlr...\|
|00003a10| 20 74 68 65 20 6e 6f 72 | 6d 61 6c 20 64 65 66 61 | the nor|mal defa|
|00003a20| 75 6c 74 20 69 73 2c 20 | 69 66 20 77 65 20 61 63 |ult is, |if we ac|
|00003a30| 63 65 70 74 20 74 68 65 | 20 63 6c 69 63 6b 2c 20 |cept the| click, |
|00003a40| 61 6e 64 20 77 65 20 63 | 61 6e 20 74 61 6b 65 20 |and we c|an take |
|00003a50| 74 68 65 0d 5c 20 20 66 | 6f 63 75 73 2c 20 77 65 |the.\ f|ocus, we|
|00003a60| 20 6e 6f 77 20 62 65 63 | 6f 6d 65 20 74 68 65 20 | now bec|ome the |
|00003a70| 76 69 65 77 20 69 6e 20 | 66 6f 63 75 73 2e 0d 0d |view in |focus...|
|00003a80| 09 67 65 74 3a 20 63 61 | 6e 48 61 76 65 46 6f 63 |.get: ca|nHaveFoc|
|00003a90| 75 73 3f 0d 09 49 46 20 | 20 74 72 75 65 20 20 66 |us?..IF | true f|
|00003aa0| 6f 63 75 73 3a 20 73 65 | 6c 66 20 20 54 48 45 4e |ocus: se|lf THEN|
|00003ab0| 0d 3b 6d 0d 0d 0d 5c 20 | 54 68 65 20 64 65 66 61 |.;m...\ |The defa|
|00003ac0| 75 6c 74 20 66 6f 72 20 | 6b 65 79 73 20 69 73 20 |ult for |keys is |
|00003ad0| 74 6f 20 69 67 6e 6f 72 | 65 20 74 68 65 6d 2e 20 |to ignor|e them. |
|00003ae0| 20 53 75 62 63 6c 61 73 | 73 65 73 20 63 61 6e 20 | Subclas|ses can |
|00003af0| 64 6f 20 77 68 61 74 20 | 74 68 65 79 0d 5c 20 20 |do what |they.\ |
|00003b00| 6c 69 6b 65 20 77 69 74 | 68 20 74 68 65 6d 2e 20 |like wit|h them. |
|00003b10| 20 42 75 74 20 6e 6f 74 | 65 2c 20 61 20 76 69 65 | But not|e, a vie|
|00003b20| 77 20 77 69 6c 6c 20 6f | 6e 6c 79 20 67 65 74 20 |w will o|nly get |
|00003b30| 61 20 4b 45 59 3a 20 69 | 66 20 69 74 27 73 20 69 |a KEY: i|f it's i|
|00003b40| 6e 0d 5c 20 20 66 6f 63 | 75 73 2e 0d 0d 3a 6d 20 |n.\ foc|us...:m |
|00003b50| 4b 45 59 3a 09 09 5c 20 | 28 20 63 20 2d 2d 20 29 |KEY:..\ |( c -- )|
|00003b60| 0d 09 64 72 6f 70 20 20 | 3b 6d 0d 0d 0d 3a 6d 20 |..drop |;m...:m |
|00003b70| 45 4e 41 42 4c 45 3a 0d | 09 74 72 75 65 20 70 75 |ENABLE:.|.true pu|
|00003b80| 74 3a 20 65 6e 61 62 6c | 65 64 3f 0d 09 42 45 47 |t: enabl|ed?..BEG|
|00003b90| 49 4e 20 20 65 61 63 68 | 3a 20 63 68 69 6c 64 72 |IN each|: childr|
|00003ba0| 65 6e 20 20 57 48 49 4c | 45 20 20 65 6e 61 62 6c |en WHIL|E enabl|
|00003bb0| 65 3a 20 5b 5d 20 20 52 | 45 50 45 41 54 20 20 3b |e: [] R|EPEAT ;|
|00003bc0| 6d 20 0d 0d 3a 6d 20 44 | 49 53 41 42 4c 45 3a 0d |m ..:m D|ISABLE:.|
|00003bd0| 09 66 61 6c 73 65 20 70 | 75 74 3a 20 65 6e 61 62 |.false p|ut: enab|
|00003be0| 6c 65 64 3f 0d 09 42 45 | 47 49 4e 20 20 65 61 63 |led?..BE|GIN eac|
|00003bf0| 68 3a 20 63 68 69 6c 64 | 72 65 6e 20 20 57 48 49 |h: child|ren WHI|
|00003c00| 4c 45 20 20 64 69 73 61 | 62 6c 65 3a 20 5b 5d 20 |LE disa|ble: [] |
|00003c10| 20 52 45 50 45 41 54 20 | 20 3b 6d 0d 09 0d 0d 3a | REPEAT | ;m....:|
|00003c20| 6d 20 43 4c 41 53 53 49 | 4e 49 54 3a 09 0d 09 24 |m CLASSI|NIT:...$|
|00003c30| 20 20 31 32 33 34 35 36 | 37 38 20 70 75 74 3a 20 | 123456|78 put: |
|00003c40| 6d 61 67 69 63 0d 09 73 | 65 74 3a 20 77 61 6e 74 |magic..s|et: want|
|00003c50| 73 43 6c 69 63 6b 73 3f | 20 20 73 65 74 3a 20 73 |sClicks?| set: s|
|00003c60| 65 74 43 6c 69 70 3f 20 | 20 73 65 74 3a 20 6d 65 |etClip? | set: me|
|00003c70| 61 73 75 72 65 46 72 6f | 6d 4d 65 3f 20 20 3b 6d |asureFro|mMe? ;m|
|00003c80| 0d 0d 0d 3a 6d 20 44 55 | 4d 50 3a 20 20 7b 20 5c |...:m DU|MP: { \|
|00003c90| 20 6c 20 74 20 72 20 62 | 20 2d 2d 20 7d 0d 09 2e | l t r b| -- }...|
|00003ca0| 22 20 76 69 65 77 20 22 | 20 2e 69 64 3a 20 73 65 |" view "| .id: se|
|00003cb0| 6c 66 20 20 34 20 73 70 | 61 63 65 73 0d 09 2e 22 |lf 4 sp|aces..."|
|00003cc0| 20 76 69 65 77 52 65 63 | 74 3a 20 22 20 20 67 65 | viewRec|t: " ge|
|00003cd0| 74 56 69 65 77 52 65 63 | 74 3a 20 73 65 6c 66 20 |tViewRec|t: self |
|00003ce0| 20 2d 3e 20 62 20 2d 3e | 20 72 20 2d 3e 20 74 20 | -> b ->| r -> t |
|00003cf0| 2d 3e 20 6c 0d 09 2e 22 | 20 6c 65 66 74 3a 20 22 |-> l..."| left: "|
|00003d00| 20 6c 20 2e 20 2e 22 20 | 20 74 6f 70 3a 20 22 20 | l . ." | top: " |
|00003d10| 74 20 2e 20 2e 22 20 20 | 20 72 69 67 68 74 3a 20 |t . ." | right: |
|00003d20| 22 20 72 20 2e 20 2e 22 | 20 20 62 6f 74 74 6f 6d |" r . ."| bottom|
|00003d30| 3a 20 22 20 62 20 2e 20 | 20 63 72 0d 09 66 69 72 |: " b . | cr..fir|
|00003d40| 73 74 3f 3a 20 63 68 69 | 6c 64 72 65 6e 20 20 49 |st?: chi|ldren I|
|00003d50| 46 20 20 2e 22 20 63 68 | 69 6c 64 72 65 6e 3a 22 |F ." ch|ildren:"|
|00003d60| 20 20 63 72 20 20 64 72 | 6f 70 20 20 54 48 45 4e | cr dr|op THEN|
|00003d70| 0d 09 42 45 47 49 4e 20 | 20 65 61 63 68 3a 20 63 |..BEGIN | each: c|
|00003d80| 68 69 6c 64 72 65 6e 20 | 20 57 48 49 4c 45 20 20 |hildren | WHILE |
|00003d90| 34 20 73 70 61 63 65 73 | 20 20 64 75 6d 70 3a 20 |4 spaces| dump: |
|00003da0| 5b 5d 20 20 52 45 50 45 | 41 54 20 20 3b 6d 0d 0d |[] REPE|AT ;m..|
|00003db0| 0d 5c 20 44 52 41 57 58 | 3a 20 63 61 6e 20 62 65 |.\ DRAWX|: can be|
|00003dc0| 20 75 73 65 66 75 6c 20 | 69 6e 20 64 65 62 75 67 | useful |in debug|
|00003dd0| 67 69 6e 67 2c 20 77 68 | 65 6e 20 79 6f 75 20 77 |ging, wh|en you w|
|00003de0| 61 6e 74 20 74 6f 20 73 | 65 65 20 74 68 65 20 76 |ant to s|ee the v|
|00003df0| 69 65 77 20 62 75 74 0d | 5c 20 64 6f 6e 27 74 20 |iew but.|\ don't |
|00003e00| 68 61 76 65 20 22 72 65 | 61 6c 22 20 64 72 61 77 |have "re|al" draw|
|00003e10| 69 6e 67 20 63 6f 64 65 | 20 79 65 74 2e 20 20 49 |ing code| yet. I|
|00003e20| 74 20 6a 75 73 74 20 64 | 72 61 77 73 20 61 20 62 |t just d|raws a b|
|00003e30| 69 67 20 58 20 61 63 72 | 6f 73 73 0d 5c 20 74 68 |ig X acr|oss.\ th|
|00003e40| 65 20 76 69 65 77 20 61 | 72 65 61 2c 20 6a 6f 69 |e view a|rea, joi|
|00003e50| 6e 69 6e 67 20 74 68 65 | 20 64 69 61 67 6f 6e 61 |ning the| diagona|
|00003e60| 6c 6c 79 20 6f 70 70 6f | 73 69 74 65 20 63 6f 72 |lly oppo|site cor|
|00003e70| 6e 65 72 73 2e 0d 0d 3a | 6d 20 44 52 41 57 58 3a |ners...:|m DRAWX:|
|00003e80| 20 20 7b 20 5c 20 6c 20 | 74 20 72 20 62 20 2d 2d | { \ l |t r b --|
|00003e90| 20 7d 0d 09 67 65 74 3a | 20 74 65 6d 70 52 65 63 | }..get:| tempRec|
|00003ea0| 74 20 20 2d 3e 20 62 20 | 20 2d 3e 20 72 20 20 2d |t -> b | -> r -|
|00003eb0| 3e 20 74 20 20 2d 3e 20 | 6c 0d 09 30 20 30 20 67 |> t -> |l..0 0 g|
|00003ec0| 6f 74 6f 78 79 20 20 72 | 20 62 20 20 4c 69 6e 65 |otoxy r| b Line|
|00003ed0| 54 6f 0d 09 6c 20 62 20 | 67 6f 74 6f 78 79 20 20 |To..l b |gotoxy |
|00003ee0| 72 20 30 20 20 4c 69 6e | 65 54 6f 20 20 3b 6d 0d |r 0 Lin|eTo ;m.|
|00003ef0| 0d 3b 63 6c 61 73 73 0d | 0d 0d 65 6e 64 6c 6f 61 |.;class.|..endloa|
|00003f00| 64 0d 0d 5c 20 54 65 73 | 74 69 6e 67 3a 0d 0d 6e |d..\ Tes|ting:..n|
|00003f10| 65 65 64 20 77 69 6e 64 | 6f 77 2b 0d 0d 77 69 6e |eed wind|ow+..win|
|00003f20| 64 6f 77 2b 09 57 57 0d | 0d 76 69 65 77 20 09 56 |dow+.WW.|.view .V|
|00003f30| 56 09 09 5c 20 4d 61 69 | 6e 20 76 69 65 77 0d 76 |V..\ Mai|n view.v|
|00003f40| 69 65 77 20 09 43 31 09 | 09 5c 20 35 20 63 68 69 |iew .C1.|.\ 5 chi|
|00003f50| 6c 64 20 76 69 65 77 73 | 0d 76 69 65 77 20 09 43 |ld views|.view .C|
|00003f60| 32 0d 76 69 65 77 20 09 | 43 33 0d 76 69 65 77 20 |2.view .|C3.view |
|00003f70| 09 43 34 0d 76 69 65 77 | 20 09 43 35 0d 0d 34 30 |.C4.view| .C5..40|
|00003f80| 20 34 30 20 33 30 30 20 | 32 30 30 09 73 65 74 42 | 40 300 |200.setB|
|00003f90| 6f 75 6e 64 73 3a 20 76 | 76 0d 0d 31 30 20 31 30 |ounds: v|v..10 10|
|00003fa0| 20 32 30 20 32 30 09 09 | 73 65 74 42 6f 75 6e 64 | 20 20..|setBound|
|00003fb0| 73 3a 20 63 31 0d 09 09 | 09 09 74 72 75 65 20 20 |s: c1...|..true |
|00003fc0| 6d 65 61 73 75 72 65 46 | 72 6f 6d 3a 20 63 31 0d |measureF|rom: c1.|
|00003fd0| 0d 32 20 30 20 33 30 20 | 36 30 09 09 73 65 74 42 |.2 0 30 |60..setB|
|00003fe0| 6f 75 6e 64 73 3a 20 63 | 32 0d 09 09 09 09 73 69 |ounds: c|2.....si|
|00003ff0| 62 52 69 67 68 74 20 73 | 69 62 42 6f 74 74 6f 6d |bRight s|ibBottom|
|00004000| 20 32 64 75 70 20 20 73 | 65 74 4a 75 73 74 3a 20 | 2dup s|etJust: |
|00004010| 63 32 0d 09 09 09 09 74 | 72 75 65 20 20 6d 65 61 |c2.....t|rue mea|
|00004020| 73 75 72 65 46 72 6f 6d | 3a 20 63 32 0d 0d 32 20 |sureFrom|: c2..2 |
|00004030| 30 20 32 30 20 36 30 09 | 09 73 65 74 42 6f 75 6e |0 20 60.|.setBoun|
|00004040| 64 73 3a 20 63 33 0d 09 | 09 09 09 73 69 62 52 69 |ds: c3..|...sibRi|
|00004050| 67 68 74 20 73 69 62 42 | 6f 74 74 6f 6d 20 32 64 |ght sibB|ottom 2d|
|00004060| 75 70 20 20 73 65 74 4a | 75 73 74 3a 20 63 33 0d |up setJ|ust: c3.|
|00004070| 09 09 09 09 74 72 75 65 | 20 20 6d 65 61 73 75 72 |....true| measur|
|00004080| 65 46 72 6f 6d 3a 20 63 | 33 0d 09 09 09 09 09 09 |eFrom: c|3.......|
|00004090| 09 0d 30 20 32 20 34 30 | 20 36 30 09 09 73 65 74 |..0 2 40| 60..set|
|000040a0| 42 6f 75 6e 64 73 3a 20 | 63 34 0d 09 09 09 09 73 |Bounds: |c4.....s|
|000040b0| 69 62 52 69 67 68 74 20 | 73 69 62 42 6f 74 74 6f |ibRight |sibBotto|
|000040c0| 6d 20 32 64 75 70 20 20 | 73 65 74 4a 75 73 74 3a |m 2dup |setJust:|
|000040d0| 20 63 34 0d 09 09 09 09 | 74 72 75 65 20 20 6d 65 | c4.....|true me|
|000040e0| 61 73 75 72 65 46 72 6f | 6d 3a 20 63 34 0d 09 09 |asureFro|m: c4...|
|000040f0| 09 09 09 0d 0d 0d 3a 20 | 44 72 61 77 69 74 09 64 |......: |Drawit.d|
|00004100| 72 61 77 3a 20 74 65 6d | 70 52 65 63 74 20 20 3b |raw: tem|pRect ;|
|00004110| 09 09 5c 20 44 72 61 77 | 20 68 61 6e 64 6c 65 72 |..\ Draw| handler|
|00004120| 20 66 6f 72 20 6f 75 72 | 20 76 69 65 77 73 0d 0d | for our| views..|
|00004130| 3a 20 44 72 61 77 56 56 | 09 64 72 61 77 3a 20 76 |: DrawVV|.draw: v|
|00004140| 76 20 20 3b 09 09 09 09 | 5c 20 44 72 61 77 20 68 |v ;....|\ Draw h|
|00004150| 61 6e 64 6c 65 72 20 66 | 6f 72 20 57 57 20 66 6f |andler f|or WW fo|
|00004160| 72 20 74 65 73 74 0d 0d | 3a 20 43 6c 69 63 6b 65 |r test..|: Clicke|
|00004170| 64 09 6e 6f 63 6c 69 70 | 20 20 2e 22 20 63 6c 69 |d.noclip| ." cli|
|00004180| 63 6b 65 64 20 22 20 2e | 69 64 3a 20 5b 73 65 6c |cked " .|id: [sel|
|00004190| 66 5d 20 63 72 20 20 3b | 0d 0d 3a 20 63 6f 6e 74 |f] cr ;|..: cont|
|000041a0| 65 6e 74 43 6c 69 63 6b | 09 09 09 5c 20 4e 65 77 |entClick|...\ New|
|000041b0| 20 63 6f 6e 74 65 6e 74 | 20 63 6c 69 63 6b 20 68 | content| click h|
|000041c0| 61 6e 64 6c 65 72 20 66 | 6f 72 20 66 57 69 6e 64 |andler f|or fWind|
|000041d0| 0d 09 09 09 63 6c 69 63 | 6b 3a 20 76 76 20 20 64 |....clic|k: vv d|
|000041e0| 72 6f 70 20 20 3b 0d 09 | 09 09 0d 27 20 64 72 61 |rop ;..|...' dra|
|000041f0| 77 69 74 09 64 75 70 20 | 73 65 74 44 72 61 77 3a |wit.dup |setDraw:|
|00004200| 20 76 76 20 20 64 75 70 | 20 73 65 74 44 72 61 77 | vv dup| setDraw|
|00004210| 3a 20 63 31 20 20 64 75 | 70 20 73 65 74 44 72 61 |: c1 du|p setDra|
|00004220| 77 3a 20 63 32 0d 09 09 | 09 64 75 70 20 73 65 74 |w: c2...|.dup set|
|00004230| 44 72 61 77 3a 20 63 33 | 20 20 64 75 70 20 73 65 |Draw: c3| dup se|
|00004240| 74 44 72 61 77 3a 20 63 | 34 20 20 73 65 74 44 72 |tDraw: c|4 setDr|
|00004250| 61 77 3a 20 63 35 0d 0d | 27 20 63 6c 69 63 6b 65 |aw: c5..|' clicke|
|00004260| 64 09 64 75 70 20 73 65 | 74 63 6c 69 63 6b 3a 20 |d.dup se|tclick: |
|00004270| 76 76 20 64 75 70 20 73 | 65 74 63 6c 69 63 6b 3a |vv dup s|etclick:|
|00004280| 20 63 31 20 64 75 70 20 | 73 65 74 63 6c 69 63 6b | c1 dup |setclick|
|00004290| 3a 20 63 32 0d 09 09 09 | 64 75 70 20 73 65 74 63 |: c2....|dup setc|
|000042a0| 6c 69 63 6b 3a 20 63 33 | 20 64 75 70 20 73 65 74 |lick: c3| dup set|
|000042b0| 63 6c 69 63 6b 3a 20 63 | 34 20 73 65 74 63 6c 69 |click: c|4 setcli|
|000042c0| 63 6b 3a 20 63 35 0d 0d | 3a 20 47 4f 0d 09 78 74 |ck: c5..|: GO..xt|
|000042d0| 73 7b 20 6e 75 6c 6c 20 | 6e 75 6c 6c 20 64 72 61 |s{ null |null dra|
|000042e0| 77 56 56 20 63 6f 6e 74 | 65 6e 74 43 6c 69 63 6b |wVV cont|entClick|
|000042f0| 20 7d 20 20 61 63 74 69 | 6f 6e 73 3a 20 57 57 0d | } acti|ons: WW.|
|00004300| 09 63 31 20 61 64 64 76 | 69 65 77 3a 20 76 76 20 |.c1 addv|iew: vv |
|00004310| 20 63 32 20 61 64 64 76 | 69 65 77 3a 20 76 76 0d | c2 addv|iew: vv.|
|00004320| 09 63 33 20 61 64 64 76 | 69 65 77 3a 20 76 76 20 |.c3 addv|iew: vv |
|00004330| 20 63 34 20 61 64 64 76 | 69 65 77 3a 20 76 76 20 | c4 addv|iew: vv |
|00004340| 20 63 35 20 61 64 64 76 | 69 65 77 3a 20 76 76 0d | c5 addv|iew: vv.|
|00004350| 09 76 76 20 74 65 73 74 | 3a 20 77 77 0d 3b 00 00 |.vv test|: ww.;..|
|00004360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004380| 00 00 01 00 00 00 01 42 | 00 00 00 42 00 00 00 3b |.......B|...B...;|
|00004390| 70 65 61 74 20 20 3b 6d | 0d 0d 3a 6d 20 43 4c 41 |peat ;m|..:m CLA|
|000043a0| 53 53 49 4e 49 54 3a 09 | 0d 09 74 72 75 65 20 70 |SSINIT:.|..true p|
|000043b0| 04 56 69 65 77 46 02 00 | 00 00 50 61 72 74 53 49 |.ViewF..|..PartSI|
|000043c0| 54 21 00 00 00 00 00 00 | 00 00 00 01 82 60 00 00 |T!......|.....`..|
|000043d0| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|000043e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000043f0| 00 00 b3 66 c2 7a 00 00 | 00 00 00 00 01 7d 20 3b |...f.z..|.....} ;|
|00004400| 6d 0d 0d 3b 63 6c 61 73 | 73 0d 0d 65 6e 64 6c 6f |m..;clas|s..endlo|
|00004410| 61 64 0d f0 a6 07 59 71 | a4 4c 70 45 00 00 00 00 |ad....Yq|.LpE....|
|00004420| 00 00 10 f3 00 00 00 d2 | 00 00 00 02 65 2d 6d 61 |........|....e-ma|
|00004430| 69 6c 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |il......|........|
|00004440| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 31 00 0d |........|.....1..|
|00004450| 01 b1 02 41 01 00 00 50 | 00 00 01 40 80 00 ff ff |...A...P|...@....|
|00004460| ff f7 a7 1e c3 ab a3 fa | a3 ea 00 00 00 00 00 00 |........|........|
|00004470| 00 18 00 00 00 f3 00 00 | 00 02 4d 61 69 6c 00 00 |........|..Mail..|
|00004480| 00 00 00 3e 00 00 23 bd | 00 00 18 e1 00 00 00 00 |...>..#.|........|
|00004490| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000044a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 09 c1 |........|........|
|000044b0| 00 00 09 c1 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000044c0| 00 00 00 00 01 00 00 00 | 01 42 00 00 00 42 00 00 |........|.B...B..|
|000044d0| 00 3b 02 90 85 08 22 e4 | 00 00 00 1c 00 32 00 00 |.;....".|.....2..|
|000044e0| 4d 49 46 4f 00 00 00 0a | 00 80 00 00 00 00 00 00 |MIFO....|........|
|000044f0| 02 90 8c 0c 08 4d 69 73 | 63 49 6e 66 6f 00 00 00 |.....Mis|cInfo...|
+--------+-------------------------+-------------------------+--------+--------+