FLTK/Disabling the escape key

From Wikibooks, open books for an open world
Jump to: navigation, search

FLTK applications automatically exit when pressing the Escape key. To disable this behaviour on the main window, a custom callback must replace the default one:

#include <fltk/events.h>
#include <fltk/run.h>
#include <fltk/Window.h>
 
#include <cstdlib>
 
void window_callback (fltk::Widget*) {
 
	if (fltk::event() == fltk::KEY && fltk::event_key() == fltk::EscapeKey) {
		// don't do anything when the Escape key is pressed
	} else {
		// exit when the user closes the window
		exit(0);
	}
}
 
 
int main (int argc, char** argv) {
 
	fltk::Window window (300, 300, "FLTK test");
 
	// set our own callback
	window.callback (window_callback);
 
	window.show (argc, argv);
	return fltk::run();
}