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();
}