]>
Commit | Line | Data |
---|---|---|
1 | \section{\class{wxIdleEvent}}\label{wxidleevent} | |
2 | ||
3 | This class is used for idle events, which are generated when the system becomes | |
4 | idle. Note that, unless you do something specifically, the idle events are not | |
5 | sent if the system remains idle once it has become it, e.g. only a single idle | |
6 | event will be generated until something else resulting in more normal events | |
7 | happens and only then is the next idle event sent again. If you need to ensure | |
8 | a continuous stream of idle events, you can either use | |
9 | \helpref{RequestMore}{wxidleeventrequestmore} method in your handler or call | |
10 | \helpref{wxWakeUpIdle}{wxwakeupidle} periodically (for example from timer | |
11 | event), but note that both of these approaches (and especially the first one) | |
12 | increase the system load and so should be avoided if possible. | |
13 | ||
14 | By default, idle events are sent to all windows (and also | |
15 | \helpref{wxApp}{wxapp}, as usual). If this is causing a significant | |
16 | overhead in your application, you can call \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} with | |
17 | the value wxIDLE\_PROCESS\_SPECIFIED, and set the wxWS\_EX\_PROCESS\_IDLE extra | |
18 | window style for every window which should receive idle events. | |
19 | ||
20 | \wxheading{Derived from} | |
21 | ||
22 | \helpref{wxEvent}{wxevent}\\ | |
23 | \helpref{wxObject}{wxobject} | |
24 | ||
25 | \wxheading{Include files} | |
26 | ||
27 | <wx/event.h> | |
28 | ||
29 | \wxheading{Library} | |
30 | ||
31 | \helpref{wxBase}{librarieslist} | |
32 | ||
33 | \wxheading{Event table macros} | |
34 | ||
35 | To process an idle event, use this event handler macro to direct input to a member | |
36 | function that takes a wxIdleEvent argument. | |
37 | ||
38 | \twocolwidtha{7cm} | |
39 | \begin{twocollist}\itemsep=0pt | |
40 | \twocolitem{{\bf EVT\_IDLE(func)}}{Process a wxEVT\_IDLE event.} | |
41 | \end{twocollist}% | |
42 | ||
43 | \wxheading{See also} | |
44 | ||
45 | \helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxUpdateUIEvent}{wxupdateuievent}, | |
46 | \helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle} | |
47 | ||
48 | \latexignore{\rtfignore{\wxheading{Members}}} | |
49 | ||
50 | \membersection{wxIdleEvent::wxIdleEvent}\label{wxidleeventctor} | |
51 | ||
52 | \func{}{wxIdleEvent}{\void} | |
53 | ||
54 | Constructor. | |
55 | ||
56 | \membersection{wxIdleEvent::CanSend}\label{wxidleeventcansend} | |
57 | ||
58 | \func{static bool}{CanSend}{\param{wxWindow*}{ window}} | |
59 | ||
60 | Returns {\tt true} if it is appropriate to send idle events to | |
61 | this window. | |
62 | ||
63 | This function looks at the mode used (see \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}), | |
64 | and the wxWS\_EX\_PROCESS\_IDLE style in {\it window} to determine whether idle events should be sent to | |
65 | this window now. By default this will always return {\tt true} because | |
66 | the update mode is initially wxIDLE\_PROCESS\_ALL. You can change the mode | |
67 | to only send idle events to windows with the wxWS\_EX\_PROCESS\_IDLE extra window style set. | |
68 | ||
69 | \wxheading{See also} | |
70 | ||
71 | \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} | |
72 | ||
73 | \membersection{wxIdleEvent::GetMode}\label{wxidleeventgetmode} | |
74 | ||
75 | \func{static wxIdleMode}{GetMode}{\void} | |
76 | ||
77 | Static function returning a value specifying how wxWidgets | |
78 | will send idle events: to all windows, or only to those which specify that they | |
79 | will process the events. | |
80 | ||
81 | See \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}. | |
82 | ||
83 | \membersection{wxIdleEvent::RequestMore}\label{wxidleeventrequestmore} | |
84 | ||
85 | \func{void}{RequestMore}{\param{bool}{ needMore = true}} | |
86 | ||
87 | Tells wxWidgets that more processing is required. This function can be called by an OnIdle | |
88 | handler for a window or window event handler to indicate that wxApp::OnIdle should | |
89 | forward the OnIdle event once more to the application windows. If no window calls this function | |
90 | during OnIdle, then the application will remain in a passive event loop (not calling OnIdle) until a | |
91 | new event is posted to the application by the windowing system. | |
92 | ||
93 | \wxheading{See also} | |
94 | ||
95 | \helpref{wxIdleEvent::MoreRequested}{wxidleeventmorerequested} | |
96 | ||
97 | \membersection{wxIdleEvent::MoreRequested}\label{wxidleeventmorerequested} | |
98 | ||
99 | \constfunc{bool}{MoreRequested}{\void} | |
100 | ||
101 | Returns true if the OnIdle function processing this event requested more processing time. | |
102 | ||
103 | \wxheading{See also} | |
104 | ||
105 | \helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore} | |
106 | ||
107 | \membersection{wxIdleEvent::SetMode}\label{wxidleeventsetmode} | |
108 | ||
109 | \func{static void}{SetMode}{\param{wxIdleMode }{mode}} | |
110 | ||
111 | Static function for specifying how wxWidgets will send idle events: to | |
112 | all windows, or only to those which specify that they | |
113 | will process the events. | |
114 | ||
115 | {\it mode} can be one of the following values. | |
116 | The default is wxIDLE\_PROCESS\_ALL. | |
117 | ||
118 | \begin{verbatim} | |
119 | enum wxIdleMode | |
120 | { | |
121 | // Send idle events to all windows | |
122 | wxIDLE_PROCESS_ALL, | |
123 | ||
124 | // Send idle events to windows that have | |
125 | // the wxWS_EX_PROCESS_IDLE flag specified | |
126 | wxIDLE_PROCESS_SPECIFIED | |
127 | }; | |
128 | \end{verbatim} | |
129 |