From f9039b2ae21988783feae9b362818e7923e82d14 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Tue, 6 Oct 1998 18:21:25 +0000 Subject: Initial revision git-svn-id: file:///fltk/svn/fltk/trunk@2 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Repeat_Button.cxx | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/Fl_Repeat_Button.cxx (limited to 'src/Fl_Repeat_Button.cxx') diff --git a/src/Fl_Repeat_Button.cxx b/src/Fl_Repeat_Button.cxx new file mode 100644 index 000000000..e13e05c44 --- /dev/null +++ b/src/Fl_Repeat_Button.cxx @@ -0,0 +1,36 @@ +// Fl_Repeat_Button.C + +#include +#include + +#define INITIALREPEAT .5 +#define REPEAT .1 + +void Fl_Repeat_Button::repeat_callback(void *v) { + Fl_Button *b = (Fl_Button*)v; + Fl::add_timeout(REPEAT,repeat_callback,b); + b->do_callback(); +} + +int Fl_Repeat_Button::handle(int event) { + int newval; + switch (event) { + case FL_RELEASE: + newval = 0; goto J1; + case FL_PUSH: + case FL_DRAG: + newval = Fl::event_inside(this); + J1: + if (value(newval)) { + if (newval) { + Fl::add_timeout(INITIALREPEAT,repeat_callback,this); + do_callback(); + } else { + Fl::remove_timeout(repeat_callback,this); + } + } + return 1; + default: + return Fl_Button::handle(event); + } +} -- cgit v1.2.3