home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / PFONTM-A.DMS / in.adf / Chapter03 < prev    next >
Encoding:
Text File  |  1995-11-12  |  58.4 KB  |  1,144 lines

  1.  
  2.  "Personal Fonts Maker -  3. PFM: The Screen"
  3.  
  4.  3. PFM: The Screen
  5.    3.1  The Character Editing Box
  6.    3.2  The "Font" Gadgets
  7.    3.3  The "Character #" Gadgets
  8.    3.4  The "X Size" Gadgets
  9.    3.5  The "Space" Gadgets
  10.    3.6  The "Kerning" Gadgets
  11.    3.7  The "Default" Gadget
  12.    3.8  The "CLR" Gadget
  13.    3.9  The "UNDO" Gadget
  14.    3.10 The "ON/OFF" Gadget
  15.    3.11 The "Copy to Buffer" Gadget
  16.    3.12 The "Paste from Buffer" Gadget
  17.    3.13 The "Smaller" Gadget
  18.    3.14 The "Larger" Gadget
  19.    3.15 The "Dynamic View" Gadget
  20.    3.16 The "OR" Gadget
  21.    3.17 The "Pencil/Brush" Gadget
  22.    3.18 The "Define Brush" Gadget
  23.    3.19 The Four "Shift" Gadgets
  24.    3.20 The Two "Flip" Gadgets
  25.    3.21 Reference Points
  26.    3.22 Quick Character Selection
  27.    3.23 The File Requester
  28.    3.24 The Font Requester
  29.  
  30.  "Personal Fonts Maker -  3. PFM: The Screen"
  31.  
  32. 3.         PFM: The Screen
  33.  
  34.    The main window of the Personal Fonts Maker, the quick character
  35. selection window and the file requester are among the most used graphical
  36. environments of the program. This chapter describes the functions which
  37. can be accessed from these windows. Other windows and requesters,
  38. associated with specific parameters or functions, are described in
  39. chapters 4 to 7, 10 and 11.
  40.  
  41.  
  42. 3.1        The Character Editing Box
  43.  
  44.    The character editing box occupies the central part of the main screen
  45. of the Personal Fonts Maker. It always displays a magnified image of the
  46. current character.
  47.  
  48.    When the mouse pointer is over the box, the mouse can be used to edit
  49. the displayed character. When the left button is pressed, a dot is painted
  50. with the foreground colour. Pressing the right mouse button, the dot under
  51. the pointer is cleared. Sections 3.17 and 3.18 explain how the brush can
  52. be used to edit elements larger than a single dot.
  53.  
  54.    The image of the mouse pointer changes from the standard arrow into a
  55. cross when the pointer is over the character editing box. As described in
  56. sections 1.9.2 and 1.9.8, the mouse buttons can be used to select menu
  57. items only when the pointer has the default arrow image. When the image is
  58. a cross, the pointer is over the box, while two arrows indicate that the
  59. reference points can be moved (section 3.21).
  60.  
  61.    After another program has been used, causing a window other than that
  62. of the Personal Fonts Maker to be activated, the first "click" of the left
  63. mouse button does not modify anything in the character editing box.
  64. Instead, it activates the window of the Personal Fonts Maker, informing
  65. the program that it is being used again.
  66.  
  67.    The width and the height of the character editing box are calculated
  68. from the "X Max", "X Dpi", "Y Max" and "Y Dpi" variables, described in
  69. sections 2.6.23 to 2.6.26 and 7.3.1 to 7.3.4. The size of the box can vary
  70. depending on the video mode, whether it be NTSC, PAL or another. Since the
  71. displayed dots in the box are made up of screen pixels, the horizontal and
  72. vertical sizes of the dots will be rounded to the closest number of video
  73. pixels. In all cases, the program keeps the aspect of the characters
  74. displayed in the box as close as possible to the ratio defined by the user
  75. through the "X Dpi" and "Y Dpi" variables.
  76.  
  77.    The minimum work size of the box is one single dot (1 column, 1 row).
  78. The maximum size of the box is 255 x 255 dots, but it can be smaller
  79. depending on the selected display size (sections 3.13 and 3.14) and the
  80. screen display mode. In practice other factors (most notably the screen
  81. size) limit the maximum size of the box, therefore 255 by 255 is a
  82. theorical limit. These minimum and maximum values are the same as the
  83. limits for the size of the characters in a font. Therefore the box cannot
  84. be made larger than the limits specified by the "X Max" and "Y Max" font
  85. parameters, described in sections 7.3.1 and 7.3.2.
  86.  
  87.    As described in section 7.6, different types of dots can be displayed,
  88. with or without a grid separating the dots. The colours of the grid and
  89. the dot depend on the status of the current character (section 3.10). If
  90. the character is "On", the grid will be displayed in dark green and the
  91. dots will be black (or any other colour specified for the dots), while if
  92. the character is marked as "Off", both the grid and the dots will be light
  93. green (which looks like grey in the green environment).
  94.  
  95.  
  96. 3.2        The "Font" Gadgets
  97.  
  98.    The Personal Fonts Maker makes it possible to work with two different
  99. fonts. Both fonts can reside in the program's memory at the same time. As
  100. described in section 2.6, each font can have its own environment of font
  101. parameters. This means that each font can have its own, independent,
  102. values for parameters like display size, FFDL sequences and densities.
  103. Each font can have a maximum of 257 characters, with codes ranging from 0
  104. to 256. The two font environments are conventionally called Font 1 (one)
  105. and Font 2 (two). Data can be exchanged between the two fonts even if the
  106. font parameters differ (more in sections 3.11, 3.12, 3.17, 3.18 and
  107. 7.10.3).
  108.  
  109.    Two gadgets can be used to switch from one font environment to the
  110. other. At the top left of the main program screen there is a list of
  111. parameters which can be modified. The "Font" parameter, followed by the
  112. two gadgets, is the first in this list. The user can either click with the
  113. mouse on the "1/2" symbol gadget, or type the number (1 or 2) in the
  114. string gadget. Section 1.9.6 explains how to use string gadgets. The
  115. string gadget must be selected with the mouse, and its content deleted
  116. with the <BS> or <Del> key before the new number can be typed from the
  117. keyboard. After the number has been typed, the <Return> (or <Enter>) key
  118. must be pressed. A number other than 1 or 2 will be automatically
  119. corrected to the closest valid number. It is definitely easier and faster
  120. to change font environment by selecting the "1/2" gadget.
  121.  
  122.    If the Amiga has not enough free RAM the Personal Fonts Maker may not
  123. be able to allocate memory for a second font environment. In this case, an
  124. error message is displayed, and the second font environment cannot be
  125. selected. Appendix G ("PFM Program Messages") lists and explains all error
  126. messages.
  127.  
  128.  
  129. 3.3        The "Character #" Gadgets
  130.  
  131.    There are several ways to select the character which is to appear
  132. and/or be edited by the user in the character editing box. Section 3.22
  133. describes the "Quick character selection". Another method is explained
  134. here.
  135.  
  136.    Among the parameters which appear on the top left of the main screen,
  137. the text "Char. #" introduces three gadgets which can be used to select
  138. the character to be edited. The first gadget is an integer gadget, which
  139. is a string gadget that can contain only numbers (section 1.9.6). The two
  140. "left arrow" and "right arrow" gadgets can be selected to decrease or
  141. increase the value in the string gadget, respectively. The latter two
  142. gadgets are very useful to access a character which has a code close to
  143. the one of the character currently being edited.
  144.  
  145.    The numerical value displayed in the string gadget can range from 0 to
  146. 256. This means that 257 different characters can be accessed. As
  147. described in section 2.8, the code 256 is reserved for the undefined
  148. character, which is generally used by fonts stored in the Amiga format.
  149. The same section explains the meaning of the displayed numerical code,
  150. which depends on the selected character set.
  151.  
  152.    The default image of the current character, according to the selected
  153. character set, is displayed in the gadget described in section 3.7.
  154.  
  155.  
  156. 3.4        The "X Size" Gadgets
  157.  
  158.    The horizontal size of the character grid can be controlled by these
  159. gadgets. The grid can be made smaller or larger. The minimum size is 1
  160. (one column of dots, while the grid can be as large as defined by the "X
  161. Max" parameter, described in section 7.3.1.
  162.  
  163.    The characters in a proportional font (see sections 2.3 and 8.14) can
  164. have different widths. The letter 'I', for example, generally occupies
  165. less horizontal space than the 'M' character of the same font. This means
  166. that the box containing the 'I' letter can be narrower, and therefore the
  167. bitmap of this letter can occupy less memory than that of a larger
  168. letter.
  169.  
  170.    This parameter does not need to include additional spaces at the left
  171. or right of the character. These spaces are useful to indicate how much
  172. free space is to appear around a character when it is printed surrounded
  173. by other characters, but it would be a waste of memory to define these
  174. spaces in a graphical way, leaving empty columns at the sides of the dots
  175. which make up the character. The "Space" and "Kerning" parameters
  176. (sections 3.5 and 3.6) should be used for this purpose.
  177.  
  178.    If the font is not proportionally spaced, then all characters will have
  179. the same width. The "X Size" parameter will be constant for all characters
  180. in the font. In such a font the characters are usually centred at the
  181. middle of the editing box. A simple macro (see chapter 6 and sections 12.5
  182. and 13.2) which increases the "X Size" parameter of all characters can be
  183. used to transform a proportionally spaced font into a font where all
  184. characters have the same width.
  185.  
  186.    The gadgets work in a manner similar to those of the other parameters
  187. grouped in this part of the screen. The user can type in a value in the
  188. string gadget, or use the two gadgets at the right of the displayed value
  189. to decrease or increase the value itself.
  190.  
  191.    The "X Size", like the "Space" and "Kerning" string gadgets, also
  192. accepts the '-' (minus) and the '+' (plus) character instead of a number.
  193. When the user writes the '-' character in the gadget and presses <Return>,
  194. the program replaces the sign with the width of the last marked brush
  195. (section 3.18). If the '+' sign is written instead, that character will be
  196. replaced by the width of the brush stretched to the current font height.
  197. The brush itself is not stretched, but the value is calculated as if the
  198. brush had been stretched according to the selected stretch mode (section
  199. 7.10, "Stretch"). If no brush has been defined, the gadget is filled in
  200. with the previous value. One technical note: if the brush is loaded from a
  201. file, the "xAspect" and "yAspect" fields of the IFF BMHD structure must be
  202. set properly, otherwise '+' is converted to "X Max" (section 7.3.1). The
  203. Personal Fonts Maker sets these fields correctly when it saves a brush.
  204.  
  205.    The '-' and '+' options can be extremely useful if they are used from a
  206. macro (see chapter 6). For example, if the user wants to record an event
  207. like "Set X Size to the brush width plus 3" it is sufficient to type a '-'
  208. in the string gadget, and then press the "right arrow" gadget three times.
  209. This must be done while the "record macro" mode is activated, as explained
  210. in chapter 6.
  211.  
  212.    Any modifications to the value of this parameter can be "undone" as
  213. described in section 3.9.
  214.  
  215.    This parameter is also called "Character Width" in the documentation of
  216. some printers.
  217.  
  218.    The associated FFDL variable ("XSIZ") is described in section
  219. 2.7.2.22.
  220.  
  221.  
  222. 3.5        The "Space" Gadgets
  223.  
  224.    The "Space" parameter defines the logical horizontal size of the
  225. character, starting from the beginning of the bitmap. The value associated
  226. with this parameter is usually slightly higher than the "X Size"
  227. parameter. The "Space" parameter indicates by how many dots the printer
  228. head has to be moved to the right after the graphical data associated with
  229. the character is printed. This parameter affects the placement of the
  230. following character, rather than the position of the character it refers
  231. to.
  232.  
  233.    For example, if the character 'A' has an "X Size" of 32, a "Space" of
  234. 34 will indicate that there have to be two (34 - 32 = 2) empty columns of
  235. dots at the right of the letter 'A' when it is printed followed by other
  236. text. The character will therefore occupy 34 columns of dots horizontally.
  237. The bitmap associated with the character, however, will only occupy memory
  238. for the 32 columns of dots which make up the graphical part of the letter.
  239. The same result could be achieved by defining an "X Size" of 34 and an
  240. equal "Space", but the two empty columns of the larger bitmap would be
  241. wasted. It is always preferable to set "X Size" to the "real" horizontal
  242. size of the bitmap of the character, and set a higher "Space" to define a
  243. proper distance from the following characters in the printed text.
  244.  
  245.    The range of valid values for this parameter is from 0 to 255. The
  246. gadgets can be used to set the parameter exactly as described for "X Size"
  247. in section 3.4. If the '-' or '+' characters are written instead of a
  248. number in the integer gadget, they will be replaced by the width of the
  249. last defined brush, or by the width of the brush stretched to the maximum
  250. height, respectively.
  251.  
  252.    Some printer handbooks call this parameter "Delta X".
  253.  
  254.    The associated FFDL variable ("SPCE") is described in section
  255. 2.7.2.16.
  256.  
  257.  
  258. 3.6        The "Kerning" Gadgets
  259.  
  260.    The "Kerning" parameter determines the starting position of the
  261. character when it is printed. The parameter specifies an offset from the
  262. position immediately following the last character which was printed or
  263. displayed.
  264.  
  265.    For example, if the string "AB" is printed, where 'A' has an "X Size"
  266. of 32 and a "Space" of 34, and 'B' has a "Kerning" value of 1, there will
  267. be three (34 - 32 + 1 = 3) empty columns of dots between the letters 'A'
  268. and 'B'. This shows how the "Kerning" and "Space" parameters can be used
  269. to control the space which must separate a character from the others, at
  270. the left and the right of the character, respectively.
  271.  
  272.    The range of valid values for this parameter is from -128 to 127. If
  273. the "Kerning" parameter is set to a value smaller than 0, and the "Space"
  274. character of the previously printed (or displayed) character is the same
  275. as or smaller than the "X Size", then the bitmaps of the two characters
  276. will overlap (if the output device supports this).
  277.  
  278.    The meaning of the word "kerning" used in this documentation is
  279. inherited from the Amiga environment. Amiga fonts do not have
  280. two-dimensional kerning tables like those used in other systems.
  281.  
  282.    The "Kerning" and "Space" parameters do not affect the bitmap of the
  283. character. Instead, they are used to control the horizontal spacing
  284. between the characters when several characters are grouped together to
  285. print, display or output text. These two parameters are stored with each
  286. character when the font is saved in either the PFM or Amiga (only if the
  287. Amiga font is proportionally spaced) format (see section 2.4). The use of
  288. these two parameters is optional when fonts are output through FFDL
  289. sequences, as in this case the format depends on the requirements of the
  290. target system.
  291.  
  292.   If a '-' (minus) character is written instead of a number in the integer
  293. gadget, it is replaced with the width of the last defined brush, while a
  294. '+' character is replaced with the width of the brush stretched to the
  295. maximum font height.
  296.  
  297.    This parameter is also called "Left Offset" and "Character Origin" in
  298. the documentation of some printers.
  299.  
  300.    The associated FFDL variable ("KERN") is described in section
  301. 2.7.2.10.
  302.  
  303.  
  304. 3.7        The "Default" Gadget
  305.  
  306.    The "Default" gadget always contains the standard image defined by the
  307. character set data for the character currently being edited. If no
  308. character set has been loaded, or the current character has no equivalent
  309. in the current character set, no image is displayed. Section 2.8 deals in
  310. more detail with character sets.
  311.  
  312.    The image displayed in the gadget is not a reduced image of the
  313. character displayed in the editing box. It is the standard image for the
  314. character in the set having the code of the edited character.
  315.  
  316.    If, for example, the "IBM_Usa2.set" (the default character set) is
  317. used, and the letter 'A' is edited and modified into a letter 'B', the
  318. gadget will still display a letter 'A'. The font, however, will contain
  319. two adjacent 'B's, having codes 65 and 66. Even if all characters in the
  320. font were hand-drawn to look like 'B's, the "Default" gadget would still
  321. display the standard image associated with each code defined for the
  322. character set.
  323.  
  324.    The "Edit Character Set" function (section 4.11) can be used to design
  325. a character set having the same (or - at worst - stretched) characters as
  326. a font being edited. If that character set is then loaded when the font
  327. from which the character images were taken is edited, the "Default" gadget
  328. will always display a reduced image of the character in the character
  329. editing box. This must be repeated every time the font is modified.
  330. However, more direct and powerful functions, like those described in
  331. sections 3.13 ("Smaller"), 3.15 ("The 'Dynamic View' Gadget") and 4.12
  332. ("Printer Test"), can be used to see the reduced image of the characters
  333. in a font.
  334.  
  335.    When the user selects the gadget with the mouse, the "Quick Character
  336. Selection" mode is activated. This causes a special box to be displayed,
  337. the function of which is described in section 3.22.
  338.  
  339.  
  340. 3.8        The "CLR" Gadget
  341.  
  342.    When this gadget is selected, the content of the character editing box
  343. is cleared (CLR comes from "CLeaR"). The character bitmap is reset. All
  344. coloured dots in the box will disappear.
  345.  
  346.    Section 3.9 describes how to restore the content of the editing box
  347. after the selection of the "CLR" function.
  348.  
  349.  
  350. 3.9        The "UNDO" Gadget
  351.  
  352.    This function nullifies the effect of the last character editing or
  353. resizing operation. If the last operation has caused an undesired effect,
  354. it is sufficient to select "UNDO" to restore the previous image and size
  355. of the current character. "UNDO" itself can be undone, selecting the
  356. gadget more than once.
  357.  
  358.    "UNDO" can restore the character data if it is called after one of the
  359. following functions:
  360.  
  361.     "X Size"                  (section 3.4)
  362.     "CLR"                     (section 3.8)
  363.     "UNDO"                    (section 3.9)
  364.     "Paste from Buffer"       (section 3.12)
  365.     "Draw with Pencil/Brush"  (section 3.17)
  366.     "Shift"                   (section 3.19)
  367.     "Flip"                    (section 3.20).
  368.  
  369.  
  370. 3.10       The "ON/OFF" Gadget
  371.  
  372.    With the Personal Fonts Maker the user can decide which characters in a
  373. font should be used, and which should be excluded from the font. The
  374. number of characters in a font is determined by the user. As explained in
  375. section 2.8, there may be up to 257 different characters in a font.
  376.  
  377.    The "ON/OFF" gadget can be selected to determine whether some graphical
  378. character data should be associated with a particular character set code
  379. or not. When the gadget is selected with the mouse, it toggles from the ON
  380. position to OFF, and vice versa. The editing box, the grid and the dots
  381. inside it have different colours for "On" and "Off" characters. If the
  382. character is "On", the grid is displayed in dark green and the dots are
  383. black (or any other colour specified for the dots), while both the grid
  384. and the dots of "Off" characters are light green.
  385.  
  386.    When the gadget is in the ON position, the character in the editing box
  387. can be modified. The user can paint with the mouse, change the size of the
  388. bitmap and do any necessary changes only if the character is "On".
  389.  
  390.    If a character is not to be used in the font being designed, it should
  391. be marked as "Off". When the gadget is toggled from the ON position to
  392. OFF, the data in the editing box is not cleared. However, the colour of
  393. the box and its contents change to inform the user that the character
  394. cannot be modified, unless it is switched "On" again. "Off" characters are
  395. not saved when the font is saved, but they are preserved in the program's
  396. memory along with all other characters. This makes it possible to set an
  397. "Off" character back "On" without losing the character data. However, if
  398. the font is stored and loaded again, "Off" characters are lost.
  399.  
  400.    The undefined character (section 2.8), which is the last character in
  401. the font, and has code 256, is handled in a slightly different way by the
  402. program. Even if the character is "Off", it is saved when the font is
  403. saved as an Amiga font (sections 2.4 and 4.6). An Amiga font must always
  404. contain graphical data for the undefined character. Therefore, the
  405. undefined character is always stored as if it was "On". If the font is
  406. stored in the standard PFM font format, the character is stored only if it
  407. is "On".
  408.  
  409.    An "Off" character cannot be modified. If the user tries to draw in the
  410. editing box, the screen flashes and an error message is displayed. Other
  411. "passive" functions, which do not modify the character data, work even if
  412. the character is "Off". For example, the character can be copied to the
  413. internal buffer (section 3.11), or a brush can be defined (section 3.18).
  414. However, the brush cannot be selected using the right mouse button ("Cut"
  415. mode), as this would clear part of the character.
  416.  
  417.   "Off" characters are not output by the "Printer Test" (section 4.12). If
  418. the size or the proportions of the characters are modified through the
  419. "Font Description" requester (section 7.3), "Off" characters are cleared,
  420. rather than being cut or stretched like "On" characters.
  421.  
  422.    As "Off" characters are not output or saved, they reduce the total
  423. amount of memory occupied by the font data. This can be especially useful
  424. when memory limitation becomes a problem. The buffer of some printers, for
  425. example, is insufficient to store 256 different characters in
  426. letter-quality mode. The characters effectively necessary to print a text,
  427. however, are much less than 256. A short letter generally does not use
  428. more than 50 different characters, including capitals, numbers and
  429. punctuation signs. The "Quick Character Selection" function (section 3.22)
  430. and the "Font Statistics" requester (section 4.14) give the user control
  431. and overview of the entire font at once. The "TextChars" program,
  432. described in section 12.1, analyzes an ASCII text file and creates a macro
  433. which switches to the OFF position all characters which are not used in
  434. that file.
  435.  
  436.  
  437. 3.11       The "Copy to Buffer" Gadget
  438.  
  439.    The Personal Fonts Maker has an internal character buffer. An entire
  440. character can be copied from and pasted to the editing box from the
  441. buffer. This is useful when a character has to be moved or copied from one
  442. position to a different one, in the same font or to another font. The
  443. buffer is shared by the two font environments. The buffer memory is
  444. independent from the brush memory.
  445.  
  446.    When the "Copy To Buffer" gadget is selected, a copy of the character
  447. in the editing box is stored into the buffer. This includes the
  448. character's image and the "X Size", "Space" and "Kerning" parameters. The
  449. data can be recalled at any time using the "Paste from Buffer" function.
  450. The data is not cleared until new data is copied to the buffer, or the
  451. program is terminated.
  452.  
  453.  
  454. 3.12       The "Paste from Buffer" Gadget
  455.  
  456.    When this gadget is selected, the character data previously stored in
  457. the buffer is applied to the current character. If the editing box already
  458. contains a character image, this is replaced by the new data.
  459. "Transparent" dots of the new data will clear "coloured" dots in the same
  460. position as the old character, unless the "OR" mode is active (section
  461. 3.16). The data in the buffer is never cleared by this operation, and can
  462. be used again.
  463.  
  464.    The "X Size", "Space" and "Kerning" parameters (sections 3.4, 3.5 and
  465. 3.6) of the current character are automatically updated by the paste
  466. function. If the character which is copied to the buffer comes from a font
  467. having different sizes or dot densities than the destination font, the
  468. Personal Fonts Maker can automatically stretch the image to fit the new
  469. editing box perfectly. Section 7.10 describes the different stretch
  470. options of the program. This is one of the features which distinguish the
  471. buffer from the brush. When data is exchanged through fonts using the
  472. brush, it is never stretched.
  473.  
  474.  
  475. 3.13       The "Smaller" Gadget
  476.  
  477.    This gadget can be used to make the character editing box smaller.
  478.  
  479.    The amount by which the box is made smaller depends on the quantity and
  480. size of the individual dots which make up the character. Each time the
  481. gadget is selected, the dot's height is reduced by one video pixel. The
  482. width of the character dots (in screen pixels) is modified so that its
  483. proportion with the dot height is as close as possible to the one
  484. specified by the user (sections 7.3.3 and 7.3.4). The operation fails if
  485. any of the two dimensions would become smaller than two video pixels as a
  486. result of the resizing. An error message is displayed in this case.
  487.  
  488.    This operation is also executed automatically whenever the character
  489. editing box is too wide to fit in the screen.
  490.  
  491.  
  492. 3.14       The "Larger" Gadget
  493.  
  494.    This function is the opposite of "Smaller", described in section 3.13.
  495. The "Larger" gadget can be used to make the character editing box larger.
  496.  
  497.    As for the reverse procedure, this function acts on the dot units which
  498. make up the character editing box. When the gadget is selected, the height
  499. of the dots which make up the character editing box is increased by one
  500. video pixel. The width of the dots is increased so that the overall X/Y
  501. ratio is as close as possible to the proportions specified by the user
  502. (sections 7.3.3 and 7.3.4). If, as a result of the operation, the editing
  503. box would not fit in the program screen, the operation fails and an error
  504. message is displayed.
  505.  
  506.    Neither "Larger" nor "Smaller" modify the character bitmap or any other
  507. information associated with the font or the character itself. The only
  508. purpose of these two functions is to change the degree to which the
  509. character editing box is magnified.
  510.  
  511.  
  512. 3.15       The "Dynamic View" Gadget
  513.  
  514.    This gadget controls the activation of the dynamic view mode. When this
  515. function is enabled, it is possible to verify the aspect of the current
  516. font as if it were being used as an Amiga screen font. Text can be typed
  517. by the user in a special screen, as if it were typed in a big string
  518. gadget (section 1.9.6). The resolution of the screen is determined by the
  519. font density (XDPI, YDPI) and ratio (XDPI/YDPI), as explained in sections
  520. 3.24 ("The Font Requester") and 7.3.3 ("X Dpi").
  521.  
  522.    The resolution of the screen is automatically adapted whenever the font
  523. density settings are changed (either manually or by loading a parameter
  524. file). The program tries to maintain the screen display ratio as close as
  525. possible to the font ratio. If the ratio is between 0.75 and 1.33, the
  526. resolution of the screen is determined by the dot density. A density of 50
  527. dpi or higher activates the high resolution interlace mode.
  528.  
  529.    The dynamic view mode is most useful when designing Amiga screen fonts.
  530. The text which is displayed in the dynamic view screen is immediately
  531. updated to reflect any changes to the current font. The font is displayed
  532. as it might appear after an "Export Amiga Font" operation (section 4.6).
  533. Only characters of the Amiga character set can be displayed. The encoding
  534. vector is used to remap the characters into the Amiga character set
  535. (section 2.8, "Character Sets").
  536.  
  537.    This function has not been designed in order to emulate the printer's
  538. output. The basic video picture elements (pixels) cannot be adapted to fit
  539. the printer's dot size, shape, placement and density. This can be achieved
  540. using the "Printer Test" functions (section 4.12).
  541.  
  542.    When the "Dynamic View" gadget is first selected, a new screen is
  543. opened. If a dynamic view screen is already open (but not the frontmost
  544. screen), it is moved to the front. The gadget can be selected again to
  545. close the screen.
  546.  
  547.    Text can be typed in the screen as in a standard Amiga string gadget
  548. (section 1.9.6). A flashing cursor indicates that the dynamic view screen
  549. is active. Appendix I lists the special keys which can be used to move the
  550. cursor and edit the text. The <Help> key can be used to make the character
  551. under the cursor the current character (i.e. display it in the character
  552. editing box). The main screen can be activated again by pressing the
  553. <Return> key or hitting the right mouse button.
  554.  
  555.    If the "Fixed Pitch" attribute is set (section 8.14), and all
  556. characters have the same "X Size" (section 3.4), the value of the "Space"
  557. and "Kerning" parameters (sections 3.5 and 3.6) is ignored. The status of
  558. the "Right to Left" attribute (section 8.15) determines the direction of
  559. text display and editing.
  560.  
  561.  
  562. 3.16       The "OR" Gadget
  563.  
  564.    This gadget changes the status of the "OR" option whenever it is
  565. selected. If the "OR" mode is not active, the selection of the gadget
  566. causes it to become active, and vice versa. In the "OR" mode, the gadget
  567. remains highlighted and looks like a push-button in the "pressed"
  568. position.
  569.  
  570.    The following functions are influenced by the status of the "OR"
  571. gadget:
  572.  
  573.     "Paste from Buffer"       (section 3.12)
  574.     "Draw with Brush"         (section 3.17)
  575.     "Shift"                   (section 3.19)
  576.     "Flip"                    (section 3.20).
  577.  
  578.    In the "OR" mode, the graphic functions listed above cause all the
  579. graphical data written to the character editing box to overwrite the
  580. existing data. This is called the "OR" mode, as the image bitplane is the
  581. result of the bitwise OR operation (section 2.7.3.3) of the bits in the
  582. original editing box and the bits of the brush or the character buffer, or
  583. the image resulting from a shift or flip operation (sections 3.19 and
  584. 3.20).
  585.  
  586.    In practice, "coloured" dots are copied to the destination bitplane,
  587. while "transparent" dots in the source bitplane are ignored. If the right
  588. mouse button is used to write in the box (erase mode), coloured dots of
  589. the source bitplane clear the corresponding dots in the destination
  590. bitplane.
  591.  
  592.    For example, when the "OR" mode is active, successive "Shift"
  593. operations (section 3.19) cause the character in the editing box to become
  594. bolder and bolder. The "Flip" function can be used to create symmetries.
  595.  
  596.  
  597. 3.17       The "Pencil/Brush" Gadget
  598.  
  599.    The mouse can be used to draw in the character editing box either in
  600. "Pencil" or in "Brush" mode. In the "Pencil" mode, a single, coloured, dot
  601. is used as the unit for paint operations. If the "Brush" mode is selected,
  602. the previously defined (section 3.18) or loaded (section 5.1) brush is
  603. used to "write" into the editing box.
  604.  
  605.    If the mouse pointer is over the character editing box and the user
  606. presses the left mouse button, the specified graphic data (a dot or a
  607. brush) is written in the box under the mouse pointer. If the right mouse
  608. button is pressed instead, the data under the mouse pointer will be
  609. erased where there are dots set in the selected graphic data. This is
  610. called the "erase" mode.
  611.  
  612.    Normally ("erase" and "OR" modes off), if the brush is used to write,
  613. the entire brush replaces the data under the mouse pointer. The entire
  614. area under the brush is cleared before the coloured dots of the brush are
  615. copied to the editing box. This means that transparent dots in the brush
  616. will create a "hole" in the destination area.
  617.  
  618.    If the "erase" mode is selected (right mouse button), the area will be
  619. cleared and coloured dots in the brush will not be copied to the
  620. destination area, as they erase dots in the box that have just been
  621. cleared by the entire brush. In this way all the dots in the editing box
  622. which are under the brush will be cleared.
  623.  
  624.    If the "OR" mode is active, the area under the brush is not cleared
  625. before the dots from the brush modify the destination area in the box.
  626. This means that only the coloured dots of the brush affect the data in the
  627. character editing box.
  628.  
  629.    If both the "OR" and the "erase" modes are active, the bits which are
  630. set in the bitplanes of the brush (those which make up the coloured dots)
  631. will clear the corresponding bits in the bitmap of the character editing
  632. box.
  633.  
  634.    In the "Pencil" mode, the program behaves as if a brush consisting of
  635. one coloured dot (a 1 by 1 brush) was used. However, if a brush was
  636. defined, it is not cancelled by the selection of the "Pencil" mode. The
  637. selection of the "Brush" mode causes the same brush to be available.
  638.  
  639.    The same brush data can be shared between fonts of different formats.
  640. Unlike the data stored in the character buffer (section 3.12), however, a
  641. brush is never stretched or adapted automatically by the Personal Fonts
  642. Maker, even if the X/Y proportions of the font from which the brush was
  643. defined and the destination font differ. The rows and columns of dots
  644. which were copied from the original font are pasted to the same number of
  645. dots in the destination font.
  646.  
  647.    When the user positions the brush by using the mouse, the outline of
  648. the brush is displayed in the character editing box. Those parts of the
  649. brush which are not over the box are not displayed, nor are they pasted if
  650. a mouse button is pressed. Section 5.9 explains how to select the part of
  651. the brush which is to be linked with the pointer (e.g. centre or edge of
  652. the brush).
  653.  
  654.  
  655. 3.18       The "Define Brush" Gadget
  656.  
  657.    When this gadget is selected, the "Brush Definition" mode begins. The
  658. gadget remains highlighted until a brush is defined using the mouse. If
  659. the gadget is selected again while it is highlighted, the brush definition
  660. is cancelled.
  661.  
  662.    The brush definition mode is active until the user selects one corner
  663. of the brush rectangle in the editing box, presses a mouse button, moves
  664. the mouse pointer to the opposite corner, and releases the mouse button.
  665. The "Draw with Brush" mode is automatically activated after a brush has
  666. been defined, so that the user can work with the brush immediately.
  667.  
  668.    During the brush definition, the mouse pointer is used to select the
  669. dots which mark the beginning and end of the brush. Since the brush is
  670. defined as a rectangle, the two positions represent opposite corners of
  671. the rectangle. When the mouse pointer is over the character editing box
  672. and a mouse button is pressed (and held down), a green border is drawn
  673. around the dot under the pointer. This is to highlight the rectangle which
  674. is being selected. One corner of the rectangle will remain linked with the
  675. initial position. The other corner will follow the mouse pointer. When the
  676. mouse is moved (with the button still pressed), the rectangle will change
  677. shape accordingly. When the mouse button is finally released, the
  678. definition of the brush is complete. A copy of the selected area is stored
  679. as "the brush".
  680.  
  681.    The brush can be defined either with the left or with the right mouse
  682. button. If the left button is used, the brush is simply copied from the
  683. selected region of the editing box. The data in the box is not modified,
  684. therefore this operation can be performed even when the current character
  685. is "OFF" (section 3.10). If the right mouse button is used instead, the
  686. brush is "cut" from the character editing box. The selected region in the
  687. box is cleared.
  688.  
  689.    Once a brush is defined, it remains in the program's memory until
  690. another brush is defined or loaded, or the program is terminated. Chapter
  691. 5 explains how it is possible to load a brush, save it, modify it, or
  692. change the position of the brush handle.
  693.  
  694.    A single '-' (minus) or '+' (plus) sign can be written instead of a
  695. number in the string gadgets of the "X Size", "Space" and "Kerning"
  696. parameters (sections 3.4, 3.5 and 3.6). The program automatically replaces
  697. the '-' sign with the width of the brush, while the '+' sign is replaced
  698. with the width of the brush stretched to the maximum font height. If no
  699. brush has been defined, the gadget is filled in with the previous value.
  700.  
  701.  
  702. 3.19       The Four "Shift" Gadgets
  703.  
  704.    The "Shift" gadgets are used to shift (move) the content of the
  705. character editing box towards the specified direction. Each gadget has an
  706. arrow symbol which indicates the direction towards which the image is
  707. moved when that gadget is selected. Whenever a gadget is selected, the
  708. dots in the box are moved by one position.
  709.  
  710.    The dots at the margins of the box are never lost as a result of a move
  711. operation. The character editing box can be imagined as a torus. The dots
  712. which are moved out of the box on one side come back in from the opposite
  713. side.
  714.  
  715.    If the "OR" mode is selected (section 3.16), only the coloured dots are
  716. moved. The coloured dots can be "smeared" all over the character editing
  717. box. This can be useful to create different bold levels of a character.
  718. If, for example, the "Shift Right" gadget is selected when the "OR" mode
  719. is active, the character displayed in the editing box will become bold. If
  720. the character has some coloured dots on the rightmost column of the box,
  721. the "X Size" could be increased (section 3.4) before the move operation to
  722. avoid the appearance of undesired dots in the leftmost column.
  723.  
  724.  
  725. 3.20       The Two "Flip" Gadgets
  726.  
  727.    The data in the character editing box can be "flipped" horizontally and
  728. vertically. The two "Flip" gadgets, on the right of the four "Shift"
  729. gadgets, can be used to produce a mirror image of the character in the
  730. editing box, or turn it upside-down. The symbols on the gadgets indicate
  731. the direction of the rotation.
  732.  
  733.    If the "OR" mode is active, only the coloured dots of each half-image
  734. are copied to the other half, producing symmetrical images.
  735.  
  736.  
  737. 3.21       Reference Points
  738.  
  739.    As described in section 2.3, four reference points can be freely
  740. positioned by the user to mark certain vertical positions of the character
  741. editing box. These (horizontal) lines of reference help the designer of a
  742. font to maintain a coherent relationship from one character to another.
  743. Four arrow-symbols on the left of the character editing box indicate the
  744. current position of the points.
  745.  
  746.    The reference points should be positioned at the height of the cap
  747. line, the mean line, the baseline and the underline position, whereas the
  748. ascender line and the descender line are naturally marked by the top and
  749. bottom lines of the character editing box. Some macros and parameter files
  750. depend on these standard settings.
  751.  
  752.    Section 2.3 describes the typographical usage of these lines. The user
  753. designing a new font, or just adding some characters to an existing one,
  754. can check at a glance whether the image in the character editing box fits
  755. within the design rules of the font.
  756.  
  757.    To move the reference points, the mouse pointer must be positioned over
  758. the reference point zone, which is a vertical strip immediately on the
  759. left of the character editing box, where the triangles associated with the
  760. reference points are displayed. When the mouse pointer is in this zone,
  761. the image of the pointer is changed into a couple of converging arrows,
  762. indicating that the Personal Fonts Maker is ready to accept user input
  763. regarding the reference points.
  764.  
  765.    When the pointer is in the reference point zone, and while the left
  766. mouse button is pressed, the reference point mode is active. In this mode,
  767. the top left part of the screen is used to display the vertical position
  768. of each of the four reference points (numbered 1 to 4), and the current
  769. position associated with the mouse pointer. A horizontal line, crossing
  770. the entire character editing box, highlights the line of reference which
  771. could be associated with the current mouse position.
  772.  
  773.    As reference points show up between horizontal rows of dots, rather
  774. than on the rows, the number of possible positions for the reference
  775. points is equal to the "Y Max" font variable (section 7.3.2) plus one. The
  776. numbering of the positions starts from the top of the editing box, with
  777. position 0 (zero).
  778.  
  779.    Each of the four reference points has an associated function key, from
  780. <F1> to <F4>. While the reference point mode is active, one or more
  781. function keys can be pressed to move one or more reference points to the
  782. highlighted position. More than one key can be pressed at the same time,
  783. and the mouse pointer can be moved while the keys are held down. The
  784. triangular arrows associated with the reference points are moved as the
  785. mouse moves. Each arrow has a different colour, but when two or more
  786. arrows occupy the same position, only one arrow can be seen in that
  787. position.
  788.  
  789.    The parameters containing the positions of the reference points can be
  790. addressed from the FFDL, as described in section 2.7.2.14. The FFDL
  791. variables associated with the reference points are named REF1, REF2, REF3
  792. and REF4.
  793.  
  794.  
  795. 3.22       Quick Character Selection
  796.  
  797.    When the "Default" gadget of the main window of the Personal Fonts
  798. Maker is selected (section 3.7), the quick character selection mode is
  799. activated. This causes a special box to be displayed.
  800.  
  801.    The quick character selection box is displayed instead of the character
  802. editing box. The images and the data displayed in the "Character #",
  803. "Default" and "ON/OFF" gadgets are updated by the program, but the
  804. "Character #" and "ON/OFF" gadgets cannot be selected. The "Mode" and
  805. "Cancel" gadgets, which replace the space normally reserved for the "X
  806. Size", "Space" and "Kerning" gadgets, are the only gadgets which can be
  807. selected.
  808.  
  809.    All the default images of the characters in the current set are
  810. displayed in the box. The characters are displayed in vertical columns,
  811. each containing ten images. When the mouse pointer is moved over one of
  812. the images, that image becomes highlighted. If the pointer is not over one
  813. of the images, the image associated with the current character, which was
  814. displayed in the character editing box before the quick character
  815. selection mode was activated, is highlighted instead. The data displayed
  816. in the "Character #", "Default" and "ON/OFF" gadgets always refers to the
  817. highlighted character.
  818.  
  819.    The "Mode" gadget can be used to switch between "Mode 1" and "Mode 2"
  820. of the quick character selection. In "Mode 2", all characters which are
  821. "Off" (section 3.10), are marked as such by an "OFF" symbol, drawn over
  822. the character image. This makes all "Off" characters recognizeable at a
  823. glance. When the left mouse button is pressed over a character image, the
  824. quick character selection mode terminates, and the highlighted character
  825. becomes the current character. The selection of the "Cancel" gadget also
  826. causes the termination of the quick character selection mode, but the
  827. current character and the "On/Off" status of all characters remain the
  828. same as before the activation of this mode. Pressing the <Esc> key is
  829. equivalent to selecting the "Cancel" gadget.
  830.  
  831.    If the left mouse button is pressed when the pointer is over one of the
  832. character images, the quick character selection mode terminates and that
  833. (highlighted) character becomes the current character. Whenever the
  834. pointer is over a character image, and the right mouse button is pressed,
  835. the status of that character is switched from "On" to "Off", and vice
  836. versa (section 3.10, "The 'ON/OFF' Gadget"). If "Mode 2" is selected, the
  837. "OFF" symbol over the character is set or cleared in accordance with the
  838. new status of the character. The "OFF" graphical symbol is placed over the
  839. characters which are off only if "Mode 2" is selected, while the "ON/OFF"
  840. gadget is always updated in both mode 1 and mode 2.
  841.  
  842.    Like all other types of character selection, the quick character
  843. selection can be recorded in a macro (see chapter 3). Any modifications to
  844. the "On/Off" status of characters, however, are not recorded, unless the
  845. gadget on the main screen is used.
  846.  
  847.  
  848. 3.23       The File Requester
  849.  
  850.    The file requester is one of the most used requesters of the Personal
  851. Fonts Maker and Printer Driver Modifier. More than a dozen functions of
  852. both programs use the file requester described here. The window containing
  853. the file requester has a title indicating the function which displayed the
  854. requester.
  855.  
  856.    The requester is called "file requester" because it allows the user to
  857. work with file names (section 1.4). When the user selects a function which
  858. needs to write data in a new file, update a file or load data from an
  859. existing file, the standard file requester is displayed. In general, the
  860. file requester is displayed whenever the user must define which file is
  861. going to be the target of an input/output operation. Sections 1.4, 1.5 and
  862. 1.12 should be carefully read and understood before this section is read.
  863.  
  864.    To identify a file so that it can be accessed, the user must specify
  865. the name of the volume or device on which the file is stored, either
  866. physical or logical (sections 1.4 and 1.12, e.g. "PFM", "DF0" or
  867. "PFM_ASSIGNED"), the remaining path (i.e. the drawers the file is in) and
  868. the file name itself. The names can be written using the keyboard or
  869. selected with the mouse. The file requester contains different gadgets,
  870. each of which is described in detail in the following paragraphs.
  871.  
  872.    The first gadget in the requester is the "Path" string gadget. The
  873. selected path (including the device name) is always displayed in the
  874. gadget. The gadget can be selected to be updated with the keyboard, but
  875. this is normally not necessary, as both the volume or device name and the
  876. names of the drawers can be selected with the mouse as explained below.
  877. The <Return> key must be pressed after the text of the string gadget has
  878. been modified with the keyboard.
  879.  
  880.    The format of the text in the "Path" string gadget is the following:
  881. device name + ':' (colon) + drawer names. A '/' (slash) must separate two
  882. drawer names. This means that each drawer name is separated by the name of
  883. the drawer containing it by a '/' sign. The volume or device name should
  884. always be specified and followed by a colon, even if no drawer names are
  885. written. If no volume or device name is selected by the user, the name of
  886. the program's current directory is automatically  placed in the string
  887. gadget by the program. The file name itself must not be written in this
  888. gadget, but in the "File" string gadget.
  889.  
  890.    When the requester is displayed for the first time by a function, the
  891. "Path" gadget contains the default path name of that particular function.
  892. Section 1.12 lists all default paths, while section 2.6 explains how to
  893. change the default paths.
  894.  
  895.    At the right of the "Path" gadget is the "Parent" gadget with the '/'
  896. (slash) symbol. When this gadget is selected, the name to the extreme
  897. right in the "Path" string gadget is removed from the path. The "Parent"
  898. gadget can be used to delete drawer names and the volume or device name
  899. without having to use the keyboard. The gadget is called "Parent" because
  900. it can be used to move to the parent directory of the current directory,
  901. which is the directory which contains the currently displayed files.
  902.  
  903.    Below the "Path" and "Parent" gadgets is the list box. The list box can
  904. either contain file and directory names or physical and logical device and
  905. volume names.
  906.  
  907.    All file and directory names found following the specified path can be
  908. viewed in the list box at the centre of the requester. All file and
  909. directory names are inserted in a list. After the complete list has been
  910. read by the program, the names are sorted in alphabetical order. Directory
  911. names are grouped at the bottom of the list, preceded by a "(dir)" prefix.
  912. Not all names which are listed necessarily belong to files or directories
  913. which contain data useful for the Personal Fonts Maker (section 1.5). Some
  914. of the names used by the Amiga operating system are excluded from the list
  915. (sections 7.11.2 and 11.7.2).
  916.  
  917.    If the list of names is longer than the screen space reserved for the
  918. list box, only part of the file names is displayed. The knob on the right
  919. of the list box can be used to shift the displayed portion of the list up
  920. or down. The knob is a gadget which can be moved when it is selected.
  921. While the left mouse button is pressed, the mouse can be moved up or down.
  922. If the mouse and the knob are moved up, the displayed names are moved
  923. down, so that some space is freed to display the names which are closer to
  924. the top of the list. The opposite happens if the knob is moved down. The
  925. beginning of the list is always displayed when the knob is in the topmost
  926. position. If the knob is in the lowest possible position, the end of the
  927. list is displayed. Intermediate knob positions cause proportionally
  928. equivalent parts of the list to be displayed. The knob can also be moved
  929. by briefly pressing the left mouse button when the pointer is over the
  930. container of the knob (but not over the knob). In this way, the knob is
  931. "attracted" towards the mouse pointer whenever the left mouse button is
  932. pressed and the names in the list box are scrolled by an entire list box
  933. page at the time.
  934.  
  935.    The list box normally displays the names of all files and directories
  936. contained in the directory and volume (or device) specified in the "Path"
  937. gadget. If the right mouse button is pressed, the list box displays all
  938. physical and logical volume and device names (sections 1.4 and 1.12). The
  939. Personal Fonts Maker automatically detects all storage devices connected
  940. to the computer, the volumes (e.g. disks) mounted in these devices and the
  941. logical names assigned to both the volumes and the devices. All these
  942. names are displayed in the list box. When one of these names is selected
  943. with the left mouse button, the "Path" gadget is updated and the list box
  944. is again used to display file and directory names. If possible, only the
  945. initial part of a longer path is modified, i.e. any names of drawers are
  946. not cleared. This is done if the same path also exists on the newly
  947. selected volume or device.
  948.  
  949.    It should be noted that when the list box is used to display volume and
  950. device names, the same volume can be accessed by selecting either the
  951. volume name or the name of the device containing that volume. If the
  952. "Expand Path" option is activated (sections 7.11.1 and 11.7.1), the
  953. program will automatically write the correct volume name in the "Path"
  954. string gadget. Devices other than standard disk drives are included in the
  955. list box. Files saved in devices like "RAM" and "RAD" are lost after the
  956. computer is switched off.
  957.  
  958.    Once the name of a file, directory, volume or device is displayed in
  959. the list box, it can be selected with the mouse. When the left mouse
  960. button is pressed and released, the name displayed under the mouse pointer
  961. is selected. If the name of a volume, device or drawer is selected, the
  962. "Path" string gadget is automatically updated. If a file name is selected
  963. (e.g. the name of a font file), the "File" string gadget containing the
  964. file name is updated.
  965.  
  966.    Every gadget of the file requester, including the knob, can be selected
  967. while the list box is being updated. During this phase, new names are
  968. continuously inserted at the bottom of the list, rather than sorted in
  969. alphabetical order. In this way, the order of the displayed names cannot
  970. change unexpectedly while the user is about to select a name. To avoid
  971. undesired selections during the display update, the displayed names are
  972. not modified while the left mouse button is pressed, and the selection of
  973. a name is accepted only if the mouse button is released over the
  974. highlighted name. If the mouse button is pressed when the pointer is over
  975. a name, but released when the pointer is not over the same name, no
  976. selection is made.
  977.  
  978.    The updating of the list box, especially if the list is long and the
  979. device is not extremely fast (e.g. a standard disk drive), can be
  980. annoyingly long. The file requester has a special feature which eliminates
  981. all unnecessary delays. Once a list is complete, it is stored in the
  982. program's internal memory (unless the same list has already been saved
  983. before, and is still up to date) and preserved until the program is
  984. terminated. This is done for the lists of all functions which use the file
  985. requester, if there is enough memory. Whenever a function displays the
  986. file requester, or the user modifies the content of the "Path" gadget, the
  987. program scans through all its stored lists to check if the list associated
  988. with that particular path has been read before. The program also verifies
  989. if other programs have added, modified or deleted any names in a directory
  990. while the associated list was stored. If the program finds a matching and
  991. updated list, this is immediately displayed in the list box. The user does
  992. not have to wait for the file requester to slowly create a list which is
  993. already in the program's memory.
  994.  
  995.    The "File" string gadget under the list box contains the name of the
  996. file. The content of the string gadget is automatically updated if a file
  997. name is selected with the mouse from the list box.
  998.  
  999.    The maximum length of the full path (device + drawer names) which can
  1000. be written in the "Path" gadget is 128 characters. As explained in section
  1001. 1.4, the length of file names ("File" gadget) should not exceed 25
  1002. characters. The number of names which can be stored in a list and
  1003. displayed in the list box is limited only by the available memory.
  1004.  
  1005.    To confirm the selection of a file and remove the requester, the
  1006. "Proceed" gadget must be selected, or the <Return> key can be pressed when
  1007. the cursor is in the "File" string gadget, or double-clicking (quickly
  1008. pressing the left mouse button twice) on a file name in the list box. The
  1009. double-click function can be disabled, as described in sections 7.11.3 and
  1010. 11.7.3.
  1011.  
  1012.    If the "Cancel" gadget is selected, the function which displayed the
  1013. file requester is aborted. Any changes in the gadgets of the file
  1014. requester are undone.
  1015.  
  1016.    An optional safety check (section 7.11.4) causes a warning message to
  1017. be displayed if the function which displayed the file requester would
  1018. overwrite some existing data. Other messages are relative to the function
  1019. which displayed the file requester. Appendixes G and H list all messages
  1020. of the Personal Fonts Maker and the Printer Driver Modifier. Section 14.1
  1021. contains important information on how to handle errors which may occur
  1022. during read/write operations to peripheral storage units.
  1023.  
  1024.    Section 7.8 explains how to choose whether Workbench icons should be
  1025. associated with files being saved or not. Different kinds of icons can be
  1026. selected.
  1027.  
  1028.    The Amiga operating system may perform another disk write operation
  1029. some seconds after a file has been stored. For this reason, a disk should
  1030. not be ejected from the drive (nor should the computer be switched off)
  1031. for some seconds after the disk drive activity indicator light goes off.
  1032.  
  1033.  
  1034. 3.24       The Font Requester
  1035.  
  1036.    The "Import Amiga Font", "Export Amiga Font" and "Delete Amiga Font"
  1037. functions (sections 4.5, 4.6 and 4.16.2) use a special version of the file
  1038. requester (section 3.23), called the font requester. This is necessary
  1039. because fonts are stored in a more complex format than other files. For
  1040. example, fonts can only be read from and saved to a directory to which the
  1041. logical name "Fonts" has been assigned. For each typeface, a drawer must
  1042. be created in the "Fonts" directory just mentioned, and an information
  1043. file describing the fonts (sizes and styles) of that typeface must be
  1044. created. All this is done automatically by the Personal Fonts Maker. The
  1045. font requester frees the user from the burden of having to remember how
  1046. the Amiga operating system handles font files.
  1047.  
  1048.    The font requester allows the user to type in the "Fonts" (same as
  1049. "Path" in the file requester) string gadget the physical or logical name
  1050. of the volume or device to which the "Fonts" logical device name is to be
  1051. re-assigned. The list box only displays the names of fonts, followed by
  1052. the vertical size in dots of the font. The names of the default system
  1053. fonts (e.g. "topaz 8 of" and "topaz 9 oetf") appear even if the specified
  1054. "Fonts" directory does not contain any font files, as these fonts are
  1055. always available and usually stored in ROM. The "Parent" gadget cannot be
  1056. used, since directory names are not necessary.
  1057.  
  1058.    An Amiga font file is identified not only by the typeface name, but
  1059. also by the font size and style attributes. Fonts in different sizes
  1060. and/or with different attributes, but with the same typeface name can
  1061. exist.
  1062.  
  1063.    During a load operation, the font name can be selected with the mouse
  1064. from the list box. This automatically causes the desired size and style to
  1065. be selected as well. It is also possible to manually enter this
  1066. information in the string gadget on the right. This can be particularly
  1067. useful if no font bitmap file exists for a particular font size and style.
  1068. If the requested font size does not exist, the Amiga operating system
  1069. either scales the font to the desired format (in version 2.0 and beyond,
  1070. only if the "Scaled Font" attribute is specified), or loads the closest
  1071. existing font. The result of scaling a font to a new format is usually
  1072. better if the point of departure is a vector font. When on the contrary
  1073. font data is written, the size and style are selected by the program,
  1074. depending on the font attribute flags (chapter 8), the size and the
  1075. display ratio of the current font.
  1076.  
  1077.    Font attributes are appended to the number indicating the size of the
  1078. font, following a widespread Amiga standard. One lower case character is
  1079. associated with each of the Amiga font attributes. The characters are:
  1080.  
  1081.      CHARACTER   ATTRIBUTE
  1082.  
  1083.      u           Underlined
  1084.      b           Bold
  1085.      i           Italic
  1086.      e           Expanded
  1087.      r           Right to Left
  1088.      f           Fixed Pitch
  1089.      t           Tall Dots
  1090.      w           Wide Dots
  1091.      c           Colour Font
  1092.      o           ROM Font
  1093.      s           Scaled Font
  1094.      v           Vector Font
  1095.  
  1096.    The "Tall Dots" flag is set automatically by the Personal Fonts Maker
  1097. if the display ratio (XDPI/YDPI) is higher than 1.33. Conversely, "Wide
  1098. Dots" is set if the ratio is lower than 0.75. The same criterion is
  1099. adopted to determine the format of the dynamic view screen (sections 3.15
  1100. and 7.3.3).
  1101.  
  1102.    The "Colour Font" flag is read by the Personal Fonts Maker, but never
  1103. set, since the program saves single-bitplane fonts. A "ROM Font" is one
  1104. that comes bundled with the system (usually in ROM), like "Topaz".
  1105.  
  1106.    It may sometimes happen that no custom-designed font bitmap exactly
  1107. matches a particular font name, style and size. The Amiga font handling
  1108. routines can algorithmically modify an existing font in order to build a
  1109. font with the desired format. A font generated by such a procedure is
  1110. flagged with the "Scaled Font" attribute.
  1111.  
  1112.    As explained in section 2.1 ("From Gutenberg's Type to Computer
  1113. Fonts"), the Amiga operating system (version 2.0 and beyond) supports
  1114. vector fonts. The "Vector Font" flag is used to immediately recognize
  1115. vector font files.
  1116.  
  1117.    All other flags can be controlled through the "Attributes" menu,
  1118. described in chapter 8.
  1119.  
  1120.    Internally, when a font is saved, the Personal Fonts Maker first checks
  1121. if another font of the same typeface exists. If not, a directory with the
  1122. name of the typeface and a file describing the content of that directory
  1123. are created. Then, the font data is written to a file in the new
  1124. directory. The name of the file containing the font consists of a number,
  1125. indicating the size of the font, followed by the font attribute
  1126. characters. For example, when the Personal Fonts Maker stores the
  1127. "Andromeda_24" font as an Amiga font, it first creates a directory called
  1128. "Andromeda" and a font contents file named "Andromeda.font". Then, the
  1129. font data is written to the "24t" file in the "Andromeda" directory. "24t"
  1130. means that that file describes a font of size 24, designed for "Tall Dots"
  1131. representation.
  1132.  
  1133.    When the Personal Fonts Maker adds or modifies some Amiga font data, it
  1134. automatically updates the description of the fonts available for that
  1135. typeface, which is stored in a separate file, as explained above. Some
  1136. other font editing programs do not update this information file, so it
  1137. sometimes happens that the font information file does not describe the
  1138. fonts which are really available. To avoid this, the Commodore "FixFonts"
  1139. program should be run whenever a program other than the Personal Fonts
  1140. Maker is used to modify some font files. "FixFonts" must also be used if
  1141. any font files are renamed, moved, deleted or copied manually using the
  1142. Amiga Shell or CLI.
  1143.  
  1144.