XEROX FONTMENU 2 4 1 FONTMENU 1 4 By: Ken Feuerman (Feuerman.pasa@Xerox.ARPA) FONTMENU provides a user-friendly means for presenting fonts and allowing a user to select one. It takes advantage of tree-menus with SUBITEMS to provide a hierarchical presentation of the fonts for the user. The fonts that are listed on the tree menu are displayed by the words which describe the font (e.g., HELVETICA 10 BOLDITALIC), and displayed in the font that these words describe. Thus the user has a picture of what the font looks like before actually selecting it. The menu itself is a tree menu. The first menu that appears, labelled "Fonts," provides a list of families of fonts to choose from, such as GACHA, TIMESROMAN, etc. Pulling off to the right from one of these families will display another menu of the family in various sizes. Pulling off to the right of one of these sizes will display a menu with family, size and face specified. A selection may be made at any time, without having to pull off to the right to the last level of menus. The menu will return a FONTDESCRIPTOR of the selected font. Sc"""""""""""""""""""""""""""""""""""""""""" ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€"""""""""""""""""""""""""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ """""""""""""""""""""""""@  ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ  à €€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ a €€"""""""""""""""""""""""""H#‰Ç#‡á qņŽ,Ñ """""""""""""""""""""""""OäI"$H€ "&I‘11 ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ$H¢"$€  dHƒ!€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ'È£â$€ @ !¤H!€""""""""""'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ$B$€ €"$H‘! """"""""""$H$HB"$H€!"$I‘!1 ˆˆˆˆˆˆˆˆˆˆŒH#ˆAÃ#‡@!ø 1ÔFŽ Ñ€ˆˆˆˆˆˆˆˆˆˆŒ@€""""""""""$@ """"""""""$ @ ˆˆˆˆˆˆˆˆˆˆŒ C€@ ƒ€€ˆˆˆˆˆˆˆˆˆˆŒÄ@@A@€€""""""""""$Ĉ磇Ä@@AHŽ98€œq#€ """"""""""$ò$‰$H€D@@"H‘"D€ˆ‰$@ ˆˆˆˆˆˆˆˆˆˆŒäQò$€D@ @A"E ˆ$€ˆˆˆˆˆˆˆˆˆˆŒQ$ €D@@‚|Š>"@hÒH€""""""""""$$!$H€D@ À‚@„ "@ˆH """"""""""$Ä á£‡@C€@‚D„""DˆH€ ˆˆˆˆˆˆˆˆˆˆŒ @‚8„28têG€ˆˆˆˆˆˆˆˆˆˆŒ@€""""""""""$@ """"""""""$@Ã`0ø ˆˆˆˆˆˆˆˆˆˆŒ@Ã`qŒ€ˆˆˆˆˆˆˆˆˆˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÃ`ñŒ€""""""""""'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÃ>l3çÙñà0 ñó? """"""""""'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿcl6300c ˆˆˆˆˆˆˆˆˆˆÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÀÃcff3000c€ˆˆˆˆˆˆˆˆˆˆÿÿï¿ïÿû¿ÿÿ¾?ÿÿÀÃfgóð0`c€""""""""""'ÿÿï¿ïÿûÿÿÿ=ßÿÿÀÃ`bF00Àc """"""""""'ÿÿï¸íÜq¸ñü=ßÿÿÀÃccÆ301€c ˆˆˆˆˆˆˆˆˆˆÿÿà7mÛ»·nÿ¿ßÿ÷ÀÃ>aƒáÙñØ1üñó?€ˆˆˆˆˆˆˆˆˆˆÿÿï·n»»·üÿ¿¿ÿûÀ€""""""""""'ÿÿï°n¸;·òÿ¿ÿõÀ """"""""""'ÿÿï·ï{û·îÿ¾ÿÿúÀ ÿÿÿÿÿÿÿÿÿÿÿÿï·o{»·nÿ½ÿÿõC€ <@€ÿÿÿÿÿÿÿÿÿÿÿÿï¸ï|y¸ñ¼ÿúÆ€8Ì @À€/ÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõÆäÈó‘ãÀøÌ#ÉÇ’= /ÿÿóÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÇó$É‘“&@ ™&ÈÌ’e ÿÿóÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷Æ$y‘“À ™&HÁ’a€ÿÿóø00aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ7ìóó6À0`³lÙ¶Á€/ÿÿð3“™ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ6 c6 À0À³lÙ™¶Á /ÿÿóó“™ÇÿÿüL6lc36lÀ1€³mÙ™¶Í ÿÿóó“™áÿÿüL3Ìaã³ÇÀ1ügÙ϶y€ÿÿóó“™øÿÿü@€/ÿÿóó“™Ìÿÿü €@ /ÿÿóø3œaÿÿü €ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿü x(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ÿÿÿÿÿÿÿÿÿü$Gœ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€/ÿÿÿÿÿÿÿÿÿü!$HH€ """"""""""""""""" (ÿ!$HH‘€ """"""""""""""""" ˆ€ „?"È€ (ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆ@ D "ˆ€(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€(G,8¤!"ˆH€?€ ¢"""""""""""""""" (‘2T!!H‘€""""""""""""""""" ˆÇ"<¬!ŒÀ (ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆH"DT(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€(H‘"D¤""""""""""""""""" (‡Ž"<D""""""""""""""""" ˆ„(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€(0""""""""""""""""" /ÿÿÿÿÿÿÿÿÿü€0 """"""""""""""""" ÿÿÿÿÿÿÿÿ|€€(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ÿï¿ïÿ÷ÿÿ¼€ü9À(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€/ÿï¿ïÿ÷ÿÿÿ\‡†a0ø>ü0À""""""""""""""""" /ÿï¸íÜaqãÿ¬ÆaŸ1ü 9À""""""""""""""""" ÿà7mÛ·nÝÿTÿœæa¹Æ3Œã ˆ(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ÿï°n¸7oñÿ¬ÿ˜f30Æ3 Ç „(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€/ÿï·î»÷oÍÿ\Ÿæ3?Æ3? 9Ê""""""""""""""""" /ÿï·o{·nÝÿ¼Ÿæ3?Æ3{ 0Å""""""""""""""""" ÿï¸ï|yqâÿ|˜03 à 0ʨˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ÿÿÿÿÿÿÿÿÿüœf8Æ3ŒÇ 9Å(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€/ÿÿÿÿÿÿÿÿÿüæÇ1üÿ€ Š""""""""""""""""" (‡Æ ƒ0ø{€ """"""""""""""""" ˆ„(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆòD(ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€(¤""""""""""""""""" (’-Ž9N-Œ,Wÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ"""""""""""""""" ˆ†v‘KÑv’tªˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆ‚$Ÿa$Ž$Rˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€(‚$$’$¢""""""""""""""""""""""""""""""" (‚$‘I$’$B""""""""""""""""""""""""""""""" ˆçnÎsŽnßf‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€(""""""""""""""""""""""""""""""" /ÿÿÿÿÿÿÿÿÿþ""""""""""""""""""""""""""""""" ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€"""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""" ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ€ (FONTMENU.CREATE FONTLIST DEFAULTSIZE DEFAULTFACE) [Function] Returns the font menu. FONTLIST is the variable that describes the fonts to be presented on the menu. It is a list of family specifications. A family specification is a list, the CAR of which is a litatom referring to the name of the family of the font (GACHA, HELVETICA, etc.). The CDR of the family specification is a list of size specifications and/or default size or face specifications. A size specification is a list again. The CAR of a size specification is the size number (10 point, 12 point, etc.), and the CDR is a list of faces and/or default face specification. A face is any form acceptable to FONTCREATE (STANDARD, BOLDITALIC, (MEDIUM ITALIC REGULAR), etc.). DEFAULTSIZE determines how the family names will appear in the menu of family names only (first level of the tree). DEFAULTFACE determines the face in which the family names and sizes will appear in the first two levels of the font menu. If a selection is made from one of these two levels (without pulling all of the way off to the right to fully specify a font), a fontdescriptor is returned using the values of DEFAULTSIZE and DEFAULTFACE (i.e., exactly as it appears in the menu). If not given, 10 is used for DEFAULTSIZE and STANDARD = (MEDIUM REGULAR REGULAR) is used for DEFAULTFACE. Furthermore, the default size and/or face for each font at each step in the tree menu can be specified by including a default face or default size specification. These simply take the form (DEFAULTSIZE . 24) and (DEFAULTFACE . BOLD), and may be included at any non-conflicting step in the FONTLIST (by "non-conflicting," it is meant that it doesn't make sense to include something like (DEFAULTSIZE . 24) inside of a size specification, since the size specification already has its size defined). NOTE: Since each of the fonts specified in FONTLIST must be created (using FONTCREATE), this function could take a very long time to execute. FONTLST [Variable] A list suitable as a FONTLIST variable to FONTMENU.CREATE. Its value is initially ((CLASSIC (8 STANDARD ITALIC BOLD) (10 STANDARD ITALIC BOLD) (12 STANDARD ITALIC BOLD) (14 STANDARD ITALIC BOLD)) (CREAM (10 STANDARD ITALIC BOLD BOLDITALIC) (12 STANDARD ITALIC BOLD BOLDITALIC)) (GACHA (8 STANDARD ITALIC BOLD BOLDITALIC) (10 STANDARD ITALIC BOLD BOLDITALIC) (12 STANDARD ITALIC BOLD BOLDITALIC)) (HELVETICA (5 STANDARD ITALIC BOLD BOLDITALIC) (7 STANDARD ITALIC BOLD BOLDITALIC) (8 STANDARD ITALIC BOLD BOLDITALIC) (9 STANDARD ITALIC BOLD BOLDITALIC) (10 STANDARD ITALIC BOLD BOLDITALIC) (11 STANDARD ITALIC BOLD BOLDITALIC) (12 STANDARD ITALIC BOLD BOLDITALIC) (13 STANDARD ITALIC BOLD BOLDITALIC) (14 STANDARD ITALIC BOLD BOLDITALIC) (16 STANDARD ITALIC BOLD BOLDITALIC) (18 STANDARD ITALIC BOLD BOLDITALIC) (36 STANDARD ITALIC BOLD BOLDITALIC)) (HELVETICAD (DEFAULTSIZE . 24) (DEFAULTFACE . STANDARD) (24 STANDARD ITALIC BOLD BOLDITALIC)) (OLDENGLISH (10 STANDARD ITALIC BOLD BOLDITALIC) (18 STANDARD ITALIC BOLD BOLDITALIC)) (TIMESROMAN (4 STANDARD ITALIC BOLD BOLDITALIC) (6 STANDARD ITALIC BOLD BOLDITALIC) (8 STANDARD ITALIC BOLD BOLDITALIC) (9 STANDARD ITALIC BOLD BOLDITALIC) (10 STANDARD ITALIC BOLD BOLDITALIC) (11 STANDARD ITALIC BOLD BOLDITALIC) (12 STANDARD ITALIC BOLD BOLDITALIC) (13 STANDARD ITALIC BOLD BOLDITALIC) (14 STANDARD ITALIC BOLD BOLDITALIC) (16 STANDARD ITALIC BOLD BOLDITALIC) (18 STANDARD ITALIC BOLD BOLDITALIC) (36 STANDARD ITALIC BOLD BOLDITALIC)) (TIMESROMAND (DEFAULTSIZE . 24) (24 (DEFAULTFACE . STANDARD) STANDARD ITALIC BOLD BOLDITALIC) (30 (DEFAULTFACE . ITALIC) STANDARD ITALIC BOLD BOLDITALIC) (36 (DEFAULTFACE . BOLD) STANDARD ITALIC BOLD BOLDITALIC))) and is intended to represent most of the possible fonts. It is recommended that one COPY this variable to a new variable, and then edit it to represent the desired list of fonts. (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC ) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC )) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC )) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))1È 0`.È È(È(ŠŠ8(ŠŠ8DÈÈ PAGEHEADING RUNNINGHEADTERMINAL MODERN MODERN MODERN MODERN MODERNLOGO  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN -Þ% BMOBJ.GETFN3MODERN    o&fj+PY    j    J   ¾š]L 96wU[$±izº