From 4dd096e7b52301663ddaa002984e10cb83d97b9a Mon Sep 17 00:00:00 2001
From: Bill Spitzak
Date: Fri, 16 Jun 2000 07:28:03 +0000
Subject: [PATCH] Added has_timeout() and has_idle() calls as suggested by Eric
Sven Ristad.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1214 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
---
FL/Fl.H | 6 ++++--
documentation/functions.html | 17 ++++++++++++++++-
src/Fl.cxx | 10 ++++++++--
src/Fl_add_idle.cxx | 10 ++++++++--
4 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/FL/Fl.H b/FL/Fl.H
index daffc5b14..9f0aece50 100644
--- a/FL/Fl.H
+++ b/FL/Fl.H
@@ -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 Fl::ready() does not.
something that calls Fl::wait() or Fl::check() (such
as a message pop-up) you should first remove the idle callback so that
it does not recurse.
+
+
Add a one-shot timeout callback. The timeout will happen as soon as
possible after t seconds after the last time wait()
was called. The optional void * argument is passed to the
@@ -657,9 +659,22 @@ while (!calculation_done()) {
Redraws all widgets.
+
+
+
+Returns true if the specified idle callback is currently installed.
+
- Removes the specified idle callback.
+
+Removes the specified idle callback, if it is installed.
+
+
+
+Returns true if the timeout exists and has not been called yet.
+
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; inext)
+ 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 $".
//