Jay,
I'm developing the "SEMA-100 Machinery Analyser", a product of SEMA-TEC AB of Sweden. The color of the user interface of this system may be set by the user.
I don't know if this is exactly what You are looking for but I'll give You a short description anyway, might give You some ideas.
First of all forget the decorations, they have no properties and their color can therefore not be set programatically, but there are a number of alternative methods to create decorations. Myself I always use text indicators to create "sub-panels" or "frames" on the front panel of a vi (this will produce lowered boxes instead of raised ones). Just use a property node to set the text background color to the desired color of the text indicator. Don't forget to right-click these text indicators and select "disabled" under the advanced meny, if You don't, the indicator will hide any controls on it, if it is clicked with the mouse by the user.
The most straight forward method would of course be to use color box indicators, however a error in labview 6.1 and previous, makes these indicators to scale inproperly if You use them on front panels which are set to automatically scale with screen resolution.
Otherwise the SEMA-100 application produce user selectable colors as follows:
1. A "setup" vi is used by the user to select the desired colors for different types of controls and indicators. This is just a list of control types together with a color box control for each type, the selected colors are saved in a global variable (and also in a file so that the system can remember the setting from one time to another).
2. Each vi that has a front panel that is displayed on screen uses a sequence where the first frame always sets the user interface. Basically all reconfigurable front panel objects has a property node in this frame where the previously mentioned global variable is read and the properties are set accordingly.
This way of doing it is fairly straight forward, but as You mentioned it of course needs some work, especially if You have a great number of complicated panel. However, once introduced it's no big deal implementing it for new vi's.
I developed this method quite some time ago, and still hangs on to it since it works ok, maybe there are better ways to accomplish this? would be interesting to get more ideas from other programmers!
Since where talking front panels, please note that the tab control does not scale properly on front panels which are set to scale with screen resolution.
tomcat