The Smart Dashboard chooser was taking up too much real estate on the screen. We made a USB device to plug into the Driver Station. It has 15 button capability (plus one button for Turbo, but that has a predefined action).
http://smile.amazon.com/dp/B00UUROWWK/
We got these buttons to go with it (you want latching buttons, not momentary contact, also round is easier to cut out a mounting hole than rectangular):
http://smile.amazon.com/gp/product/B00E0L2AG2
http://smile.amazon.com/gp/product/B0094GCUYA
http://smile.amazon.com/gp/product/B00TX2TR50
The device installed automatically with Windows 10. Driver station recognized it immediately as a JoyStick. No problems using WPLIB/C++ to read the button values.
You can either setup your code to:
1) Buttons tell robot how far to drive, turn, etc.
2) Buttons tell: i) which position is the robot in; ii) which defense is in front of it; iii) whether to shoot or not; iv) whatever, and let the code figure out what sequence of commands to execute.