\section{\class{wxIdleEvent}}\label{wxidleevent}

This class is used for idle events, which are generated when the system is idle.

By default, idle events are sent to all windows. If this is causing a significant
overhead in your application, you can call \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} with
the value wxIDLE\_PROCESS\_SPECIFIED, and set the wxWS\_EX\_PROCESS\_IDLE extra
window style for every window which should receive idle events.

The function \helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle} is
also provided for internal purposes, and cannot be disabled. wxUpdateUIEvents
are sent from OnInternalIdle.

\wxheading{Derived from}

\helpref{wxEvent}{wxevent}\\
\helpref{wxObject}{wxobject}

\wxheading{Include files}

<wx/event.h>

\wxheading{Event table macros}

To process an idle event, use this event handler macro to direct input to a member
function that takes a wxIdleEvent argument.

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf EVT\_IDLE(func)}}{Process a wxEVT\_IDLE event.}
\end{twocollist}%

\wxheading{Remarks}

Idle events can be caught by the wxApp class, or by top-level window classes.

\wxheading{See also}

\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxUpdateUIEvent}{wxupdateuievent}, 
\helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle}

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxIdleEvent::wxIdleEvent}\label{wxidleeventctor}

\func{}{wxIdleEvent}{\void}

Constructor.

\membersection{wxIdleEvent::CanSend}\label{wxidleeventcansend}

\func{static bool}{CanSend}{\param{wxWindow*}{ window}}

Returns {\tt true} if it is appropriate to send idle events to
this window.

This function looks at the mode used (see \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}),
and the wxWS\_EX\_PROCESS\_IDLE style in {\it window} to determine whether idle events should be sent to
this window now. By default this will always return {\tt true} because
the update mode is initially wxIDLE\_PROCESS\_ALL. You can change the mode
to only send idle events to windows with the wxWS\_EX\_PROCESS\_IDLE extra window style set.

\wxheading{See also}

\helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}

\membersection{wxIdleEvent::GetMode}\label{wxidleeventgetmode}

\func{static wxIdleMode}{GetMode}{\void}

Static function returning a value specifying how wxWidgets
will send idle events: to all windows, or only to those which specify that they
will process the events.

See \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}.

\membersection{wxIdleEvent::RequestMore}\label{wxidleeventrequestmore}

\func{void}{RequestMore}{\param{bool}{ needMore = true}}

Tells wxWidgets that more processing is required. This function can be called by an OnIdle
handler for a window or window event handler to indicate that wxApp::OnIdle should
forward the OnIdle event once more to the application windows. If no window calls this function
during OnIdle, then the application will remain in a passive event loop (not calling OnIdle) until a
new event is posted to the application by the windowing system.

\wxheading{See also}

\helpref{wxIdleEvent::MoreRequested}{wxidleeventmorerequested}

\membersection{wxIdleEvent::MoreRequested}\label{wxidleeventmorerequested}

\constfunc{bool}{MoreRequested}{\void}

Returns true if the OnIdle function processing this event requested more processing time.

\wxheading{See also}

\helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore}

\membersection{wxIdleEvent::SetMode}\label{wxidleeventsetmode}

\func{static void}{SetMode}{\param{wxIdleMode }{mode}}

Static function for specifying how wxWidgets will send idle events: to
all windows, or only to those which specify that they
will process the events.

{\it mode} can be one of the following values.
The default is wxIDLE\_PROCESS\_ALL.

\begin{verbatim}
enum wxIdleMode
{
        // Send idle events to all windows
    wxIDLE_PROCESS_ALL,

        // Send idle events to windows that have
        // the wxWS_EX_PROCESS_IDLE flag specified
    wxIDLE_PROCESS_SPECIFIED
};
\end{verbatim}

