I've never written anything in C/C++ so I was kind of excited that I got it to work.
I modified the source for advmenu to be more functional for cocktails.
I added 16 event_assign options:ct1u, ct1d, ct1l, ct1r, ct2u, ct2d, ct2l, ct2r, ct3u, ct3d, ct3l, ct3r, ct4u, ct4d, ct4l, ct4r
(left, right, up, and down for up to 4 sides of the monitor.)
What this does:
Allows you to assign a joystick for menu movement on each side of the cocktail
If the joystick is moved and the screen is not orientated towards the joystick, it will rotate the screen appropriately. Otherwise it will perform the menu function(up, down, left, or right)
If you want the modified source I can email it to you. I will also send it to Andreas and hopefully he will include it in future builds.