[comp.sys.atari.st] Formdoit

ggranger@nro.cs.athabascau.ca (Greg Granger) (02/19/91)

                           FormDoIt! version 1.0
                               by Dan Wilga
            Copyright = 1991, Gribnif Software. All Rights reserved.


This program may be distributed freely, provided that this text file is 
present
and that it and the program file are unmodified.


This program replaces one part of GEM that has always been in need of
improvement: the dialog manager, sometimes known as form_do(). This is 
the part
of GEM that handles the boxes that appear in most programs in order to 
ask for
options or settings. FormDoIt adds a number of features to this 
all-important
aspect of the operating system. It is loosely based upon a program that
appeared as part of the Professional GEM Series, by Tim Oren.

Installation:
------------

FORMDOIT.PRG may be copied to the AUTO folder or run directly from the 
desktop
of your choice.


Editable Fields
---------------

An editable field is a string within a dialog box that has a vertical 
line
cursor so that you can modify it with the keyboard. FormDoIt emulates the
normal GEM dialog functions:

  o  The Tab and down-arrow keys move to the next editable field.
  o  The up-arrow key moves to the previous editable field.
  o  The left- and right-arrow keys move within a field.
  o  The Esc key clears an editable field.
  o  Backspace and Delete delete characters before and after the cursor.
  o  The mouse can be used to select an editable field for the cursor.

It also adds a number of extensions:

  o  Tab and down-arrow will move the cursor to the first editable field 
in a
     dialog box if it is already at the last one.
  o  Up-arrow will also wrap, from the first field to the last.
  o  Shift-left-arrow will move the cursor to the leftmost character in 
the
     field, and Shift-right-arrow will move all the way to the right.
  o  If a dialog box does not have a "default" button (of the type that 
gets
     selected if the Return key is pressed), then the Return key will
     automatically advance the cursor to the next editable field.
  o  The mouse will position the cursor to the character closest to where 
the
     mouse button is pressed, not just to the end of the line.
  o  There are two ways that any character in the ST's character set can 
be
     entered:
     1.  Press the Insert key. This opens a box that contains the entire
         character set. Click with the mouse on the character to use. You 
can
         click anywhere outside the box or press a key to remove the box 
if you
         decide not to use it.
     2.  If you know the ASCII value of a particular character, you can 
hold
         down the Alternate key and type it, in decimal, using the 
keypad. A
         character is generated as soon as the Alternate key is no longer 
being
         held down, or three digits have been pressed. For example, to 
enter an
         "A" (ASCII 65), you would do the following:
              Hold down the Alternate key
              Press 6 on the keypad
              Press 5 on the keypad
              Release the Alternate key
     Please note that not every character is valid for all editable 
strings;
     Just as certain keypresses may be ignored because they are not the 
right
     type, characters selected with either of these two methods may also 
be
     ignored.
  o  If you have TOS 1.0, you may have run into the "underscore bug" 
before;
     typing an underscore ("_") character with certain types of editable 
fields
     can cause GEM to crash. FormDoIt will prevent this crash from 
happening, if
     you type an underscore by accident, but the only way it can do this 
is by
     ignoring the character, so you won't see it appear.


Buttons:
-------

  Normally if you press Return in a GEM dialog, the "default" exit button 
is
  selected. This button can usually be identified by the fact that it has 
a
  very thick border.

  FormDoIt also adds a way to select the most common type of button that 
is not
  normally the default, that is, the "Cancel" button. If you press the 
Undo
  key, then the dialog will be searched for a string that is either 
"Cancel",
  "Quit", "Exit", or "Abort". If it finds one, then the button is 
selected.

  Probably the most valuable feature that FormDoIt provides is keyboard
  equivalents for buttons other than the defaults in dialogs. When it 
takes
  control, FormDoIt scans all of the buttons in the dialog box and 
assigns
  keyboard equivalents in such a way that each button has a unique one. 
When the
  dialog box appears, it will look different because there will be short 
lines
  underneath characters in most of the buttons. If you hold down the 
Alternate
  key and press the character that is underlined, the button will be 
selected.
  Up to 20 buttons in a dialog can have Alternate key assignments.


Alert Boxes:
-----------

  FormDoIt also affects the way alert boxes work; these are the pre-made 
GEM
  dialogs that usually have a Stop sign, a question mark, or an 
exclamation
  point icon in them. In addition to providing keyboard equivalents for 
the
  buttons in alerts, FormDoIt will also let you redefine what the icons 
in
  the alerts look like.
  
  If a file called FORMDOIT.BL3 is in the same directory as FORMDOIT.PRG 
when
  it runs, then the icons contained in this file are used in place of the 

  default ones in FormDoIt. Included with this program are three files:
  BORING.BL3, DEFAULT.BL3, and INVERSE.BL3. The first contains the normal 
GEM
  alert icons, the second has the default icons that will be used if 
there
  is no file called FORMDOIT.BL3 (kind of redundant), and the third has 
yet
  another set of icons in it. To use one of these files, simply rename it 
to
  FORMDOIT.BL3 and run FORMDOIT.PRG.
  
  The icon files are in Degas Elite block fomat. They can be edited and
  re-saved using Degas, but if you do edit them you must be very careful 
to
  make sure that the new file you save is a block that is exactly 32 x 
96.
  The "Snap" feature in Degas is helpful for this purpose.


Disabling FormDoIt:
------------------

  If, for some bizarre reason or other, you would like to temporarily 
disable
  FormDoIt, you can do so by holding down both Shift keys and pressing 
the
  Delete key. To turn FormDoIt back on, press the same keys again. Both 
of
  these actions will cause a short sound effect.


Compatibility:
-------------

  While every effort has been made to assure that this program works with 
other
  programs, there are a few things worth mentioning:

  Some programs use their own dialog manager and therefore will not 
benefit from
  FormDoIt at all. Some examples of this are Tempus II, K Resource, and 
two
  programs which only use their own dialogs part of the time, Aladdin and
  Superbase. The GEM desktop will also not be affected by FormDoIt 
because it
  calls the dialog manager internally and there is no way for this to be
  intercepted in such a way as to work with all ROM versions. The system 
also
  has several "canned" error messages that will not be affected by 
FormDoIt
  for the same reason, such as "Please insert disk B into drive A:" and
  "Data on this disk may be damaged."

  FormDoIt will work with the Universal Item Selector, with the exception 
that
  UIS' own keyboard equivalents prevent the Undo feature of FormDoIt from
  working.

  While FormDoIt does work with CodeKeys from CodeHead Software, any 
mouse
  button presses that occur while FormDoIt is handling a dialog box will 
not be
  recorded by CodeKeys. A macro which has been recorded without FormDoIt 
active
  can, however, be played back when FormDoIt is active, and it should 
work as
  expected. See "Disabling FormDoIt."

  FormDoIt has more strict error checking for alerts than GEM does.
  Consequently, you may find one or two programs which use more than 30
  characters per line in the alert text or more than 10 characters in a
  button. For these, FormDoIt will chopped-off the remainder (unlike GEM,
  which can produce some very odd-looking alerts!)

  The one bug I know of relates to programs which call form_do() once 
and,
  depending on which button is pressed, change the contents of one or 
more
  of the buttons in the dialog and then call form_do() again. This can 
cause
  the keyboard equivalent underlines to appear under more than one 
character
  in the same button, though it just means that the ones from the first 
call
  were not removed. I could prevent this by always undrawing the 
underlines,
  but this is such a rare case that the slowdown is really not worth it.


About "Colaware":
----------------

  You've heard of public domain, you've heard of shareware. This program,
  however, is Colaware:  if you like it, you are encouraged to send 
copious
  quantities of highly caffeinated beverages (Coke, Jolt, etc.) to the
  address below (via U.S. Mail, please; UPS won't deliver to a P.O. Box)
  so that I can continue to create more products like this one.
  
    Dan Wilga
    Gribnif Software
    P.O. Box 350
    Hadley, MA  01035
    

 Internet:  Dan.Wilga@saturn.ucc.umass.edu
 GEnie:     GRIBNIF

ekrimen@ecst.csuchico.edu (Ed Krimen) (02/20/91)

I downloaded this file last night and must say that it's great!  I won't
use all of it features, but the ones which lets you control editing fields
in dialog boxes will come in handy.

Now, I'm one to go goo-goo over system enhancements and FORMDOIT is one
of them.  You saw all the stuff in my AUTO folder.  FORMDOIT isn't like
MAGIC or FLY_EX, but it's useful unlike the others.

If you use GEM a lot, I highly recommend you download the program.

Dan will be getting his Jolt money from me.

-- 
         Ed Krimen  ...............................................
   |||   Video Production Major, California State University, Chico
   |||   INTERNET: ekrimen@ecst.csuchico.edu  FREENET: al661 
  / | \  SysOp, Fuji BBS: 916-894-1261        FIDONET: 1:119/4.0

heavy@zip.eecs.umich.edu (Richard Scott Hall) (02/20/91)

In article <65iLX5w163w@ersys.uucp> ersys!ggranger@nro.cs.athabascau.ca (Greg Granger) writes:
>

[stuff deleted]

>It also adds a number of extensions:
>
>  o  Tab and down-arrow will move the cursor to the first editable field 
>in a
>     dialog box if it is already at the last one.
>  o  Up-arrow will also wrap, from the first field to the last.

[stuff deleted]

>  o  If a dialog box does not have a "default" button (of the type that 
>gets
>     selected if the Return key is pressed), then the Return key will
>     automatically advance the cursor to the next editable field.

It is funny, I just spent all weekend writing code for a form_do that
these type of features.  Of course my code did not have all the features
mentioned here, nor was it an autoprogram, it was just intended for me
to link in with my programs.

The features I added:

   o Up/Down/Tab keys all wrap around, no more stopping at the
     top or bottom.
   o The RETURN key will always advance you to the next field
     unless you are at the last field then it will exit the dialog
     box.  Very convenient for entering text into forms.
   o The ENTER key will exit you like the normal RETURN key.
   o And the real clincher for the program I am working on, the
     form_do will also look at the serial port to see if anything
     is there, and if there is anything, it will enter it into the
     current text field as if it were typed from the keyboard.

I wrote it in Lattice C v.5 and it seems to work pretty good for
my programming purposes.

Richard Hall
University of Michigan


-- 

Standard disclaimer:  I am not me, I am who you think you are...
                      so don't blame me.

andre@cix.compulink.co.uk (Andre Willey) (02/21/91)

Now that you've told us all about Dan Wilga's wonderous sounding program,
how about someone uploading it to comp.binaries.atari.st fairly pronto...
Some of us don't have FTP access, and I think there might just be a few
people interested in this utility :-)

(Oh, and I'm assuming it works on a TT...? NeoDesk does, so I guess it's
fairly likely)

Andre

Andre Willey                       | Email: andre@cix.compulink.co.uk
7 Oaklands Road, Sutton Coldfield, |        andre%cix.UUCP@ukc.ac.uk
West Midlands, B74 2TB, England.   |        ...{mcsun}!ukc!cix!andre
Phone: (UK) 021-308-5251           | "Il est mort, Jean Luc..."

heavy@cairo.eecs.umich.edu (Richard Scott Hall) (02/21/91)

In article <memo.81486@cix.compulink.co.uk> andre@cix.compulink.co.uk (Andre Willey) writes:

[stuff deleted]

>
>(Oh, and I'm assuming it works on a TT...? NeoDesk does, so I guess it's
>fairly likely)
>
>Andre
>

I can tell you that it doesn't work with HotWire!  At least not
on my system, it crashes massively on boot-up, thank God for
DeskManager.  Without HotWire! it runs, but it is kind of flakey.
It has a field day with Maxifile trying to assign keyboard equivs
to every file name; it is kind of funny actually.  Also it doesn't
really work in Maxifile because ATL is a special key in Maxifile
so it is screwy.  I got all excited about this, and now I can't
use it...especially since I would have to give up HotWire!

Richard Hall
University of Michigan
--

Standard disclaimer:  I am not me, I am who you think you are...
                      so don't blame me.

d_alvear@jhunix.HCF.JHU.EDU (Domingo Alvear) (02/22/91)

In article <1991Feb19.175447.19230@ecst.csuchico.edu> ekrimen@ecst.csuchico.edu (Ed Krimen) writes:
>[stuff deleted]
>MAGIC or FLY_EX, but it's useful unlike the others.
 ^^^^^    ^^^^^^
Just out of curiosity, what are these?

Dom Alvear

>[more stuff deleted]
>         Ed Krimen  ...............................................
>   |||   Video Production Major, California State University, Chico
>   |||   INTERNET: ekrimen@ecst.csuchico.edu  FREENET: al661 
>  / | \  SysOp, Fuji BBS: 916-894-1261        FIDONET: 1:119/4.0

andre@cix.compulink.co.uk (Andre Willey) (02/23/91)

Could someone do me a favour and e-mail me a copy of this wonderful
sounding utility? Perhaps the person who was commenting on the problems
using it with Hotwire, etc? I only use Neodesk 3 on my TT (apart from the usual
Control Panel, Laser Driver, Cache100, Mouse Accelerator, etc which are
usually no problem at all with anything else)

I'd love to try it out for myself, so if you could ARC and UUE a copy and
e-mail it to me I'd be very grateful. Colaware, eh? I wonder how well cola
travels by air-mail :-)

Thanks,

Andre
(Sits back to wait for 100 copies to arrive, dreading the "3.3 pence per
kilobyte" e-mail bill I will get for incoming mail from our system admin
folks...!)

Andre Willey                       | Email: andre@cix.compulink.co.uk
7 Oaklands Road, Sutton Coldfield, |        andre%cix.UUCP@ukc.ac.uk
West Midlands, B74 2TB, England.   |        ...{mcsun}!ukc!cix!andre
Phone: (UK) 021-308-5251           | "Il est mort, Jean Luc..."

ekrimen@ecst.csuchico.edu (Ed Krimen) (03/01/91)

- >MAGIC or FLY_EX, but it's useful unlike the others.
-  ^^^^^    ^^^^^^
- Just out of curiosity, what are these?
 
Someone already answered the FLY_EX one, so I'll get the other.  By 
the same author, it creates Disney-like stars when you move your 
mouse.  It's at atari.archive in MAGIC.LZH or GIMMICKS.LZH.  The 
latter has two other fun programs.

-- 
         Ed Krimen  ...............................................
   |||   Video Production Major, California State University, Chico
   |||   INTERNET: ekrimen@ecst.csuchico.edu  FREENET: al661 
  / | \  SysOp, Fuji BBS: 916-894-1261        FIDONET: 1:119/4.0