"Personal Paint - 3. The Screen" 3. The Screen 3.1 The Tool Bar 3.1.1 Default and Custom Brushes 3.1.2 The Painting Tools 3.1.2.1 Dotted Freehand 3.1.2.2 Continuous Freehand 3.1.2.2.1 Line Settings 3.1.2.2.2 Area Settings 3.1.2.3 Curve 3.1.2.4 Straight Line 3.1.2.5 Circle 3.1.2.6 Rectangle 3.1.2.7 Ellipse 3.1.2.8 Polygon 3.1.2.9 Airbrush 3.1.2.10 Fill 3.1.3 Text 3.1.3.1 The Text Editor 3.1.3.2 The Font Requester 3.1.4 Image Processing 3.1.4.1 Filter Selection 3.1.4.2 Edit Filter 3.1.5 Snap to Grid 3.1.6 Define Brush 3.1.7 Zoom 3.1.8 Magnify 3.1.9 Clear 3.1.10 Undo 3.1.11 Colors 3.2 Moving Around 3.3 The Title Bar 3.4 The File Requester 3.5 The Progress Indicator 3. The Screen The main window of Personal Paint, the requesters associated with painting tools and the file requester are among the most used graphical environments in the program. This chapter describes the functions which can be accessed from these windows. Other windows and requesters, associated with specific settings or functions, are described in chapters 4 to 8. 3.1 The Tool Bar The most used program functions can be accessed directly by clicking one of the gadgets contained in the tool bar. For faster access, the tool bar is located on the left of the screen, just like the default position of images, Amiga Workbench volume icons and the image coordinate system (which all start from the top left of the screen). The function key may be used to alternately remove and redisplay the tool bar. In combination with , which is used to remove the title bar, this command makes it possible to use a larger portion of the screen to actually see and modify the image. All gadgets can be accessed with a single mouse click, but give different results depending on which mouse button is used, and, in some painting tools, whether the mouse pointer is over the upper or lower half of the gadget. Clicking the left mouse button immediately selects the function associated with that gadget, while a click on the right mouse button displays a requester with different program options of that particular tool. Any operation performed with a tool may be undone by clicking on the Undo gadget (section 3.1.10) immediately after the tool action is performed. Appendix B lists all keyboard shortcuts to the different tools. 3.1.1 Default and Custom Brushes Whenever a dot, a line or a more complex pattern is drawn on the screen, the program uses the current brush as if it were its "drawing pen". A brush is a small image. Selecting the smallest, pixel sized, brush, is like using a very fine pencil, with which each pixel on the screen can be modified individually. This is the default brush. Working with other brushes is like using thicker tools of different shapes, like a fountain pen, a piece of chalk, etc. The two topmost rows in the tool bar contain brushes of different sizes. There are round brushes, square brushes and brushes which can be user-defined. A brush can be selected with the left mouse button. Using the right mouse button, on the contrary, activates the brush stretch mode (section 5.10.1). This means that the size of the selected brush can be changed manually by moving the mouse on the drawing area while the left mouse button is pressed. In this way, it is also possible to produce elliptical or rectangular brushes. The <+>/<-> (plus/minus sign) key shortcuts can be used to increase or decrease the size of the brush without leaving the keyboard. A small number, at the beginning of the second row of brush symbols, indicates a previously defined custom brush. Section 3.1.6 explains how to define such a brush. Clicking on the number with the left mouse button selects that brush, just like the other brushes, while the right mouse button activates a small pop-up menu, where it is possible to select the current custom brush among nine different brushes. Once a brush number has been chosen, that brush is used for all paint and brush selection operations. Whenever a different custom brush is selected, the other brushes are preserved intact for future use, and can be reselected at any time. Undefined (empty) custom brushes appear as dot-brushes. It may sometimes happen that a drawing command yields no apparent result. For example, one may wish to draw a line, or paint a dot, but nothing on the screen seems to change. This usually means that the current combination of brush colors and paint mode was chosen to give exactly that result. For example, a brush containing an image entirely drawn in the background color, may become invisible (transparent) in the Matte paint mode (section 5.7.1). If this occurs, it is sufficient to change paint mode (section 5.7), or select/define another brush. Chapter 5 is entirely dedicated to brushes, with a detailed description of Personal Paint's original brush handling functions. Section 3.1.6 describes how to define a custom brush. Section 7.6 explains how to merge the color palettes of different brushes into a single, common, palette. Section 7.1.7 describes how to use the brush's palette for the current image. 3.1.2 The Painting Tools Some tools can be used to either draw an outline or a filled shape (e.g. a rectangle, or circle). The symbols used for these tools are divided into two halves: the upper half of the gadget is used to select the outline function, and the bottom part for the fill mode. Pressing the left mouse button activates the selected drawing mode, whereas the right mouse button usually activates a requester with several options associated with the tool. The upper/lower half distinction also applies to right mouse button selections: different requesters (e.g. line vs. area settings) may be associated with each half of the gadget. If the key is held down during a painting operation, the tool can be positioned only vertically or horizontally, i.e. in the direction the mouse pointer is first moved after pressing . 3.1.2.1 Dotted Freehand This is the simplest painting tool. When it is active, the current brush is used to "paint on the screen" whenever the left or right mouse button is pressed. If the left button is pressed, the brush is "pasted" onto the image. The resulting color and shape also depend on the current paint mode (section 5.7), stencil (section 7.2) and transparency (sections 5.8.5 and 8.14). If the right mouse button is pressed, the brush is drawn using the current background color. The foreground and background colors can be selected from the palette below the tool bar with the left and right mouse buttons, respectively, as explained in section 3.1.11. If the mouse is moved quickly while a button is held down, several "dots" are painted. The distance between the dots depends on the speed at which the mouse is moved, as well as the computer's processing power. A faster computer will be more efficient at "catching up" with the mouse pointer. Personal Paint does not try to reconstruct the mouse's path. A separate function is provided for this purpose, as described in the following section. 3.1.2.2 Continuous Freehand This tool is similar to Dotted Freehand, but paints continuously along a path, rather than individual dots. The upper half of the gadget can be selected to draw the simple path, while selecting the lower half causes the path to be filled. If the right mouse button is used to select the upper half of the gadget, the Line Settings requester appears, while the Area Settings requester is displayed if the lower part is selected. These two requesters can be selected and used in the same way in the Curve, Straight Line, Circle, Rectangle, Ellipse and Polygon tools. The two program environments (section 4.8) have independent Line and Area Settings. 3.1.2.2.1 Line Settings The Continuous option in the requester is the default operating mode of Personal Paint: straight lines, borders and arcs are drawn continuously. The On-Off and Color Pattern gadgets, on the contrary, allow for some special effects: if a brush is selected, the pixels of its first (horizontal) row determine the spacing ("pattern") of consecutive brush strokes. In On-Off mode, Beginning on the left of the row, pixels having the background color are interpreted as "don't paint", while non-background colored pixels count as "paint". For example, assuming green as the current background color, a brush having a continuous row of red dots as its first line would have the same effect as selecting the Continuous option, whereas a straight line of green dots would prevent the program from painting at all. The other mode, Color Pattern, is useful for drawing multicolored lines in the Color brush paint mode. The individual colors of the pixels in the first row of the brush determine the actual colors used to draw lines. In the previous example, red would mean "paint in red", and green "paint in green". After the line pattern has been defined, it becomes independent from the brush. This means that the same brush can be redefined without altering the line pattern. 3.1.2.2.2 Area Settings Just as Line Settings allows for some additional freedom in line drawing details, the Area Settings option determines how solid shapes are to be drawn and/or filled. The default Fill Type is Solid: the entire surface is painted with the current foreground or background color, depending on the mouse button which was clicked to start the paint operation. In Gradient mode, the color of filled shapes changes smoothly from the background color to the foreground color. The background and foreground colors (gradient start and stop) can be selected using the right and left mouse buttons to pick a color from the palette. This can also be done while the requester is displayed. Two gadgets give additional control over the gradient fill mode. The left gadgets toggles between Manual and Automatic gradient modes. In manual mode, all colors which appear in the palette range between the background color and the foreground color are used, in the same order as they appear in the palette. In automatic mode, Personal Paint calculates the smoothest transition from the background color to the foreground color, mixing different colors of the palette as appropriate. The right gadget selects the gradient type, i.e. the direction (vertical or horizontal) in which to apply the color transition on the screen, and the start and stop positions for the color range. The types are: Horizontal (based on the width of the object to be filled), Horizontal Image (based on the width of the entire image), Vertical (considers the height of the object to be filled), Vertical Image (uses the the entire image's height) and Shape (starts from the outer borders of the shape to be filled, and goes inwards). The third fill mode is the Pattern fill. A constant pattern is repeated over the entire fill area. The pattern can either be dithered (using any two colors), or selected from one of the custom brushes. In the first case, the two colors, shown in a pair of boxes, may be selected with the mouse from the image or the palette (like the background and foreground colors). A slider indicates the percentage of the second color in the pattern. When gradient rendering is actually performed on the screen (e.g. using the fill tool), it can be aborted by pressing any key on the keyboard. If this is done, the image is not modified by the fill operation, unless Undo (section 3.1.10) is also selected. 3.1.2.3 Curve This tool is used to draw curves which can be bent by moving four reference points with the mouse. When the tool is selected, the initial, straight, line skeleton is defined by clicking a mouse button (left or right, to give a foreground or background colored curve), drawing the line, and releasing the button. The four control points appear as marks at the beginning, middle and end of the curve, and can be grabbed and moved around using the left mouse button. The right mouse button terminates the definition of the curve. Normally, the point closest to the mouse pointer is grabbed when the left mouse button is pressed. If the points are difficult to distinguish, they may be selected individually by pressing a key from to before the left mouse button is pressed. The exact definition of this type of curve is "Bézier cubic section". The four points geometrically define the shape of the curve. The curve starts at the first point, at a tangent to the line from the first to the second point, and ends at the fourth point, at a tangent to the line which joins the last two points. The curve is always enclosed by the convex quadrilateral defined by the points. 3.1.2.4 Straight Line This tool is used to draw simple, straight lines, using the current brush as specified by the line settings. After selecting the tool, the left or right mouse button can be pressed when the pointer is at the desired starting position of the line. While the button is pressed, the mouse can be moved to where the line should end. Releasing the mouse button confirms the line as it appears. The key can be used to draw perfectly vertical or horizontal lines. 3.1.2.5 Circle This tool is used to paint outlined or filled circles. The current brush is used as the "pen", and the line and fill type options (sections 3.1.2.2.1 and 3.1.2.2.2) are applied. The upper half of the gadget selects the outlined circle, while the lower half activates the filled circle. The center of the circle is selected when the mouse button (as usual, left button = foreground color, right button = background color) is pressed. While the button is held down, the mouse can be dragged to indicate the size of the circle. Finally, releasing the button confirms the circle as it is displayed. As with all other painting tools which may affect non-visible parts of the image, the Clip Graphics option (section 8.13) determines whether parts of the circle which extend beyond the visible screen area should be drawn or not. 3.1.2.6 Rectangle This tool produces a rectangle, which can either be filled or drawn as a border. The size and shape of the rectangle can be selected by dragging the mouse while the background/foreground color button is held down. 3.1.2.7 Ellipse This tool is similar to Circle and Rectangle, except that an outlined or filled ellipse is painted instead. As with the other tools, the key can be used to restrict the mouse to moving along the vertical or horizontal axis (section 3.1.2). Similarly, different options requesters (line and fill type) are displayed if the gadget is selected with the right mouse button. 3.1.2.8 Polygon If the upper half of this gadget is selected, the tool behaves like a straight line tool which automatically concatenates lines, thus creating polygonal shapes. After the first corner of the polygon (i.e. set of joined lines) is set by clicking on the left or right mouse button, successive mouse button actions define additional corners. The polygon can be closed by setting a corner next to the origin, or pressing the bar. The outlined polygon does not need to be closed: it can be terminated by selecting any painting tool. If the lower half of the gadget is selected, the polygon is filled after it is closed. 3.1.2.9 Airbrush This is the equivalent of the "real world" airbrush. The painting area is "sprayed" over using the current brush. The background color is used if the right mouse button is selected. Clicking on the Airbrush gadget with the right mouse button displays the Airbrush options. The Shape option is used to select either an elliptical or rectangular airbrush shape. The ratio and size of the ellipse or rectangle can be set manually after selecting the Adjust gadget. This works just like resizing the default brushes (section 5.10.1). The Jet Count value (which has a valid range from -20 to 1000) indicates the minimum number of "jets" rendered at each mouse movement. A value of zero indicates the default mode (continuous airbrush mode). Positive values may be used to obtain smoother shades (the number of "jets" remains constant, even if the pointer remains still for a long time). If the value is negative, it indicates the delay (in sec/50) between consecutive "jets". Each of the two environments (section 4.8) may have its own, different airbrush settings. 3.1.2.10 Fill This tool fills the painting area starting from the mouse pointer position. The specified color (or pattern) spreads to all areas contiguous to the color clicked on. Beautiful effects can be obtained by changing the default Solid fill mode to a more sophisticated one, as described in section 3.1.2.2.2. The Fill Type requester appears when the Fill gadget is selected with the right mouse button. The fill operation may be interrupted by pressing any key. In this case, the image remains unaffected by the fill command. Selecting Undo after the operation is aborted restores the partial fill. The area to be filled may extend beyond the visible screen limits. The Clip Graphics menu option determines whether the paint command may affect off-screen areas or not. 3.1.3 Text Selecting this tool with the left mouse button activates the Text Editor: the text cursor can be positioned anywhere on the painting area, where it becomes possible to write using the keyboard. The Font Requester is displayed if the tool is selected with the right mouse button (section 3.1.3.2). 3.1.3.1 The Text Editor The text editing mode begins as soon as the cursor is positioned over the desired spot using the left mouse button. As an aid for exact positioning, the cursor is displayed as a character-sized box, with a horizontal line indicating the baseline. The cursor becomes a flashing bar when writing. During writing, the cursor can be repositioned using the left mouse button, whereas the right mouse button can be used to "grab" and move the entire text just written. The text is treated as a stream of editable characters as long as the text editor remains active and the cursor is not repositioned by using the mouse. After that, the text is "pasted" onto the painting area, and cannot be repositioned or modified with the text editor. It can, however, always be modified using the ordinary paint tools. Personal Paint accepts the standard keys handled by Amiga text editing tools: cursor keys (unshifted or shifted) to move around, to begin a new line, to change the character to the left of the cursor, to delete the current character, + to paste text from the clipboard, etc. Chapter 6 describes in more detail the functions of the Text menu. During editing, it is possible to select a new color from the palette or a new font using the font requester. The entire text can be dragged, using the right mouse button, without interrupting the editing mode. Pressing , or selecting a new tool, terminates the editing session. Personal Paint implements many more text processing functions than other paint programs. Although it is an advanced and complete package, it was not designed to cover word processing requirements. Cloanto's Personal Write is an affordable, fast word processor packed with powerful and original functions. 3.1.3.2 The Font Requester The font requester is used to select the font to be used for text rendering functions. If a new font is selected during text editing, the current session is terminated and a new session, using the selected font, begins at the cursor position. A font is the collection of all the various characters and symbols of a particular type design in a particular size. Fonts may consist of very few special signs, the basic alphabet or even several hundreds of characters. Amiga fonts can be either monochrome or color fonts, and are stored in bitmap or vector format. Vector fonts are more easily scaled to different sizes than bitmap fonts. Bitmap fonts, on the other hand, are generally hand tuned for better results and look better at smaller sizes. Personal Paint can load, scale and use all of these fonts. Font scaling and color fonts have become widely available with version 2 of the Amiga operating system. The font requester is quite similar to Personal Paint's standard file requester (section 3.4). There is a list of fonts which can be selected using the mouse. A string gadget to the right of the name of the selected font indicates that font's size and attributes. A small window displays some sample text written using the selected font (it is possible to modify the sample text by editing the user interface text file - section 1.14). The names of the default system fonts (e.g. ROM fonts like "topaz 8 of" and "topaz 9 oetf") may appear even if the specified "Fonts" directory does not contain any font files, as these fonts are always available and usually stored in ROM. The names of already used fonts may also appear, if their bitmaps are still in some system buffers. The font name can be selected with the mouse from the list box. This automatically causes the desired size and style to be selected as well. It is also possible to manually enter this information in the string gadget on the right. This can be particularly useful if no font bitmap file exists for a particular font size and style. If the requested font size does not exist, the Amiga operating system either scales the font to the desired format (in version 2.0 and beyond, only if the "Scaled Font" attribute is specified), or loads the closest existing font. The result of scaling a font to a new format is usually better if the point of departure is a vector font. The three gadgets to the left of the font sample are associated with the bold, italic and underlined attributes. If the selected font is vector-based, or a version of that font having the specified attributes exists, then that font is used, otherwise the style is algorithmically generated (soft style). Style variations may also be selected during text editing, as explained in section 6.5. The remaining font attributes are appended to the number indicating the size of the font, following a widespread Amiga standard. One lower case character is associated with each of the Amiga font attributes. The characters are: Character Attribute u Underlined (no soft style) b Bold (no soft style) i Italic (no soft style) e Expanded r Right to Left f Fixed Pitch t Tall Dots w Wide Dots c Color Font o ROM Font s Scaled Font v Vector Font It may sometimes happen that no custom-designed font bitmap exactly matches a particular font name, style and size. The font handling routines can algorithmically modify an existing font in order to build a font with the desired format. A font generated by such a procedure is flagged with the "Scaled Font" attribute. If it is desirable to build a font in a particular size, rather than using the closest match, an 's' must be appended to the number indicating the size, to enable scaling. For example, if "topaz" and "20 sib" are typed in the Font string gadgets, a stretched ('s'), 20 pixels high, version of the Topaz font is selected, and the Italic ('i') and Bold ('b') soft styles are applied to it. The style gadgets are automatically updated (they could be used to select "Italic Bold" instead of typing "ib"). A particular font may look differently depending on the display mode. For example, it may look "crushed" on an interlaced screen. Starting with version 2 of the Amiga operating system, the 's' option also takes into consideration the current display ratio. For example, a 2:1 pixel ratio would be applied to a "CGTriumvirate 40 s" font in a Hires-NonLaced screen. If Personal Paint's screen mode is changed (e.g. after an environment switch), the ratio of any used vector font is also updated whenever the text tool is (re)selected, or the font requester displayed. The "Vector Font" flag is used to immediately recognize vector font files. When a color font is selected, the displayed sample may not give an exact representation of the original colors, e.g. if the current screen format does not support the font's number of colors. After selecting the font, it is still possible to change the screen format (section 4.5). The font's color palette can also be restored at any time (section 7.1.8). Well-written font applications which add or modify Amiga font data automatically update the description of the fonts available for that typeface, which are stored in separate system files. Unfortunately, some programs do not update these information files, so it sometimes happens that these files do not describe the fonts which are really available any more. The Commodore FixFonts program was designed to solve this problem (it can be started by typing "FixFonts" in the Shell). FixFonts should also be used if any font files are renamed, moved, deleted or copied manually using the Amiga Workbench or Shell. Cloanto has dedicated an entire book and a collection of software tools to fonts and their Amiga and printer applications. Cloanto's Personal Fonts Maker package is a complete environment for any user who wants to study and manipulate fonts and interact with other software, or even download fonts directly to the printer. 3.1.4 Image Processing This tool is used to select, edit and apply programmable transformation processes (filters) to parts of the picture. With this function it is possible to select with precision the area to be modified. It complements the functions which can be performed on the entire image or brush (sections 4.6 and 5.4). When the tool is selected once with the left mouse button, the Rectangular Area mode is activated, whereas a second click selects the Freehand Area mode. The area of the screen which is to be processed can be delimited by pressing the left mouse button over the image, moving the mouse to select the outline, and finally releasing the button. If the tool is selected a third time, the area to be processed is delimited by the current brush transparency plane (non-transparent regions are processed), as soon as the left mouse button is clicked when the pointer is over the desired location. When the tool is selected with the right mouse button (or even with the left button, if no effect has ever been selected), the Filter Selection requester is displayed. Effects like blurring are useful to merge new graphic elements or text better with a smooth background picture (e.g. a digitized image). In order not to lose image details, it is possible to mask (section 7.2.3) all the colors in the palette, except those of the elements which are to be integrated: the blur operation will affect only the edges of those items, while the background image will remain intact. Image processing of masked objects also gives nice effects on text strings (e.g. "Edge Detect" gives outlined text, "Dark Vertical" shades the letters, "Randomize" cuts the edges of the letters). Image processing may be stopped by pressing any key on the keyboard. In this case, the Undo gadget can be used to restore the partially processed image. 3.1.4.1 Filter Selection This requester allows the user to define a new filter or select, edit or delete an existing one. The list box contains the names of all the predefined effects. New effects are automatically added to the list as they are defined. Section 8.2 explains how to store selected or all effects for future reuse. To select and use an effect, it is sufficient to double-click on its name, or click once and select Proceed. The New and Edit gadgets respectively open the Edit Filter requester to define a new filter, or modify an existing one. Delete removes an item from the list. Floyd-Steinberg error diffusion may be used to combine the colors in the palette to approximate a particular color. This usually gives smoother color transitions (e.g. in "Dark Vertical Gradient"). If this option is not selected, the best matching single color is used to represent each pixel. Error diffusion is not available for all types of filters. The Cancel gadget at the bottom of the requester undoes any changes made to the image processing settings and cancels the image processing operation. Exit does not perform the image processing operation, but maintains any changes to the settings. 3.1.4.2 Edit Filter New and existing effects may be edited using this requester. The Name string gadget at the top holds the name of the filter being edited, which may be up to 40 characters long. The Kernel, Division Factor and Bias gadgets assume different meanings depending on the filter type. and + respectively move the text cursor to the following or previous string gadget. Convolution is a powerful area process that can be used to sharpen, blur, and modify images. The convolution operation replaces a pixel's value with the sum of that pixel's value and its neighbors, each weighted (multiplied) by a factor. The weighting factors are called the kernel. The kernel matrix is "slid" over each pixel in the image area. For each point, the kernel values are multiplied with the pixel (RGB) values "under" it. The sum of the results is then divided by the Division Factor and added to the Bias value. Finally, the color in the palette which best represents the result is placed at the center of the matrix. The convolution may yield invalid kernel values (negative intensities, or values greater than 255). By default, these are clipped to the valid range. If a negative Division Factor is set, its absolute value is used for processing. This also applies the hue of the current foreground color (and its saturation as well, if the foreground color is the same as the background color) to the result of the convolution. The Bias parameter has a base value and two "modifiers": Bias DeltaX and DeltaY. Bias + DeltaX gives the effective bias value for the rightmost pixel which is processed, whereas the bias for the bottommost pixel is Bias + DeltaY. The bias for intermediate pixel positions ranges between Bias and Bias + DeltaX/Y. DeltaY increments are applied first. To understand this better, it would be interesting to study the result and the settings of the "Light-Dark Oblique Gradient" predefined effect. In the Popularity filter, all pixels corresponding to non-zero positions in the kernel are counted. The most used ("popular") color is then copied to the central pixel. Random filters use the kernel value with the same positional scheme as the Popularity and Convolution process (the center is the current pixel), but the values indicate how likely it is that each pixel-position in the kernel be used for the resulting pixel. A value of 0 means that a pixel would never be chosen. Equal pixel values (e.g. all '1's) would give to each pixel equal chances of being chosen. A value of '2' would mean double probability over a '1', and so on. Dispersed, Clustered and F-S (Floyd-Steinberg) are all black and white (or whatever the current foreground and background colors are) conversion filters. The first two use the Division Factor value to pick a particular size dither matrix Dispersed: 1 = 4x4 matrix, 17 levels 2 = 8x8, 65 levels 3 = 16x16, 257 levels Clustered: 1 = 3x3 matrix, 10 levels 2 = 5x5, 26 levels 3 = 7x7, 50 levels The Dispersed-Dots dithering technique gives good results for video images, while the Clustered-Dots dithering is better suited for higher resolution devices (e.g. laser printers). The Floyd-Steinberg dithering, however, employs error diffusion. All the dithering processes assume that the current background and foreground colors are, respectively, white and black. The brightness of the original pixels is rendered based on this assumption, but any color pair may be selected to achieve special effects. Unlike the color remapping functions of Personal Paint, the error diffusion techniques used for image processing take into account the brightness of the pixels, rather than plain RGB values. 3.1.5 Snap to Grid If this option is selected, all positioning and sizing will snap to the intersection of the nearest two lines of a grid. The exact position of the (imaginary) grid and the distance between the lines can be modified by selecting the Snap to Grid tool with the right mouse button. This activates a requester where the values (expressed in pixels) can be set. The Offset values allow for fine positioning of the grid on each axis, and should range between 0 and Step-1. It is also possible to enter a pixel-position with origin 0:0. The coordinates are automatically "normalized" to the valid range and that point becomes one of the "snap points". Each of the two environments may have it's own, different, grid settings. 3.1.6 Define Brush When this tool is selected, the "Brush Definition" mode begins. The gadget remains highlighted until a brush is defined. If the gadget is selected again while it is highlighted, it toggles from the Rectangular to the Freehand Brush mode, and vice versa. A brush is defined by: moving the pointer over any point of the brush outline (an angle, in the Rectangular mode), clicking the left mouse button, moving the mouse to mark the outline completely and releasing the mouse button. In Freehand mode, the path is closed automatically if it is left open. The brush can be defined either with the left or with the right mouse button. If the left button is used to mark the outline, the brush is simply copied from the selected region. The displayed image is not modified. If the right mouse button is used, the brush is "cut" from the image area, leaving a "hole" which is cleared using the background color. Selecting the tool with the right mouse button is equivalent to selecting the Brush/Restore menu item: the previously defined brush becomes active, and its last transformation is undone. It may happen that a brush has to be defined while another brush still needs to be used. Personal Paint can use up to nine different brushes. More brushes can be stored in files (section 5.2). Before defining a new brush, a free or unused brush number can be selected from the Brush Number menu (by clicking with the right mouse button on the little number in the group of built-in brushes - section 3.1.1). Chapter 5 is entirely dedicated to brushes. If the Snap to Grid mode is active, the brush handle is also "snapped". Otherwise, it wouldn't be possible to reposition the brush on the spot it was taken from. By default, all pixels in the current background color are considered to be "transparent" when the brush is defined. If the Backfill Transparency option (section 8.14) is selected, only the background colored pixels which surround the image are treated as transparent. 3.1.7 Zoom This tool, selected with the left or right mouse button while the Magnify mode is active, allows the user to respectively zoom in or out, i.e. enlarge or reduce the image. The two environments have independent zoom (magnification) levels. 3.1.8 Magnify This tool activates the Magnify mode, a sort of digital magnifying glass. The left part of the screen is used to display an enlarged part of the image. The portion to be enlarged can be defined by clicking the left mouse button, moving the mouse to enclose the area in the rectangle which is displayed, and releasing the button. If the button is pressed and released without moving the mouse, the default or previous zoom level is applied. Magnify mode is terminated by reselecting the tool. Two scroll gadgets, below and to the right of the enlarged image, may be used to "slide" the enlarged view in the desired horizontal or vertical direction. The cursor keys may be used to obtain a similar effect, moving the image. The magnified image may also be "grabbed" with the central mouse button of three-button mice. On other mice, this is equivalent to pressing the left mouse button while the key is held down. The same button can be used to indicate a particular spot in the "normal" part of the screen which is to be magnified. The image on the left is scrolled accordingly. During Magnify mode, the clipping area (section 8.13) remains delimited by the normal, non-magnified part. The gadget at the bottom right corner of the magnified window activates a grid which may be displayed to separate the enlarged pixels, to ease detailed editing. Three modes can be selected and deselected by cyclically clicking on the gadget: the default mode (no grid), line and dot mode. In line mode, a grid of lines is displayed over the entire enlarged area. The resulting pattern creates a small outlined box for each dot. The lines are displayed in the current grid color (section 3.1.11). Dot mode is similar, only that color zero is always used to draw the lines which make up the grid. A screen flash may indicate a low memory condition which could make it impossible to activate the tool. 3.1.9 Clear This tool clears the image. Technically, it applies the current background color to the entire image, or to the current view (if Clip Graphics is active - section 8.13). Normally, the operation can be undone with the Undo tool. However, by clearing the entire image twice, the undo buffer is freed as well. This may be useful when memory is low. The Free Current menu item (section 4.8.5) may be used to free even more memory. 3.1.10 Undo This tool undoes the effect of any tool or image processing function described in this chapter. Consecutively clicking Undo twice performs a "Redo". The gadget may be shadowed to indicate that the undo buffer is empty. This may also mean that there was not enough memory for the previous graphic operation to allocate an undo buffer. Selecting the gadget with the right mouse button frees the undo buffer (after displaying a warning message). This is an extremely useful way of making some memory available in critical conditions. The Brush and Color Palette menus have Restore functions which provide for additional undo capabilities (sections 5.5 and 7.1.6). 3.1.11 Colors The color indicator just below the painting tools indicates the current foreground, background and grid colors. The central rectangle on the right indicates the foreground color. This is the color normally used for painting with the left mouse button. After clicking on it with the left mouse button, that color may be changed by "picking" a new color from the displayed image (again using the left mouse button). The region around the foreground color indicates the background color. This color is used by the Clear tool and when painting with the right mouse button. Just as with the foreground color, a new background color can be selected by first clicking on the background color region and then picking a new color, all with the left mouse button. The pattern to the left of the current foreground and background colors indicates the grid color. This is the color used for displaying the (optional) grid over the magnified image area (section 3.1.8). Like the other colors, it can be modified by clicking on the pattern and then picking a new color (with the left button). If the right mouse button is used over the color indicator, the Edit Palette requester (section 7.1.3) appears. It can be used to modify or rearrange the colors. The palette below the color indicator shows all the colors which may be selected directly with the mouse. The left mouse button selects the foreground color; the right button picks the background color; the middle button (or + left button) selects the grid color. Especially if there are a lot of colors, and the screen or pointing device resolution is very "grainy", it may be better to press the desired button, move the pointer slowly until the selected color appears in the indicator, and finally release the button. 3.2 Moving Around As mentioned in Chapter 1 and in the section dedicated to the Magnify mode (3.1.8), the displayed image can be scrolled using the keyboard and the mouse. The cursor keys can be used to move the image by four units into the direction which is indicated. The image can be fine-scrolled by holding down the key. Like the other keyboard shortcuts, these keys can be redefined (section 1.14). The image can also be "grabbed" with the mouse, by pressing the middle mouse button of three-button mice, or and the left mouse button. In bigger than standard video overscan modes, the offset of the screen can be set by pressing plus the left mouse button, and moving the mouse. The Settings/Coordinates submenus can be used to activate the display of the current mouse coordinates on the title bar. This is especially useful when distances and dimensions are easier to calculate numerically. The area of the screen used to display the image can be made larger by removing the tool bar and the title bar ( and keys, respectively). On some Amiga computers, due to hardware limitations in overscan screen modes, it may happen that the mouse pointer cannot follow mouse movements on the topmost lines of the screen, where the title bar would normally appear. Personal Paint continues to accept and handle mouse movements normally in these few lines. The brush image continues to indicate the current position correctly. The Amiga pointer will stay at the same height, even if the mouse pointer is moved up and down in this strip. 3.3 The Title Bar The title bar occupies the top lines of the screen. It can be removed and redisplayed with the key. Menus appear by pressing the right mouse button when the pointer is over the title bar (or on the topmost line of the screen, if the title bar has been removed). The title bar contains the following information: program name and version (if no picture has been loaded or saved), current brush paint mode symbol (section 5.7), optional line pattern mode symbol (section 3.1.2.2.1), area pattern/gradient (section 3.1.2.2.2), stencil mode (section 7.2), coordinates (section 8.5) and Amiga standard screen gadgets. If the picture which is displayed has a name, it is prefixed by a "1:" or "2:" sign, indicating the current environment. The stencil information is very useful if the stencil is often switched on or off with its keyboard shortcut (the spacing grave accent, unless redefined). 3.4 The File Requester The file requester is the requester most used by the different functions of Personal Paint. The main difference between the file requesters invoked by different functions is the title indicating function name (e.g. "Save Brush"). The requester is called "file requester" because it allows the user to work with file names (section 1.4). When a function which needs to write data in a new file, update a file or load data from an existing file is selected, the standard file requester is displayed. In general, the file requester is displayed whenever one must define which file is going to be the target of an input/output operation. Sections 1.4, 1.5 and 1.11 should be carefully read and understood before this section is read. To identify a file so that it can be accessed, it is necessary to specify the name of the volume or device on which the file is stored, either physical or logical (sections 1.4 and 1.11, e.g. "PPaint" or "DF0"), the remaining path (i.e. the drawers the file is in) and the file name itself. The names can be written using the keyboard or selected with the mouse (which is much easier than explaining how to do it). Normally, everything is done with the mouse, except typing the name of a file to be saved for the first time. The upper part of the requester contains the list box, which can either contain file and directory names, or logical "assigned" names, or physical device and volume names. It is possible to alternate between the three modes by clicking the right mouse button, or by selecting the Disks, Assigns and Parent gadgets. All file and directory names found following the specified path can be viewed in the list box. After the complete list has been read by the program, the names are sorted in alphabetical or date order (section 8.8.4). Directory names are grouped at the bottom or top (section 8.8.3) of the list, preceded by a "(dir)" prefix. Not all names which are listed necessarily belong to files or directories which contain data useful for Personal Paint (section 1.5). Some of the names used by the Amiga operating system are excluded from the list. If the list of names is longer than the screen space reserved for the list box, only part of the file names is displayed. The knob to the right of the list box can be used to shift the displayed portion of the list up or down. The knob can also be moved by briefly pressing the left mouse button when the pointer is over the container of the knob (but not over the knob). In this way, the knob is "attracted" towards the mouse pointer whenever the left mouse button is pressed and the names in the list box are scrolled by an entire list box page at a time. The list box normally displays the names of all files and directories contained in the directory and volume (or device) specified in the Path gadget. Once the name of a file, directory, volume or device is displayed in the list box, it can be selected with the mouse. When the left mouse button is pressed and released, the name displayed under the mouse pointer is selected. If the name of a volume, device or drawer is selected, the Path string gadget is automatically updated. If a file name is selected (e.g. the name of a picture file), the File string gadget containing the file name is updated. Every gadget of the file requester, including the knob, can be selected while the list box is being updated. During this phase, new names are continuously inserted at the bottom of the list, rather than sorted. In this way, the order of the displayed names cannot change unexpectedly while a new name is about to be selected. To avoid undesired selections during the display update, the displayed names are not modified while the left mouse button is pressed, and the selection of a name is accepted only if the mouse button is released over the highlighted name. If the mouse button is pressed when the pointer is over a name, but released when the pointer is not over the same name, no selection is made. Just below the list box is the Path string gadget. The selected path (including the device name) is always displayed in the gadget. The gadget can be selected to be updated with the keyboard, but this is normally not necessary, as both the volume or device name and the names of the drawers can be selected with the mouse as explained below. The key must be pressed after the text of the string gadget has been modified with the keyboard. The format of the text in the Path string gadget is the following: device name + ':' (colon) + drawer names. A '/' (slash) must separate two drawer names. This means that each drawer name is separated by the name of the drawer containing it by a '/' sign. The volume or device name should always be specified and followed by a colon, even if no drawer names are written. If no volume or device name is selected, the name of the program's current directory is automatically placed in the string gadget. The file name itself must not be written in this gadget, but in the File string gadget below. When the requester is displayed for the first time by a function, the Path gadget contains the default path name of that particular function (e.g. "PPaint_Prefs"). The File string gadget under the list box contains the name of the file. The content of the string gadget is automatically updated if a file name is selected with the mouse from the list box. The maximum length of the full path (device + drawer names) which can be written in the Path gadget is 128 characters. As explained in section 1.4, the length of file names (File gadget) should not exceed 25 characters. The number of names which can be stored in a list and displayed in the list box is limited only by the available memory. Below the File gadget are the Disks, Assigns and Parent gadgets. Personal Paint automatically detects all storage devices connected to the computer and the volumes (e.g. disks) mounted in these devices. All these names are displayed in the list box when Disks is selected. When one of these names is selected with the left mouse button, the Path gadget is updated and the list box is again used to display file and directory names. The Assigns gadget works similarly to Disks, by displaying logical names assigned to volumes, devices and directories. If the "Expand Path" option is activated (section 8.8.1), Personal Paint will automatically replace device (or logical) names with the associated volume name in the Path string gadget. Devices other than standard disk drives are included in the list box. Files saved in devices like "RAM", "RAD" or "VD0" (all of which are RAM-based) are lost after the computer is switched off. When Parent is selected, the rightmost name in the Path string gadget is removed from the path. The Parent gadget can be used to "pop" off drawer names and the volume or device name without having to use the keyboard. The gadget is called Parent because it can be used to move to the parent directory of the current directory, which is the directory which contains the currently displayed files. To confirm the selection of a file and remove the requester, the Proceed gadget must be selected, or the key can be pressed when the cursor is in the File string gadget, or double-clicking (quickly pressing the left mouse button twice) on a file name in the list box. The double-click function can be disabled, if considered dangerous, as described in section 8.8.5. If the Cancel gadget is selected, the function which displayed the file requester is aborted. Any changes in the gadgets of the file requester are undone. An optional safety check (section 8.8.6) causes a warning message to be displayed if the function which displayed the file requester would overwrite some existing data. Other messages are relative to the function which displayed the file requester. Appendix A lists the messages of Personal Paint. Section 10.2 contains important information on how to handle errors which may occur during read/write operations to peripheral storage units. Section 8.9 explains how to choose whether Workbench icons should be associated with files being saved or not. Different kinds of icons can be selected. The Amiga operating system may perform another disk write operation some seconds after a file has been stored. For this reason, a disk should not be ejected from the drive (nor should the computer be switched off) for some seconds after the disk drive activity indicator light goes off. 3.5 The Progress Indicator In some time-consuming tasks, like loading a picture, complex resizing or brush image processing, it is possible, and useful, to present information in real time about the projected completion time, how fast the job is proceeding and how much has already been completed. The Progress Indicator displays this information, listing the operation currently being performed and the percentage already complete. The Stop gadget allows the operation to be stopped. One may be busy doing other things in another screen waiting for Personal Paint to complete a more complex job. For this reason, the program flashes the display and emits a sound to indicate it is finished.