home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
windows
/
alttab_2
/
!AltTab
/
!History
< prev
next >
Wrap
Text File
|
1998-11-23
|
3KB
|
66 lines
0.16 (6 June 1998)
~~~~~~~~~~~~~~~~~~
First version released to Hensa and the Acorn User (200) CD
0.17 (30 August 1998)
~~~~~~~~~~~~~~~~~~~~~
Fixed a collection of big mistakes that prevented the module from being
reinitialised. I discovered that modules should leave their wimptasks intact
during non-fatal finalisation/reinitialisation sequences. Also, I had done
something _really_ dumb: for every subsequent call to Wimp_Initialise, I was
passing the last task-handle used instead of the required OS version! {Funny how
the Wimp got upset about that... ;-} Obsessed with efficiency, I stored the Wimp
task-handle over the top of the OS-version argument passed to the first
Wimp_Initialise. I still do that, but now I distinguish between fatal and
non-fatal finalisations.
0.18 (10 October 1998)
~~~~~~~~~~~~~~~~~~~~~~
- Windows which are fully visible (according to the Wimp) are ignored
(ie. skipped over).
- Seriously improved the !Help file.
0.19 (9 November 1998)
~~~~~~~~~~~~~~~~~~~~~~
Aoogah!! Aoogah!! Horrible kludge alert!
(I finally managed to stomach it...)
On the couple of versions of RISC OS I examined, it appears that menus always
have &0FFFFFFE as the right edge of their work-area bounding box. AltTab used to
simply call Wimp_GetWindowState, but now it has to call Wimp_GetWindowInfo so
that it can find windows with this particular value as their work-area maximum
X. The extra space required to hold an entire window definition accounts for
most of the increased size of this version (although it's still under 1K).
Menus --- ie. windows with &0FFFFFFE as their work-area maximum X --- are opened
directly with Wimp_OpenWindow. I've assumed that any application which provides
a menu won't mind this. It seems the only option, since AltTab doesn't have
access to other tasks' menu definitions. It also means that submenus need
successive ALT-TAB key presses to be opened in front; that is, you won't see an
entire menu tree opened in front all at once.
0.20 (24 November 1998)
~~~~~~~~~~~~~~~~~~~~~~~
While reviewing the code for another idea (about an _almost_ completely
different project), I saw the worst example of micro$oft coding I've produced in
a long time. Argghhh! I was doing an operation and branching backwards to an
instruction *** immediately preceded by the same operation ***, like this:
orr r1,r6,#1
loop ...
...
orrle r1,r6,#1
ble loop
Can you see it? I made the appropriate changes to save one instruction:
loop_r1 orr r1,r6,#1
loop ...
...
ble loop_r1
So I've incremented the version once more. But I don't think I'll deliberately
release this version to the general public because the changes provide neither
functionality nor bug-fixes. I'll just leave v0.19 "out there" for people to
marvel at my sloppy code and feel the warm glow of finding and fixing it for
themselves...