Skip to content

Commit

Permalink
Commit Domingo's patch for the idle declarations etc.
Browse files Browse the repository at this point in the history
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7305 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
  • Loading branch information
imaclmaca committed Mar 19, 2010
1 parent 3aa4712 commit aca570e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 20 deletions.
57 changes: 39 additions & 18 deletions FL/Fl.H
Expand Up @@ -53,19 +53,40 @@ class Fl_Image;
struct Fl_Label;

/** signature of some label drawing functions passed as parameters */
typedef void (Fl_Label_Draw_F)(const Fl_Label*, int,int,int,int, Fl_Align);
typedef void (Fl_Label_Draw_F)(const Fl_Label *label, int x, int y, int w, int h, Fl_Align align);

/** signature of some label measurement functions passed as parameters */
typedef void (Fl_Label_Measure_F)(const Fl_Label*, int&, int&);
typedef void (Fl_Label_Measure_F)(const Fl_Label *label, int &width, int &height);

/** signature of some box drawing functions passed as parameters */
typedef void (Fl_Box_Draw_F)(int,int,int,int, Fl_Color);
typedef void (Fl_Box_Draw_F)(int x, int y, int w, int h, Fl_Color color);

/** signature of some timeout callback functions passed as parameters */
typedef void (*Fl_Timeout_Handler)(void*);
typedef void (*Fl_Timeout_Handler)(void *data);

/** signature of some wakeup callback functions passed as parameters */
typedef void (*Fl_Awake_Handler)(void*);
typedef void (*Fl_Awake_Handler)(void *data);

/** signature of add_idle callback functions passed as parameters */
typedef void (*Fl_Idle_Handler)(void *data);

/** signature of set_idle callback functions passed as parameters */
typedef void (*Fl_Old_Idle_Handler)();

/** signature of add_fd functions passed as parameters */
typedef void (*Fl_FD_Handler)(int fd, void *data);

/** signature of add_handler functions passed as parameters */
typedef int (*Fl_Event_Handler)(int event);

/** signature of set_abort functions passed as parameters */
typedef void (*Fl_Abort_Handler)(const char *format,...);

/** signature of set_atclose functions passed as parameters */
typedef void (*Fl_Atclose_Handler)(Fl_Window *window, void *data);

/** signature of args functions passed as parameters */
typedef int (*Fl_Args_Handler)(int argc, char **argv, int &i);

/**
The Fl is the FLTK global (static) containing
Expand Down Expand Up @@ -138,7 +159,7 @@ public:

// argument parsers:
static int arg(int, char**, int&);
static int args(int, char**, int&, int (*)(int,char**,int&) = 0);
static int args(int, char**, int&, Fl_Args_Handler ah = 0);
static void args(int, char**);
/**
Usage string displayed if Fl::args() detects an invalid argument.
Expand Down Expand Up @@ -232,7 +253,7 @@ public:
}
\endcode
*/
static void repeat_timeout(double t, Fl_Timeout_Handler,void* = 0); // platform dependent
static void repeat_timeout(double t, Fl_Timeout_Handler, void* = 0); // platform dependent
static int has_timeout(Fl_Timeout_Handler, void* = 0);
static void remove_timeout(Fl_Timeout_Handler, void* = 0);
static void add_check(Fl_Timeout_Handler, void* = 0);
Expand All @@ -257,17 +278,17 @@ public:
devices, pipes, sockets, etc.). Due to limitations in Microsoft Windows,
WIN32 applications can only monitor sockets.
*/
static void add_fd(int fd, int when, void (*cb)(int,void*),void* =0); // platform dependent
/** See void add_fd(int fd, int when, void (*cb)(int,void*),void* =0) */
static void add_fd(int fd, void (*cb)(int, void*), void* = 0); // platform dependent
static void add_fd(int fd, int when, Fl_FD_Handler cb, void* = 0); // platform dependent
/** See void add_fd(int fd, int when, Fl_FD_Handler cb, void* = 0) */
static void add_fd(int fd, Fl_FD_Handler cb, void* = 0); // platform dependent
/** Removes a file descriptor handler. */
static void remove_fd(int, int when); // platform dependent
/** Removes a file descriptor handler. */
static void remove_fd(int); // platform dependent

static void add_idle(void (*cb)(void*), void* data = 0);
static int has_idle(void (*cb)(void*), void* data = 0);
static void remove_idle(void (*cb)(void*), void* data = 0);
static void add_idle(Fl_Idle_Handler cb, void* data = 0);
static int has_idle(Fl_Idle_Handler cb, void* data = 0);
static void remove_idle(Fl_Idle_Handler cb, void* data = 0);
/** If true then flush() will do something. */
static int damage() {return damage_;}
static void redraw();
Expand Down Expand Up @@ -603,8 +624,8 @@ public:
/** Gets the current Fl::focus() widget. \sa Fl::focus(Fl_Widget*) */
static Fl_Widget* focus() {return focus_;}
static void focus(Fl_Widget*);
static void add_handler(int (*h)(int));
static void remove_handler(int (*h)(int));
static void add_handler(Fl_Event_Handler h);
static void remove_handler(Fl_Event_Handler h);
/** @} */

/** \defgroup fl_clipboard Selection & Clipboard functions
Expand Down Expand Up @@ -764,13 +785,13 @@ public:
/** \addtogroup fl_windows
@{ */
/** For back compatibility, sets the void Fl::fatal handler callback */
static void set_abort(void (*f)(const char*,...)) {fatal = f;}
static void set_abort(Fl_Abort_Handler f) {fatal = f;}
static void (*atclose)(Fl_Window*,void*);
static void default_atclose(Fl_Window*,void*);
/** For back compatibility, sets the Fl::atclose handler callback. You
can now simply change the callback for the window instead.
\see Fl_Window::callback(Fl_Callback*) */
static void set_atclose(void (*f)(Fl_Window*,void*)) {atclose = f;}
static void set_atclose(Fl_Atclose_Handler f) {atclose = f;}
/** @} */

/** \addtogroup fl_events
Expand Down Expand Up @@ -814,7 +835,7 @@ public:
\deprecated This method is obsolete - use the add_idle() method instead.
*/
static void set_idle(void (*cb)()) {idle = cb;}
static void set_idle(Fl_Old_Idle_Handler cb) {idle = cb;}
/** See Fl_Window* grab() */
static void grab(Fl_Window&win) {grab(&win);}
/** Releases the current grabbed window, equals grab(0).
Expand Down
4 changes: 2 additions & 2 deletions src/Fl.cxx
Expand Up @@ -716,7 +716,7 @@ static handler_link *handlers = 0;
zero from its handle() method. Exactly which ones may change
in future versions, however.
*/
void Fl::add_handler(int (*ha)(int)) {
void Fl::add_handler(Fl_Event_Handler ha) {
handler_link *l = new handler_link;
l->handle = ha;
l->next = handlers;
Expand All @@ -726,7 +726,7 @@ void Fl::add_handler(int (*ha)(int)) {
/**
Removes a previously added event handler.
*/
void Fl::remove_handler(int (*ha)(int)) {
void Fl::remove_handler(Fl_Event_Handler ha) {
handler_link *l, *p;

// Search for the handler in the list...
Expand Down

0 comments on commit aca570e

Please sign in to comment.