home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Painting / OpalPaint2,3-020+Version.LHA / Update.doc < prev   
Encoding:
Text File  |  1994-04-22  |  17.0 KB  |  464 lines

  1.                     Summary of Updates to OpalPaint
  2.  
  3.                     New features for OpalPaint v2.3
  4.  
  5. 1) Key File:
  6.  
  7.         All  keyboard  commands are now definable, the text file containing
  8. these  definitions  is  called "OpalPaint:Prefs/OpalPaint.keys".  This file
  9. should  be  fairly  self explanitory, each key definition contains a string
  10. defining  the  key  combination  followed  by  a token keyword defining the
  11. operation to be performed.  For example:
  12.  
  13.         Amiga P   Preferences
  14.  
  15. defines  that the Amiga-shift-p combination should bring up the preferences
  16. menu.
  17.  
  18.   Comments  begin with a // combination, whenever a comment is encountered,
  19. the  rest  of  the  line  is  ignored.   Any  available  keywords which are
  20. undefined are specified at the top of the file in a comment.
  21.  
  22.   The  ARexx  command 'Key' has been changed to take keyfiles into account.
  23. For instance if your ARexx script has the command:
  24.  
  25.         Key Amiga Q
  26.  
  27.   This will only work properly if the user's keyfile has Amiga Q defined as
  28. quit (which it was in all previous versions of OpalPaint).
  29.  
  30.    The  ARexx Key command now accepts the same keyword tokens as those used
  31. in the keyfile.  The above command can now be changed to:
  32.  
  33.         Key Quit
  34.  
  35.   which will work regardless of any keyfile definitions.
  36.  
  37.  
  38. 2) Raising the menu bar.
  39.  
  40.    Some  monitors cannot be adjusted to view the entire overscan area, this
  41. causes  the  menu bar to not be entirely visible when operating in overscan
  42. mode.   To  help  overcome  this problem, there is now a preference options
  43. which will raise the toolbar up in when working on overscan images.
  44.  
  45.    This  preference option is on by default, so you must turn it off if you
  46. want OpalPaint to operate as in previous versions.
  47.  
  48. 3) Pen flicks.
  49.  
  50.    When  OpalPaint is used in combination with a pressure sensitive tablet,
  51. pen flicks can now be used to hide the menu bar and enter the palette menu.
  52. To hide/redisplay the menu bar, flick the pen quickly vertically.  To enter
  53. or quit the palette menu, flick the pen to the horizontally.
  54.  
  55.    Pen flicks are enabled by default, but can be disabled in preferences.
  56.  
  57.  
  58. 4) Clone texture mode.
  59.  
  60.   The  clone  and  pantagraph  modes are similar to the relative rubthrough
  61. mode previously available in OpalPaint, however these two new modes are far
  62. more powerful and simpler to use.
  63.  
  64.    Once  the clone mode is enabled via the texture menu, or by using alt-c,
  65. an  extra cross-hair will appear on the screen.  This cross-hair represents
  66. the  area  from  which  the texture information will come from.  The cross-
  67. hair  can  be  move at any time by simply moving the mouse pointer over it,
  68. selecting  it with the left mouse button and dragging it to a new location.
  69. Alternatively,  the cross-hair can be positioned by moving the mouse cursor
  70. to the desired location and pressing alt-shift-c.
  71.  
  72.    When in clone mode, drawing to any other part of the image will copy the
  73. image  data  from  the  clone cross-hairs to that screen location.  Hence a
  74. part of the image can be cloned to any other parts of the image.
  75.  
  76. 5) Pantograph texture mode.
  77.  
  78.   The pantograph mode is similar to the clone mode, but is much more useful
  79. for image retouching.
  80.  
  81.   The  pantograph  mode  is enabled in the texture menu, or using the alt-p
  82. combination.   Again an extra cross-hair will appear on the screen, and all
  83. drawing  operations  will  use  this  cross-hair  as  the source for colour
  84. information.
  85.  
  86.   When  the  pantograph  is first enabled, the cross-hair is stationary and
  87. can  be  dragged  to  a  new  location in the same maner as the clone mode.
  88. However,  once  a  drawing operation is initiated, the two cross-hairs will
  89. always  remain the same distance appart.  This allows simplifies retouching
  90. by  making  sure  that the image data being copied across will always match
  91. up, even over multiple brush strokes.
  92.  
  93.   If  you  wish  to  reposition  the pantograph, holding down the shift key
  94. (while  your  not  drawing)  will  imobilise the pantograph cross-hair.  To
  95. reposition  the  pantograph,  simply  move  the  mouse  until  the  smaller
  96. cross-hair  is over the area you wish to copy from, hold down the shift key
  97. and move to the are you want to copy to, and relase the shift key.
  98.  
  99.   The  pantograph  cross-hair  can  also  be  moved  to  the current cursor
  100. position by pressing alt-shift-p.
  101.  
  102. 6) New loaders/savers.
  103.  
  104.    A  GIF  loader,  as well as a VPB loader and saver have been added.  The
  105. VPB loader and saver allows images to be transfered between OpalPaint and a
  106. Quantel PaintBox via the Picture Port interface.
  107.  
  108. 7) Zapping brushes.
  109.  
  110.   Brushes   can   be  zapped  in  the  same  manner  as  images  using  the
  111. Amiga-Shift-z  key  combination.  This will apply the current drawing mode,
  112. gradients etc to the current brush.
  113.  
  114. 8) Speed.
  115.  
  116.   Amiga 4000 owners should see a reasonable speed increase in some drawing
  117. operations, such as airbrushing.
  118.  
  119. 9) ARexx Requesters.
  120.  
  121.   Many  ARexx  scripts  were  becoming cumbersome to use due to the limited
  122. nature of the old requester commands in OpalPaint (AskString, AskProp etc).
  123. To  help  simplify  ARexx  macro  user interfaces, and to make more complex
  124. ARexx  scripts  possible, OpalPaint 2.3 now gives ARexx scripts the ability
  125. to create custom requesters.
  126.  
  127.         New Requester Commands:
  128.  
  129.                 ReqBuild
  130.                 AddGadget
  131.                 AddText
  132.                 AddHeading
  133.                 AddBox
  134.                 InitGadget
  135.                 MutualEx
  136.                 Request
  137.                 GadgetStatus
  138.  
  139.  
  140.                 NOTE ON PARAMETERS
  141.  
  142.   All text string containing spaces needs to be enclosed in quotes, however
  143. ARexx  strips  the  first  level  of  quotes  before sending the command to
  144. OpalPaint.  Therfore two levels of quoting are required.  e.g.
  145.  
  146.         '"This is one string" "This is another"'
  147.  
  148.    It  is  a good idea to always put all parameters in quotes as ARexx also
  149. has  a  problem when negative numbers are sent as paremeters, it interprets
  150. the '-' as a subtraction operator an usually generates an error.  Therefore
  151. all of my examples will have all parameters enclosed in single quotes.
  152. e.g.
  153.         AddGadget 'Button Gad1 0 -10 100 10 "A Button"' 
  154.  
  155.  
  156.         Command Summary:
  157.  
  158.         COMMAND:  ReqBuild [w h Heading]
  159.  
  160.  This  command  starts the requester building process, this command must be
  161. issued  before any of the other requester commands.  The only parameters to
  162. this  command  are  the width and height (in pixels) of the requester and a
  163. heading string which will be displayed at the top of the requester.
  164.  
  165.  Example:
  166.         ReqBuild '400 200 "My ARexx Options"'
  167.  
  168.  
  169.         COMMAND:  AddGadget [GadgetName] [GadgetType] [Position] [Size] [GadInfo]
  170.  
  171.  This command is used to create a new gadget for the requester. The following
  172. sections describe the parameters to this command:
  173.  
  174.         GadgetName:
  175.   Each  gadget is given a name which is used to reference the gadget in any
  176. subsequent  commands.   Each  gadget name must be unique.  This name is not
  177. case  sensitive.
  178.  
  179.   The  names  "Okay" and "Cancel" are reserved and cannot be used as gadget
  180. names.
  181.  
  182.         GadgetType:
  183.  
  184. The following Gadget types are currently available:
  185.  
  186.         BUTTON
  187.   A button consists of a rectangular border containing a text string.  When
  188. a  button  is  selected  by  the user, the requester is removed and control
  189. returns to ARexx.
  190.  
  191. Example:
  192.         AddGadget 'Button Gad1 100 50 Medium "Render"'
  193.  
  194.   This command adds a button with the text 'Render' appearing in it.
  195.  
  196.         TOGGLE
  197.   A  toggle  gadget  is  the same in appearance to a button.  When a toggle
  198. gadget  is  selected  it simply toggle between the depressed (selected) and
  199. undepressed states. This gadget does not remove the requester.
  200.  
  201. Example:
  202.         AddGadget 'Toggle Gad1 100 50 Medium "Motion Blur"'
  203.  
  204.    This command adds a toggle gadget that enables the user to enable
  205. or disable motion blur.
  206.  
  207.  
  208.         CHECK
  209.   A  Check  gadget  is  identical in operation to a toggle gadget.  A Check
  210. gadget  however  does  not  have  any  text  associated  with it by default
  211. (although it can be added later) and displays a check (tick) when selected.
  212.  
  213. Example:
  214.         AddGadget 'Check Gad1 100 50 Medium'
  215.  
  216.   Note:   Currently  the  check  gadget  only comes in one size, for future
  217. compatibility however, you should specifiy medium as the size.
  218.  
  219.         HPROP
  220.  
  221.  This  is a horizontal proportional (slider) gadget.  You must specifiy the
  222. range  that the prop gadget should cover.  The current value for the slider
  223. will  be displayed to the right of the gadget.  If you wish the value to be
  224. displayed as a percentage, the 'Percent' keyword can be specified after the
  225. slider range.
  226.  
  227.   Example:
  228.         AddGadget 'HProp Gad1 100 50 Medium 0 100 1 Percent'
  229.  
  230.   This creates a slider with the range of 0 to 100, the value is displayed
  231. as a percentage.
  232.  
  233.  
  234.  A  'step'  value  can also be supplied which will set the distance between
  235. each  allowable  value  that  can  be  selected  with the slider (i.e.  the
  236. granularity).
  237.  
  238.   The total set of additional parameters for the HProp are:
  239.  
  240.         [Min Max] [step] [Percent]
  241.  
  242.   Example:
  243.         AddGadget 'HProp Gad1 10 50 Medium -10 10 0.1'
  244.  
  245.    This creates a slider with a range of -10 to 10 in steps of 0.1.
  246.  
  247.  
  248.         VPROP
  249.   This is a vertical proportional gadget, the parameters and functionality
  250. are the same as the HPROP, except that the orientation is vertical.
  251.  
  252.         CYCLE
  253.  
  254.   The  cycle gadget has similar imagery to a button, but the text displayed
  255. in  the  cycle  gadget shows the currently selected option out of a list of
  256. available  choices.   The list of available choices must be specified after
  257. the standard gadget definition.
  258.  
  259. Example:
  260.         AddGadget 'Cycle Gad1 100 50 Medium  A500 A1000 A2000 A2500 A4000'
  261.  
  262.   This creates a cycle gadget which allows the user to select his computer
  263. type from a list of 5 possible choices.
  264.  
  265.         STRING
  266.    A string gadget is used for text entry.  This gadget appears as a raised
  267. border  with the current string displayed in it.  Only the gadget width can
  268. be  specified,  the height is currently ignored.  (NOTE:  The Height should
  269. be set to 10 for future compatibility).
  270.  
  271.    An  optional  parameter  can  be  given to specify the maximum length in
  272. characters  of  the  entered text, if this is not specified the gadget will
  273. accpet up to 300 characters.
  274.  
  275.  
  276. Example:
  277.  
  278.         AddGadget 'String Gad1 100 50 Medium'
  279.         AddGadget 'String Gad1 100 50 Medium 30'
  280.  
  281.         INTEGER
  282.    An  integer  gadget  is  similar  to  a  string  gadget except that only
  283. numerical  values  can  be  entered.   The allowable range can be specified
  284. after the gadget definition to further limit the allowable input value.
  285.  
  286. Only  the  gadget  width can be specified, the height is currently ignored.
  287. (NOTE:  The Height should be set to 10 for future compatibility).
  288.  
  289. Examples:
  290.         AddGadget 'Integer Gad1 100 50 Medium'
  291.         AddGadget 'Integer Gad1 100 50 Medium 0 10'
  292.  
  293.  
  294.         Gadget Positioning:
  295.  
  296.   Positioning  of  any  object  (including  text  and  boxes) can be either
  297. absolute  of  relative  to  an existing gadget.  The object position always
  298. refers to the top-left hand edge of the object.
  299.  
  300.   To  use  an  absolute  position,  a  pixel  coordinate  in  x y format is
  301. specified.   If  a  negative  value is given for x or y, this is taken as a
  302. distance from the right or bottom, respectively, of the requester.
  303.  
  304.   To  use  a  relative  position,  you  need to specify one of the relative
  305. keywords  along  with the Gadget name to be used as a reference followed by
  306. and x y offset.  i.e.  [Relative KeyWord] [GadName] [x y]
  307.  
  308. Example:
  309.         AddGadget 'Button Gad2 Below Gad1 0 10'
  310.  
  311.    This  command  adds a new button (Gad2) 10 pixels below Gad1 (which must
  312. have been previously defined).  The [x y] offset is signed, so a negative y
  313. value  will  move  the  object  upwards while a positive value will move it
  314. downwards.
  315.  
  316.    The allowable relative keywords are Above,Below,Left and Right.
  317.  
  318.    The  [x  y]  parameters  can also be changed to the keywords CenterX and
  319. CenterY,  which  will center the object horizontally and/or vertically with
  320. respect to the requester.
  321.  
  322.  Example:
  323.         AddText 'Above Gadget1 CenterX -10 "Hello"'
  324.  
  325.   This places the text "Hello" 10 pixels above Gadget1 and centers the text
  326. horizontally.
  327.  
  328.  
  329.         Gadget Size:
  330.   The gadget size can either be specified as an absolute size in pixels, or
  331. a default gadget size can be used.  The default sizes are Small, Medium and
  332. Large.
  333.  
  334. Examples:
  335.         AddGadget 'Button Gad2 Below Gad1 0 10 Large'
  336.         AddGadget 'Button Gad2 Below Gad1 0 10 100 20'
  337.  
  338.  
  339.         Gadget Info:
  340.   This  is  any  extra  information  required  to  define  the  gadget, any
  341. additional  parameters  are specified in the section describing that gadget
  342. type.
  343.  
  344.  
  345.         COMMAND:  AddText [Position] [Text]
  346.  
  347.   This  command is used to add text to the requester.  The text positioning
  348. can be absolute of relative as in AddGadget.
  349.  
  350. Example:
  351.         AddText 'Left Gad1 "Enable Motion Blur"'
  352.  
  353.  
  354.         COMMAND:  AddHeading [Position] [Text]
  355.  
  356.   This  command  is  similar  to AddText, except that the text is displayed
  357. with  a  drop  shadow  to  make  it stand out.  This should be reserved for
  358. headings only.
  359.  
  360.  
  361.         COMMAND: AddBox [Position Size] [Raised]
  362.  
  363.   This  adds  a beveled box to the requester.  The position can be relative
  364. or  absolute,  note however that the position is only for the top left-hand
  365. corner  of the box and not the complete box itself.  This means that if you
  366. specifiy  a  box  to  be  placed  above  a  gadget  the  whole box will not
  367. necessarily be above that gadget, only the top left corner will be.
  368.  
  369.   The  box size is always specified in pixels (there are no default sizes).
  370. If the 'Raised' keyword is specified the box will appear raised rather than
  371. recessed.
  372.  
  373. Examples:
  374.         AddBox 10 10 100 100
  375.         AddBox Above Gad1 -10 10 100 100 Raised
  376.  
  377.   The second example places the top left corner of the box 10 pixels above and
  378. to the left of Gad1. The box is 100x100 and is recessed.
  379.  
  380.  
  381.         COMMAND: InitGadget [GadName InitValue]
  382.  
  383.   Before  the  requester  is  displayed,  the gadgets can be initialised to
  384. default  values  using this command.  The initial value varies depending on
  385. the gadget type. The parameter for each gadget types are:
  386.  
  387.         Button  - Cannot be initialised (has no state).
  388.         Toggle  - Either 'Selected' 'Unselected' '0' or '1'.
  389.         Check   - Either 'Selected' 'Unselected' '0' or '1'.
  390.         HProp   - Integer value within valid slider range.      
  391.         VProp   - Integer value within valid slider range.      
  392.         Cycle   - Any entry which was defined in the cycle list.
  393.         String  - Text string up to the maximum length the gadget can hold.
  394.         Integer - Integer value in the valid range for the gadget.
  395.  
  396.   For the Toggle and Check values, '1' is equivalent to 'Selected' and
  397. '0' is equivalent to Unselected.
  398.  
  399.    Examples:
  400.  
  401.         InitGadget Toggle1 Selected
  402.         InitGadget Check1 1
  403.         InitGadget HorizProp 10
  404.         InitGadget Cycle1 A4000
  405.         InitGadget String1 'Ram:Temp'
  406.         InitGadget Integer1 10
  407.  
  408.  
  409.         COMMAND: MutualEx [Gad1 Gad2 Gad3 ...]
  410.  
  411.   A  Group of Check or Toggle gadgets can be defined to exclude each other.
  412. If a gadget within a Mutual Exclude group is selected, all other gadgets in
  413. that  group  are  deselected,  this  means that only one gadget can ever be
  414. selected at one time.
  415.  
  416.   By  specifying  more  than  1 MutualEx command, multiple Mutual Exclusion
  417. groups can be set up.
  418.  
  419.   Example: This creates a requester similar to the transparency requester.
  420.  
  421.         AddGadget 'Toggle Std 50 30 Medium "Standard"'
  422.         AddGadget 'Toggle RGB Below Std 0 10 Medium "RGB"'
  423.         AddGadget 'Toggle HSV Below RGB 0 10 Medium "HSV"'
  424.         AddGadget 'Toggle Alpha Below HSV 0 10 Medium "Alpha"'
  425.         MutualEx Std RGB HSV Alpha
  426.  
  427.   NOTE:   Mutual  exclusion  is only possible for toggle and check gadgets.
  428. Only the first 32 gadgets in a requester can take part in Mutual exclusion.
  429.  
  430.  
  431.         COMMAND:  Request [NoOK] [NoCancel]
  432.  
  433.   Once  the requester had been defined, this command is used to display the
  434. requester.   When  the requester exits, the returned value will be either 1
  435. if OK or a Button gadget was hit, and 0 if cancel was hit.
  436.  
  437.   This  command  accepts  2  parameters,  "NoCancel"  to create a requester
  438. without a cancel gadget, and "NoOK" for a requester without an Okay gadget.
  439.  
  440.  
  441.         COMMAND: GadgetStatus [GadName]
  442.  
  443.    Once  the  requester  has  completed,  the  status of any gadgets can be
  444. interrogated using this command. The return value from this command varies
  445. depending on the gadget type:
  446.  
  447.         Button  - 1 if gadget was hit (and closed requester), else 0.
  448.         Toggle  - 1 if gadget was selected, else 0.
  449.         Check   - 1 if gadget was selected, else 0.
  450.         HProp   - Integer value within valid slider range.      
  451.         VProp   - Integer value within valid slider range.      
  452.         Cycle   - Any entry which was defined in the cycle list.
  453.         String  - Text string entered into the gadget.
  454.         Integer - Integer value entered into gadget.
  455.  
  456.  
  457.   The  2 reserved gadget names, "Okay" and "Cancel" can also be used by the
  458. command to determine if the Okay or Cancel gadget was hit by the User. i.e
  459. the following command can be used to check if the OK gadget was hit.
  460.  
  461.         GadgetStatus Okay
  462.         if Result=1 then OKHit
  463.  
  464.