
                     Buttons history for the interested
                     ----------------------------------

23/10/96 - V0.1

Initial idea. Basic layout decided and notes made. Created gui from scratch
rather then gadtools generated for smaller, cleaner code. Bare backdrop window
with 8 buttons. Escape exits program as well as close gadget. Put in a message
port so the program couldn't be launched more than once.

24/10/96

Added to gui to enable font y cord sensitivity to a degree and put in 10
buttons as well as Quit and About at the bottom. Added routines for loading
and saving configuration via icon tooltypes. Button text routines added based
on loaded configuration. Tested clean running on WBStartup constantly along
with other programs. Added custom font routines but still not globally set
the build window routines for anything other than an 8 point font.

25/10/96

Added AppWindow functioning. Routine not implemented properly due to delayed
message returns. Looking into that one. About requester put in. Hot keys for
Quit and About requester added. Changed the gadget layout slightly under the
custom definition buttons for an extra gadget labelled Config. Still pretty
small, and the idea is that config will overwrite the button menu with a
prefs gui of the same size to enable configuration without manually editing
tooltypes. I'm now thinking along the lines of holding shift key when clicking
on a button to configure it wheras without shift, it would launch the defined
program. Lots of practical ideas noted on features to implement.

27/10/96 - V0.2

Implemented launch routines for button commands. Now they actually work :)

Added in debug routine - Enabled with a tooltype of DEBUG. It's important that
you leave this set for now as you can get an idea of what's wrong if something
goes screwy from the buttonz.temp file in ram which won't be deleted.

Buttonz now generates an external script to call the configured program so that
appropriate paths are respected which the new process inherits. All programs
are run as seperate tasks so that buttonz isn't locked afterwards.

Added configuration options Stack and Arguments for each button. See tooltypes
for example settings.

Added in quote settings if there's a split filename for the configured button.
This wouldn't happen manually, but if a file is dropped onto the window later
on when the configuration has the option, some dodgy programs have spaces in
their filenames which the cli won't like without quote marks. These are 
handled in the background by Buttonz now anyway, so nobody has to worry about
them.

Fixed bug in MsgPort and Icon search routine which hung over from programs name
change. Stupid mistake :)

28/10/96 - V0.3

Added XPos and YPos tooltype options for defining top left corner of windows
position on Workbench. I'll probably expand on this at a later date.

Added BACKDROP tooltype option. If you have this tooltype then the Buttonz
window will be a workbench backdrop and unmovable. As in the original versions.
If you leave the tooltype out then you have a normal drag bar and can move it.

Added NOBORDERS tooltype option. If you have this tooltype then Buttonz 
window will have no borders. This works best with the BACKDROP option enabled.

Put in the help requester - Naturally you press HELP. This will pop up a list
of the keyboard hot keys as well as any other important info in the end 
program.

Tidied up that horrible about requester. That'll teach me to re-use old code
with global variables :(

30/10/96 - V0.4

Fixed stupid error where NOBORDERS did the opposite of what it should do.

Added the code for Menu bar (c) message.

Fixed the bug in configuration with the Backdrop setting toggle.

Implemented new saved tooltypes routine which saved all possible configuration
options but enclosed non-active switches in [ ] quotes.

Improved the gui response by streamlining the intuition loop and flushing
unused events while requesters are present. Buttonz now makes sure it's one of
its own buttons and not some other gui before doing its job :-)

Decided it's really about time I did some serious work on buttonz instead of
fixing little bits here and there :-)

31/10/96 - V0.5

Fixed the non recognised YPOS tooltype. Stupid string reading error.

Extended the width of button sizes for prefs window requirments. Check your
XPOS settings in your icons to make sure you don't overlap the edge of your
screen. Buttonz will safely warn you and exit if this happens anyway until I
can get the check screen size routines working properly.

Implemented the Flip window for preference settings. At the moment it pops up
the path of the program configured and a seperate button for each entry which
will be clicked to pop up a file requester. I'll add in a routine to split the
path string up to seperate user arguments and a stack system. Ideally I want
to keep the window the same size, however. NB: Changes in the string gadgets
are not recorded at the moment so don't configure anything this way yet :-)

Did some minor cosmetic work on the default gadgets to fit new window sizing.
Added Save config and Font gadgets on the prefs window which are the only other
parts still needing gadgets at this time.

Added in the hotkey definitions for button numbers. IE: Press 0 to launch the
command in button 0 etc.

Added font change routine. Doesn't do anything apart from a requester but it's
ready. Put in global hotkey 'F' to call it.

Reworked entire event handler so that input routine was the same no matter
if the prefs or buttonz window is active. This way hotkeys are always available
for button definitions and the code is significantly smaller. Major work this.

01/11/96

Finally sussed an os friendly way of getting the windows position relative to
the current screen. Position of the window is saved in the configuration now.

Fixed a bug with the DEBUG tooltype in the load config routine. It looked for
9 characters in a 5 character string. :-)

Added in a SNAPSHOT configuration option. If SNAPSHOT is set in the tooltypes
then saving config will store the current window position, else it will store
the loading defaults. Apparantly closet MUI haters need this :-)

Fixed a bug in the new SNAPSHOT routine. Worked the opposite way to how it was
meant to. I've got to stop doing that :-)

07/11/96 - V0.6

Added in a configuration tooltype (ACTIVE) to set wether the window is
activated when the program is ran, or not.

Put in some safety checks which will stop Buttonz ever trying to open a window
when the screen dimensions don't allow it. Now it will default to center of
screen if illegal X & Y Positions are used. Thanks to Paul Lathwell for a handy
routine to check this.

Fixed up some major potential gadget clashes due to illegal numbering of the
gadgets against O/S recommendations. Possible guru aversion here :-)

Changed the config button to lose the paths gadgets and use a list of toggle
gadgets for the gui options currently available. The buttons launch commands
are under a major rethink right now (See notes file) so these were now obsolete
before I'd even made them work :-( The prefs window looks a bit empty right now
but extra gadgets will be dropped in as the program requires them.

28/11/96 - V0.6a

Minor changes to the wait event loop to facilitate major changes later on with
the AppWindow and CX message routines to drop in.

30/11/96 - V0.6b

Buttonz is now a commodity. Supported features are the standard Hide/Show 
Window, HotKey (still needs a bit of work but RAmiga # does the trick) and
Active/Inactive. Same as other commodities basically but this should mean it's
easy to make it dissapear at the stab of a key and pop up again when you need
it. Not sure how it'll work with multiple windows but I'll worry about that
later.

30/11/96 - V0.6c

Put in extra flags for each button definition to set launch type. Adapted the
load and save routines so that it will set up defaults when old tooltypes with
no data set are used so it's backwards compatible.

Discovered that Buttonz majorly hogs cpu time since it was converted to a
commodity and I'd missed spotting it because I'm running the wonderfull 
Executive.

30/11/96 - V0.6d

Fixed up the cpu hog problem after disabling Executive to run tests. Forgot to
use the Vwait command to synchronise the interupts. That'll teach me to RTFM!

Put in the hotkey definition (RAmiga #). Using this you can toggle the buttonz
display on and off as much as you like :) I'm thinking about changing the
hot key definition via the prefs options. I need to fill up some space anyway.

1/12/96 - V0.6e

Finally got onto the configuration part of Buttonz. There's now an AppWindow
with gadgets for setting up a button which offers Name, ProgPath, Arguments
and Stack size fields. There's a toggle gadget to set up launch type and
Use and Cancel buttons to specify if you're happy with the gadget or not.

Prefs window now accepts files being dropped onto it although it doesn't place
the data into the fields as yet. At the moment it's only a dummy routine
which is called from the main window with a keypress rather than the shift
click on button to fire it up as it will work in the end, as I'm testing the
thing out first so I can make the gui tidy.

Found a problem with scanning for key presses without a window displayed which
I've not been able to fix up tonight yet. That's the problem with having
Buttonz using more than one window now. Config button window isn't finished
yet but it's bloody 6am! :)

2/12/96 - V0.6f

At last I've tracked down that horrible bug with the default input requester.
It turned out to be a bug in my hotkey routine that told the program to shut
the window and then forgot to tell it that it shouldn't scan for keys on the
keyboard when it's in this mode :) The hotkey now works at any rate.

Fixed a nasty bug where an invalid bitmap requester would pop up when switching
to the prefs window after configuring a button.

Temporary changes to the button text on some gadgets so they all work with the
new default font supplied with buttonz - !! Read the beta testers note here !!

Made changes around the prefs window to put in a button for a file requester
to choose a program path in case the Drop icon method isn't to be used.

Fixed in a configuration option for the HotKey so it can now be defined via
the ToolTypes as well as the prefs window. NOTE: Changes made in the prefs
window won't be used as yet! Use the tooltypes to change the hotkey for now
until I add that in. I'm short on time today :(

Fixed one last potential bug with the windows routines so that requester stuff
and crashes that some of you experienced should never happen again :) Please
give it a tough test to see if I have missed anything.

3/12/96 - V0.6g

Fixed up the hotkey selection on the Prefs screen. Now it works.

Added in another button on prefs screen for choosing a temp directory.

Added OS check to ensure the Amiga Buttonz is running on is a 2.0+ machine or
it'll beep the screen and safely exit.

Corrected a severe fuck up in the commodity control options. By trying to
hide interface or show interface twice, Buttonz tried to do stuff to windows
that didn't exist - not nice :) Rearranged how the CX control stuff worked so
that hiding the interface will disable it the same as making the program
inactive which will also hide the gui. This way there's no way a gadget list
or window can be operated on without the window on screen.

Finally fixed a really annoying bug with the LaunchType cycle gadget which
chooses what type of launch routine should be used for that buttons config. It
now works with custom hacks such as MCP's Cycle-menu etc. Also figured out
that the save tooltype routine addressed the wrong program constants and
saved every launch type as something it wasn't for a while. Sure, like Spot is
really a script file <sigh>

Put in the rest of the configuration reading from the buttonz window. It's
now possible to configure a button just by holding shift and clicking on it.
The file requester for program path and the AppWindow drop file features aren't
yet in there though but at least it can be customised now :)

Ooops. Almost forgot to make it cancel changes to the button if Abort was 
clicked on the Configure button window. Fixed.

Fixed a small glitch where Buttonz redrew the main window even if no changes
were made to the button or Abort was clicked. Much nicer now.

5/12/96 - V0.6h

Put in the AppWindow routine so icons can now be dragged on the button config
window and the display will update accordingly. I'm hoping to be able to pull
in the stack settings and program type definitions later on, but Path is set
to the complete program, the name of the button is the program only, and stack
is set at the universal 4096 which is usually standard anyway. Arguments is
cleared so it can be customised manually.

Put in the file requester for selecting a program the quick way if you've 
got a huge load of drawers to work through to find an icon to drag. Usual
reqtools stuff.

Fixed a bug in the file requester for selecting program path. Aborting the
operation wouldn't leave the old fields intact. Fixed.

Discovered the tempdir selection wouldn't actually work unless you selected
a file within the directory to use for temp files. I've been unable to find
a decent way of popping up a directory requester without using a new library
as yet and increasing the code so I've changed the message slightly so it
says to select a file until I find some other way to do it.

Changed the big ugly about requester to something not likely to hog so much of
the screen.

Fixed a non-displayed text line in the help requester that's probably been in
since it first appeared back in V0.2 :) Also updated the information to show
changes in Buttonz to date. Then I found out that help wasn't working anyway.
Some stupid illogical reason says it no longer likes the help key. Changed it
to 'h' and problem solved.

16/12/96 - V0.7

Tracked down a lot of case-sensitivity errors in the appfile code. Surprised
any of it worked in the previous version :)

Fixed the path bug when dropping a file on the config window. Full path is now
used and not just the root device name. This one took bloody ages and a full
rewrite of a section to sort out! Thanks a lot Phil <growl> :)

Added an AppMenu item to the tools menu on Workbench when Buttonz is Iconified.

09/01/97 - V0.8

Haven't forgotten about this beast despite this long delay between work. Blame
Xmas, the new year, a very nasty virus all over the holidays, and, of course,
the dreaded work for the delays in getting on with the job until now.

Anyway, back on track, and the routines for saving and loading different config
files are now implemented into Buttonz and debugged. This took more work than
you might think as it's a lot different compared to handling tooltypes. Still,
it's done now and it works quite well. There's no gadgets for saving the config
yet (only the save button which saves the prefs in tooltypes still and no 
longer stores button definitions in there) but it's done by pressing 's' for
now until I fix that up. Obviously loading different config files will be 
configurable as a task from the buttons themselves with the SUBDOCK setting so
there's no need for a seperate button for that.

Put in a notification requester on startup if the default buttonz.bcfg file
isn't found in EnvArc: - this explains to the new user that this file should
be saved out after configuring the buttons to their required tastes and then
Buttonz will use it as a default all the time. Obviously if the file exists
then it will never pop up, and this keeps everyone happy.

Loading of the configuration for Buttonz look is now much quicker due to these
config changes.

READ IMPORTANT.TXT now, beta geeza's.

10/01/97 - V0.8a

Made changes to the file requester routine on the button config window so it
asks for different filetype if SUBDOCK is set on the cycle gadget so that
a buttonz config file can be selected instead of a program.

Got it loading subdock files when configured at last :)

Configured a few example menus to test the subdock feature out a bit. Works
fine now but it's still a little fiddly to use until I change a few settings
around to make it quicker to set it all up. Stuff like automatically using the
filename loaded as the save default. Toying with the idea of having a seperate
button specifically for jumping back to the default configuration. The idea 
being all buttons there are set to jump to sub menus and it'll save time having
to use one of the buttons in the other configs to call the default config as
a subdock. Confused? It's easier in practice :)

Made some quick global changes now before throwing another beta archive out to
save yet another conversion job. Buttonz now uses Envarc:Buttonz/ as the
default directory for all it's configuration files which makes it easier to
see what configs you have in a file requester, and saves scrolling through a
heap of other env: stuff to click on the filename you need. You'll need to
move your config files into this directory for Buttonz to find them when you
run this new version. Must remember to get Buttonz to create the directory if
it doesn't exist on startup for new installations.

Changed some of the meaningless requesters, updated the help window (now you
press 'h' on the keyboard instead of help until I can find out why that bit
got broken again) to show new keys, threw in a quick option to load default
configuration without a file requester to jump back to the startup set of
buttonz (just press 'l') which'll do for now until I decide if another gadget
is worth it. I refuse to use menus with Buttonz because it's being written so
that I don't have to use them myself anymore so I'd be a hypocrite :)

Found two stupid variable clashes and a mispelling of Arexx (my nickname 
- Xerra - confuses me all the time) that caused buttons set with the arexx 
flag not to get saved in the configuration. Fixed now.

Added a nice little intelligence feature so that Buttonz will automatically use
the name of the current configuration loaded in the save requester when saving
configs. This makes it a lot quicker to configure it all from scratch. Took a
surprising amount of work to get this going neatly.

Scratch the above. It's occasionally coming up with quirks like direcorty names
as well as filenames in the filename box as well as directory fields on 
requesters which is a pain in the butt. Need to rework both the save and load
routines to work out what's wrong yet again <sigh>

Put in the launch routine for running scripts. Still not sussed out a way to
get buttonz to launch a script from a shell window but it's not something that
you exactlly need anyway. I wanted to do it as I run Miami that way but it
seems that ToolsDaemon has the edge in weird events like this and I'll just 
leave out the Miami icon. That's the last of the launch options set up now
anyway. It's really just bug fixing to do now and the end of it all at last.

12/01/97 - V0.8b

Finally fixed up the default filename for save requester bug. Shortened the
executable size as well. Turned out I already had a routine for doing the
conversion in the code and wrote another bodgy one instead of using it. <duh!>

Swapped around the buttons so that About is now on the prefs window and I can
use the old button for saving the buttonz current menu.

Removed the font button and associated parts in the program. No longer needed.
The requester text was a bit dicey for censorship regulations anyway :-) Now 
I'll keep the swear words just in the source code.

Added in an intelligent confirmation requester if an attempt is made to launch
a new menu and changes have been made to the current one. This saved me a heap
of time losing configs when I was setting up the example configs as I kept
losing data due to forgetting to save before changing another config :)

Put in a clear button option. Holding control and clicking on a button will
clear its definition. I found it handy to be able to do this when configuring
the beast from scratch so I've made it easy to do. Maybe I should have put a
swap button routine in :)

Performed a very long optimise walk through of the source code cleaning bits
up, tidying up messy routines to make them shorter, and generally anything
else I could do to shorten the main program size down a bit. I guess I could
powerpack the main program but the end-user could do that if they wanted anyway
and it'll compress better within the archive if I don't. Still worked out at
just over 100k for the whole program, but at least it doesn't use any external
libraries, and it has an online command reference and all sorts of other bits
which increased the size. I blame blitz and it's bloated handling of libraries
myself :-)

This, if all goes to plan and no problems are found, should be the last beta
before Buttonz goes out public. Methinks a freebie gift to the Amiga community
from someone who's taken so much.

15/01/97 - V0.9

Changed the launch subdock around a bit so it will switch over straight away
to the new button bank after prompting you to save your config if required.

Changed the default stack setting to 4096 (standard) and set the defaults for
font name and hotkey appropriately.

Buttonz now makes a check if the buttonz config directory in EnvArc: exists
when it first runs and creates it if not.

Fixed the bug where capslock being down would make buttons not do anything when
clicked on. Actually (due to the way event qualifiers work) it will use the
launch settings of the button with it down or up now but having capslock down
would interfere with the setting if you were to use shift to configure that
button. Nothing I can practically do about that though, but if shift/click
doesn't pop up the config window then you know why.

Buttonz now has a swap button feature. Just hold down the right shift key (it's
the left shift for configuring, remember) and click on both buttons. They will
then swap places. This was a bitch to get working but it's flippin' handy now
that it works.

Added a toggle for the swapping buttons routine so that config save prompts
are called if changes have been made before switching banks or quiting.

Buttonz now has HTML documentation as created by Phillip Snell. And very nice
it is to. Amigaguide documentation is also there for the die-hards as created
by myself. The HTML stuff will be going up onto my web pages when Buttonz is
unleashed onto the public very soon now.

I think now I really must be finished bar any sudden bugs appearing when it
goes out to the betatesters again.

26/01/97 - V1.0

Added new information to the help requester.

Fixed up a typing mistake in the last update that broke the ctrl-delete button
routine.

Changed the help requester to pop up when 'i' is pressed on the keyboard for
information. This is so I can use 'Help' for multiview on the documentation
later on.

Fixed up the web address on the about requester for the correct information.
Thanks Mr. Pedant Gribble :-)

06/02/97 - V1.0 - Release

Made some changes to the hotkey box size to remove problems with the 6 point
font causing clashes on some machines.

Finally traced down a nasty font problem which caused screw ups on a few
peoples systems but wouldn't happen to me. Turned out I'd renamed a different
font to Buttonz font and just assumed it would work without looking at the
actual font data file which gave it another name. That font was looked for 
instead and nobody had that font except me. :)

Created the installer script (with a load of messing around) and the release
archive. More work than I thought as this meant tidying up the html docs,
updating the guide file, creating .readme and file_id.diz banners and minor
tweaks to icons for default configs etc. It's been so long since I last wrote
an install script that I'd forgotten most of the commands and had to rework it
all from another script in the end :)

