Extending GLAM

GLAM is written in Object-Oriented C++, using openGL for hardware accelerated graphics display. Since GLAM is designed with polymorphism and inheritence, it is very easy to extend, add and change widgets.

To this end, it is possible to create an entirely new visual style for all GLAM widgets simply by inheriting from GLAM widgets and overloading their render styles. If more substantial changes are required, it is possible to overload logic functions as well as create entirely new behaviors.

For example, if a new visual style was needed for a button a new class, called MyButton, can inherit from GmPushButton. All Push Button functionality is immediately inherited: text setting, sizing and placement functionality; border sizing; button coloring; relative geometry and layout functions; the 2d and selection rendering.

MyButton can then overload the render2d function. Using the Push Button data, it is possible to create a new visual style, perhaps with rounded corners or an entirely different shape.