[net.micro.amiga] Gadget Editor Specifications

crunch@well.UUCP (John Draper) (06/06/86)

              The Programmers Network Gadget Editor Project
              =============================================

   I have finally finished the "primitive phase" of the gadget editor
and should be showing up in the Fish disks.   This is a very primitive
First Draft.  Below is a list of the current features,  and I'm making
a list of the intended features we should include.   I will have diskettes
at the BADGE meeting.


USING THE GADGET EDITOR
-----------------------

   The gadget editor allows the creation of Intuition Gadgets by "Drawing"
them in the appropriate places on the screen.    You can then use the
"Add Gadgets" option in the "Utility" menu to add the gadgets in your
"working window".    You can re-size and re-locate them even after they
have been "Added".   

   Suppose you want to add a "BOOLEAN" type gadget for some application
program,   you pull down the "Gadget Types" menu and select "BOOLEAN"
on the menu.   Now,  lets assume you want to gadget to "Toggle" on and
off with each "Press" of the mouse.    Go to the "Activation" menu, and
select the "TOGGLESELECT" menu option.   You can have any combination of
flags that are clearly marked in the menu.    Now,  you are ready to draw
them on the screen.    The drawing doesn't actually add the gadgets yet,
it only allows you to draw the "Outline" where they are to be positioned.
You CAN if you want just add the gadgets immediately as you draw them,
but because the PROTECTION features haven't been inplemented,  it's
wise to add them later.    I usually want to draw several types,  So
if I need 4 booleans,  3 strings, and 6 proportionals,   I set the gadget
types and appropriate flags FIRST,   draw as many as I need of a 
particular type,  them Add them.    Next, I select the next type, and
repeat.   The RIGHT mouse button is used to "Draw and move" the gadgets
and the LEFT button is reserved for Intuition to diddle with.

   The program "as it stands" has a lot of bugs,  however,  as volunteers
work on different SECTIONS of it,   they will eventually go away.    
Currently,  This is what it does:

  1. Selects a gadget type,  Allows interactive "diddling" of the gadget
     on the screen.

  2.  Once the gadgets are added,  it allows the user to change their 
     locations,  Flag settings,  and other parameters.    Once the desired
     effect is created:

  3.  It then prints out the "source code" of structure initializations
     and links them up into something "Compilable".    Currently this 
     I/O is sent through the serial port,  but just replace the "kprints's"
     into fprintf's into your favorite file.

THE MENUS
---------

FILE: 
----
  New gadgets file - Select this to "clean the slate" and select a new 
                     file (Not implemented yet).
  Get Gadgets file - Get a previous gadget from a file (Not implemented
                     yet.
  Save Gadgets     - Save gadgets to a file in "raw" form  (Not yet)
  Save as Source   - Saves gadgets as source (Through serial port now)
  Quit program     - Exits


Gadget type
-----------

  Boolean Gadget   - Select BOOLEAN gadget type
  Prop Gadget      - Proportional Gadget
  String gadget    - String gadget


Activation
----------

  Clear all flag   - Clears any flags previously set
  RELVERIFY        - (Rest explained in Intuition manual)    
  FOLLOWMOUSE
  GADGIMMEDIATE
  ENDGADGET
  TOGGLESELECT
  ENDGADGET
  LONGINT
  RIGHTBORDER
  LEFTBORDER
  TOPBORDER
  BOTTOMBORDER
  STRINGCENTER
  STRINGRIGHT
  ALTKEYMAP

Gadget Flags
------------

  Clear all flags  - Clears all flags
  GADGHCOMP
  GADGHBOX
  GADGHIMAGE
  GADIMAGE
  GRELBOTTOM
  GRELRIGHT
  GRELWIDTH
  GRELHEIGHT
  SELECTED
  GADGDISABLED

Utilities
---------

  Add new gadget - Adds the actual gadget to the working window.
  Deletes last Gadget - Deletes the last gadget or selected gadget
      Gadget selection is done by pressing RIGHT button while within
      the rectangle ( Not implemented yet)
  Set Gadget Name - Sets the gadget name so it gets printed in the
      source ( not yet )
  Add Intuitext - Adds textual names to gadget ( Not yet)
  Set Image/border - Makes Image or Border ( Borders implemented always)
  Selected Image/border - Makes SelectRender Image or Border ( not yet).
  Change gadget size - (oops!!  Dont need this item now )
  Change gadget location - ( nor this one )
  Set Mutual Exclude - ( not yet)
  Add UserID - (not yet)
  Set Prop info - (oops !! Don't need this anymore )

PropInfo flags
--------------

  Clear flags
  AUTOKNOB
  FREEHORIZ
  FREEVERT
  PROPBORDERLESS
  KNOBHIT

  

THATS JUST ABOUT IT
-------------------

   Just as it stands it can save developers a lot of agonizing time and
mistakes,  but it can be improved a LOT!!   This is where YOU come in, and
help out.   There is a lot of improvements that can be done.   A list of
proposed improvements is planned.    If you see one that YOU are interested
in doing,  Please don't hesitate to mail me at the following net address
and let me know.    I have a few "Takers" already.    Thanks folks!!


THE OFFICIAL LIST OF FEATURES TO BE ADDED
-----------------------------------------

  1.  EDITING OF IMAGES - Somehow permit the user to "Draw a rectangle"
      which becomes an arbitrary Bit image size,   then edit an image
      in "FAT BITS" mode.    

  2.  Allow the capability of saving the gadget data to disk and routines
      that can be added for programs to call the "Read them in".  Sorta 
      like the Macintosh Resource concept.    PLUS keeping the ability
      of generating SOURCE CODE so programmers can keep their program
      in ONE FILE.

  3.  Addition of IntuiText.   Working out an "easy to use" interactive
      way of adding "Text" to the gadgets,   Perhaps allowing "centering"
      of the text within the borders.


  I'm sure there is a LOT that can be added,  but Don't let ME stop you
(smile).    I will be keeping the Source on the WELL in the Programmers
Network and on Compuserve and Delphi.    This is kept in a special section
and is accessable to only those people wanting to help out.    If anyone
wants access to the source,  and wants to help out,  Please mail me at the
mailbox below.   If anyone wants or needs it,  I can put them on Fred 
Fish's disks in executable form for those just needing the "Primitive"
version,  as it is definately useful as it is now.    I suspect, we will
be providing "Updates" in executable form for those just wanting to use it.
The sources will be updated constantly.    Remember!!  ONLY available
to those people wanting to help out.  

  Thanx for everyone's support folks!!   We are gonna make the Amiga fly
Yet!! dispite all this bad karma that's been floating about, and because
I have a full time position with a top software company,  I can now
devote more time to the Programmers Network projects.

Regards:  John Draper - The Programmers Network
"The place where we all live and Learn"
"The Global Village"

WELL: crunch
BIX:  crunch
DELPHI: CRUNCH
UUCP: ...ihnp4!ptsfa!well!crunch
CIS: 73557,1176