diff --git a/documentation/Fl.html b/documentation/Fl.html index 21257a8c48cedc852ea712c8037f3ee0c9cc98b8..03fe903b9ad6a0406d3b860027dad5ad1a5f154b 100644 --- a/documentation/Fl.html +++ b/documentation/Fl.html @@ -35,6 +35,7 @@ state information and global methods for the current application.</P> <LI><A HREF="#Fl.arg">arg</A></LI> <LI><A HREF="#Fl.args">args</A></LI> <LI><A HREF="#Fl.atclose">atclose</A></LI> + <LI><A HREF="#Fl.awake">awake</A></LI> <LI><A HREF="#Fl.background2">background2</A></LI> <LI><A HREF="#Fl.background">background</A></LI> <LI><A HREF="#Fl.belowmouse">belowmouse</A></LI> @@ -88,6 +89,7 @@ state information and global methods for the current application.</P> <LI><A HREF="#Fl.has_check">has_check</A></LI> <LI><A HREF="#Fl.has_idle">has_idle</A></LI> <LI><A HREF="#Fl.has_timeout">has_timeout</A></LI> + <LI><A HREF="#Fl.lock">lock</A></LI> <LI><A HREF="#Fl.modal">modal</A></LI> <LI><A HREF="#Fl.next_window">next_window</A></LI> <LI><A HREF="#Fl.own_colormap">own_colormap</A></LI> @@ -114,6 +116,8 @@ state information and global methods for the current application.</P> <LI><A HREF="#Fl.set_idle">set_idle</A></LI> <LI><A HREF="#Fl.set_labeltype">set_labeltype</A></LI> <LI><A HREF="#Fl.test_shortcut">test_shortcut</A></LI> + <LI><A HREF="#Fl.thread_message">thread_message</A></LI> + <LI><A HREF="#Fl.unlock">unlock</A></LI> <LI><A HREF="#Fl.version">version</A></LI> <LI><A HREF="#Fl.visible_focus">visible_focus</A></LI> <LI><A HREF="#Fl.visual">visual</A></LI> @@ -297,6 +301,13 @@ argument on the command-line. You can change the message by setting the <H4><A NAME="Fl.atclose">void (*atclose)(Fl_Window*,void*);</A></H4> +<H4><A NAME="Fl.awake">void awake(void *p);</A></H4> + +<P>The <TT>awake()</TT> method sends a message pointer to the +main thread, causing any pending <TT>wait()</TT> call to +terminate so that the main thread can retrieve the message and +any pending redraws can be processed. + <H4><A NAME="Fl.background2">void background2(uchar, uchar, uchar);</A></H4> <P>Changes <tt>fl_color(FL_WHITE)</tt> and the same colors as <tt> @@ -742,6 +753,25 @@ widget uses the event. <P>Returns true if the timeout exists and has not been called yet. +<H4><A NAME="Fl.lock">void lock();</A></H4> + +<P>The <TT>lock()</TT> method blocks the current thread until it +can safely access FLTK widgets and data. Child threads should +call this method prior to updating any widgets or accessing +data. The main thread must call <TT>lock()</TT> to initialize +the threading support in FLTK. + +<P>Child threads must call <A +HREF="#Fl.unlock"><TT>unlock()</TT></A> when they are done +accessing FLTK. + +<P>When the <A HREF="#Fl.wait"><TT>wait()</TT> method is waiting +for input or timeouts, child threads are given access to FLTK. +Similarly, when the main thread needs to do processing, it will +wait until all child threads have called <A +HREF="#Fl.unlock"><TT>unlock()</TT></A> before processing +additional data. + <H4><A NAME="Fl.modal">Fl_Window* modal();</A></H4> <P>Returns the top-most <tt>modal()</tt> window currently shown. @@ -962,6 +992,19 @@ FL_SHORTCUT</tt>, against a shortcut value (described in <A href=Fl_Button.html# be confused with <A href="subclassing.html#test_shortcut"><tt> Fl_Widget::test_shortcut()</tt></A>. +<H4><A NAME="Fl.thread_message">void *thread_message();</A></H4> + +<P>The <TT>thread_message()</TT> method returns the last message +that was sent from a child by the <A +HREF="#Fl.awake"><TT>awake()</TT></A> method. + +<H4><A NAME="Fl.unlock">void unlock();</A></H4> + +<P>The <TT>unlock()</TT> method releases the lock that was set +using the <A HREF="#Fl.lock"><TT>lock()</TT></A> method. Child +threads should call this method as soon as they are finished +accessing FLTK. + <H4><A NAME="Fl.version">double version();</A></H4> <P>Returns the compiled-in value of the FL_VERSION constant. This