typedef void (*ControlFunc) (Control *c);
void set_control_value(Control *c, long value); long get_control_value(Control *c); void set_control_data(Control *c, void *data); void *get_control_data(Control *c); void on_control_action(Control *c, ControlFunc action); void activate_control(Control *c);
Every control can have a long integer value associated with it. Some controls, such as scrollbars and listboxes use this integer value to represent the current state of the control.
For programmer-defined controls, the set_control_value and get_control_value functions exist to allow setting this value, or finding the value.
If a control's state is more complex than an integer, more data must be stored with a control. The set_control_data function can store a pointer with a control, which could point to a data structure in memory. To find the value of this data pointer, use get_control_data. Note, this function returns the pointer as a void pointer so it is necessary to store this to the appropriate pointer type before use.
A control can have a call-back function associated with it for normal uses. This call-back is usually called by controls (such as buttons) whenever the user clicks on the control.
The function to be called can be set using the on_control_action function. This can be used to set or change a button's response to events.
The activate_control function will call a control's call-back (if the function pointer is not NULL, which it is by default).