@database
@node MAIN
@title "FLAGS 2.0"
@{fg shine}
                            FLAGS 2.0 (5/6/98)@{fg text}
                              by Vic E Babes
                            in Blitz Basic 2.1
                              First release.
@{fg shine}                       Contents last updated 8/9/98@{fg text}


               @{"Legal stuff  " link Legalities} : Distribution/Disclaimer/Requirements.

               @{"What         " link What} : is it?
               @{"Notes        " link Notes} : about the source code.
               @{"Adding Topics" link Topics} : how to add new topics.

               @{"Credits      " link Credits} : for Commodities Library.

               @{"Advertisement  " link Advert} : for another program.
               @{"Rainbow Islands" Link RI} : VERY IMPORTANT!!


@endnode

@node RI
@title "FLAGS 2.0"

 @{fg shine}Rainbow Islands@{fg text}

 Never mind Amiga Doom - I got a @{fg shine}4th@{fg text} rainbow on Rainbow Islands - April '98
 Besides - I can't rund Amiga Doom - I've only got 6mb including chip.

 @{fg shine}@{"Downer..." link MAIN}@{fg text}
@endnode

@node Legalities
@title "FLAGS 2.0"

 @{fg shine}Distribution:@{fg text} Do what you like with it.

 @{fg shine}Disclaimer:@{fg text}   I accept no responsibility if it causes any damage
               to you or your machine.

 @{fg shine}Requirements:@{fg text} Blitz Basic isn't required, but it would be
               pointless without it - well, no, actually it wouldn't.

 @{fg shine}@{"Okay..." link MAIN}@{fg text}
@endnode

@node What
@title "FLAGS 2.0"

 @{fg shine}What is it?@{fg text}

 Ever find  yourself in the middle of typing a command, such as Window, or
 GTGetAttrs, and needed to know the value of a certain flag?  Or wanted
 to know the rawkey-code for a certain key?  Had to turn the light on
 to read the manual?  Then Flags is the program for you.  Simply press
 "LAlt, LShift" and "f" and up will pop Flags.

 In fact if you double click its icon now, and then press the above
 key-combo, you can look at Flags whilst reading this.

 Flags will pop-up onto whichever screen you are on at the time (it doesn't
 check these screens so don't try it in a paint package!), and will list,
 in button form, the following topics:

   Quit                      to quit
   Hide                      to hide

   Screen Flags              Lists flags for Screen command
   Screen Tags               Lists ScreenTags tag values
   Window Flags              Lists flags for Window command
   IDCMP Flags               Lists IDCMP flags
   Gadget Flags              Lists flags for Gadget command
   Gadget Tags               Lists tags for GTGet and GTSetAttrs
   Type Sizes                Lists byte-sizes of types
   InitCopList Flags         Lists flags for InitCopList command
   Interrupt Types           Lists Interrupt types
   Req Flags                 Lists flags for ReqFileRequester
   RawKeys                   Lists RawKey codes
   Test Keys                 a routine that displays the character, ascii
                             Rawkey, and Qualifier codes for any key or
                             key-combo that you press.
   $# Commands Not In Help   a list of string and variable operators
                             that are not listed when you click the Library
                             option - i.e. - if you're looking at 'Chr$'
                             in the Help window, and then click on Library
                             to see associated string commands - these
                             ones won't be there - useful when you can't
                             remember the name of that string command you
                             want.
   CX Events                 Lists the events sent by exchange when a
                             commodity event has taken place.
   MenuItem Flags            Values for flags used in menu items.

 Click on one of these buttons, and a window will appear with the stated
 information - so click on 'Window Flags' and the window will display
 info. on the Window Flags, etc.  The only different one is, Test Keys,
 which will bring a little window up that will display information about
 any key/key-combo that you might do, until you close it.

 Click on "Hide" to make it disappear again.

 Some of this information is available from the online help (if you know
 where to find it, but another thing about flags is you can keep the
 information window on Ted whilst typing your command.

 Highly-useful, if you're a Blitz programmer - though most of the flags
 are pretty global as far as the Amiga is concerned, so should be
 useful for any language.

 @{fg shine}@{"So that's what it is..." link MAIN}@{fg text}
@endnode

@node Notes
@title "FLAGS 2.0"

 @{fg shine}Notes@{fg text}

 I've included the source so that you can make changes/add topics etc,
 just follow the advice in this guide - see the section @{"Adding Topics" link Topics}.

 If you want to change the "Hotkey" that brings Flags up, you'll also
 have to do that in the source, just do a 'Find' "SetHotKey" and change
 the string to the key-combo you want.  I could probably have written
 a routine to read the icon, but this would have added to its size.

 Flags loads two fonts, and uses the one most appropriate to the window
 its called from - (System.font 8 and 11 - 6k all together).  I haven't
 accounted for Super-High-Res-laced fonts because I doubt anyone uses
 Ted in this mode - but the buttons and info. are still quite legible.
 I've included Topaz.font 11 (as it's not standard).

 The reason the gadgets and windows don't simply resize according to
 the default font, is because I still don't know how to get the
 sizes for them (tf_YSize and tf_XSize give me inappropriate figures).

 There is very little in the way of error-checking, as I wrote it for
 myself, and no my system - but if you're a Blitz Programmer, you
 shouldn't have any trouble altering it to suit you.

 @{fg shine}@{"I'll look at the source code then..." link MAIN}@{fg text}
@endnode

@node Topics
@title "FLAGS 2.0"

 @{fg shine}Adding Topics@{fg text}

 There are four program labels that will take you to where you need to
 be to add new topics:

 @{fg shine}.numtops@{fg text}

  Will take you to the #numtopics constant which you should increase
  by however many topics you are adding - this will sort out the topic
  gadgets/window size automatically.

 @{fg shine}.select@{fg text}

  Will take you to the end of the case statement that decides which
  button you clicked - simply add a new statement with the next
  <gadget number> available, followed by your <data label>, i.e.

       @{fg shine}Case@{fg text} <gadget number> : @{fg shine}restore@{fg text} <data label name>

 @{fg shine}.datatitles@{fg text}

  A list of Data$ <topic title> to which you should add your topic
  title at the end - this will be displayed in the topic button, i.e.

       @{fg shine}Data$@{fg text} "Topic Name"

 @{fg shine}.enddata@{fg text}

  will take you to the end of the data statements so that you can
  add yours, which should be in the format:

    .YourDataLabelName            ;as specified in the case statement
     @{fg shine}Data@{fg text}.b n                     ;number of lines of data to print
     @{fg shine}Data@{fg text}$ "your topic text"      ;followed by the data itself
     @{fg shine}Data@{fg text}$ "etc.........          ;unless you resize the window width
                                  ;you shouldn't go past column 55 in Ted
  You can also include

 @{fg shine}Data@{fg text}$ "x"

  which will cause the next line to be printed in white - @{fg shine}DON'T ADD
  THIS LINE@{fg text} to 'Data.b n' - the loop that prints the text ignores this
  "x".  It will crash if you do - be warned.

  Warning! on a 271 high screen, I can get upto 30 lines - any more
           than this and the program will crash, because it doesn't
           check that the window can fit on the screen - so if you
           need to display more information than will fit, think about
           making the window wider (window 1), and having longer lines.

 That's it.  Hope you find it as useful as I do - I've got ToolsDaemon
 launching flags automatically when I launch Blitz.

 @{fg shine}@{"So that's how I add new topics..." link MAIN}@{fg text}
@endnode

@node Credits
@title "FLAGS 2.0"

 @{fg shine}Credits@{fg text}

 Thanks to Reflective Images for RICommoditiesLib in Blitz Basic 2.1
 which made this possible.  Though I should add that if anyone is trying
 without success to get Ted to recognize @{fg shine}"SetStatus"@{fg text} as a command - my
 version of Blitz (2.1) had a .obj file that was not the same as the .obj
 file created when making an executable of RICommoditiesLib.bb.  I had
 to create a new .obj file by compiling the .bb file, and then running
 MakeDefLibs.bb again.

 One other thing - there seems to be a bug in the commodities lib, because
 it doesn't free up all of the memory when quitted - I have found that
 the usefulness of the program makes up for the amount of memory I may
 lose in a session - I don't know if there is an updated version of the
 RICommoditiesLib that has sorted this.

 @{fg shine}@{"I'll check that then..." link MAIN}@{fg text}
@endnode
