Use this software at your own risk. It is provided "as is" and author accepts no reponsibility or liability of any kind for it's use. Your support (monetary, technical, moral, back, and Cubs) will be appreciated and reciprocated. Without such support, any future release will be inferior to it's potential, non-existant, or crippled. Please do not re-distribute the registered version. © 1991, Patrick F. Clark 2545 30th Avenue Court Moline, IL 61265 (309) 764-0199 BIX: pclark REMARKS Requires 2.04. This is a Bitmapped font editor only, and there are no plans to implement outline font editing. My reasoning is as follows: outline fonts are black and white only and useful primarily for printed output. The Amiga is most useful in video work which requires color. Outline fonts are available by the thousands. An outline font editor would be too expensive. Program requires fair amounts of chip memory. This effectively limits large color fonts to machines with 1 or 2 mb chip memory. A character set uses chip memory in proportion to the max width, height, depth, and number of defined characters. New characters require more chip memory than existing characters (because exact size is unknown at allocation), so if you are short of memory in creating a new font, Saving may free up some space. Be sure you have a complete character set specified for "System Default Text." Font is used in buttons to indicate proper character forms. I find Courier to be good. Any reasonable size will work. OPERATION Fonts can be retrieved from anywhere, and saved back where they came from. (Existing fonts do not require a font contents record, etc.) New fonts can only be saved in FONTS directory and will create/ update font contents record as necessary. Keyboard (as well as buttons) selects character. A defined character's button is displayed in a highlighed manner. A character is "defined" if it has width or kerning. "Standard Character Set" menu item doesn't enforce such. Just displays fewer buttons. "Grid" menu item will auto deselect for very large characters. Top two actual-size text lines come and go as space permits. Top line shows the entire set from the character *before* the one you're on, all the way to the end, as line space allows, so you can see the effect of kerning. Second line is some plain text. All changes to a character are "drawn" in the magnify window. The width of the window indicates the maximum horizontal extent of the bits of the given character. That extent varies by character. A new character has an extent a little larger than the maximum you specify in the New Font request, or a little larger than the largest character in an existing font. In order to increase the width of an existing font by a large amount, it will be necessary to save the font. There is a limit to the maximum and minimum kerning values that seemed reasonable, and which I think would be capable of creating right to left fonts. However, I don't really know how such a font is supposed to be stored, and it has not been tested in that usage. Save Font does an implicit re-load. The effects of changes to a character are shown on the magnified image and on the top text line, if any. Changes are not shown in the second text line until it is redrawn. (Kerning effects are shown in all three places.) The "illegal character" character is supplied by the program and cannot be edited. It is not the commonly used rectangle, but a series of vertical lines. The 1.3 default colors are right for the first 4 colors. Didn't try to find out what the remaining default colors are, if indeed they exist. Color fonts are saved with the colors in use at the time. A complex color- map of an existing font can thus be lost and be difficult to re-create. New items in version 0.92 Speed/smoothness enhancements. Import Font "merges" (see below) the characters of the imported font onto the characters of the current font. Used primarily as a substitute for Save As (which doesn't exist) in order to create a new font based on an existing one. I chose to use Import instead of Save As because I have been burned too often by choosing Save rather than Save As after having changed a file, and damaged the original in so doing. Note that the characteristics of the New Font take precedence over the Import Font. This allows one to change the number of colors, the size, and the "fixedness" of a font: use New to specify the characteristics you want, then use Import. Characters are aligned at their upper left corners in the Import process, but it may be preferable to align at the lower left -- let me know what you think. Uses custom screen with new look. Attempts to display with raised buttons using palette of loaded font. Allows color palette changes to color fonts. Drawing tools: select a group via menu Normal Group Freehand: Dragging "paints" while mouse is down. Bezier: Click one end point. First point must be inside of magnify box. Other 2 points need not be. Drag to second end point. ** see note Move mouse, generating desired curve. Click to complete. ** see note Drawing tool is reset to Freehand by software ** Note: If pointer is off the window, press any key to complete. Window may have to be resized and dragged in order to draw left-curving lines. The curve will be clipped to the character box. Ellipse: Drag out a rectangle and release. Note that all ellipses are an odd number of bits in each direction. With small characters, it is more acurate to draw a guide ellipse (see below), and then draw manually. Filled ellipse: Same as above. Rectangle: Same. Filled rectangle: Same. Line: Drag out a line. Fill: Point and click. Drawing tool is reset to Freehand by software. Splines Group Freehand: Same as normal. Fill: Same as normal. Spline: Draws a quadratic spline based on directrix lines made with the following 3 tools. Splines proceed from the center of one line to the center of the next. The direction of the lines is significant. Note that the button is a "command" that is executed immediately. All other buttons are "modes" and do not do anything without further action. PolyDraw: Draws connected directrix lines. Click on each end point once, and on final end point twice. The direction of the lines is maintained as drawn. Rectangle: Draws a rectangular connected set of directrix lines. The direction of the lines is clockwise if you drag the rectangle down and right or up and left. Other- wise counterclockwise. Line: Draws a single drectrix line pointing from the starting point to the ending point. The ending point is indicated with a "bulb" on it's end. Guide Lines Group: temporary drawing of several kinds for use in guiding the drawing of "real" lines. All tools are the same as normal, except filled tools are misssing. Editing Tools: (editing tools do not use the clipboard) Copy: copies the entire character to the copy buffer. Cut: copies the entire character to the copy buffer and then clears the character. Copy Bits: stretch out a rectangle. Bits so selected are copied to the copy buffer. Paste: If copy buffer was filled via Copy Bits, changes pointer to a paste-pot brush: point and click to paste the bits where you want. If copy buffer was filled va Cut or Copy, does an immediate paste of the entire character. Merge: copy buffer is "merged" with character. Operates as does Paste. Undo: Replaces the character with the contents of the undo buffer. The undo-buufer is re-filled whenever you change to a new character and whenever you *manually* select a drawing tool. The undo is a "single level" style, and there is no re-do. Re-sizing of window is available. If window is sized below a certain point, will switch to topaz for buttons. Even smaller windows have no buttons. A window can be too small for any useful work, in which case the program will complain. TO DO LIST Use of system "scale" function and/or auto-scaled outline-based fonts. Implement re-do. Allow control over magnification. Would require scrollable design box. Cause guide lines to stay longer Coordinate display Flip horizonally and vertically Big cross-hair pointer for rectangles, etc Circle/ellipse from center (? The current way may be best for fonts.) Save as Color re-map Width/height changes, fixed/proportional changes, n-colors changes other than via New followed by Import. Clipboard support Cut/Copy/Paste are internal only. Copy buffer does survive Save/Open/ New, so you can exchange characters that way. Automatic sizing window to minimum practical size. Allow user-supplied text to be displayed. Handle right to left fonts? KNOWN BUGS Sometimes saves larger files than it loads. I know why, but it's a pain to fix. This is a preliminary release. Don't save over only copy of a font. GOTCHAs Workbench uses a different text texhnique than Intuition. Color fonts have color zero transparent on WB, but opaque on Intuition titlebar. Don't know about console. HELP NEEDED Is there any doc on Color Fonts? I worked only with .h file. Be careful. Does anyone have a right to left font? I'd like to see one. Are they actually supported? HELP RECEIVED -- Bix ID: JMBEZEAU for bezier and spline routines -- Bix ID: LUKE.WOOD for helpful suggestions and another bezier routine UPDATE LOG 0.9 Initial release 8/4/91 0.91 Well, that didn't take long! Fixed fonts were screwed because of a misunderstanding I had of how the space they occupy on the screen is calculated. The "fixedness" appears only to apply to quick cursor calculations. If the CharSpace array or the CharKern array is present, then character display can easily turn out to be proportional. My old routine worked in all cases with any new or existing font, but system routines would not work with my version of a fixed font. The existing font base follows the actual rules. 8/5/91 0.911 Added user re-size 8/6/91 Added undo 8/6/91 Speeded up magnify 8/7/91 (BltBitMapRastPort() vs RectFill()) Smoothed operation of Cut/Copy/Paste 8/7/91 (no more big re-think) Kept "shading" of defined characters more up to date 8/7/91 0.92 Added drawing tools 8/8-9/91 Added custom screen etc 8/14/91 Added palette requester 8/15/91 Developed very fast magnify 8/16-18/91 Added Edit enhancements 8/21/91 Reduced memory usage 8/22-27/91 Added Import 9/13/91 0.93 Added Color re-map 9/16/91