diff options
| -rw-r--r-- | FL/Fl.H | 6 | ||||
| -rw-r--r-- | documentation/functions.html | 17 | ||||
| -rw-r--r-- | src/Fl.cxx | 10 | ||||
| -rw-r--r-- | src/Fl_add_idle.cxx | 10 |
4 files changed, 36 insertions, 7 deletions
@@ -1,5 +1,5 @@ // -// "$Id: Fl.H,v 1.8.2.6 2000/06/05 21:20:18 mike Exp $" +// "$Id: Fl.H,v 1.8.2.7 2000/06/16 07:27:57 bill Exp $" // // Main header file for the Fast Light Tool Kit (FLTK). // @@ -91,12 +91,14 @@ public: static FL_EXPORT int run(); static FL_EXPORT Fl_Widget* readqueue(); static FL_EXPORT void add_timeout(double t, Fl_Timeout_Handler,void* = 0); + static FL_EXPORT int has_timeout(Fl_Timeout_Handler, void* = 0); static FL_EXPORT void remove_timeout(Fl_Timeout_Handler, void* = 0); static FL_EXPORT void add_fd(int fd, int when, void (*cb)(int,void*),void* =0); static FL_EXPORT void add_fd(int fd, void (*cb)(int, void*), void* = 0); static FL_EXPORT void remove_fd(int, int when); static FL_EXPORT void remove_fd(int); static FL_EXPORT void add_idle(void (*cb)(void*), void* = 0); + static FL_EXPORT int has_idle(void (*cb)(void*), void* = 0); static FL_EXPORT void remove_idle(void (*cb)(void*), void* = 0); static FL_EXPORT int damage() {return damage_;} static FL_EXPORT void redraw(); @@ -211,5 +213,5 @@ public: #endif // -// End of "$Id: Fl.H,v 1.8.2.6 2000/06/05 21:20:18 mike Exp $". +// End of "$Id: Fl.H,v 1.8.2.7 2000/06/16 07:27:57 bill Exp $". // diff --git a/documentation/functions.html b/documentation/functions.html index 4923f3d44..3a156c687 100644 --- a/documentation/functions.html +++ b/documentation/functions.html @@ -230,8 +230,10 @@ but <TT>Fl::ready()</TT> does not.</P> something that calls <TT>Fl::wait()</TT> or <TT>Fl::check()</TT> (such as a message pop-up) you should first remove the idle callback so that it does not recurse. </P> + <H3><A name=add_timeout>static void Fl::add_timeout(float t, void (*cb)(void *),void *v=0)</A></H3> + Add a one-shot timeout callback. The timeout will happen as soon as possible after <TT>t</TT> seconds after the last time <TT>wait()</TT> was called. The optional <TT>void *</TT> argument is passed to the @@ -657,9 +659,22 @@ while (!calculation_done()) { </UL> <H3><A name=redraw>static void Fl::redraw()</A></H3> Redraws all widgets. + +<H3><A name=has_idle>static int Fl::has_idle(void (*cb)(void *), +void *= 0)</A></H3> + +Returns true if the specified idle callback is currently installed. + <H3><A name=remove_idle>static void Fl::remove_idle(void (*cb)(void *), void *= 0)</A></H3> - Removes the specified idle callback. + +Removes the specified idle callback, if it is installed. + +<H3><A name=has_timeout>static int Fl::has_timeout(void +(*cb)(void *), void *= 0)</A></H3> + +Returns true if the timeout exists and has not been called yet. + <H3><A name=remove_timeout>static void Fl::remove_timeout(void (*cb)(void *), void *= 0)</A></H3> Removes a timeout callback. It is harmless to remove a timeout diff --git a/src/Fl.cxx b/src/Fl.cxx index 73fa187bb..4792db339 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl.cxx,v 1.24.2.25 2000/06/10 21:30:59 bill Exp $" +// "$Id: Fl.cxx,v 1.24.2.26 2000/06/16 07:28:02 bill Exp $" // // Main event handling code for the Fast Light Tool Kit (FLTK). // @@ -102,6 +102,12 @@ void Fl::add_timeout(double t, Fl_Timeout_Handler cb, void *v) { numtimeouts++; } +int Fl::has_timeout(void (*cb)(void *), void *v) { + for (int i=0; i<numtimeouts; i++) + if (timeout[i].cb == cb && timeout[i].arg==v) return 1; + return 0; +} + void Fl::remove_timeout(Fl_Timeout_Handler cb, void *v) { int i,j; for (i=j=0; i<numtimeouts; i++) { @@ -721,5 +727,5 @@ void Fl_Window::flush() { } // -// End of "$Id: Fl.cxx,v 1.24.2.25 2000/06/10 21:30:59 bill Exp $". +// End of "$Id: Fl.cxx,v 1.24.2.26 2000/06/16 07:28:02 bill Exp $". // diff --git a/src/Fl_add_idle.cxx b/src/Fl_add_idle.cxx index 227fa65b8..748d03767 100644 --- a/src/Fl_add_idle.cxx +++ b/src/Fl_add_idle.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_add_idle.cxx,v 1.4.2.3 2000/06/05 21:21:00 mike Exp $" +// "$Id: Fl_add_idle.cxx,v 1.4.2.4 2000/06/16 07:28:03 bill Exp $" // // Idle routine support for the Fast Light Tool Kit (FLTK). // @@ -63,6 +63,12 @@ void Fl::add_idle(void (*cb)(void*), void* data) { } } +int Fl::has_idle(void (*cb)(void*), void* data) { + for (idle_cb* p = first; p != last; p = p->next) + if (p->cb == cb && p->data == data) return 1; + return 0; +} + void Fl::remove_idle(void (*cb)(void*), void* data) { idle_cb* p = first; if (!p) return; @@ -84,5 +90,5 @@ void Fl::remove_idle(void (*cb)(void*), void* data) { } // -// End of "$Id: Fl_add_idle.cxx,v 1.4.2.3 2000/06/05 21:21:00 mike Exp $". +// End of "$Id: Fl_add_idle.cxx,v 1.4.2.4 2000/06/16 07:28:03 bill Exp $". // |
