openwinversion 0 get 51 eq { % XXX: V3 /NeWS 3 0 findpackage beginpackage /TNTCore 3 0 findpackage beginpackage /TNT 3 0 findpackage beginpackage } if /ClassPieMenuPanel [ClassPanel ClassPieMenuCanvas] [] classbegin classend def /p0 /Calculated framebuffer /new ClassPieMenuPanel send def /Paint { % - => - /location self send 0 1 xyadd /size self send -1 -1 xyadd true Paint3DBox /location self send 1 2 xyadd /size self send -2 -3 xyadd false Paint3DBox } /installmethod p0 send /minsize { % - => w h /minsize super send 10 10 xyadd } /installmethod p0 send /w0 p0 framebuffer /new ClassBaseWindow send def (Pie Menu Practice) /setlabel w0 send /p1 /Calculated framebuffer /new ClassPieMenuPanel send def /w1 p1 framebuffer /new ClassPopupWindow send def (Pie Menu Score) /setlabel w1 send /pin w1 send %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /PracticeLabel (Press the right button to practice.) def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /l0 (Mode:) framebuffer /new ClassLabel send def /l0 l0 [/NorthWest {/NorthWest PARENT POSITION 8 -8 xyadd}] /addclient p0 send /s0 /Grid framebuffer /new ClassSettings send def [ (Practice) (Play) ] /setitemlist s0 send { pop 0 get { 0 { PracticeLabel /setvalue l1 send PracticePie { /setpiemenu self send false /setmenuable self send true /setpiemenuable self send } p0 send } 1 { NextMenu } } case } /setnotifier s0 send userdict /settarget s0 send /s0 s0 [/West {/East PREVIOUS POSITION 8 0 xyadd}] /addclient p0 send /b0 /Grid framebuffer /new ClassButtons send def [ [ (Score...) { pop pop /open w1 send } ] ] /setitemlist b0 send /b0 b0 [/West {/East PREVIOUS POSITION 8 0 xyadd}] /addclient p0 send /l1 PracticeLabel framebuffer /new ClassLabel send def /Palatino-Bold findfont 32 scalefont /settextfont l1 send /l1 l1 [/NorthWest {/SouthWest /l0 POSITION 0 -8 xyadd}] /addclient p0 send %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /l2 (Score:) framebuffer /new ClassLabel send def /l2 l2 [/NorthWest {/NorthWest PARENT POSITION 8 -8 xyadd}] /addclient p1 send %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /DemoPull /Grid framebuffer /new ClassMenu send def [ (Rook) (Knight) (Bishop) (Queen) (King) (Bishop) (Knight) (Rook) ] /setitemlist DemoPull send /DemoPie framebuffer /new ClassPieMenu send def [ (Hearts) (Ace) (Clubs) (King) (Diamonds) (Queen) (Spades) (Jack) ] /setitemlist DemoPie send /PracticePull /Grid framebuffer /new ClassMenu send def [(2nd) (Right) (1st) (Foul) (Home) (Foul) (3rd) (Left) ] /setitemlist PracticePull send /PracticePie framebuffer /new ClassPieMenu send def [ (Wednesday) (Thursday) (Friday) (Saturday) (Today) (Sunday) (Monday) (Tuesday) ] /setitemlist PracticePie send /MenuNames [ /PL1 /PL2 /PL3 /PL4 /PL5 /PO1 /PO2 /PO3 /PO4 /PO5 /PP1 /PP2 /PP3 /PP4 /PP5 /LL1 /LL2 /LL3 /LL4 /LL5 /LO1 /LO2 /LO3 /LO4 /LO5 /LP1 /LP2 /LP3 /LP4 /LP5 ] def /NextMenu { % - => - MenuNames dup length random mul cvi get load dup /descendantof? ClassPieMenu send { { dup /setpiemenu self send false /setmenuable self send true /setpiemenuable self send } } { { dup /setmenu self send true /setmenuable self send false /setpiemenuable self send } } ifelse p0 send { userdict /settarget self send /CheckMenuAnswer /setnotifier self send /Answer /property self send /item self send 0 get (Choose "%") sprintf /setvalue l1 send } exch send } def /CheckMenuAnswer { % index menu => - { % index /Answer /property self send ne { beep } { NextMenu } ifelse } exch send } def /PL1 framebuffer /new ClassPieMenu send def [ (1) (2) (3) (4) (5) (6) (7) (8) ] /setitemlist PL1 send /Answer 7 /setproperty PL1 send /PL2 framebuffer /new ClassPieMenu send def [ (One) (Two) (Three) (Four) (Five) (Six) (Seven) (Eight) ] /setitemlist PL2 send /Answer 6 /setproperty PL2 send /PL3 framebuffer /new ClassPieMenu send def [ (First) (Second) (Third) (Fourth) (Fifth) (Sixth) (Seventh) (Eighth) ] /setitemlist PL3 send /Answer 1 /setproperty PL3 send /PL4 framebuffer /new ClassPieMenu send def [ (A) (B) (C) (D) (E) (F) (G) (H) ] /setitemlist PL4 send /Answer 1 /setproperty PL4 send /PL5 framebuffer /new ClassPieMenu send def [ (Ape) (Bear) (Cat) (Dragon) (Elephant) (Fish) (Giraffe) (Horse) ] /setitemlist PL5 send /Answer 3 /setproperty PL5 send /PO1 framebuffer /new ClassPieMenu send def [ (Print) (Move) (Copy) (Delete) (Undo) (Again) (Find) (Property) ] /setitemlist PO1 send /Answer 1 /setproperty PO1 send /PO2 framebuffer /new ClassPieMenu send def [ (Clear) (Next) (Skip) (Center) (Bold) (Case) (Italic) (Font) ] /setitemlist PO2 send /Answer 3 /setproperty PO2 send /PO3 framebuffer /new ClassPieMenu send def [ (Apples) (Spinach) (Oranges) (Pears) (Beets) (Tomato) (Peach) (Cabbage) ] /setitemlist PO3 send /Answer 6 /setproperty PO3 send /PO4 framebuffer /new ClassPieMenu send def [ (Deliver) (Another) (Destroy) (Reset) (Kill) (Abort) (Start) (Change) ] /setitemlist PO4 send /Answer 7 /setproperty PO4 send /PO5 framebuffer /new ClassPieMenu send def [ (Create) (Stop) (Expand) (Define) (Shift) (Lock) (Search) (Quit) ] /setitemlist PO5 send /Answer 7 /setproperty PO5 send /PP1 framebuffer /new ClassPieMenu send def [ (North) (NE) (East) (SE) (South) (SW) (West) (NW) ] /setitemlist PP1 send /Answer 5 /setproperty PP1 send /PP2 framebuffer /new ClassPieMenu send def [ (Up) (Black) (Right) (Open) (Down) (White) (Left) (Close) ] /setitemlist PP2 send /Answer 4 /setproperty PP2 send /PP3 framebuffer /new ClassPieMenu send def [ (Full) (Dark) (In) (Active) (Empty) (Light) (Out) (Inactive) ] /setitemlist PP3 send /Answer 3 /setproperty PP3 send /PP4 framebuffer /new ClassPieMenu send def [ (Top) (Fat) (Tall) (Old) (Bottom) (Thin) (Short) (Young) ] /setitemlist PP4 send /Answer 4 /setproperty PP4 send /PP5 framebuffer /new ClassPieMenu send def [ (High) (More) (Large) (Quick) (Low) (Less) (Small) (Slow) ] /setitemlist PP5 send /Answer 4 /setproperty PP5 send /LL1 /Grid framebuffer /new ClassMenu send def [ (1) (2) (3) (4) (5) (6) (7) (8) ] /setitemlist LL1 send /Answer 7 /setproperty LL1 send /LL2 /Grid framebuffer /new ClassMenu send def [ (One) (Two) (Three) (Four) (Five) (Six) (Seven) (Eight) ] /setitemlist LL2 send /Answer 6 /setproperty LL2 send /LL3 /Grid framebuffer /new ClassMenu send def [ (First) (Second) (Third) (Fourth) (Fifth) (Sixth) (Seventh) (Eighth) ] /setitemlist LL3 send /Answer 1 /setproperty LL3 send /LL4 /Grid framebuffer /new ClassMenu send def [ (A) (B) (C) (D) (E) (F) (G) (H) ] /setitemlist LL4 send /Answer 1 /setproperty LL4 send /LL5 /Grid framebuffer /new ClassMenu send def [ (Ape) (Bear) (Cat) (Dragon) (Elephant) (Fish) (Giraffe) (Horse) ] /setitemlist LL5 send /Answer 3 /setproperty LL5 send /LO1 /Grid framebuffer /new ClassMenu send def [ (Print) (Move) (Copy) (Delete) (Undo) (Again) (Find) (Property) ] /setitemlist LO1 send /Answer 1 /setproperty LO1 send /LO2 /Grid framebuffer /new ClassMenu send def [ (Clear) (Next) (Skip) (Center) (Bold) (Case) (Italic) (Font) ] /setitemlist LO2 send /Answer 3 /setproperty LO2 send /LO3 /Grid framebuffer /new ClassMenu send def [ (Apples) (Spinach) (Oranges) (Pears) (Beets) (Tomato) (Peach) (Cabbage) ] /setitemlist LO3 send /Answer 6 /setproperty LO3 send /LO4 /Grid framebuffer /new ClassMenu send def [ (Deliver) (Another) (Destroy) (Reset) (Kill) (Abort) (Start) (Change) ] /setitemlist LO4 send /Answer 7 /setproperty LO4 send /LO5 /Grid framebuffer /new ClassMenu send def [ (Create) (Stop) (Expand) (Define) (Shift) (Lock) (Search) (Quit) ] /setitemlist LO5 send /Answer 7 /setproperty LO5 send /LP1 /Grid framebuffer /new ClassMenu send def [ (North) (NE) (East) (SE) (South) (SW) (West) (NW) ] /setitemlist LP1 send /Answer 5 /setproperty LP1 send /LP2 /Grid framebuffer /new ClassMenu send def [ (Up) (Black) (Right) (Open) (Down) (White) (Left) (Close) ] /setitemlist LP2 send /Answer 4 /setproperty LP2 send /LP3 /Grid framebuffer /new ClassMenu send def [ (Full) (Dark) (In) (Active) (Empty) (Light) (Out) (Inactive) ] /setitemlist LP3 send /Answer 3 /setproperty LP3 send /LP4 /Grid framebuffer /new ClassMenu send def [ (Top) (Fat) (Tall) (Old) (Bottom) (Thin) (Short) (Young) ] /setitemlist LP4 send /Answer 4 /setproperty LP4 send /LP5 /Grid framebuffer /new ClassMenu send def [ (High) (More) (Large) (Quick) (Low) (Less) (Small) (Slow) ] /setitemlist LP5 send /Answer 4 /setproperty LP5 send %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PracticePie /setpiemenu p0 send false /setmenuable p0 send true /setpiemenuable p0 send %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /mgr /new ClassEventMgr send def mgr /activate w0 send w1 /addsubwindow w0 send /place w0 send /map w0 send /location w0 send % x y /preferredsize w1 send % x y w h 3 -1 roll % x w h y 1 index sub % x w h y-h 3 1 roll % x y-h w h /reshape w1 send