Replacing an Object Look-and-Feel Handler
Once you have defined the new object look-and-feel handler, you need to install it on an IlvLookFeelHandler instance.
The simplest way to install an object look-and-feel handler is to call the addObjectLFHandler method on the look-and-feel handler of the component:
IlvButton* button = .... IlvLookFeelHandler* lfh = button->getLookFeelHandler(); MyButtonLFHandler* mylfh = new MyButtonLFHandler(lfh); lfh->addObjectLFHandler(mylfh); |
By modifying the look-and-feel handler this way will affect other buttons referencing the same look-and-feel handler. Indeed, by default, there is only one look-and-feel handler, owned by the IlvDisplay class. If you do not want to modify the default look-and-feel handler because you want to modify only the look and feel of specific components, you must do the following:
-
Create a new look-and-feel handler instance using the Create method.
-
Install your object look-and-feel handler using the addObjectLFHandler method.
-
Install the new look-and-feel handler instance on your component using the setLookFeelHandler method.
The following code creates a new look-and-feel handler for the Motif look, and installs on it the object look-and-feel handler. Finally, the new look-and-feel handler is installed on the component:
IlvLookFeelHandler* lfh = IlvLookFeelHandler::Create(“motif”); MyButtonLFHandler* mylfh = new MyButtonLFHandler(lfh); lfh->addObjectLFHandler(mylfh); IlvButton* button = .... button->setLookFeelHandler(lfh); |
Note
The first two steps can be executed through a single action by creating a subclass of the IlvLookFeelHandler. You can find more information in the section Creating a New Look-and-Feel Handler. |