There is currently no simple way to programmatically display a color choice in a TOOLKIT GUI other than by using an InputPanel widget which has a ProUIInputpanelBackgroundcolorSet() API. An InputPanel is of course a widget designed for entering data and is not ideal as a means of displaying a color that needs to be set programmatically. A much better choice is a Layout widget in which other widgets may be placed. One can set the foreground and background colors of a Layout in a resource file but not via APIs. Having a ProUILayoutBackgroundcolorSet() API would not only allow the display of a rectangular area that defines a color choice but would also allow the full implementation of a MessagePanel composite widget like the one that I have created for our Perl/Tk and Java applications and which I have now started to use in our TOOLKIT applications which are written in C++. A MessagePanel consists of a Layout that contains a PushButton on the left and an InputPanel. It may contain other widgets like for example a PushButton for closing the application. See the image below. The idea is to display INFO|WARNING|ERROR|PROMPT messages in the InputPanel while at the same time displaying an appropriate icon in the PushButton and having the Layout color be a related color (green for INFO, yellow for WARNING and PROMPT and red for ERROR). Pressing the PushButton displays a dialog the displays all the generated messages. In my implementation, the MessagePanel displays the same messages that I write to the CreoParametric message window. In the Pro/ENGINEER days, one could display the message window at the top making it easy for users to see the messages. In CreoParametric, the location is at the bottom and cannot be changed. Because of this, it is easy for users to miss the messages. Having them also be displayed in a MessagePanel at the top of the GUI improves the usability of the application.
This is a snippet of our CAEStart Perl/Tk application which we use to launch our wrapper application for CreoParametric.