The plan right now is for them to be just images, drawn in the correct place so that they look like they're "on" the surface of the 3d control panel.
I've already made a decent 'template' button, which is drawn in every slot where a button can go (there is room for 10 buttons, in 2 rows of 5). It has a normal, mouse-over, and pressed appearance. Then, each actual action would have an icon that goes with it.
The icons would have two states: a 'valid' and 'invalid' state. The valid icon is drawn when the action is actually doable, whereas the 'invalid' state will appear if the action is applicable for the ships you have selected, but cannot be executed for some reason, er go if one or more of the ships you have selected are jump-capable, but none of them have their jump drives charged, you'd see the 'invalid' version. Basically, this would be a grayscale copy of the normal icon. However, because of the way the icons are drawn, they need to have proper alpha-channels (transparency), and it seems like the grayscale version will have to be darker and less opaque overall.