home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 2
/
DATAFILE_PDCD2.iso
/
utilities2
/
_dirmenu
/
!DirMenu
/
History
< prev
next >
Wrap
Text File
|
1993-07-27
|
6KB
|
182 lines
DirMenu history:
----------------
0.00 July 1992
Stored the whole HD directory tree as a file
and loaded it each time it was run. To update
the tree, had to delete the file and run again.
A bit crap, but I used it every day for
months, and it saved a lot of time!
1.00 May 1993
Having seen !QuickDir by Clive Jones, I decided
to provide menu-making on the fly as well, so
the menu tree was always up-to-date. Also
converted to DeskLib, which is superb.
Added the configuable root menu featue.
1.10 May 5 1993
Now displays icons in the menus. Discovered
that the Wimp sends a message with action code
0x400c9 when a menu is removed without a
selection being made (e.g. a click off the
menu). This is used to release all claims on
further messages, which are detected when the
menu is open in order to create new sub-menus
when MENU_WARNING messages are sent by the WIMP.
1.20 May 12 1993 ** First release **
Added the Info/Quit menu.
The Info box is my first ever dialogue box,
and I don't know how to make it moveable like
all other dialogue boxes I've seen.
1.21 May 24 1993
Added the options to open the root menu on the
left hand side of the screen, as suggested by
Kai Schlichting.
Fixed a minor bug which resulted in a garbled
title bar of the submenu of a '@' root item.
I've now read the comp.sys.acorn Application
Writer's Guide, so there is now no !Boot file,
and I've found out how to make the Info window
movable (process event_OPEN events).
1.30 ** Second release **
Added Help to normal menu.
Added 'Edit Configs' and 'Update' to normal menu.
These do a poor-man's implementation of a proper
dialogue-box configuration setter/saver. If I
had more time... Actually, you shouldn't want to
change the configs very often, so this method
isn't too bad.
Changed the template file so that the program
fills in the version/date when it is run.
1.31 Looks for File_0fb instead of File_fb, when
searching for a file-type sprite when the file-
-type is < &100.
1.32 Compiled without function names in code, to
make it slightly smaller.
1.40 20 June 1993
Can have multiple icons on the icon-bar, with
independent root menus.
1.41 Can have text under the icons.
1.42 28 June 1993
If a directory has bit 6 of its Access atributes
set, !DirMenu now displays it as an application
(i.e. looks for a wimp sprite with same name).
This is for compatability with FilerPatch, by
Jens Ovesen.
1.43 4 July 1993
The WIMP doesn't seem to invert text+sprite
icons in the same way as normal icons in menus,
so I've padded all items with spaces, making
highlighted icons in the menu easier to see.
2.00 11 July 1993
Now creates a menu for Filer windows, like
!QuickDir.
This is done by ataching a filter to the Filer
which sends !DirMenu an event_CLICK when
Alt-Menu is clicked on a filer window.
2.10 13 July 1993
Opens a menu when there is a menu-click on the
filer window title bar. I think this is a lot
more convenient than going to the keyboard to
press <Alt>.
Couldn't use a filter for this because menu-clicks
on title bars don't seem to be passed on to apps
by the Wimp. Hence had to make a module which
claims OS (not Wimp) mouse button events, and
sends event_CLICK's to DirMenu.
2.11 13 July 1993
Opens a Filer-window menu for both cases - menu
on title bar, and alt-menu on workarea.
!MakeMod makes a single module which acts as a
filter on the Filer, and also catches mouse
events.
Couldn't use mouse-event-detector for the Alt-Menu
case because the filer would flash open its menu
just before DirMenu opens its menu.
!RunImage runs the Basic prog '!MakeMod' after it
has initialised as a task. !MakeMod then
assembles the module, called DirMenuMouse,
assembling in the Filer and DirMenu task_handles.
When DirMenu is quit, it RMKill's the module.
Assembling a module every time DirMenu is run
is a bit clumsy, but I am a new-comer to ARM
assembler, so a module that actively finds the
relevant task handles (like in !QuickDir) is a bit
too advanced for me. My method makes for a smaller
module anyway, and anyway Acorn have gone to the
trouble of including an assembler on every machine,
so I might as well take advantage of it!
I don't know of any way of preventing the Wimp from
seeing a mouse click. This caused a few problems
when making DirMenu respond to non-Wimp events from
the module. Any suggestions ?
2.20 14 July 1993
Uses a simple Wimp_Poll loop instead of DeskLib's
Event_ functions, which are a bit of a luxury in
such a simple program. This makes !RunImage nearly
5k smaller. However, it still can't fit into a 32k
wimpslot.
2.21 18 July 1993 *** third release ***
Can set DirMenu to expand all system variables in
file-paths prior to Filer_Run-ing them. This is
for when iconbar icons are specified to use
system variables such as <Wimp$ScrapDir> or @. It
makes file/application windows contain the full
path name of the files that are clicked on. This
just uses SWI "OS_FSControl" with r0=37.
2.22 27 July 1993
Oh dear! The click-on-Filer-titlebar thing seems to
be a bit wobbly. Changes:
1. Detects true menu button click i.e. buttons
000 -> 010, rather than xxx -> y1y.
2. When opening a Filer-window menu, the main
program now rechecks that the pointer is over a
titlebar, as a drag closely followed by a menu
click on a workarea seem to result in
Wimp_GetPointerInfo returning the poition of the
start of the drag i.e. a titlebar. This resulted
in spurious menu opening sometimes.
Unfortunately, if you now move the pointer away
from a titlebar very quickly after clicking menu,
this modification may mean that DirMenu won't
open a menu.
3. In !MakeMod, changed SWI calls to have 'X' bit
set, and return if the SWI signals an error.
The normal OS default error handling can give a
horrid crash when using MemFS's non-multitasking
'free' window. I don't think this is my fault,
as the OS error handling should cope with errors,
and the SWI was Wimp_GetPointerInfo - hardly a
complicated system-altering one. There was no
problem with other non-multitasking windows.
Thanks to Kai Schlichting for noticing these problems.
Can anybody tell me why a 20K program needs more
than a 32k wimpslot to run?