ClickForMenu V1.00 22 Feb 1996 Frantisek Dufka Hlavni 218 687 25, Hluk Czech Republic e-mail: dufkaf@risc.upol.cz This program is public domain. You can freely distribute it as long as you keep all the files unchanged. You are using it on your own risk. I hate writing documentation, so let's do it briefly. This little commodity changes the way intuition menus work. With ClickForMenu activated, menu is selected by clicking the right mouse button. There's no need to hold it. Menu item selection is completed by clicking left or right button. Middle button selects item, but does not exit, so you can use it for checking multiple checkmarks. The old way of using menu (hold - move - release) works too, so no one will be confused. Tested only on my A1200/030/28Mhz, but should work also on 68000 based machines with OS 2.0. It took me half a day to write it in C and it looks like it works exactly the way I want. :) In case it doesn't - just drop me a mail. Of course you can use MagicMenu instead - it' bigger and better. :) Features missing in V1.00: - Pop screen with active menu to front. - Right mouse button should cancel menu like in Magic Menu. - Nice icon :-) (Very) technical info : Program installs custom CxObject via commodities.library, which monitors all input events. Event of releasing right mouse is swalowed if the menu is on (flag WFLG_MENUSTATE is set in IntuitionBase->ActiveWindow->Flags). Event of clicking left or right button is changed into releasing of right button, and middle button click is changed into left button click. That's all. No system function is patched. No other high priority task, which can cause crash or deadlock is running. To implement both of the missing features, simple custom CxObject is not sufficient. This is because custom CxObject runs as a part of input.device task, so this code have to be very short & fast and can not call any complex dos or intuition function like ScreenToFront(). Canceling the menu can be done by imitating mouse move event into some position outside menu box before exiting menu. Unfortunately I don't know how to add new input event from custom CxObject. I can only change or delete it. So, to implement missing features, different strategy have to be choosen. This will enlarge size and complexity of code and cause the main ClickForMenu task to have to run with high priority. I'll do it in next release, if wanted. I hope you will find these bytes useful. Any ideas, suggestions, questions or donations are welcome. Frantisek Dufka P.S. Sorry for my english, but it's not my native language.