Is there a better way than GadTools for Amiga menus? Because GadTools really really *really* sucks at menus: Terribly verbose for declaring them, hard to use more advanced features (like ghosted items & tick boxes), and the implicit numbering of all items means a major headache when you want to make even minor changes. I just found this, which would seem to suggest there isn't anything better.
After my experience with them in RunInUAE, I ended-up writing a tiny module (in PortablE) which basically fixes all the problems I saw. I can now define menus using compact tag lists, the more advanced features are trivial to use, and modifying the menu doesn't cause major issues.
P.S. I tried posting this on UtilityBase, but it just bombed-out with a database error every time.
Well, if you're using window.class, you can at least pass a newmenu structure directly, rather than having to open gadtools, obtain a visual info, and layout the menus first.
But you must be careful about one thing. WINDOW_NewMenu takes a global array of struct NewMenu that is referenced every time the window is open or reopen. So if some of your menu items change state (ticked, ghosted...) during program use, and you iconify+deiconify its window, your menu strip will NOT remember its state before iconification and will, instead, reset to the initial settings passed in the NewMenu array.
WINDOW_NewMenu was a good idea and allows attaching menus in an easy way but I'm not sure that the above has been taken into account. In my opinion, the implementation of this tag was a little thoughtless.
A menu.class which allows defining menus, returns a struct NewMenu and can handle dynamic changes automatically is sorely needed.
I think this is what the OpenAmiga project is, but it's way beyond my ability, plus I have too much other stuff to do (such as the OpenAmiga structured art datatype which is progressing incredibly slowly)
Well, whatever is best If it can hide all the structures so much the better, as long as it can do everything the other OS functions which need those structures can do.