home *** CD-ROM | disk | FTP | other *** search
- Summary of Updates to OpalPaint
-
- New features for OpalPaint v2.3
-
- 1) Key File:
-
- All keyboard commands are now definable, the text file containing
- these definitions is called "OpalPaint:Prefs/OpalPaint.keys". This file
- should be fairly self explanitory, each key definition contains a string
- defining the key combination followed by a token keyword defining the
- operation to be performed. For example:
-
- Amiga P Preferences
-
- defines that the Amiga-shift-p combination should bring up the preferences
- menu.
-
- Comments begin with a // combination, whenever a comment is encountered,
- the rest of the line is ignored. Any available keywords which are
- undefined are specified at the top of the file in a comment.
-
- The ARexx command 'Key' has been changed to take keyfiles into account.
- For instance if your ARexx script has the command:
-
- Key Amiga Q
-
- This will only work properly if the user's keyfile has Amiga Q defined as
- quit (which it was in all previous versions of OpalPaint).
-
- The ARexx Key command now accepts the same keyword tokens as those used
- in the keyfile. The above command can now be changed to:
-
- Key Quit
-
- which will work regardless of any keyfile definitions.
-
-
- 2) Raising the menu bar.
-
- Some monitors cannot be adjusted to view the entire overscan area, this
- causes the menu bar to not be entirely visible when operating in overscan
- mode. To help overcome this problem, there is now a preference options
- which will raise the toolbar up in when working on overscan images.
-
- This preference option is on by default, so you must turn it off if you
- want OpalPaint to operate as in previous versions.
-
- 3) Pen flicks.
-
- When OpalPaint is used in combination with a pressure sensitive tablet,
- pen flicks can now be used to hide the menu bar and enter the palette menu.
- To hide/redisplay the menu bar, flick the pen quickly vertically. To enter
- or quit the palette menu, flick the pen to the horizontally.
-
- Pen flicks are enabled by default, but can be disabled in preferences.
-
-
- 4) Clone texture mode.
-
- The clone and pantagraph modes are similar to the relative rubthrough
- mode previously available in OpalPaint, however these two new modes are far
- more powerful and simpler to use.
-
- Once the clone mode is enabled via the texture menu, or by using alt-c,
- an extra cross-hair will appear on the screen. This cross-hair represents
- the area from which the texture information will come from. The cross-
- hair can be move at any time by simply moving the mouse pointer over it,
- selecting it with the left mouse button and dragging it to a new location.
- Alternatively, the cross-hair can be positioned by moving the mouse cursor
- to the desired location and pressing alt-shift-c.
-
- When in clone mode, drawing to any other part of the image will copy the
- image data from the clone cross-hairs to that screen location. Hence a
- part of the image can be cloned to any other parts of the image.
-
- 5) Pantograph texture mode.
-
- The pantograph mode is similar to the clone mode, but is much more useful
- for image retouching.
-
- The pantograph mode is enabled in the texture menu, or using the alt-p
- combination. Again an extra cross-hair will appear on the screen, and all
- drawing operations will use this cross-hair as the source for colour
- information.
-
- When the pantograph is first enabled, the cross-hair is stationary and
- can be dragged to a new location in the same maner as the clone mode.
- However, once a drawing operation is initiated, the two cross-hairs will
- always remain the same distance appart. This allows simplifies retouching
- by making sure that the image data being copied across will always match
- up, even over multiple brush strokes.
-
- If you wish to reposition the pantograph, holding down the shift key
- (while your not drawing) will imobilise the pantograph cross-hair. To
- reposition the pantograph, simply move the mouse until the smaller
- cross-hair is over the area you wish to copy from, hold down the shift key
- and move to the are you want to copy to, and relase the shift key.
-
- The pantograph cross-hair can also be moved to the current cursor
- position by pressing alt-shift-p.
-
- 6) New loaders/savers.
-
- A GIF loader, as well as a VPB loader and saver have been added. The
- VPB loader and saver allows images to be transfered between OpalPaint and a
- Quantel PaintBox via the Picture Port interface.
-
- 7) Zapping brushes.
-
- Brushes can be zapped in the same manner as images using the
- Amiga-Shift-z key combination. This will apply the current drawing mode,
- gradients etc to the current brush.
-
- 8) Speed.
-
- Amiga 4000 owners should see a reasonable speed increase in some drawing
- operations, such as airbrushing.
-
- 9) ARexx Requesters.
-
- Many ARexx scripts were becoming cumbersome to use due to the limited
- nature of the old requester commands in OpalPaint (AskString, AskProp etc).
- To help simplify ARexx macro user interfaces, and to make more complex
- ARexx scripts possible, OpalPaint 2.3 now gives ARexx scripts the ability
- to create custom requesters.
-
- New Requester Commands:
-
- ReqBuild
- AddGadget
- AddText
- AddHeading
- AddBox
- InitGadget
- MutualEx
- Request
- GadgetStatus
-
-
- NOTE ON PARAMETERS
-
- All text string containing spaces needs to be enclosed in quotes, however
- ARexx strips the first level of quotes before sending the command to
- OpalPaint. Therfore two levels of quoting are required. e.g.
-
- '"This is one string" "This is another"'
-
- It is a good idea to always put all parameters in quotes as ARexx also
- has a problem when negative numbers are sent as paremeters, it interprets
- the '-' as a subtraction operator an usually generates an error. Therefore
- all of my examples will have all parameters enclosed in single quotes.
- e.g.
- AddGadget 'Button Gad1 0 -10 100 10 "A Button"'
-
-
- Command Summary:
-
- COMMAND: ReqBuild [w h Heading]
-
- This command starts the requester building process, this command must be
- issued before any of the other requester commands. The only parameters to
- this command are the width and height (in pixels) of the requester and a
- heading string which will be displayed at the top of the requester.
-
- Example:
- ReqBuild '400 200 "My ARexx Options"'
-
-
- COMMAND: AddGadget [GadgetName] [GadgetType] [Position] [Size] [GadInfo]
-
- This command is used to create a new gadget for the requester. The following
- sections describe the parameters to this command:
-
- GadgetName:
- Each gadget is given a name which is used to reference the gadget in any
- subsequent commands. Each gadget name must be unique. This name is not
- case sensitive.
-
- The names "Okay" and "Cancel" are reserved and cannot be used as gadget
- names.
-
- GadgetType:
-
- The following Gadget types are currently available:
-
- BUTTON
- A button consists of a rectangular border containing a text string. When
- a button is selected by the user, the requester is removed and control
- returns to ARexx.
-
- Example:
- AddGadget 'Button Gad1 100 50 Medium "Render"'
-
- This command adds a button with the text 'Render' appearing in it.
-
- TOGGLE
- A toggle gadget is the same in appearance to a button. When a toggle
- gadget is selected it simply toggle between the depressed (selected) and
- undepressed states. This gadget does not remove the requester.
-
- Example:
- AddGadget 'Toggle Gad1 100 50 Medium "Motion Blur"'
-
- This command adds a toggle gadget that enables the user to enable
- or disable motion blur.
-
-
- CHECK
- A Check gadget is identical in operation to a toggle gadget. A Check
- gadget however does not have any text associated with it by default
- (although it can be added later) and displays a check (tick) when selected.
-
- Example:
- AddGadget 'Check Gad1 100 50 Medium'
-
- Note: Currently the check gadget only comes in one size, for future
- compatibility however, you should specifiy medium as the size.
-
- HPROP
-
- This is a horizontal proportional (slider) gadget. You must specifiy the
- range that the prop gadget should cover. The current value for the slider
- will be displayed to the right of the gadget. If you wish the value to be
- displayed as a percentage, the 'Percent' keyword can be specified after the
- slider range.
-
- Example:
- AddGadget 'HProp Gad1 100 50 Medium 0 100 1 Percent'
-
- This creates a slider with the range of 0 to 100, the value is displayed
- as a percentage.
-
-
- A 'step' value can also be supplied which will set the distance between
- each allowable value that can be selected with the slider (i.e. the
- granularity).
-
- The total set of additional parameters for the HProp are:
-
- [Min Max] [step] [Percent]
-
- Example:
- AddGadget 'HProp Gad1 10 50 Medium -10 10 0.1'
-
- This creates a slider with a range of -10 to 10 in steps of 0.1.
-
-
- VPROP
- This is a vertical proportional gadget, the parameters and functionality
- are the same as the HPROP, except that the orientation is vertical.
-
- CYCLE
-
- The cycle gadget has similar imagery to a button, but the text displayed
- in the cycle gadget shows the currently selected option out of a list of
- available choices. The list of available choices must be specified after
- the standard gadget definition.
-
- Example:
- AddGadget 'Cycle Gad1 100 50 Medium A500 A1000 A2000 A2500 A4000'
-
- This creates a cycle gadget which allows the user to select his computer
- type from a list of 5 possible choices.
-
- STRING
- A string gadget is used for text entry. This gadget appears as a raised
- border with the current string displayed in it. Only the gadget width can
- be specified, the height is currently ignored. (NOTE: The Height should
- be set to 10 for future compatibility).
-
- An optional parameter can be given to specify the maximum length in
- characters of the entered text, if this is not specified the gadget will
- accpet up to 300 characters.
-
-
- Example:
-
- AddGadget 'String Gad1 100 50 Medium'
- AddGadget 'String Gad1 100 50 Medium 30'
-
- INTEGER
- An integer gadget is similar to a string gadget except that only
- numerical values can be entered. The allowable range can be specified
- after the gadget definition to further limit the allowable input value.
-
- Only the gadget width can be specified, the height is currently ignored.
- (NOTE: The Height should be set to 10 for future compatibility).
-
- Examples:
- AddGadget 'Integer Gad1 100 50 Medium'
- AddGadget 'Integer Gad1 100 50 Medium 0 10'
-
-
- Gadget Positioning:
-
- Positioning of any object (including text and boxes) can be either
- absolute of relative to an existing gadget. The object position always
- refers to the top-left hand edge of the object.
-
- To use an absolute position, a pixel coordinate in x y format is
- specified. If a negative value is given for x or y, this is taken as a
- distance from the right or bottom, respectively, of the requester.
-
- To use a relative position, you need to specify one of the relative
- keywords along with the Gadget name to be used as a reference followed by
- and x y offset. i.e. [Relative KeyWord] [GadName] [x y]
-
- Example:
- AddGadget 'Button Gad2 Below Gad1 0 10'
-
- This command adds a new button (Gad2) 10 pixels below Gad1 (which must
- have been previously defined). The [x y] offset is signed, so a negative y
- value will move the object upwards while a positive value will move it
- downwards.
-
- The allowable relative keywords are Above,Below,Left and Right.
-
- The [x y] parameters can also be changed to the keywords CenterX and
- CenterY, which will center the object horizontally and/or vertically with
- respect to the requester.
-
- Example:
- AddText 'Above Gadget1 CenterX -10 "Hello"'
-
- This places the text "Hello" 10 pixels above Gadget1 and centers the text
- horizontally.
-
-
- Gadget Size:
- The gadget size can either be specified as an absolute size in pixels, or
- a default gadget size can be used. The default sizes are Small, Medium and
- Large.
-
- Examples:
- AddGadget 'Button Gad2 Below Gad1 0 10 Large'
- AddGadget 'Button Gad2 Below Gad1 0 10 100 20'
-
-
- Gadget Info:
- This is any extra information required to define the gadget, any
- additional parameters are specified in the section describing that gadget
- type.
-
-
- COMMAND: AddText [Position] [Text]
-
- This command is used to add text to the requester. The text positioning
- can be absolute of relative as in AddGadget.
-
- Example:
- AddText 'Left Gad1 "Enable Motion Blur"'
-
-
- COMMAND: AddHeading [Position] [Text]
-
- This command is similar to AddText, except that the text is displayed
- with a drop shadow to make it stand out. This should be reserved for
- headings only.
-
-
- COMMAND: AddBox [Position Size] [Raised]
-
- This adds a beveled box to the requester. The position can be relative
- or absolute, note however that the position is only for the top left-hand
- corner of the box and not the complete box itself. This means that if you
- specifiy a box to be placed above a gadget the whole box will not
- necessarily be above that gadget, only the top left corner will be.
-
- The box size is always specified in pixels (there are no default sizes).
- If the 'Raised' keyword is specified the box will appear raised rather than
- recessed.
-
- Examples:
- AddBox 10 10 100 100
- AddBox Above Gad1 -10 10 100 100 Raised
-
- The second example places the top left corner of the box 10 pixels above and
- to the left of Gad1. The box is 100x100 and is recessed.
-
-
- COMMAND: InitGadget [GadName InitValue]
-
- Before the requester is displayed, the gadgets can be initialised to
- default values using this command. The initial value varies depending on
- the gadget type. The parameter for each gadget types are:
-
- Button - Cannot be initialised (has no state).
- Toggle - Either 'Selected' 'Unselected' '0' or '1'.
- Check - Either 'Selected' 'Unselected' '0' or '1'.
- HProp - Integer value within valid slider range.
- VProp - Integer value within valid slider range.
- Cycle - Any entry which was defined in the cycle list.
- String - Text string up to the maximum length the gadget can hold.
- Integer - Integer value in the valid range for the gadget.
-
- For the Toggle and Check values, '1' is equivalent to 'Selected' and
- '0' is equivalent to Unselected.
-
- Examples:
-
- InitGadget Toggle1 Selected
- InitGadget Check1 1
- InitGadget HorizProp 10
- InitGadget Cycle1 A4000
- InitGadget String1 'Ram:Temp'
- InitGadget Integer1 10
-
-
- COMMAND: MutualEx [Gad1 Gad2 Gad3 ...]
-
- A Group of Check or Toggle gadgets can be defined to exclude each other.
- If a gadget within a Mutual Exclude group is selected, all other gadgets in
- that group are deselected, this means that only one gadget can ever be
- selected at one time.
-
- By specifying more than 1 MutualEx command, multiple Mutual Exclusion
- groups can be set up.
-
- Example: This creates a requester similar to the transparency requester.
-
- AddGadget 'Toggle Std 50 30 Medium "Standard"'
- AddGadget 'Toggle RGB Below Std 0 10 Medium "RGB"'
- AddGadget 'Toggle HSV Below RGB 0 10 Medium "HSV"'
- AddGadget 'Toggle Alpha Below HSV 0 10 Medium "Alpha"'
- MutualEx Std RGB HSV Alpha
-
- NOTE: Mutual exclusion is only possible for toggle and check gadgets.
- Only the first 32 gadgets in a requester can take part in Mutual exclusion.
-
-
- COMMAND: Request [NoOK] [NoCancel]
-
- Once the requester had been defined, this command is used to display the
- requester. When the requester exits, the returned value will be either 1
- if OK or a Button gadget was hit, and 0 if cancel was hit.
-
- This command accepts 2 parameters, "NoCancel" to create a requester
- without a cancel gadget, and "NoOK" for a requester without an Okay gadget.
-
-
- COMMAND: GadgetStatus [GadName]
-
- Once the requester has completed, the status of any gadgets can be
- interrogated using this command. The return value from this command varies
- depending on the gadget type:
-
- Button - 1 if gadget was hit (and closed requester), else 0.
- Toggle - 1 if gadget was selected, else 0.
- Check - 1 if gadget was selected, else 0.
- HProp - Integer value within valid slider range.
- VProp - Integer value within valid slider range.
- Cycle - Any entry which was defined in the cycle list.
- String - Text string entered into the gadget.
- Integer - Integer value entered into gadget.
-
-
- The 2 reserved gadget names, "Okay" and "Cancel" can also be used by the
- command to determine if the Okay or Cancel gadget was hit by the User. i.e
- the following command can be used to check if the OK gadget was hit.
-
- GadgetStatus Okay
- if Result=1 then OKHit
-
-