home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 514b.lha / GadgetED_v2.3 / GadgetED.DOC < prev    next >
Text File  |  1991-06-08  |  38KB  |  775 lines

  1.  
  2.                          - GadgetED version 2.3 -
  3.  
  4.                      © Copyright 1991 Jaba Development
  5.                     written in Aztec C version 5.0a  by
  6.                             Jan van den Baard
  7.  
  8.                                 Thanks to:
  9.  
  10.                      Jan Geißler for his suggenstions.
  11.  
  12.  DISCLAIMER
  13.  ----------------------------------------------------------------------------
  14.  The  author is  NOT  responsible  for the  suitability  or accuracy  of this
  15.  documentation and/or  the program(s) it describes.  Any damage sustained  by
  16.  the use or misuse of  this documentation  and/or the program(s) it describes
  17.  is the responsibility of the user her/him self.
  18.  ----------------------------------------------------------------------------
  19.  
  20.  COPYRIGHT
  21.  ----------------------------------------------------------------------------
  22.  GadgetED,  © Copyright 1990-91  by  Jaba Development.   All rights reserved.
  23.  This program may be  distributed  non-commercially only  providing that  the
  24.  source code,  documentation  and  copyright  notice remains  intact  and are
  25.  included with the distribution.  This program  is FREEWARE  so no  financial
  26.  donation  is  necessary  (but welcome).  If you  use this  program to create
  27.  gadgets for  a commercial  or shareware  program  I would appreciate a litle
  28.  note about it in the documentation.  I'm sorry but I have a big ego.
  29.  ----------------------------------------------------------------------------
  30.  
  31.  TABLE OF CONTENTS:
  32.  
  33.  OVERVIEW                           I
  34.  REQUIREMENTS                       II
  35.  STARTING GADGETED                  III
  36.  THE PROJECT MENU                   IV
  37.  THE GADGETS MENU                   V
  38.  THE FPEN & BPEN MENUS              VI
  39.  THE GENERATED SOURCE               VII
  40.  COMPILING                          VIII
  41.  HISTORY                            IX
  42.  NOTES                              X
  43.  
  44.  ----------------------------------------------------------------------------
  45.                                 I. OVERVIEW
  46.  ----------------------------------------------------------------------------
  47.  GadgetED is designed to save the Amiga programmer a  lot of time in creating
  48.  intuition gadgets. This version of GadgetED has the following features:
  49.  
  50.     o - editing gadgets for a workbench or a custom screen.
  51.     o - editing gadgets for a window or a requester.
  52.     o - full control over the window flags.
  53.     o - adding, modifying, moving and deleting texts for gadgets and window.
  54.     o - adding, editing, moving, re-sizing, deleting and copying of gadgets.
  55.     o - editing gadgets with the "WB 2.0" look.
  56.     o - loading IFF-ILBM brushes as gadget rendering.
  57.     o - loading IFF-ILBM colormaps for custom screens.
  58.     o - a palette editor to create your own custom colours.
  59.     o - title line gadget information.
  60.     o - fully mouse and keyboard controlled.
  61.     o - generation of source code in C or Assembler.
  62.     o - generation of Assembler source which does not need the intuition
  63.         headers to assemble.
  64.     o - generation of static data & structures in C.
  65.     o - binary saving for later loading and editing.
  66.  
  67.  ----------------------------------------------------------------------------
  68.                            II. REQUIREMENTS
  69.  ----------------------------------------------------------------------------
  70.  GadgetED was  programmed in  Aztec C V5.0a  on an  Amiga 500  Kick 1.3  with
  71.  2 Meg memory  and a  20Meg HardDisk but it  should run  on a  standard 512 K
  72.  machine. What you do need to work with  GadgetED is a C  Compiler  and/or an
  73.  Assembler with all the standard include files. GadgetED also requires a copy
  74.  of  the "tool.library",  which is also on this disk,  to be  copied into the
  75.  LIBS: directory of the GadgetED  boot disk.  This program is tested with the
  76.  NTSC-PAL program by Nico François (FISH 387) in NTSC mode and it ran fine so
  77.  it should not  give any problems on  NTSC machines  unless you try to load a
  78.  GE file that contains a window out of NTSC limits.
  79.  
  80.  ----------------------------------------------------------------------------
  81.                          III. STARTING GADGETED
  82.  ----------------------------------------------------------------------------
  83.  GadgetED can be run from the CLI or the workbench.  If you run GadgetED from
  84.  the workbench all you have to do is double-click the "GadgetED"  icon or one
  85.  of  the "GE" icons.   If you want  to run  GadgetED from  the CLI  just type
  86.  "GadgetED [filename]" where "filename" is an  optional name of the "GE" file
  87.  you want to edit. When you have started GadgetED without a filename a little
  88.  window opens in the middle of the screen with the following gadgets:
  89.  
  90.     WINDOW      - selecting this gadget tells GadgetED that you want to
  91.                   edit gadgets for a window.
  92.     REQUESTER   - selecting this gadget tells GadgetED that you want to
  93.                   edit gadgets for a requester.
  94.     1           - custom screen, depth = 1, 2  colors.
  95.     2           - custom screen, depth = 2, 4  colors.
  96.     3           - custom screen, depth = 3, 8  colors.
  97.     4           - custom screen, depth = 4, 16 colors. (SLOWS UP THE 68000)
  98.     5           - custom screen, depth = 5, 32 colors.
  99.     WORKBENCH   - if you select this gadget GadgetED still opens it's own
  100.                   screen but the colors are the same as your workbench and
  101.                   the generated structures will be for the workbench screen.
  102.  
  103.  When you are done click "OK"  and a screen opens with a little window on it.
  104.  If you click on "CANCEL" you leave the program again.
  105.  
  106.  NOTE:  If you have  selected to edit gadgets for a  requester you will see a
  107.         window with a colored rectangle in it.  This rectangle represents the
  108.         requester you are working on.  You can size and  position the  window
  109.         in order to get the requester how and where you want it.
  110.  
  111.  Now let's create our first gadget.  Move the mouse pointer to where you want
  112.  the top-left corner of  the gadget  to be and  click the left  mouse button.
  113.  If you look at the screen title now you will see some information displayed.
  114.  This information means, from left to right:
  115.  
  116.     o - the mouse pointer X coordinate.
  117.     o - the mouse pointer Y coordinate.
  118.     o - the gadget left edge.
  119.     o - the gadget top edge.
  120.     o - the gadget width.
  121.     o - the gadget height.
  122.  
  123.  NOTE: The values are relative to the top-left corner of the window/requester
  124.        This  information  is important to place  and size your gadget exactly
  125.        the way it should be.
  126.  
  127.  If you move the mouse pointer the values in  the info-line will change and a
  128.  box will follow the mouse pointer  relative to the top-left corner. This box
  129.  represents the gadget. When the box is the way you want the gadget to be you
  130.  must click the left mouse button  again and the  gadget will be added to the
  131.  window or requester. Now you have created your first gadget with GadgetED so
  132.  let's take a look at the menus to see what else you can do.
  133.  
  134.  ----------------------------------------------------------------------------
  135.                          IV. THE PROJECT MENU
  136.  ----------------------------------------------------------------------------
  137.  
  138.  This menu consists of the following items:
  139.  
  140.  About:    <right Amiga ?>
  141.  
  142.  Function: display  information about  the copyright,  the author  etc.  Just
  143.            click on the CONTINUE gadget to get rid of it.
  144.  
  145.  New:      <right Amiga N>
  146.  
  147.  Function: erases all gadgets and changes made  sofar and resets  the display
  148.            to the default.  If the changes  made where  not saved a requester
  149.            opens  telling you  this and asking  you if you really  want to do
  150.            this. Click on the NO gadget if you made a mistake by calling this
  151.            function otherwise click on the YES gadget.
  152.            NOTE: If you proceed  with this function and the changes where not
  153.                  saved there is no way to get back the information.
  154.  
  155.  Load:     <right Amiga L>
  156.  
  157.  Function: This opens the file requester. In this file requester you can type
  158.            or select the name of the 'GE' file you want to load.
  159.            NOTE: The program only loads 'GE' files. If you try to load a file
  160.                  that is not a 'GE' file a requester appears telling you that
  161.                  the file you have selected was of an Unknown type.
  162.            When the file you have selected is successfully loaded. The screen
  163.            displays now displays the gadgets e.c.t. found in the file.
  164.  
  165.  Save:     <right Amiga S>
  166.  
  167.  Function: This opens the file  requester in  which you can  type or select a
  168.            name under which the  current display  is saved. You should always
  169.            save  the display  before you exit  the program.  This ensures the
  170.            file is  always up to date.  If you do not save the display before
  171.            quitting  the program  any changes  made since  the last  time you
  172.            saved will be lost.
  173.  
  174.  Generate Source:
  175.  C:        <right Amiga C>
  176.  
  177.  Function: This generates the source code in C of the  display  edited sofar.
  178.            In the file requester you can type or select the name  under which
  179.            the generated source code is saved.
  180.  
  181.  Assembler:  <right Amiga A>
  182.  
  183.  Function: As with C only the generated source code is in MC68000 Assembler.
  184.  
  185.  
  186.  Preferences: <right Amiga P>
  187.  
  188.  Function: This is used to (un)set certain preferred  program flags. It opens
  189.            a window with the following gadgets:
  190.  
  191.   Skip zero bit-planes     : This tells GadgetED to  skip any image bitplanes
  192.                              that only contains zero's.  This will reduce the
  193.                              size of the image data source GadgetED generates.
  194.   Auto Gadget -> Image size: This  tells GadgetED to automatically adjust the
  195.                              dimensions of the  gadget to the  dimensions  of
  196.                              the loaded image.
  197.   Image Copy               : This tells GadgetED to also copy any images that
  198.                              might be attached to a gadget.
  199.   Text Copy                : This tells GadgetED to also copy any  texts that
  200.                              might be attached to a gadget.
  201.   Static Structures        : This tells GadgetED  to  generate  "static" data
  202.                              and structures if C source is generated.
  203.   RAW Assembler Source     : This tells GadgetED to generate numbers  instead
  204.                              of standard intuition  names for the flags, etc.
  205.                              when assembler source is generated.  This  makes
  206.                              it  possible  to  assemble the  generated source
  207.                              without having to include the intuition headers.
  208.   WINDOW or REQUESTER      : Switch  from editing  gadgets  for  a window  to
  209.                              editing gadgets for a requester or viceversa.
  210.   Save                     : Save the preferences to a file called
  211.                              'DEVS:GadgetED.PREFS'.
  212.   Use                      : Set the preferences in the program.
  213.   Save & Use               : Both save and set these preferences.
  214.  
  215.  
  216.  Close WorkBench or
  217.  Open  WorkBench:
  218.  
  219.  Function: This enables you to close/open the workbench screen. You can close
  220.            the  workbench screen  if your  (!!computer!!) memory is running a
  221.            little low.
  222.            NOTE: It's only possible  to close the  workbench screen  if there
  223.                  are no programs running that use the workbench screen.  This
  224.                  means that if you  started GadgetED  from the  CLI it is not
  225.                  possible to close the workbench  screen because the CLI is a
  226.                  program that makes use of the workbench screen.
  227.  
  228.  Quit:     <right Amiga Q>
  229.  
  230.  Function: Quits GadgetED if  you select YES  in the requester that opened to
  231.            ask you to if you really want to do this.
  232.  
  233.  
  234.  ----------------------------------------------------------------------------
  235.                          V. THE GADGETS MENU
  236.  ----------------------------------------------------------------------------
  237.  In this menu  a lot of functions are defined which asks you to pick a gadget
  238.  to perform a  certain action.  If you  accidentally  activated one  of these
  239.  functions you can press the 'ESC' key  instead of selecting a gadget to exit
  240.  that function.
  241.  
  242.  The following items are defined in this menu:
  243.  
  244.  Move a gadget:   <F1>
  245.  
  246.  Function: When 'Move a gadget' is selected the message 'PICK GADGET TO MOVE'
  247.            is displayed in the screen title bar.  Now click on the gadget you
  248.            want to move  and the title  will display  the information  of the
  249.            selected gadget. Now move the box which represents the gadget with
  250.            the mouse to it's  new location and click on the left mouse button
  251.            and the gadget is moved to the new location.
  252.  
  253.  Size a gadget:   <F2>
  254.  
  255.  Function: When the  message 'PICK GADGET TO RE-SIZE'  is displayed  you  can
  256.            click  on the  gadget  you  want  to  re-size.  Again  the  gadget
  257.            information is displayed in the screen title.  Now move  the mouse
  258.            pointer to size the box until it has the size you want  the gadget
  259.            to be. Just click the left mouse button and the gadget is resized.
  260.  
  261.  Copy a gadget:   <F3>
  262.  
  263.  Function: This function enables  you to make  a copy of  a gadget.  Once the
  264.            message 'PICK GADGET TO COPY'  is  displayed  you can click on the
  265.            gadget you want to copy.  If  the gadget  has Images  and/or texts
  266.            attached to it and 'Image Copy' and/or 'Text Copy' was switched on
  267.            in the preferences window these  images and/or texts will  also be
  268.            copied. Otherwise the copied gadget  will have a  border as gadget
  269.            render  and no  texts.  Move the  box representing the copy to the
  270.            location you want it and click the left mouse button.
  271.  
  272.  Delete a gadget: <F4>
  273.  
  274.  Function: When the  message  'PICK GADGET TO DELETE'  is  displayed  you can
  275.            click on the gadget you want to delete and it's gone.
  276.            NOTE: Once the gadget is deleted there is no turning back.
  277.  
  278.  Edit a gadget:   <F5>
  279.  
  280.  Function: This function enables you to edit the complete set of gadget flags
  281.            intuition  has to offer  and some  other  special things. When the
  282.            message 'PICK GADGET TO EDIT' is displayed in the screen title you
  283.            can click on  the gadget  to edit. Now a window is opened with the
  284.            following gadgets in it:
  285.  
  286.    Under FLAGS:
  287.  
  288.     GADGHNONE    - nothing happens with the gadget when it is selected.
  289.     GADGHCOMP    - the  gadget  hitbox  is displayed  complemented  when  the
  290.                    gadget is selected.
  291.     GADGHBOX     - a box is drawed around the gadget when it is selected.
  292.     GRELBOTTOM   - the  gadget  top edge  is relative  to  the  bottom of the
  293.                    window.
  294.     GRELRIGHT    - the  gadget left edge  is relative  to  the  right  of the
  295.                    window.
  296.     GRELWIDTH    - the gadget width is relative to the window width.
  297.     GRELHEIGHT   - the gadget height is relative to the window height.
  298.     SELECTED     - the gadget is displayed in selected mode.
  299.     GADGDISABLED - the gadget cannot be selected.  This flag will only be set
  300.                    in the source code.
  301.  
  302.    Under ACTIVATION:
  303.  
  304.     TOGGLESELECT  - the gadget can switched  to selected  mode by clicking on
  305.                     it and to unselected mode by clicking on it again.
  306.     RELVERIFY     - intuition  waits to  send a  message until the left mouse
  307.                     button  is released  with the  pointer  still  above  the
  308.                     gadget.
  309.     GADGIMMEDIATE - intuition  sends  a  message  as  soon  as this gadget is
  310.                     selected.
  311.     RIGHTBORDER   - the gadget is placed in the right window border.
  312.     LEFTBORDER    - the gadget is placed in the left window border.
  313.     TOPBORDER     - the gadget is placed in to top window border.
  314.     BOTTOMBORDER  - the gadget is placed in the bottom window border.
  315.     ENDGADGET     - this gadget closes a requester
  316.     FOLLOWMOUSE   - this gadget signals the window when the mouse moves.
  317.  
  318.   Under PROP SPECIAL:
  319.  
  320.     AUTOKNOB       - intuition provides the gadget with it's own knob
  321.     FREEHORIZ      - the knob may be moved horizontally.
  322.     FREEVERT       - the knob may be moved vertically.
  323.     PROPBORDERLESS - intuition does not draw a border around the gadget.
  324.  
  325.     HBODY          - enter the steps the prop gadget can take horizontal here
  326.     VBODY          - enter the steps the prop gadget can take vertical here
  327.  
  328.   Under STRING SPECIAL:
  329.  
  330.     UNDOBUFFER     - create an undo buffer for this gadget.
  331.     STRINGCENTER   - the string is centered in the gadget.
  332.     STRINGRIGHT    - the string starts at the right of the gadget.
  333.     LONGINT        - allow numbers to be entered.
  334.     ALTKEYMAP      - this gadget has it's own keymap.
  335.  
  336.     SIZE           - enter the maximum amount of characters that can be typed
  337.                      in this gadget here.
  338.  
  339.  Under SOURCE LABEL NAME:
  340.  
  341.     In this string gadget you can type in the name of the gadget that it will
  342.     have in the generated source code.
  343.     NOTE: Any  spaces  found  in this  name  will be replaced by a '_'. Avoid
  344.           using names that are the same as symbols and commands of the target
  345.           language.
  346.  
  347.  Under GADGET TYPE:
  348.  
  349.   BOOL         - make this gadget a boolean gadget.
  350.   PROPORTIONAL - make this gadget a prop gadget.
  351.   STRING       - make this gadget a string gadget.
  352.   BORDERONLY   - this is  a special  flag not  defined by intuition but it is
  353.                  used to tell  GadgetED only to generate the border structure
  354.                  of this gadget in the source code. This flag can only be set
  355.                  on a BOOL gadget that has no texts or images attached to it.
  356.   GZZGADGET    - this flag should be  set with gadgets that are in the border
  357.                  of a GIMMEZEROZERO window.
  358.   NOBORDER     - this is a special flag not  defined by  intuition  but it is
  359.                  used to tell GadgetED  not to generate  source of the border
  360.                  of this gadget.  The border  will  still  be present  during
  361.                  editing but will not show in the generated source. This flag
  362.                  can only  be set  on BOOL and  STRING gadgets with no images
  363.                  attached to it.
  364.   OS2BORDER    - this is a special flag not  defined by  intuition  but it is
  365.                  used  to tell  GadgetED to  put a "WB 2.0" border around the
  366.                  gadget. This gives the impression, if the WB 2.0  colors are
  367.                  set, that the gadgets lie on top of the window.
  368.  
  369.  Selecting OK will set the  flags edited  to the gadget  and selecting CANCEL
  370.  will resume to editing without setting the edited flags.
  371.  
  372.  Gadget text:
  373.  Add a text:     <F6>
  374.  
  375.  Function: This  enables  you to  add texts  to a gadget.  When  the  message
  376.            'PICK GADGET TO ADD TEXT' is displayed in the screen title you can
  377.            click on the gadget to which a text should be added. In the window
  378.            that appears the following gadgets are displayed:
  379.  
  380.   Under Enter or edit text :
  381.  
  382.    In this string gadget you must type the text you want to add to the gadget
  383.  
  384.   Under DrawModes:
  385.  
  386.    JAM1       - only the frontpen color is used.
  387.    JAM2       - both the front and back pens are used.
  388.    COMPLEMENT - complements the colors used.
  389.    INVERSVID  - swaps the front and back pen colors.
  390.  
  391.   Selecting  CANCEL  will resume  to editing  without adding  the text to the
  392.   gadget.  Selecting  OK will close the text window and if you move the mouse
  393.   pointer in your edit window you will see the text next to the pointer.  Now
  394.   move the text to where you want it  to be  and click the  left mouse button
  395.   and the text is added to the gadget.
  396.   NOTE: If  you  didn't type  a text  in the  string  gadget  the function is
  397.         cancelled even if you have selected OK.
  398.  
  399.  
  400.  Modify a text:
  401.  
  402.  Function: When the message 'PICK GADGET TO MODIFY TEXT' is displayed you can
  403.            click on the gadget which has a text you want to modify.  A window
  404.            in which all the texts added to the gadget  are listed is  opened.
  405.            If the text you want to modify is  not displayed  in the list  use
  406.            the  prop gadget  to scroll  the list until  it is displayed.  Now
  407.            click  on OK and  the same  window as with  'Add a text' is opened
  408.            only the text and it's drawmodes are preset.  Now modify  what you
  409.            want and click on OK and the text is modified.
  410.  
  411.  Delete a text:
  412.  
  413.  Function: When the message 'PICK GADGET TO DELETE TEXT'  is displayed in the
  414.            screen title click on  the gadget  which has the  text you want to
  415.            delete. Now the  'text selector' is opened in which you can select
  416.            the text you want to delete. Click on OK and the text is gone.
  417.  
  418.  Move a text:
  419.  
  420.  Function: When  the message  'PICK GADGET TO MOVE TEXT' is displayed you can
  421.            click  on the gadget  which has the text  you want to move. In the
  422.            'text selector' that  opens you  can select  the text  you want to
  423.            move. Now select OK and if you  move the mouse  pointer inside the
  424.            edit window  and you will  see the text  next to the pointer. Move
  425.            the text to it's new  location and click the left mouse button and
  426.            the text is moved.
  427.  
  428.  IFF Image Render:
  429.  Load Gadget Image:   <F7>
  430.  
  431.  Function: When the message 'PICK GADGET TO RENDER' is displayed click on the
  432.            gadget you want to attach  an IFF Image to.  In the file requester
  433.            you can type or select the name of the  IFF ILBM file  you want to
  434.            load. If  the loading was successful  the gadget  now displays the
  435.            image loaded.
  436.            NOTE: Only IFF ILBM files can be loaded as gadget rendering.
  437.  
  438.  Load Select Image:   <F8>
  439.  
  440.  Function: When the message 'PICK GADGET TO SELECT RENDER' is displayed click
  441.            on the  gadget you  want to  attach an  IFF Image  to. In the file
  442.            requester you can type or select the name of the IFF ILBM file you
  443.            want to load. When the loading was successful you can click on the
  444.            gadget and you will see the Image loaded.
  445.            NOTE: Only  IFF ILBM files can be loaded  as select rendering. You
  446.                  cannot  load a  select  image to a gadget that has no gadget
  447.                  render image attached to it.
  448.  
  449.  Delete Images:
  450.  
  451.  Function: When the message 'PICK GADGET TO DELETE IMAGES' is displayed click
  452.            on the gadget which has  the images you  want deleted and they are
  453.            gone.
  454.            NOTE: Both  the  GadgetRender  AND  the  SelectRender  Images  are
  455.                  deleted.
  456.  
  457.  Load (IFF) ColorMap:  <F9>
  458.  
  459.  Function: This function is only available when you are editing gadgets for a
  460.            custom screen.  In the  file requester  you can type or select the
  461.            name of the IFF ILBM file  which contains  the colors you want set
  462.            in your edit screen.  If the  loading was successful the colors in
  463.            the file are now set in the edit screen.
  464.  
  465.  Edit ColorMap:        <F10>
  466.  
  467.  Function: This function is only available when you are editing gadgets for a
  468.            custom screen. In the  palette  editor  you can edit each color of
  469.            the edit screen.  With the R, G and B prop gadgets you can set the
  470.            RED, GREEN and BLUE values of the selected color.  With the 2,4,8,
  471.            16 or 32 (depending on the screen depth) colored gadgets below you
  472.            can select the color to edit.  Selecting  OK will  set the  edited
  473.            colors in the edit screen and resume to editing.  RESET will reset
  474.            the  colors as  they where before  you have  entered  the  palette
  475.            editor.  CANCEL will resume  to editing without setting the edited
  476.            colors.
  477.  
  478.  Refresh all gadgets:  <HELP>
  479.  
  480.  Function: If  for some  reason the  display is  distorted you  can call this
  481.            function to redraw the entire display.
  482.  
  483.  OS-2 Border colors:   -----
  484.  
  485.  Function: This item enables you to set the  "LightSide"  and the  "DarkSide"
  486.            color of the OS-2 borders.  The color  currently  selected  in the
  487.            "FPen" menu represents the "LightSide" of the gadget and the color
  488.            selected in the "BPen" menu represents the "DarkSide".
  489.  
  490.  Depending on whether you are editing gadgets for a window or a requester the
  491.  next item will read:
  492.  
  493.  Window or Requester:
  494.  
  495.  The items  'Add a text', 'Modify a text',  'Delete a text' and 'Move a text'
  496.  perform the same action as the functions in 'Gadget text' with the exception
  497.  that the  texts are  assigned to  the window or  requester rather  than to a
  498.  gadget.
  499.  
  500.  When you are editing gadgets for a window two items are displayed:
  501.  
  502.  Edit Flags:     <right Amiga F>
  503.  
  504.  Function: This will  bring up  a window  in which  all  the intuition window
  505.            Flags are displayed:
  506.  
  507.   WINDOWSIZING    - the window sizing gadget is included.
  508.   WINDOWDRAG      - the window can be dragged around with the title bar.
  509.   WINDOWDEPTH     - the window can be put on top or below another window.
  510.   WINDOWCLOSE     - the close window gadget is included.
  511.   SIZEBRIGHT      - the sizing gadget is placed in the right window border.
  512.   SIZEBBOTTOM     - the sizing gadget is placed in the bottom window border.
  513.   NOCAREREFRESH   - intuition  does not  send a  message to  the window  if a
  514.                     refresh is necessary.
  515.   SIMPLE_REFRESH  - intuition  does no  refreshing  at all.  the program must
  516.                     refresh the window itself when necessary.
  517.   SMART_REFRESH   - any overlapped part of  the window  will be  buffered and
  518.                     restored when possible.
  519.   SUPER_BITMAP    - the window can handle a  graphics display  that is larger
  520.                     than the window itself.
  521.   BACKDROP        - the window is always behind all other windows.
  522.   GIMMEZERZERO    - the window border is handled extra.  You  should  NOT put
  523.                     gadgets in the  window border  of a GIMMEZEROZERO  window
  524.                     without  setting the  GZZGADGET  flag in the  gadget  its
  525.                     activation  field.  Also  you should  not  put  texts  or
  526.                     BORDERONLY gadgets in the window border because when  the
  527.                     generated  source is  assembled/compiled  these won't  or
  528.                     only partly show.
  529.   BORDERLESS      - the window border is not displayed.
  530.   ACTIVATE        - the window is activated as soon as it opens.
  531.   REPORTMOUSE     - the mouse pointer position is always reported.
  532.   RMBTRAP         - the  possibility  to get  a message  if the  right  mouse
  533.                     button is pressed.  This can only be used if there are no
  534.                     menus attached to the window.
  535.  
  536.  NOTE: Only WINDOWSIZING,  WINDOWDRAG,  WINDOWDEPTH,  WINDOWCLOSE, SIZEBRIGHT
  537.        and  SIZEBBOTTOM  are actually set  when GadgetEd is running.  All the
  538.        other flags are only generated in the source code.
  539.  
  540.  
  541.  Edit IDCMP:       <right Amiga I>
  542.  
  543.  Function: This  opens a window  in which you  can set the IDCMP flags of the
  544.            window. The following gadgets are displayed in the window:
  545.  
  546.   SIZEVERIFY       - signal if the user is trying to re-size the window.
  547.   NEWSIZE          - signal if the user has resized the window.
  548.   REFRESHWINDOW    - signal if the window must be refreshed.
  549.   ACTIVEWINDOW     - signal if the window is activated.
  550.   INACTIVEWINDOW   - signal if the window is deactivated.
  551.   GADGETDOWN       - signal if a gadget is pressed.
  552.   GADGETUP         - signal if a gadget is released.
  553.   CLOSEWINDOW      - signal if the closewindow gadget is selected.
  554.   REQSET           - signal if a requester opened on the window.
  555.   REQCLEAR         - signal if the last requester is closed.
  556.   REQVERIFY        - signal if a requester try's to open in the window.
  557.   MENUPICK         - signal if a menu was picked.
  558.   MENUVERIFY       - signal if the user try's to pick a menu.
  559.   MOUSEBUTTONS     - signal if a mouse button is pressed or released.
  560.   MOUSEMOVE        - signal if the mouse was moved.
  561.                      NOTE: The REPORTMOUSE flag should be  set in the  window
  562.                            or the FOLLOWMOUSE in a gadget.
  563.   DELTAMOVE        - signal if the mouse had moved. The  position is relative
  564.                      to the previous position.
  565.   INTUITICKS       - signal every  1/50 or  1/60  second. The message must be
  566.                      replied before another INTUITICKS message is signalled.
  567.   NEWPREFS         - signal if the preferences were changed.
  568.   DISKINSERTED     - signal if a disk was inserted into one of the drives.
  569.   DISKREMOVED      - signal if a disk was removed from one of the drives.
  570.   RAWKEY           - signal if a key  was pressed. the  code is the 'RAW' key
  571.                      code.
  572.   VANILLAKEY       - signal if a  key was pressed.  the code is the 'treated'
  573.                      ASCII value of the key.
  574.   WBENCHMESSAGE    - signal a workbench message
  575.   LONELYMESSAGE    - signal a non IDCMP message
  576.  
  577.   NOTE: None of  the above flags  are actually  set in  GadgetED but they are
  578.         generated in the source code.
  579.  
  580.   Title       - Type the Window Title in here.
  581.   Label       - Type the source label name in here.
  582.  
  583.   Detail      - The window DetailPen.
  584.   Block       - The window BlockPen
  585.  
  586.   MinX        - The minimum width of the window.
  587.   MinY        - The minimum height of the window.
  588.  
  589.   MaxX        - The maximum width of the window.
  590.   MaxY        - The maximum height of the window.
  591.  
  592.   Selecting CANCEL will prevent the changes to be set. OK sets the changes in
  593.   the flags e.c.t. and will resume editing.
  594.  
  595.  Set BackFill:     <right Amiga B>
  596.  
  597.  Function: This  enables you to set  the backfill color of the window. I have
  598.            made this  function available  since I  use windows  with  another
  599.            backfill color than  color 0 a lot.  Maybe you do to (?).  You can
  600.            use a routine simular to the following to use this window backfill
  601.            color in your program:
  602.  
  603.  void WindowBackFill(struct Window *window)
  604.  {
  605.     SetAPen(window->RPort,WDBACKFILL);
  606.     RectFill(window->RPort,window->LeftEdge+window->BorderLeft,
  607.                            window->TopEdge+window->BorderTop,
  608.                            window->Width-window->BorderLeft,
  609.                            window->Height-3);
  610.     RefreshGList(window->FirstGadget,window,NULL,-1L);
  611.  }
  612.            The color used is set by the BPen menu (see THE FPEN & BPEN MENUS)
  613.  
  614.  When you are editing gadgets for a requester:
  615.  
  616.  Set BackFill:     <right Amiga B>
  617.  
  618.  Function: This enables you to set the backfill color of the requester.
  619.            The color used is set by the BPen menu (see THE FPEN & BPEN MENUS)
  620.  
  621.  
  622.  ----------------------------------------------------------------------------
  623.                        VI. THE FPEN AND BPEN MENUS
  624.  ----------------------------------------------------------------------------
  625.  
  626.  When one of these two  menus are selected  you will see a row of 2,4,8,16 or
  627.  32 (depending on the screen depth) colored items.  These items represent the
  628.  colors of the edit screen. With the items in the  FPen menu you  can set the
  629.  active FrontPen color. All gadgets added  will have a  border in this  color
  630.  and all texts  added will  have this  color as  the FrontPen color. With the
  631.  items in the BPen menu you can set the active BackPen color. All texts added
  632.  will have this color as the BackPen color.  The active BackPen color is also
  633.  used to set the BackFill color of  the requester.  The colors  selected  are
  634.  also used to set the OS 2 Border colors. (see "OS-2 Border colors")
  635.  
  636.  ----------------------------------------------------------------------------
  637.                      VII. THE GENERATED SOURCE CODE
  638.  ----------------------------------------------------------------------------
  639.  
  640.  The following definitions are made at the end of the generated source:
  641.  
  642.  NEWWINDOW or REQUESTER - a pointer to the NewWindow or Requester structure.
  643.  
  644.  If you have edited some gadgets:
  645.  
  646.  FIRSTGADGET            - a pointer to the first gadget in the list.
  647.  
  648.  If there where texts added to the window or requester:
  649.  
  650.  FIRSTTEXT              - a pointer to the first text in the list.
  651.  
  652.  If there where 'BORDERONLY' gadgets defined:
  653.  
  654.  FIRSTBORDER            - a pointer to the first border in the list.
  655.  
  656.  If you have edited gadgets for on a custom screen:
  657.  
  658.  NEWSCREEN              - a pointer to the NewScreen structure.
  659.  COLORCOUNT             - the number of colors in the screen.
  660.  
  661.  If you have edited gadgets for a window:
  662.  
  663.  WDBACKFILL             - the window backfill color used while editing.
  664.  
  665.  An array named  'Colors' of  USHORT values containing the colors which where
  666.  on the edit screen. These colors can be set by a simple LoadRGB4() call.
  667.  
  668.  If you  have edited gadgets for a  window and you have attached texts and/or
  669.  'BORDERONLY' gadgets to the window  a special gadget is placed at the end of
  670.  the gadgetlist. This gadget is only there  to draw the borders and the texts
  671.  when the window is opened or when the gadgets are refreshed.
  672.  
  673.  The GadgetID's are defined as following: Label_ID
  674.  This means that if you, for example, added a gadget with the label "UP" than
  675.  "UP_ID" will represents this gadget it's ID.
  676.  
  677.  The best way to see what the source looks like is to create some gadgets and
  678.  let GadgetED generate the source and then look at it. Basically all you need
  679.  to remember are the labels you give your gadgets to be able to access all of
  680.  the structures etc. that are linked to these gadgets. I don't really know if
  681.  the generated C source compiles under lattice , I don't have lattice, but it
  682.  should give no problems whatsoever.
  683.  
  684.  ----------------------------------------------------------------------------
  685.                             VIII. COMPILING
  686.  ----------------------------------------------------------------------------
  687.  
  688.  If you have the make utility type:
  689.  
  690.   make pre ged
  691.  
  692.  Otherwise compile the "defs.h" file with  the "-ho defs.pre"  option and all
  693.  other files with the "-so -hi defs.pre" options and then link them together.
  694.  
  695.  ----------------------------------------------------------------------------
  696.                                IX. HISTORY
  697.  ----------------------------------------------------------------------------
  698.  
  699.  VERSION    1.0     -> Let's not talk about this!
  700.  
  701.  VERSION    2.0     -> First release, let's see how it goes.
  702.  
  703.  VERSION    2.2a    -> The  generated window  source  now reads  NULL at  the
  704.                        place of the window title if the title was empty.
  705.  
  706.                        The gadgets  on the  window  won't  interfere with the
  707.                        placing  of  texts  and   gadgets  in  the  window  or
  708.                        requester  anymore.
  709.  
  710.                        Binary file  structure  expanded.  Version 2.0  binary
  711.                        files must first be patched  before GadgetED  2.2a and
  712.                        up can read  them.
  713.  
  714.                        Added "Static Structures"  switch  in  the preferences
  715.                        window to enable to  generate  static C  source  code.
  716.  
  717.                        Added  the  NOBORDER  switch to disable the generating
  718.                        of gadget border source.
  719.  
  720.                        Added  the  "Text Copy"  switch to  enable to copy any
  721.                        text attached to a gadget also.
  722.  
  723.                        Resolved a bug in "tsel.c" which gurud if more than 10
  724.                        texts  where in  the "text selector"  and the prop was
  725.                        used.  It worked  fine  when I  first  programmed this
  726.                        function with the Aztec C version 3.6a compiler ?
  727.  
  728.                        Added the possibility to set  your own window backfill
  729.                        color.
  730.  
  731.                        Added  the "RAW Assembler Source" switch to be able to
  732.                        assemble the generated assembler source without having
  733.                        to include the intuition headers.
  734.  
  735.                        Added  OS-2.0  colored borders.  This was suggested by
  736.                        Jan Geißler. Thanks Jan!
  737.  
  738.                        Workbench  usage only  worked  when  both the  GE file
  739.                        and  the   GadgetED  executable   where  in  the  same
  740.                        directory, this is now fixed.
  741.  
  742.                        GadgetED locked  up the  system if the  "tool.library"
  743.                        wasn't found. This is now fixed. (I forgot a simple if
  744.                        statement!)
  745.  
  746.  VERSION 2.3        -> Fixed  a bug  that  caused  generating faulty C source
  747.                        with gadgets that have multiple texts.
  748.  
  749.                        Fixed a bug in the  palette requester which  gurud  on
  750.                        LoRes screens.
  751.  
  752.                        Fixed the source generator to generate correct  source
  753.                        of GIMMEZEROZERO windows and GZZGADGETS (I hope...)
  754.  
  755.                        Added  the  posibility  to  set  the  colors of OS 2.0
  756.                        colored borders.
  757.  
  758.                        GadgetED now defaults to Workbench screen editing if a
  759.                        file could not be loaded uppon startup.
  760.  
  761.                        Source  generator  now generates  "V_HIRES" instead of
  762.                        "HIRES" when assembler source for hires custom screens
  763.                        is generated.
  764.  
  765.  ----------------------------------------------------------------------------
  766.                                  X. NOTES
  767.  ----------------------------------------------------------------------------
  768.  If you find bugs, I bet you will, or you have ideas to make the program more
  769.  user-friendly, please report to me at the following address:
  770.  
  771.                                             Jan van den Baard
  772.                                             Bakkerstraat 176
  773.                                             3082 HE, Rotterdam
  774.                                             Holland.
  775.