Callbacks

Callbacks are functions that are called when the value of a widget changes. A callback function is sent a Fl_Widget pointer of the widget that changed and optionally a pointer to data of some sort:

void xyz_callback(Fl_Widget *w, void *data) {
...
}
      

The callback() method sets the callback function for a widget. You can optionally pass a pointer to some data needed for the callback:

int xyz_data;

button->callback(xyz_callback, data);
      

Normally callbacks are performed only when the value of the widget changes. You can change this using the when() method:

button->when(FL_WHEN_NEVER);
button->when(FL_WHEN_CHANGED);
button->when(FL_WHEN_RELEASE);
button->when(FL_WHEN_RELEASE_ALWAYS);
button->when(FL_WHEN_ENTER_KEY);
button->when(FL_WHEN_ENTER_KEY_ALWAYS);
button->when(FL_WHEN_CHANGED | FL_WHEN_NOT_CHANGED);