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

  1.  
  2.  "Personal Fonts Maker -  6. PFM: The Macro Menu"
  3.  
  4.  6. PFM: The Macro Menu
  5.    6.1  Load Macro
  6.    6.2  Save Macro
  7.    6.3  Start Record
  8.    6.4  End Record
  9.    6.5  Delete Macro
  10.    6.6  Examine Macro
  11.         6.6.1  Macro Commands: AFNT
  12.         6.6.2  Macro Commands: BHCE
  13.         6.6.3  Macro Commands: BHFL
  14.         6.6.4  Macro Commands: BHLL
  15.         6.6.5  Macro Commands: BHLR
  16.         6.6.6  Macro Commands: BHUL
  17.         6.6.7  Macro Commands: BHUR
  18.         6.6.8  Macro Commands: BITA
  19.         6.6.9  Macro Commands: BRDH
  20.         6.6.10 Macro Commands: BRDO
  21.         6.6.11 Macro Commands: BRDV
  22.         6.6.12 Macro Commands: BRHA
  23.         6.6.13 Macro Commands: BRHH
  24.         6.6.14 Macro Commands: BRHV
  25.         6.6.15 Macro Commands: BROT
  26.         6.6.16 Macro Commands: BRST
  27.         6.6.17 Macro Commands: BRVS
  28.         6.6.18 Macro Commands: BSHM
  29.         6.6.19 Macro Commands: BVFL
  30.         6.6.20 Macro Commands: CLRC
  31.         6.6.21 Macro Commands: COFF
  32.         6.6.22 Macro Commands: CRON
  33.         6.6.23 Macro Commands: DOTM
  34.         6.6.24 Macro Commands: DVW0
  35.         6.6.25 Macro Commands: DVW1
  36.         6.6.26 Macro Commands: F1KD to F4KD
  37.         6.6.27 Macro Commands: F1KU to F4KU
  38.         6.6.28 Macro Commands: FLPH
  39.         6.6.29 Macro Commands: FLPV
  40.         6.6.30 Macro Commands: FONT
  41.         6.6.31 Macro Commands: KERN
  42.         6.6.32 Macro Commands: KRN-
  43.         6.6.33 Macro Commands: KRN+
  44.         6.6.34 Macro Commands: LBTD
  45.         6.6.35 Macro Commands: LBTU
  46.         6.6.36 Macro Commands: MEMR
  47.         6.6.37 Macro Commands: MKB0
  48.         6.6.38 Macro Commands: MKB1
  49.         6.6.39 Macro Commands: MOVE
  50.         6.6.40 Macro Commands: ORM0
  51.         6.6.41 Macro Commands: ORM1
  52.         6.6.42 Macro Commands: RBTD
  53.         6.6.43 Macro Commands: RBTU
  54.         6.6.44 Macro Commands: RCAL
  55.         6.6.45 Macro Commands: SELC
  56.         6.6.46 Macro Commands: SEL-
  57.         6.6.47 Macro Commands: SEL+
  58.         6.6.48 Macro Commands: SETR
  59.         6.6.49 Macro Commands: SHFD
  60.         6.6.50 Macro Commands: SHFL
  61.         6.6.51 Macro Commands: SHFR
  62.         6.6.52 Macro Commands: SHFU
  63.         6.6.53 Macro Commands: SPCE
  64.         6.6.55 Macro Commands: SPC+
  65.         6.6.56 Macro Commands: UNDO
  66.         6.6.57 Macro Commands: XSIZ
  67.         6.6.58 Macro Commands: XSZ-
  68.         6.6.59 Macro Commands: XSZ+
  69.         6.6.60 Macro Commands: ZOM-
  70.         6.6.61 Macro Commands: ZOM+
  71.    6.7  Execute Macro
  72.    6.8  Controlled Execution
  73.    6.9  Stop Execution
  74.    6.10 Step Execution
  75.  
  76. "Personal Fonts Maker -  6. PFM: The Macro Menu"
  77.  
  78.  
  79. 6.         PFM: The Macro Menu
  80.  
  81.    Font design often involves a lot of repetitive work. If, for example,
  82. an existing font is to be used as a point of departure to create an italic
  83. variation of the whole font, it would be faster to show the program how to
  84. italicize one character, and then let the program repeat the sequence on
  85. the desired number of characters. Another operation which font designers
  86. often have to repeat is to copy letters from the standard 7-bit ASCII set
  87. range to several more positions in the font, where those same characters
  88. will have to appear with diacritical marks. Once the basic characters are
  89. copied, it is often sufficient to add some standard signs on the top of
  90. the character. The most annoying part of this work is the selection of all
  91. the source and destination codes of the characters to be copied. If this
  92. could be done only once, just to "teach" the program what to copy and
  93. where to paste it, the subsequent jobs would be less repetitive for the
  94. designer. The Personal Fonts Maker's powerful macro functions help the
  95. user in these situations and many more.
  96.  
  97.    A macro is a program interpreted and executed by the Personal Fonts
  98. Maker. All functions which can be executed from a macro can also be
  99. selected manually by the user, using menus, gadgets, the mouse and the
  100. keyboard. The main purpose of macros is to automate a sequence of Personal
  101. Fonts Maker functions. As described in section 12.5, the Personal Fonts
  102. Maker comes with different pre-defined macros. Defining a new macro is as
  103. easy as showing the program the sequence of operations to do. Experienced
  104. users can view the macro program listings, or even use a text editor to
  105. write or modify macros. This is usually not necessary.
  106.  
  107.    Each macro is identified by a name and an associated letter on the
  108. keyboard. Up to 26 different macros (as the number of letters from 'A' to
  109. 'Z') can be stored in the program's memory at the same time. Macros are
  110. shared by both font environments. A macro can be saved to and loaded from
  111. disk. When a macro is defined or loaded, it is associated with the letter
  112. on the keyboard which will be used as a shortcut to execute that macro.
  113. When the program is started, it loads all macros specified in the default
  114. parameter files (sections 2.6, 2.6.16 and 6.1).
  115.  
  116.    The following sections explain how to load, save, define, delete,
  117. examine and execute macros. Section 6.6 ("Examine Macro") contains a
  118. detailed description of the program functions which can be accessed from
  119. within a macro.
  120.  
  121.  
  122. 6.1        Load Macro
  123.  
  124.    This function loads a macro which was previously stored. The standard
  125. file requester (section 3.23) is used to select the file containing the
  126. macro. The file name will remain associated with that particular macro
  127. when it is stored in the program's memory.
  128.  
  129.    Before the file requester, a special requester, used to specify the key
  130. which is to be linked with the macro being loaded, is displayed. This
  131. requester is called the macro requester. Most functions described in this
  132. chapter use the macro requester. A list box, similar to that of the file
  133. requester, contains the names of all the macros currently in memory. There
  134. are 26 elements in the list. The elements are gadgets which can be
  135. selected with the mouse. Each element begins with a letter from 'A' to
  136. 'Z'. The names are ordered after the keyboard letter associated with each
  137. macro. The text in those elements which already contain a macro is
  138. displayed in dark green. All other (empty) elements contain only the
  139. keyboard letter, in light green. Both kinds of elements can be selected.
  140. If an element which already contains a macro is selected, the new macro
  141. will replace the previously existing macro. Once an element (gadget) is
  142. selected with the mouse, it remains highlighted until a new element is
  143. selected.
  144.  
  145.    At the bottom of the macro requester are the usual "Proceed" and
  146. "Cancel" gadgets. "Proceed" will not work (it will cause a short screen
  147. flash instead) if no element in the list box was selected, i.e. if no
  148. keycap letter was defined. A double click on a gadget in the list box is
  149. equivalent to the selection of both the associated element and "Proceed".
  150. Section 7.11.3 ("Double Click") explains how to activate or disable this
  151. option. "Cancel" always aborts the current operation. Other functions use
  152. slightly different versions of the macro requester, containing one or more
  153. additional gadgets.
  154.  
  155.    When the macro requester is used to link a key with a macro it is
  156. important that the selected letter can easily be associated with that
  157. particular macro. For example, it would be easy to remember that the key
  158. <O> is associated with the "Outline" macro. The letters associated with
  159. the macros do not need to be selected starting from 'A'. It does not
  160. matter whether the only two macros are associated with the keys <K> and
  161. <Q>, as long as these letters mean something to the user. Of course, a
  162. macro can also be selected with the mouse, from a list displaying all the
  163. names of the macros, rather than pressing a single key. This is described
  164. in sections 6.7 ("Execute Macro") and 6.8 ("Controlled Execution").
  165.  
  166.    If the program encounters an error in the macro which is being loaded,
  167. an error message is displayed and the operation is cancelled. The content
  168. of the selected macro is cleared from the program's memory. Appendix G
  169. explains the meaning of the error messages. Section 6.6 ("Examine Macro")
  170. and appendix L ("Macros Command Consistency Table") list the rules which
  171. are most often violated, resulting in an error.
  172.  
  173.  
  174. 6.2        Save Macro
  175.  
  176.    As described in the introduction to this chapter, as well as in section
  177. 6.3 ("Start Record"), up to 26 different macros can exist at the same time
  178. in the Personal Fonts Maker's memory. Any of these macros can be stored to
  179. a file separately.
  180.  
  181.    The macro requester, identical to the requester described in section
  182. 6.1 ("Load Macro"), allows the user to choose the macro to be stored. But,
  183. unlike the "Load Macro" function, only an element of the list box
  184. containing a macro can be selected. The program will not let the user
  185. select an empty element. It would not make sense to store... nothing.
  186.  
  187.    The macro requester is followed by the file requester. A warning
  188. message can be displayed if a file with the same name already exists
  189. (section 7.11.4 "Confirm Overwriting"). The function can be aborted
  190. selecting the "Cancel" gadget of either the macro requester, the file
  191. requester, or the requester containing the warning message.
  192.  
  193.    The macro is saved as a plain ASCII text file, as described in sections
  194. 6.3 ("Start Record") and 6.6 ("Examine Macro"). In fact, such a file can
  195. also be created by the user with a word processor or a text editor, as
  196. long as the commands contained in the macro file follow the rules
  197. explained in section 6.6.
  198.  
  199.    The file requester contains the name originally assigned to the macro
  200. as the default file name. This name can, however, be modified by the user.
  201. The macro file is "freed" from the link to a keycap letter. When the macro
  202. is loaded again, either with the "Load Macro" function, or from a
  203. parameter file (sections 2.6, 2.6.16 and 7.1), it is again associated with
  204. one of the 26 letters.
  205.  
  206.    As described in sections 1.9.7 and 7.8 ("Icons"), the Personal Fonts
  207. Maker can associate a Workbench icon with the macro file.
  208.  
  209.  
  210. 6.3        Start Record
  211.  
  212.    This function starts the automatic macro record mode of the Personal
  213. Fonts Maker.
  214.  
  215.    Before the actual recording begins, the macro requester is displayed to
  216. allow the user to select a single character and a name to be associated
  217. with the macro to be recorded. The macro requester used by this function
  218. has one additional string gadget, where the user can write the name to be
  219. assigned to the macro. The name is selected automatically if an element in
  220. the list box which already has an associated macro is chosen. In this
  221. case, the new macro will replace the macro that was previously assigned to
  222. the same key. If no name is selected, either from the list box, or through
  223. the string gadget, the program will assign the default "Unnamed_x.mcr"
  224. name, where the 'x' suffix is replaced by a letter in the range 'A' to
  225. 'Z'.
  226.  
  227.    While the macro record mode is active, an 'M'-sign ('M' like "Macro")
  228. is displayed under the usual mouse pointer. This is to remind the user
  229. that all actions are being recorded. There is no limit to the number of
  230. actions which can be recorded in a single macro, apart from the available
  231. system memory.
  232.  
  233.    The "recordable" actions and commands include all gadgets of the main
  234. program screen, any modifications to the content of the character editing
  235. box, and the brush editing functions. The program will also record the
  236. functions executed through their keyboard shortcuts. The menus which
  237. cannot be selected (because the associated functions cannot be recorded)
  238. are "ghosted", as described in section 1.9.8 ("Menus").
  239.  
  240.    When the "ON/OFF" gadget, or another two-state gadget is selected, the
  241. program records the new state, rather than the transition to the opposite
  242. state. For example, if the program records the selection of the "ON/OFF"
  243. gadget which activates the current character, but the macro is later
  244. "re-played" when the current character is already "On", the character
  245. status will remain the same.
  246.  
  247.    When an editing operation in the character editing box is recorded,
  248. either in the "Pencil or in the "Brush" mode, the absolute coordinates of
  249. the operation are recorded. This means that when an action in the
  250. character editing box is recorded, it will later be re-played in exactly
  251. the same position in the box. The position, defined as the number of
  252. horizontal and vertical dots from the top-left of the box, will not vary
  253. if the size of the box is different from the size of the box in which the
  254. macro was recorded.
  255.  
  256.    When a brush is defined during the macro record mode and the mouse
  257. pointer is either at the right or/and below the limit of the character
  258. editing box when the mouse button is released, the final position will be
  259. recorded as "rightmost" or/and "lowest-possible". In this case, it is
  260. possible to record a position in the character editing box relative to the
  261. right, or/and bottom, rather than an absolute coordinate from the top left
  262. corner. This is useful when a sequence like "Copy the entire character,
  263. reverse it, and paste it back" is to be recorded. Such a sequence would
  264. not work properly on proportionally spaced fonts, as the sizes of some
  265. characters would inevitably be different from the size of the character on
  266. which the macro was recorded. If the normal absolute position is recorded
  267. in such a case, the macro will reverse only part of any character larger
  268. than the character used to record the macro. The method just described
  269. solves this problem. Similarly, a reference point can be set to the
  270. bottom-most position by moving the mouse pointer below the reference point
  271. zone (section 3.21).
  272.  
  273.    There is another way of defining a position in the character editing
  274. box in a macro. It allows the user to freely define relative-positions and
  275. positions to be specified by the user when the macro is run. This
  276. technique, however, requires the macro to be written or modified in its
  277. text format, rather than recorded through this function. The text format
  278. is described in depth in section 6.6.
  279.  
  280.    The first instructions in a macro are generated automatically by the
  281. program when this function is called. These instructions contain
  282. information on the initial status of the "OR", the "Pencil/Brush", the
  283. "Define Brush" and the "Stretch" modes (sections 3.16, 3.17, 3.18 and
  284. 5.8.1) and the position of the brush handle (section 5.9). This
  285. information, placed at the beginning of a macro, ensures that a macro will
  286. produce the same results when it is executed as when it was originally
  287. recorded.
  288.  
  289.    The macro record mode can also be started by pressing a key from <A> to
  290. <Z> while <Shift> and <Ctrl> are held down. This sequence replaces this
  291. function, and does not cause the initial macro requester to be displayed.
  292. The user cannot specify a name for the macro being recorded. The default
  293. "Unnamed_x.mcr" name is assigned to the macro. The key pressed by the user
  294. is assigned to the macro and appended to the macro name. The name of the
  295. macro can later be changed with the "Examine Macro" function (section
  296. 6.6), or when the macro is saved.
  297.  
  298.    This function can be recalled by pressing the <M> (capital 'M') key on
  299. the keyboard. This will produce the same effect as the selection of the
  300. "Start Record" menu item. This is different from pressing <Shift>, <Ctrl>
  301. and a letter-key, which does not display the macro requester.
  302.  
  303.    The macro record mode is terminated by selecting the "End Record"
  304. function, as described in section 6.4.
  305.  
  306.    Sections 12.5 ("Predefined Macros") and 13.2 ("A Simple Macro") contain
  307. additional information on macros for beginners.
  308.  
  309.  
  310. 6.4        End Record
  311.  
  312.    This function terminates the macro record mode. The 'M' sign is removed
  313. from the mouse pointer image. The macro which has just been recorded is
  314. immediately available to be executed, saved or examined.
  315.  
  316.  
  317. 6.5        Delete Macro
  318.  
  319.    This function allows the user to remove one or more macros from the
  320. list of the macros currently associated to the 26 keyboard keys from <A>
  321. to <Z>.
  322.  
  323.    A variation of the macro requester employed by the "Save Macro"
  324. function (section 6.2) is used to select the macros to be deleted. Unlike
  325. that requester, however, more than one macro can be selected with the
  326. requester displayed by this function. The names of the selected macros
  327. remain highlighted until they are selected again with the mouse. A
  328. double-click on an element in the list box causes that element to be
  329. highlighted and return to the normal state, rather than cause the
  330. requester to disappear.
  331.  
  332.    The memory occupied by the deleted macros is freed. Usually, this is
  333. not a lot of memory. An average macro does not occupy more than 1 Kbyte of
  334. RAM.  If the macros were saved to a file, those files are not deleted.
  335.  
  336.    It is not necessary to use this function to "free" a key before a new
  337. macro (loaded or recorded) is associated to the same key. This is
  338. automatically done when a new macro is assigned to a key already
  339. associated with a macro.
  340.  
  341.  
  342. 6.6        Examine Macro
  343.  
  344.    The Personal Fonts Maker stores macros in a text format which the user
  345. can easily read. A macro program consists of a series of lines of text,
  346. each containing one or more commands. The macros can either be examined by
  347. the user using a word processor (or a text editor) to load a macro file
  348. saved by the Personal Fonts Maker, or viewed using this function. This
  349. function does not allow the user to modify a macro. A word processor like
  350. Personal Write can be used to do this.
  351.  
  352.    The first part of this section describes the use of this function,
  353. while the remaining part explains the format used by the Personal Fonts
  354. Maker to store macros, and the rules which must be observed in order to
  355. write a correct macro. The subsections at the end of this section describe
  356. in detail each program function which can be called from within a macro.
  357.  
  358.    This function uses two requesters. The first requester is a macro
  359. requester similar to the one used by the "Load Macro" function (section
  360. 6.1). The second requester displays the content of the macro selected
  361. using the first requester.
  362.  
  363.    The macro requester is used to choose the macro to be analyzed. Once a
  364. macro is selected with the mouse, its name is displayed in the string
  365. gadget below the list box, where it can be modified. The <Return> key must
  366. be pressed to confirm a newly entered name. Once <Return> is pressed, the
  367. new name is associated with the macro and displayed in the list box. If
  368. <Return> is not pressed, but another macro (or the same macro) is
  369. selected, its name is again displayed in the string gadget.
  370.  
  371.    Once a macro has been selected with the mouse, it can be examined by
  372. pressing the "Proceed" gadget at the bottom of the requester, or
  373. double-clicking on the macro name in the list box. If the "Cancel" gadget
  374. is selected instead, the second requester is not displayed, and the
  375. "Examine Macro" operation terminates.
  376.  
  377.    The second requester displays the text which makes up the selected
  378. macro. A list box, similar to the ones used in the file requester and the
  379. macro requester, contains the lines of text. If the macro is too long to
  380. fit in the list box, only part of it is displayed, but the text can be
  381. scrolled up or down using the knob at the right of the list box. This
  382. works in exactly the same way as the list box described in section 3.23
  383. ("The File Requester").
  384.  
  385.    Three gadgets appear at the bottom of the second requester: "Proceed",
  386. "Codes" and "Number". When "Proceed" is selected, the requester containing
  387. the macro listing is removed, and the macro requester is displayed again.
  388. A new macro can be examined by selecting the "Proceed" gadget of the macro
  389. requester, as explained above.
  390.  
  391.    When the "Codes" gadget is selected, the list box displays the more
  392. compact four-character names of the macro functions. The gadget remains
  393. highlighted until it is selected again with the mouse. When the gadget is
  394. not highlighted, a more extended (and understandable) name is displayed
  395. for each function in the list box. The subsections at the end of this
  396. section contain the compact codes of all macro functions. For example, the
  397. code for the function "Brush definition mode OFF" is "MKB0" (section
  398. 6.6.37).
  399.  
  400.    When the "Number" gadget is selected, each line displayed in the list
  401. box is preceded by a line number, indicating the position of the line in
  402. the macro. The first line is line number one. The gadget remains
  403. highlighted (and the "Number" mode active) until it is selected again with
  404. the mouse.
  405.  
  406.    The extended names of the functions, which are usually similar to the
  407. names of the menus associated with the functions, are displayed by default
  408. in the list box to make the macro more readable to the user.
  409. Four-character macro codes, which are the same codes used to read and
  410. write macros stored in a file, and can be processed very efficiently, can
  411. be displayed by selecting the "Codes" gadget.
  412.  
  413.    While the extended names displayed in the list box are different from
  414. language to language, the four-character codes are language independent.
  415. The codes are the same for all languages in which the Personal Fonts Maker
  416. is translated. A macro file written - for example - on the German version
  417. of the Personal Fonts Maker can be executed on the Italian version, and
  418. vice versa.
  419.  
  420.    The following subsections describe the meaning of all the
  421. four-character codes. Users wishing to write or modify macro files should
  422. adhere to the format described here.
  423.  
  424.    Every line of a macro program contains the code of one or more
  425. functions to be executed, each followed by one or more parameters, if
  426. required. Macros are processed from the top to the bottom. The first
  427. instruction is the first to be executed, while the last function to be
  428. executed is contained in the last program line.
  429.  
  430.    Files containing macros stored by the Personal Fonts Maker follow the
  431. same format displayed by the "Examine" requester to display macros in the
  432. "Codes" mode. The prefix "PFM MCRO" is added at the beginning of the macro
  433. file, immediately before the macro text, to make a file containing a PFM
  434. macro immediately recognizable.
  435.  
  436.    A macro file written by the user can contain additional comments and
  437. formatting characters, like spaces and empty lines, to make the macro more
  438. readable. This information is skipped by the program when the macro is
  439. loaded. More than one macro command can appear on the same line.
  440. Consecutive commands must be separated by at least one space (ASCII
  441. decimal code 32), TAB (ASCII code 9) or Line-Feed (LF, ASCII code 10)
  442. character. Comments must begin with a ';' (semicolon, ASCII code 59) and
  443. terminate at the end of the line. Spaces and empty lines in excess, as
  444. well as comments, are skipped by the program. Macro commands written in
  445. lower case letters are automatically converted to the proper format
  446. (capital letters). In general, these are the same rules which apply for
  447. the parameter files, described in section 2.6. When a macro is saved by
  448. the the Personal Fonts Maker, it always follows the rigid internal spacing
  449. rules of the program, even if the macro was originally read from a file
  450. containing the commands in a more "relaxed" format.
  451.  
  452.    For example, the following macro
  453.  
  454.      PFM MCRO  ; SetSpcKrn.mcr
  455.  
  456.      BRST 0
  457.  
  458.      ; dummy brush
  459.      MKB1
  460.      LBTD 0 0
  461.      Move M 0
  462.      LBTU M 0
  463.      CrON
  464.      ; use brush X size to set space
  465.      Spce - SPC+
  466.      Kern 1 DOTM
  467.  
  468. will be correctly loaded and executed by the program, but will be saved by
  469. the Personal Fonts Maker in the following default format:
  470.  
  471.      PFM MCRO
  472.  
  473.      BRST 0
  474.      MKB1
  475.      LBTD 0 0
  476.      MOVE M 0
  477.      LBTU M 0
  478.      CRON
  479.      SPCE -
  480.      SPC+
  481.      KERN 1
  482.      DOTM
  483.  
  484.    Most syntax errors (e.g. a non-existing macro code) in a macro file
  485. will be detected and signalled when the file is loaded. Other errors (e.g.
  486. "Brush mode not possible"), encountered during the execution of the macro
  487. will cause an error message to be displayed. Appendix G describes the
  488. various possible error messages.
  489.  
  490.    Apart from the general syntax rules mentioned above, there are some
  491. additional limitations to macros written by the user. For example, a "Left
  492. Mouse Button UP" command cannot appear unless a previous command has
  493. specified that the mouse should be pressed. This cannot happen if the
  494. macro is automatically recorded by the Personal Fonts Maker, but it is not
  495. impossible for a user writing a macro to forget such a line.
  496.  
  497.    Both the following subsection and appendix L ("PFM Macros Command
  498. Consistency Table") explain how some commands must be preceded or followed
  499. by other commands. For example, an LBTD ("Left mouse BuTton Down") command
  500. must be followed immediately by one or more optional MOVE instructions and
  501. a LBTU ("Left mouse BuTton Up"). SETR ("SEt Reference points") must be
  502. followed by a LBTU; only one or more FnKD ("Function Key Down") may appear
  503. between SETR and LBTU, but an FnKU ("Function Key Up") must come
  504. immediately after a FnKD instruction relative to the same key.
  505.  
  506.    The macro consistency table, in appendix L, lists in a compact format
  507. all the conditions which must occur, or are prohibited, when a particular
  508. macro command is executed. In general, unless different instructions are
  509. given in appendix L and in the following subsections, the mouse buttons
  510. must be in the "Up" position, the reference point mode must not be active
  511. and the four function keys <F1> to <F4> must not be pressed. Most macro
  512. commands can only be executed if all these conditions are met. Exceptions
  513. are documented in the sections describing the particular commands.
  514.  
  515.    Some macro commands must be followed by one or two parameters. In
  516. general, the parameter is a number. For example, the XSIZ command must be
  517. followed by the "X Size" value. The commands used to set parameters
  518. associated with the string gadgets in the main screen which accept a '-'
  519. (minus) or '+' (plus) sign instead of the number ("X Size", "Space" and
  520. "Kerning", sections 3.4 to 3.6), can also be followed by the same '-' or
  521. '+' sign.
  522.  
  523.    Unlike parameter files, where variables must be followed by a numerical
  524. value introduced by an equal sign, the value(s) must be written
  525. immediately after a macro command, separated only by one or more space (or
  526. TAB) characters. No equal signs need to be written, as the value is not
  527. assigned to a variable, but is the parameter of a command.
  528.  
  529.    The commands which need the position of the pointer in the character
  530. editing box to work must be followed by two parameters, indicating
  531. respectively the column (X position) and row (Y position) from the top
  532. left of the character editing box. For example, "RBTD 0 0" means that the
  533. right mouse button must be pressed on the top left corner of the box. A
  534. space (or TAB) character must separate the two values.
  535.  
  536.    Normally the commands which require a position in the character editing
  537. box are followed by two numbers which indicate an absolute position from
  538. the top left corner of the box. One or both values may be written in a
  539. different format. A value immediately preceded by a '+' (plus) or '-'
  540. (minus) sign is interpreted as being relative to the previous position in
  541. the box. The character 'M' is interpreted as the maximum possible value,
  542. i.e. either the rightmost or the lowest possible position. The '?'
  543. (question mark) character indicates that value will be determined by the
  544. user when the macro is executed. When a '?' is encountered during the
  545. execution, the Personal Fonts Maker displays a special pointer with a
  546. question mark, asking the user to select a position in the box, as
  547. indicated in section 6.7 ("Execute Macro").
  548.  
  549.    For example,
  550.  
  551.      MOVE 3 1
  552.  
  553. will move (the pencil/brush) to the fourth dot of the second row, while
  554.  
  555.      MOVE +2 +4
  556.  
  557. will move two dots to the right, four rows under the previous position,
  558. and
  559.  
  560.      MOVE ? M
  561.  
  562. will move at the bottom of the column specified by the user with the
  563. mouse.
  564.  
  565.    As described in section 6.3 ("Start Record"), the only functions which
  566. let non-absolute coordinates be recorded using the Personal Fonts Maker's
  567. automatic macro recording function are the definition of the brush and the
  568. setting of a reference point. The other functions using non-absolute
  569. coordinates are reserved for the more experienced users wishing to write
  570. complex macros using a word processor, a text editor or another program
  571. capable of generating a macro file.
  572.  
  573.    The following subsections explain the usage of the macro commands. All
  574. commands use functions already described in one or more other sections of
  575. this guide. Here, some aspects of those functions particularly important
  576. when a macro is accessing the function are explained in more depth. The
  577. sections are ordered alphabetically after the four-character macro codes.
  578.  
  579.  
  580. 6.6.1      Macro Commands: AFNT
  581.  
  582. Command Name    : AFNT (Select AlternateFoNT)
  583. Reference       : The "Font" Gadgets
  584. Parameters      : -
  585. More in Sections: 2.6, 3.2
  586.  
  587.    This command causes the font environment other than the current one to
  588. be used. This is equivalent to selecting the "1/2" symbol gadget (section
  589. 3.2).
  590.  
  591.    This function is useful when data has to be copied or moved from one
  592. font to a different one.
  593.  
  594.  
  595. 6.6.2      Macro Commands: BHCE
  596.  
  597. Command Name    : BHCE (Brush Handle CEntre)
  598. Reference       : Brush Handle
  599. Parameters      : -
  600. More in Sections: 2.6.3, 5.9.3
  601.  
  602.    This command places the brush handle at the centre of the brush.
  603.  
  604.    The command is automatically placed at the beginning of a macro if the
  605. handle is in the central position when the macro record mode begins. This
  606. ensures that the macro is executed in the same conditions which existed
  607. when it was recorded (section 6.3).
  608.  
  609.  
  610. 6.6.3      Macro Commands: BHFL
  611.  
  612. Command Name    : BHFL (Brush Horizontal FLip)
  613. Reference       : Horizontal Flip
  614. Parameters      : -
  615. More in Sections: 2.6.3, 5.3
  616.  
  617.    This command causes the "Horizontal Flip" function to be executed.
  618.  
  619.  
  620. 6.6.4      Macro Commands: BHLL
  621.  
  622. Command Name    : BHLL (Brush Handle Lower Left)
  623. Reference       : Brush Handle
  624. Parameters      : -
  625. More in Sections: 2.6.3, 5.9.4, 6.6.2
  626.  
  627.    The BHLL command places the brush handle at the lower left corner of
  628. the current brush.
  629.  
  630.    Like BHCE, this command is automatically placed at the beginning of a
  631. macro if it corresponds to the initial brush handle position.
  632.  
  633.  
  634. 6.6.5      Macro Commands: BHLR
  635.  
  636. Command Name    : BHLR (Brush Handle Lower Right)
  637. Reference       : Brush Handle
  638. Parameters      : -
  639. More in Sections: 2.6.3, 5.9.5, 6.6.2
  640.  
  641.    This command places the brush handle at the lower right of the brush.
  642.  
  643.    Like BHCE, this is one of the commands which can be automatically
  644. placed by the program at the beginning of a macro.
  645.  
  646.  
  647. 6.6.6      Macro Commands: BHUL
  648.  
  649. Command Name    : BHUL (Brush Handle Upper Left)
  650. Reference       : Brush Handle
  651. Parameters      : -
  652. More in Sections: 2.6.3, 5.9.1, 6.6.2
  653.  
  654.    The BHUL command selects the "Upper Left" brush handle option. Section
  655. 5.9.1 describes some features which make this brush handle position
  656. particularly interesting for certain macro operations.
  657.  
  658.    The BHUL command is placed automatically at the beginning of a macro
  659. recorded with the Personal Fonts Maker if the initial brush handle
  660. position is on the top left corner.
  661.  
  662.  
  663. 6.6.7      Macro Commands: BHUR
  664.  
  665. Command Name    : BHUR (Brush Handle Upper Right)
  666. Reference       : Brush Handle
  667. Parameters      : -
  668. More in Sections: 2.6.3, 5.9.2, 6.6.2
  669.  
  670.    This command places the brush handle at the upper right corner of the
  671. brush. Like BHCE and the other brush handle positioning commands, this
  672. command can be placed automatically at the beginning of a macro by the
  673. Personal Fonts Maker.
  674.  
  675.  
  676. 6.6.8      Macro Commands: BITA
  677.  
  678. Command Name    : BITA (Brush ITAlicize)
  679. Reference       : Italicize
  680. Parameters      : -
  681. More in Sections: 2.6.13, 5.6, 7.4
  682.  
  683.    This command causes the current brush to be italicized. Section 5.6
  684. ("Italicize") explains this function in detail.
  685.  
  686.  
  687. 6.6.9      Macro Commands: BRDH
  688.  
  689. Command Name    : BRDH (BRush Double Horizontal)
  690. Reference       : Double Horizontal
  691. Parameters      : -
  692. More in Sections: 5.8.6
  693.  
  694.    The BRDH command causes the "Double Horizontal" brush function to be
  695. executed.
  696.  
  697.  
  698. 6.6.10     Macro Commands: BRDO
  699.  
  700. Command Name    : BRDO (BRush DOuble)
  701. Reference       : Double
  702. Parameters      : -
  703. More in Sections: 5.8.5
  704.  
  705.    This command doubles the brush, both vertically and horizontally, as
  706. described in section 5.8.5.
  707.  
  708.  
  709. 6.6.11     Macro Commands: BRDV
  710.  
  711. Command Name    : BRDV (BRush Double Vertical)
  712. Reference       : Double Vertical
  713. Parameters      : -
  714. More in Sections: 5.8.7
  715.  
  716.    BRDV executes the "Double Vertical" brush function, described in
  717. section 5.8.7.
  718.  
  719.  
  720. 6.6.12     Macro Commands: BRHA
  721.  
  722. Command Name    : BRHA (BRush HAlve)
  723. Reference       : Halve
  724. Parameters      : -
  725. More in Sections: 5.8.2
  726.  
  727.    The BRHA command halves the brush. Section 5.8.2 ("Halve") has more on
  728. this function.
  729.  
  730.  
  731. 6.6.13     Macro Commands: BRHH
  732.  
  733. Command Name    : BRHH (BRush Halve Horizontal)
  734. Reference       : Halve Horizontal
  735. Parameters      : -
  736. More in Sections: 5.8.3
  737.  
  738.    This command halves the brush horizontally.
  739.  
  740.  
  741. 6.6.14     Macro Commands: BRHV
  742.  
  743. Command Name    : BRHV (BRush Halve Vertical)
  744. Reference       : Halve Vertical
  745. Parameters      : -
  746. More in Sections: 5.8.4
  747.  
  748.    As described in section 5.8.4 ("Halve Vertical"), this command causes
  749. the height of the brush to be halved.
  750.  
  751.  
  752. 6.6.15     Macro Commands: BROT
  753.  
  754. Command Name    : BROT (Brush ROTate)
  755. Reference       : Rotate 90 Degrees
  756. Parameters      : -
  757. More in Sections: 5.5
  758.  
  759.    The BROT command rotates the brush clockwise by 90 degrees.
  760.  
  761.  
  762. 6.6.16     Macro Commands: BRST
  763.  
  764. Command Name    : BRST (BRush STretch)
  765. Reference       : Stretch
  766. Parameters      : OnOff (1 or 0)
  767. More in Sections: 5.8.1
  768.  
  769.    This command begins or cancels a brush stretch operation, as explained
  770. in section 5.8.1. The BRST command must be followed either by a '1' (one)
  771. or by a 0 (zero). "BRST 1" is equivalent to selecting the "Stretch"
  772. function which activates the stretch mode. "BRST 0" cancels the stretch
  773. mode before the brush is stretched.
  774.  
  775.    The "BRST 1" command must be followed either by a "BRST 0", or by a
  776. LBTD ("Left BuTton Down"), one or more optional MOVE commands, and a
  777. terminating LBTU ("Left BuTton Up"). The MOVE commands are not considered
  778. by the program to determine the final brush size, which is calculated
  779. entirely from the coordinates following the LBTD and LBTU commands.
  780.  
  781.    This command is automatically placed at the beginning of a macro
  782. recorded with the Personal Fonts Maker to ensure the macro is executed in
  783. the same conditions under which it was originally recorded.
  784.  
  785.  
  786. 6.6.17     Macro Commands: BRVS
  787.  
  788. Command Name    : BRVS (Brush ReVerSe)
  789. Reference       : Reverse
  790. Parameters      : -
  791. More in Sections: 5.7
  792.  
  793.    This command reverses the brush, executing the "Reverse" brush
  794. function, described in section 5.7.
  795.  
  796.  
  797. 6.6.18     Macro Commands: BSHM
  798.  
  799. Command Name    : BSHM (BruSH Mode)
  800. Reference       : The "Pencil/Brush" Gadget
  801. Parameters      : -
  802. More in Sections: 3.1, 3.17, 3.18
  803.  
  804.    This command sets the "Brush" mode, as described in section 3.17.
  805.  
  806.    When a macro is recorded by the program, a BSHM command is placed at
  807. the beginning of the macro if the recording starts when the "Brush" mode
  808. is active. This guarantees that the macro is executed under exactly the
  809. same conditions which existed when the macro was recorded.
  810.  
  811.  
  812. 6.6.19     Macro Commands: BVFL
  813.  
  814. Command Name    : BVFL (Brush Vertical FLip)
  815. Reference       : Vertical Flip
  816. Parameters      : -
  817. More in Sections: 5.4
  818.  
  819.    This command flips the brush vertically, as described in section 5.4.
  820.  
  821.  
  822. 6.6.20     Macro Commands: CLRC
  823.  
  824. Command Name    : CLRC (CLeaR Character)
  825. Reference       : The "CLR" Gadget
  826. Parameters      : -
  827. More in Sections: 3.8
  828.  
  829.    This command clears the character displayed in the character editing
  830. box, as if the "CLR" gadget had been selected by the user.
  831.  
  832.  
  833. 6.6.21     Macro Commands: COFF
  834.  
  835. Command Name    : COFF (Character OFF)
  836. Reference       : The "ON/OFF" Gadget
  837. Parameters      : -
  838. More in Sections: 2.7.2.2, 3.10
  839.  
  840.    This command switches the current character to the "Off" position,
  841. unless it is already "Off".
  842.  
  843.  
  844. 6.6.22     Macro Commands: CRON
  845.  
  846. Command Name    : CRON (ChaRacter ON)
  847. Reference       : The "ON/OFF" Gadget
  848. Parameters      : -
  849. More in Sections: 2.7.2.2, 3.10
  850.  
  851.    The character displayed in the character editing box (the current
  852. character) is switched "On" by the CRON command.
  853.  
  854.  
  855. 6.6.23     Macro Commands: DOTM
  856.  
  857. Command Name    : DOTM (DOT Mode)
  858. Reference       : The "Pencil/Brush" Gadget
  859. Parameters      : -
  860. More in Sections: 3.1, 3.17, 3.18
  861.  
  862.    This command activates the "Pencil" mode, whereas a single dot is used
  863. as the unit for paint operations, as described in section 3.17.
  864.  
  865.    This command is automatically placed at the beginning of a macro
  866. recorded with the program if the recording starts in the "Pencil" mode.
  867.  
  868.  
  869. 6.6.24     Macro Commands: DVW0
  870.  
  871.  
  872. Command Name    : DVW0 (Dynamic VieW off)
  873. Reference       : The "Dynamic View" Gadget
  874. Parameters      : -
  875. More in Sections: 3.15
  876.  
  877.    This command terminates the dynamic view mode and closes the associated
  878. screen.
  879.  
  880.  
  881. 6.6.25     Macro Commands: DVW1
  882.  
  883. Command Name    : DVW1 (Dynamic VieW on)
  884. Reference       : The "Dynamic View" Gadget
  885. Parameters      : -
  886. More in Sections: 3.15
  887.  
  888.    This command activates the dynamic view mode. It opens a new dynamic
  889. view screen, or brings an existing screen to the front.
  890.  
  891.  
  892. 6.6.26     Macro Commands: F1KD to F4KD
  893.  
  894. Command Name    : F1KD to F4KD (Function Key Down)
  895. Reference       : Reference Points
  896. Parameters      : YPos (vertical position)
  897. More in Sections: 1.10.16, 2.7.2.14, 3.21
  898.  
  899.    This set of four commands, each associated with a function key from
  900. <F1> to <F4>, is used when the reference point mode is active (section
  901. 3.21). When the program encounters such a command, it behaves as if the
  902. associated function key was pressed down.
  903.  
  904.    A numerical parameter indicating the position (from the top, starting
  905. from 0) at which the reference point is to be moved must follow the
  906. command. No MOVE instructions can follow a FnKD command. While the program
  907. is recording a macro and the reference point mode is active, FnKD are
  908. recorded only after the function key has already been released and the
  909. position of the reference point is certain. In fact, FnKD and the
  910. associated FnKU are always recorded at the same time, even if the user
  911. presses a function key, moves the pointer, presses a second function key,
  912. moves the pointer again, releases the first key, and finally releases the
  913. second function key after having dragged the reference point up and down
  914. several times. Recording an FnKD only when the position of the reference
  915. point is determined makes the macro more readable and its execution
  916. faster.
  917.  
  918.    A '?' (question mark) can be written after the command to indicate that
  919. the position of the reference point is to be selected by the user when the
  920. macro is executed. Section 6.7 ("Execute Macro") explains how the position
  921. is to be selected. If the 'M' character is used as a parameter instead, it
  922. is interpreted as the maximum possible value, which corresponds to the
  923. lowest possible row-position.
  924.  
  925.    The commands F1KD to F4KD can only appear after a SETR command. Each
  926. FnKD must immediately be followed by an associated FnKU ("Function Key
  927. Up") command. A LBTU (Left mouse ButTon Up) command must terminate the
  928. sequence.
  929.  
  930.  
  931. 6.6.27     Macro Commands: F1KU to F4KU
  932.  
  933. Command Name    : F1KU to F4KU (Function Key Up)
  934. Reference       : Reference Points
  935. Parameters      : -
  936. More in Sections: 1.10.16, 2.7.2.14, 3.21
  937.  
  938.    These commands are used to indicate that the funcion keys <F1> to <F4>
  939. have been released. An FnKU can only appear immediately after a FnKD
  940. command (section 6.6.26).
  941.  
  942.  
  943. 6.6.28     Macro Commands: FLPH
  944.  
  945. Command Name    : FLPH (FLiP Horizontal)
  946. Reference       : The Two "FLIP" Gadgets
  947. Parameters      : -
  948. More in Sections: 3.20
  949.  
  950.    FLPH flips the image in the character editing box (not the brush)
  951. horizontally, as described in section 3.20.
  952.  
  953.  
  954. 6.6.29     Macro Commands: FLPV
  955.  
  956. Command Name    : FLPV (FLiP Vertical)
  957. Reference       : The Two "FLIP" Gadgets
  958. Parameters      : -
  959. More in Sections: 3.20
  960.  
  961.    This function flips the content of the character editing box
  962. vertically. Section 3.20 describes the operation in detail.
  963.  
  964.  
  965. 6.6.30     Macro Commands: FONT
  966.  
  967. Command Name    : FONT (FONT select)
  968. Reference       : The "Font" Gadgets
  969. Parameters      : Font
  970. More in Sections: 2.6, 3.2
  971.  
  972.    This command, followed by a numerical parameter (1 or 2) indicating the
  973. desired font, switches to the selected font environment, as if that font
  974. had been selected with the "Font" string gagdet, described in section
  975. 3.2.
  976.  
  977.  
  978. 6.6.31     Macro Commands: KERN
  979.  
  980. Command Name    : KERN (set KERNing)
  981. Reference       : The "Kerning" Gadgets
  982. Parameters      : Kern
  983. More in Sections: 2.7.2.10, 3.6
  984.  
  985.    The KERN command sets the "Kerning" parameter for the current
  986. character, as if it had been set through the "Kerning" string gadget. The
  987. desired value must follow the KERN keyword. As described in section 3.6, a
  988. '-' (minus) or '+' (plus) sign can be written instead of a number.
  989.  
  990.  
  991. 6.6.32     Macro Commands: KRN-
  992.  
  993. Command Name    : KRN- (decrease KeRNing)
  994. Reference       : The "Kerning" Gadgets
  995. Parameters      : -
  996. More in Sections: 2.7.2.10, 3.6
  997.  
  998.    This command decreases the "Kerning" value of the current character by
  999. one unit. This is equivalent to selecting the left arrow gadget at the
  1000. side of the "Kerning" string gadget.
  1001.  
  1002.  
  1003. 6.6.33     Macro Commands: KRN+
  1004.  
  1005. Command Name    : KRN+ (increase KeRNing)
  1006. Reference       : The "Kerning" Gadgets
  1007. Parameters      : -
  1008. More in Sections: 2.7.2.10, 3.6
  1009.  
  1010.    KRN+ increases the "Kerning" value of the current character by one
  1011. unit. This is the opposite of KRN-.
  1012.  
  1013.  
  1014.  
  1015. 6.6.34     Macro Commands: LBTD
  1016.  
  1017. Command Name    : LBTD (Left BuTton Down)
  1018. Reference       : The Character Editing Box, The "Define Brush" Gadget
  1019. Parameters      : X Pos, Y Pos
  1020. More in Sections: 3.1, 3.16, 3.17, 3.18
  1021.  
  1022.    When this command is encountered during the execution of a macro, the
  1023. program responds as if the left mouse button was pressed (and held down).
  1024.  The command requires two parameters: the horizontal and vertical position
  1025. of the dot in the character editing box over which the button is pressed.
  1026. As described in section 6.6, special formats can be used to indicate
  1027. relative, maximum or user-defined positions.
  1028.  
  1029.    LBTD can only be followed by one or more MOVE instructions and a LBTU
  1030. ("Left BuTton Up") command.
  1031.  
  1032.  
  1033. 6.6.35     Macro Commands: LBTU
  1034.  
  1035. Command Name    : LBTU (Left BuTton Up)
  1036. Reference       : The Character Editing Box, The "Define Brush" Gadget
  1037. Parameters      : X Pos, Y Pos
  1038. More in Sections: 3.1, 3.16, 3.17, 3.18
  1039.  
  1040.    This command terminates a sequence beginning with a SETR ("SET
  1041. Reference points") or LBTD ("Left BuTton Down"). LBTU, which is the
  1042. opposite of LBTD, must be followed by two values indicating the position
  1043. in the box over which the button is released.
  1044.  
  1045.    The two parameters are ignored if the command is used to terminate the
  1046. reference point mode. Conversely, the Personal Fonts Maker sets both
  1047. values to zero when the macro is recorded.
  1048.  
  1049.  
  1050. 6.6.36     Macro Commands: MEMR
  1051.  
  1052. Command Name    : MEMR (MEMoRize character)
  1053. Reference       : The "Copy to Buffer" Gadget
  1054. Parameters      : -
  1055. More in Sections: 3.11, 3.12
  1056.  
  1057.    This command causes the character displayed in the character editing
  1058. box to be copied to the character buffer, as described in section 3.11.
  1059.  
  1060.  
  1061. 6.6.37     Macro Commands: MKB0
  1062.  
  1063. Command Name    : MKB0 (MaKe-Brush mode off)
  1064. Reference       : The "Define Brush" Gadget
  1065. Parameters      : -
  1066. More in Sections: 3.1, 3.17, 3.18
  1067.  
  1068.    This command terminates the brush definition mode, as described in
  1069. section 3.18. This aborts the brush definition request.
  1070.  
  1071.  
  1072. 6.6.38     Macro Commands: MKB1
  1073.  
  1074. Command Name    : MKB1 (MaKe-Brush mode on)
  1075. Reference       : The "Define Brush" Gadget
  1076. Parameters      : -
  1077. More in Sections: 3.1, 3.17, 3.18
  1078.  
  1079.    MKB1 activates the brush definition mode (section 3.18). The command
  1080. must either be followed by MKB0, which aborts the operation, or by a LBTD
  1081. (or RBTD), one or more MOVE commands and a terminating LBTU (or RBTU). No
  1082. other commands are allowed between the LBTD (or RBTD) and the LBTU (or
  1083. RBTU). MKB1 only affects the way a subsequent LBTD (or RBTD) is processed.
  1084. Any other commands may appear between MKB1 and LBTD (or RBTD or MKB0).
  1085.  
  1086.  
  1087. 6.6.39     Macro Commands: MOVE
  1088.  
  1089. Command Name    : MOVE (MOVE cursor)
  1090. Reference       : The Character Editing Box, The "Define Brush" Gadget
  1091. Parameters      : X Pos, Y Pos
  1092. More in Sections: 3.1, 3.16, 3.17, 3.18
  1093.  
  1094.    This command emulates a movement of the mouse pointer to the specified
  1095. position. Two values must follow the MOVE keyword, to indicate the desired
  1096. position in the character editing box. As described in section 6.6,
  1097. different formats of the values make it possible to specify absolute,
  1098. relative, maximum or user-defined coordinates.
  1099.  
  1100.    If the coordinates are displayed on the screen title bar (section 7.5),
  1101. these are updated after every MOVE instruction.
  1102.  
  1103.    Either the left or the right mouse button can be pressed while MOVE is
  1104. executed.
  1105.  
  1106.  
  1107. 6.6.40     Macro Commands: ORM0
  1108.  
  1109. Command Name    : ORM0 (OR Mode off)
  1110. Reference       : The "OR" Gadget
  1111. Parameters      : -
  1112. More in Sections: 3.16
  1113.  
  1114.    If the "OR" mode is active when ORM0 is executed, the "OR" mode
  1115. terminates.
  1116.  
  1117.    If the program started recording a macro when the "OR" mode was not
  1118. active, an ORM0 command is automatically placed at the beginning of the
  1119. macro.
  1120.  
  1121.  
  1122. 6.6.41     Macro Commands: ORM1
  1123.  
  1124. Command Name    : ORM1 (OR Mode on)
  1125. Reference       : The "OR" Gadget
  1126. Parameters      : -
  1127. More in Sections: 3.16
  1128.  
  1129.    This command activates the "OR" mode, as described in section 3.16.
  1130.  
  1131.    This is one of the commands which can be automatically placed at the
  1132. beginning of a macro recorded with the Personal Fonts Maker to ensure that
  1133. the macro is executed in the same conditions in which it was recorded.
  1134.  
  1135.  
  1136. 6.6.42     Macro Commands: RBTD
  1137.  
  1138. Command Name    : RBTD (Right BuTton Down)
  1139. Reference       : The Character Editing Box, The "Define Brush" Gadget
  1140. Parameters      : X Pos, Y Pos
  1141. More in Sections: 3.1, 3.16, 3.17, 3.18
  1142.  
  1143.    This command is equivalent to pressing the right mouse button in the
  1144. character editing box. This can produce different editing effects,
  1145. depending on whether the brush or the pencil is used to paint. This
  1146. command must be followed by the coordinates of the dot position in the
  1147. character editing box, in the format described in section 6.6.
  1148.  
  1149.  
  1150. 6.6.43     Macro Commands: RBTU
  1151.  
  1152. Command Name    : RBTU (Right BuTton Up)
  1153. Reference       : The Character Editing Box, The "Define Brush" Gadget
  1154. Parameters      : X Pos, Y Pos
  1155. More in Sections: 3.1, 3.16, 3.17, 3.18
  1156.  
  1157.    When this command is executed, the Personal Fonts Maker behaves as if
  1158. the right mouse button was released. The right mouse button can only be
  1159. used to edit (i.e. paint or clear) data in the character editing box or to
  1160. define the brush.
  1161.  
  1162.    This command must follow RBTD ("Right BuTton Down"). One or more MOVE
  1163. commands can appear between RBTD and RBTU.
  1164.  
  1165.  
  1166. 6.6.44     Macro Commands: RCAL
  1167.  
  1168. Command Name    : RCAL (ReCALl character)
  1169. Reference       : The "Paste From Buffer" Gadget
  1170. Parameters      : -
  1171. More in Sections: 3.11, 3.12
  1172.  
  1173.    This command is equivalent to selecting the "Paste From Buffer" gadget,
  1174. described in section 3.12.
  1175.  
  1176.  
  1177. 6.6.45     Macro Commands: SELC
  1178.  
  1179. Command Name    : SELC (SELect Character)
  1180. Reference       : The "Character #" Gadgets, Quick Character Selection
  1181. Parameters      : Chr
  1182. More in Sections: 2.7.2.4, 3.3, 3.22
  1183.  
  1184.    This command, followed by the code of the character to be selected,
  1185. makes the specified character the current character, and displays it in
  1186. the character editing box.
  1187.  
  1188.    This command can be recorded either by writing a value in the
  1189. "Character #" string gadget, or selecting a character with the quick
  1190. character selection table.
  1191.  
  1192.  
  1193. 6.6.46     Macro Commands: SEL-
  1194.  
  1195. Command Name    : SEL- (SELect previous character)
  1196. Reference       : The "Character #" Gadgets
  1197. Parameters      : -
  1198. More in Sections: 3.3
  1199.  
  1200.    This command is equivalent to the left arrow gadget of the "Character
  1201. #" parameter. The character which comes before the one currently displayed
  1202. becomes the current character (if such a character, either "On" or "Off",
  1203. exists).
  1204.  
  1205.  
  1206. 6.6.47     Macro Commands: SEL+
  1207.  
  1208. Command Name    : SEL+ (SELect next character)
  1209. Reference       : The "Character #" Gadgets
  1210. Parameters      : -
  1211. More in Sections: 3.3
  1212.  
  1213.    This command is equivalent to the right arrow gadget of the "Character
  1214. #" parameter. This is the reverse operation of SEL-.
  1215.  
  1216.  
  1217. 6.6.48     Macro Commands: SETR
  1218.  
  1219. Command Name    : SETR (SET Reference points)
  1220. Reference       : Reference Points
  1221. Parameters      : -
  1222. More in Sections: 2.7.2.14, 3.21
  1223.  
  1224.    This command activates the reference point mode. The reference point
  1225. mode must be terminated by a LBTU ("Left BuTton Up") command.
  1226.  
  1227.    Only one or more FnKD ("Function Key Down", section 6.6.26) may appear
  1228. between SETR and LBTU, and only if an FnKU ("Function Key Up") comes
  1229. immediately after the FnKD instruction relative to the same key.
  1230.  
  1231.  
  1232. 6.6.49     Macro Commands: SHFD
  1233.  
  1234. Command Name    : SHFD (SHiFt character Down)
  1235. Reference       : The Four "Shift" Gadgets
  1236. Parameters      : -
  1237. More in Sections: 3.16, 3.19
  1238.  
  1239.    Like all shift macro commands, SHFD is equivalent to selecting one of
  1240. the four "Shift" gadgets. This command shifts the image of the current
  1241. character down by one position.
  1242.  
  1243.  
  1244. 6.6.50     Macro Commands: SHFL
  1245.  
  1246. Command Name    : SHFL (SHiFt character Left)
  1247. Reference       : The Four "Shift" Gadgets
  1248. Parameters      : -
  1249. More in Sections: 3.16, 3.19
  1250.  
  1251.    This command moves the character image in the editing box to the left.
  1252.  
  1253.  
  1254. 6.6.51     Macro Commands: SHFR
  1255.  
  1256. Command Name    : SHFR (SHiFt character Right)
  1257. Reference       : The Four "Shift" Gadgets
  1258. Parameters      : -
  1259. More in Sections: 3.16, 3.19
  1260.  
  1261.    SHFR shifts the character displayed in the character editing box to the
  1262. right by one dot-position.
  1263.  
  1264.  
  1265. 6.6.52     Macro Commands: SHFU
  1266.  
  1267. Command Name    : SHFU (SHiFt character Up)
  1268. Reference       : The Four "Shift" Gadgets
  1269. Parameters      : -
  1270. More in Sections: 3.16, 3.19
  1271.  
  1272.    SHFU is equivalent to selecting the "Shift Up" gadget.
  1273.  
  1274.  
  1275. 6.6.53     Macro Commands: SPCE
  1276.  
  1277. Command Name    : SPCE (set character SPaCe)
  1278. Reference       : The "Space" Gadgets
  1279. Parameters      : Spc
  1280. More in Sections: 2.7.2.16, 3.5
  1281.  
  1282.    This command sets the "Space" parameter of the current character. SPCE
  1283. must be followed by a numerical value or a '-' (minus) or '+' (plus)
  1284. sign.
  1285.  
  1286.  
  1287. 6.6.54     Macro Commands: SPC-
  1288.  
  1289. Command Name    : SPC- (decrease character SPaCe)
  1290. Reference       : The "Space" Gadgets
  1291. Parameters      : -
  1292. More in Sections: 2.7.2.16, 3.5
  1293.  
  1294.    This command is equivalent to selecting the left "Space" arrow gadget,
  1295. which decreases the value of the current character's "Space" parameter by
  1296. one.
  1297.  
  1298.  
  1299. 6.6.55     Macro Commands: SPC+
  1300.  
  1301. Command Name    : SPC+ (increase character SPaCe)
  1302. Reference       : The "Space" Gadgets
  1303. Parameters      : -
  1304. More in Sections: 2.7.2.16, 3.5
  1305.  
  1306.    SPC+ increases the "Space" of the current character by one unit. This
  1307. command is the opposite of SPC-.
  1308.  
  1309.  
  1310. 6.6.56     Macro Commands: UNDO
  1311.  
  1312. Command Name    : UNDO (UNDO last operation)
  1313. Reference       : The "Undo" Gadget
  1314. Parameters      : -
  1315. More in Sections: 3.4, 3.8, 3.9, 3.12, 3.17, 3.19, 3.20
  1316.  
  1317.    This command is equivalent to selecting the "UNDO" gadget, described in
  1318. section 3.9.
  1319.  
  1320.  
  1321. 6.6.57     Macro Commands: XSIZ
  1322.  
  1323. Command Name    : XSIZ (set character X SIZe)
  1324. Reference       : The "X Size" Gadgets
  1325. Parameters      : Xsiz
  1326. More in Sections: 2.6.24, 2.7.2.21, 2.7.2.22, 3.4, 7.3.1
  1327.  
  1328.    This command is used to set the "X Size" parameter of the current
  1329. character. The command must be followed by the same value (a number or a
  1330. '-' or a '+' sign) which would be written in the "X Size" string gadget.
  1331.  
  1332.  
  1333. 6.6.58     Macro Commands: XSZ-
  1334.  
  1335. Command Name    : XSZ- (decrease character X SiZe)
  1336. Reference       : The "X Size" Gadgets
  1337. Parameters      : -
  1338. More in Sections: 2.7.2.22, 3.4, 7.3.1
  1339.  
  1340.    This command decreases the value displayed in the "X Size" string
  1341. gadget by one (if possible).
  1342.  
  1343.  
  1344. 6.6.59     Macro Commands: XSZ+
  1345.  
  1346. Command Name    : XSZ+ (increase character X SiZe)
  1347. Reference       : The "X Size" Gadgets
  1348. Parameters      : -
  1349. More in Sections: 2.7.2.22, 3.4, 7.3.1
  1350.  
  1351.    This command (opposite of XSZ-) increases the value of the current
  1352. characer's "X Size" by one.
  1353.  
  1354.  
  1355. 6.6.60     Macro Commands: ZOM-
  1356.  
  1357. Command Name    : ZOM- (decrease ZOoM)
  1358. Reference       : The "Smaller" Gadget
  1359. Parameters      : -
  1360. More in Sections: 3.1, 3.13, 3.14
  1361.  
  1362.    This command is equivalent to selecting the "Smaller" gadget, described
  1363. in section 3.13.
  1364.  
  1365.  
  1366. 6.6.61     Macro Commands: ZOM+
  1367.  
  1368. Command Name    : ZOM+ (increase ZOoM)
  1369. Reference       : The "Larger" Gadget
  1370. Parameters      : -
  1371. More in Sections: 3.1, 3.13, 3.14
  1372.  
  1373.    This command is equivalent to the selection of the "Larger" gadget,
  1374. described in section 3.14.
  1375.  
  1376.  
  1377. 6.7        Execute Macro
  1378.  
  1379.    This function starts the execution of a macro. The macro must already
  1380. be present in the program's memory, after having been either recorded or
  1381. loaded. The macro is executed only once.
  1382.  
  1383.    The macro requester (section 6.1) is used to select the macro to be
  1384. executed. The macro starts immediately after the "Proceed" gadget of the
  1385. requester is selected or the macro name in the list box is
  1386. double-clicked.
  1387.  
  1388.    The mouse pointer image changes to an 'M' symbol to indicate that the
  1389. macro is running. If the step mode is active (section 6.10), the pointer
  1390. image will blink while the program is waiting for the user to press
  1391. <Space> or <Esc>.
  1392.  
  1393.    As described in section 6.6 ("Examine Macro"), it is possible to write
  1394. a macro containing commands which require the user to select a position in
  1395. the character editing box.
  1396.  
  1397.    The execution can be aborted by the user selecting a new function
  1398. (which will be executed) through the menus, the gadgets or the keyboard.
  1399. The "Stop Execution" command, described in section 6.9, interrupts the
  1400. execution without side effects. Some keys have a particular function if
  1401. the step mode is active, as described in section 6.10.
  1402.  
  1403.    The character displayed in the editing box when the macro execution
  1404. command was given remains the current character of the macro, unless the
  1405. macro contains one or more commands which select a different character or
  1406. the alternate font. Unless specified otherwise by the macro (through a
  1407. SELC, SEL-, SEL+, AFNT or FONT command) all editing commands contained in
  1408. the macro modify the character displayed in the character editing box when
  1409. the macro execution began. If another character (or font) is selected by
  1410. the macro, or if any of the displayed values or the character image are
  1411. modified, the character editing box and the parameters displayed on the
  1412. screen are modified accordingly, so that the user can follow the
  1413. execution. The coordinates on the title bar (section 7.5) are also
  1414. continuously updated.
  1415.  
  1416.    Some macro commands are followed by coordinates indicating a position
  1417. in the character editing box. It may sometimes happen that, when a macro
  1418. was recorded, the character editing box was larger (i.e. it had more
  1419. columns and/or rows) than the box containing the current character. It is
  1420. therefore possible that some coordinates exceed the current limits,
  1421. falling out of the character editing box. In such a case, the program
  1422. behaves exactly as if the function was called manually by the user,
  1423. instead of from a macro. This means that in some cases values which are
  1424. too high or too low will be replaced by the closest valid value, or with a
  1425. default value. In other cases, a message will be displayed. If the program
  1426. does not work as expected it can be very useful to activate the step mode,
  1427. as described in section 6.10.
  1428.  
  1429.    As already explained in section 6.6, a coordinate can be left undefined
  1430. in the macro by writing a '?' (question mark) instead of a numerical value
  1431. after the command. When such a command is encountered during the execution
  1432. of a macro, the mouse pointer image turns into an arrow and a question
  1433. mark. This indicates that the user must select a position in the character
  1434. editing box (or in the reference point zone) and press the left mouse
  1435. button when the arrow is over the desired position (e.g. a dot in the
  1436. character editing box). If only one of a pair of coordinates is to be
  1437. defined at run time by the user, only that value will be affected by the
  1438. position specified by the user, while the other value will remain as
  1439. specified after the macro command. If both coordinates (i.e. the vertical
  1440. and horizontal position) of the same command are to be defined, the
  1441. program will stop only once to ask the user to specify a position. In this
  1442. case, both the vertical and the horizontal position specified by the user
  1443. will be considered. As most other functions of the Personal Fonts Maker,
  1444. this is more difficult to describe than to actually use.
  1445.  
  1446.    A macro can be selected and executed pressing the key associated with
  1447. that macro while the <Ctrl> key is held down. In that case, no requester
  1448. is displayed and the execution of the macro begins immediately.
  1449.  
  1450.  
  1451. 6.8        Controlled Execution
  1452.  
  1453.    This function is similar to "Execute Macro", described in section 6.7.
  1454. In addition to that function, the "Controlled Execution" allows the user
  1455. to specify a range of characters on which the specified macro is repeated.
  1456. For each character included in the range, the macro is repeated and acts
  1457. as if that character was the current character.
  1458.  
  1459.    The macro requester contains some special gadgets in addition to the
  1460. requester described in section 6.1. The first line under the list box
  1461. indicates which macro has been selected. Below (in green), the status of
  1462. the characters on which the macro is to be repeated. This can be one of
  1463. three texts: "Every Character", "ON Characters" or "OFF Characters". The
  1464. status can be changed by clicking on the text with the mouse. This is
  1465. possible because the status line, i.e. the line printed in green rather
  1466. than in black, is actually a gadget. The third additional line in this
  1467. "extended" macro requester contains two string gadgets, used to set the
  1468. first and the last character on which the macro must be repeated.
  1469.  
  1470.    For example, a macro transforming the current character into an italic
  1471.  character could be repeated on a group of characters in the font (if not
  1472. the entire font), italicizing more than one character. The "Controlled
  1473. Execution" function could be used to specify the codes of the first and
  1474. the last character to be italicized. Only "On" characters would need to be
  1475. processed. Supposing that the macro associated to the key <A> had to be
  1476. repeated for evey "On" character in the font, the lines under the list box
  1477. would read: "Repeat macro A on ON characters from # 0 to # 256".
  1478.  
  1479.    This function has all the features of "Execute Macro", described in
  1480. section 6.7. In addition, "Controlled Execution" can execute a macro more
  1481. than once. Every character in the current font whose code is in the range
  1482. specified by the user is examined. If the status of that character ("On"
  1483. or "Off") meets the requirements set by the user ("Every Character", "ON
  1484. Characters" or "OFF Characters"), it is made the current character and
  1485. displayed in the character editing box. The macro is then executed exactly
  1486. as if the "Execute Macro" function was used.
  1487.  
  1488.    If a macro changes font environment during its execution, and
  1489. terminates without restoring the initial font environment, the Personal
  1490. Fonts Maker automatically goes back to the original font environment, so
  1491. that when the macro is executed again on the following character, the same
  1492. initial conditions will be met. The order of the characters on which the
  1493. macro is executed does not change if the macro makes another character the
  1494. current character.
  1495.  
  1496.    If the "Joined Fonts" mode is selected, as described in section 7.9,
  1497. both font environments will have a current character with the same code.
  1498. This means that when this function selects the successive character as the
  1499. current character, the same will be done for the other font environment.
  1500. This also happens if a macro being executed contains commands which select
  1501. new characters or "jump" from one font environment to the other.
  1502.  
  1503.    After the macro has been repeated on all the selected characters, the
  1504. function terminates, restoring the current character which was set before
  1505. the start of the macro execution.
  1506.  
  1507.    The execution of the macro can be "stepped" or interrupted as if it was
  1508. started with the "Execute Macro" function (section 6.7).
  1509.  
  1510.  
  1511. 6.9        Stop Execution
  1512.  
  1513.    This command stops the execution of a macro. If the macro was started
  1514. from the "Controlled Execution" function, the macro is stopped and the
  1515. repetition of the macro on other characters is aborted.
  1516.  
  1517.  
  1518. 6.10       Step Execution
  1519.  
  1520.    The macro step mode can be activated by selecting the "Yes" subitem of
  1521. the "Step Execution" menu item with the mouse. The mode is terminated by
  1522. selecting "No".
  1523.  
  1524.    This option does not start a macro. Instead, it affects the behaviour
  1525. of the macros which are started with the "Execute Macro" or "Controlled
  1526. Execution" functions after the selection (or termination) of the step
  1527. mode.
  1528.  
  1529.    When a macro is executed in the step mode, each command in the macro is
  1530. displayed on the title bar on the top of the screen before it is executed.
  1531. The Personal Fonts Maker waits until the user presses <Space> to process
  1532. that command. While the program is "waiting", the mouse pointer blinks to
  1533. remind the user that the step mode is activated.
  1534.  
  1535.    The information on the title bar is displayed in the same format which
  1536. was last selected in the "Examine Macro" function (section 6.6) using the
  1537. "Codes" and "Number" gadgets.
  1538.  
  1539.    The macro execution can be aborted as usual, for example by pressing
  1540. <Esc> instead of the space bar.
  1541.  
  1542.