|  |  | 
| Line 1: | Line 1: | 
|  | To create a new widget you simply have to subclass one of the existing widgets ( or the base one ) and implement the functions you want to change. Almost every function in the widget class is a ''virtual'' one which allows you to customize the widget the way you want.   For example, say you want to create a widget that all it does is play a sound when the mouse is moved over it.    For this you can subclass the base widget '''pawsWidget''' and just implement the ''OnMouseEnter()'' and the ''OnMouseExit()'' functions.
 |  | spam | 
|  |   |  | 
|  |   class MyNewWidget : public pawsWidget
 |  | 
|  |   {
 |  | 
|  |   public:
 |  | 
|  |     virtual bool OnMouseEnter()
 |  | 
|  |     {
 |  | 
|  |        MyPlaySound();
 |  | 
|  |     }
 |  | 
|  |     virtual bool OnMouseExit()
 |  | 
|  |     {
 |  | 
|  |       MyStopSound();
 |  | 
|  |     }
 |  | 
|  |   private:
 |  | 
|  |     void MyPlaySound() { ... }
 |  | 
|  |     void MyStopSound() { ... }
 |  | 
|  |   };
 |  | 
|  |   |  | 
|  |   |  | 
|  | Next update will be to show how to create the factory and the XML for this so you can do something like specify a sound to play.
 |  | 
|  |   |  | 
|  |   |  | 
|  | [[Category:Engine documents]]
 |  |