git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60735
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
void OnAbout(wxCommandEvent& event);
// polling output of async processes
void OnAbout(wxCommandEvent& event);
// polling output of async processes
- void OnTimer(wxTimerEvent& event);
+ void OnIdleTimer(wxTimerEvent& event);
void OnIdle(wxIdleEvent& event);
// for MyPipedProcess
void OnIdle(wxIdleEvent& event);
// for MyPipedProcess
// for MyProcess
void OnAsyncTermination(MyProcess *process);
// for MyProcess
void OnAsyncTermination(MyProcess *process);
+ // timer updating a counter in the background
+ void OnBgTimer(wxTimerEvent& event);
+
private:
void ShowOutput(const wxString& cmd,
const wxArrayString& output,
private:
void ShowOutput(const wxString& cmd,
const wxArrayString& output,
// the idle event wake up timer
wxTimer m_timerIdleWakeUp;
// the idle event wake up timer
wxTimer m_timerIdleWakeUp;
+ // a background timer allowing to easily check visually whether the
+ // messages are processed or not
+ wxTimer m_timerBg;
+
// any class wishing to process wxWidgets events must use this macro
DECLARE_EVENT_TABLE()
};
// any class wishing to process wxWidgets events must use this macro
DECLARE_EVENT_TABLE()
};
// IDs for the controls and the menu commands
enum
{
// IDs for the controls and the menu commands
enum
{
+ // timer ids
+ Exec_TimerIdle = 10,
+ Exec_TimerBg,
+
// menu items
Exec_Quit = 100,
Exec_Kill,
// menu items
Exec_Quit = 100,
Exec_Kill,
Exec_DDERequest,
Exec_Redirect,
Exec_Pipe,
Exec_DDERequest,
Exec_Redirect,
Exec_Pipe,
+ Exec_About = wxID_ABOUT,
// control ids
Exec_Btn_Send = 1000,
// control ids
Exec_Btn_Send = 1000,
EVT_IDLE(MyFrame::OnIdle)
EVT_IDLE(MyFrame::OnIdle)
- EVT_TIMER(wxID_ANY, MyFrame::OnTimer)
+ EVT_TIMER(Exec_TimerIdle, MyFrame::OnIdleTimer)
+ EVT_TIMER(Exec_TimerBg, MyFrame::OnBgTimer)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyPipeFrame, wxFrame)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(MyPipeFrame, wxFrame)
// frame constructor
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, wxID_ANY, title, pos, size),
// frame constructor
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, wxID_ANY, title, pos, size),
- m_timerIdleWakeUp(this)
+ m_timerIdleWakeUp(this, Exec_TimerIdle),
+ m_timerBg(this, Exec_TimerBg)
#if wxUSE_STATUSBAR
// create a status bar just for fun (by default with 1 pane only)
#if wxUSE_STATUSBAR
// create a status bar just for fun (by default with 1 pane only)
SetStatusText(_T("Welcome to wxWidgets exec sample!"));
#endif // wxUSE_STATUSBAR
SetStatusText(_T("Welcome to wxWidgets exec sample!"));
#endif // wxUSE_STATUSBAR
+
+ m_timerBg.Start(1000);
-void MyFrame::OnTimer(wxTimerEvent& WXUNUSED(event))
+void MyFrame::OnIdleTimer(wxTimerEvent& WXUNUSED(event))
+void MyFrame::OnBgTimer(wxTimerEvent& WXUNUSED(event))
+{
+ static unsigned long s_ticks = 0;
+ SetStatusText(wxString::Format("%lu ticks", s_ticks++), 1);
+}
+
void MyFrame::OnProcessTerminated(MyPipedProcess *process)
{
RemovePipedProcess(process);
void MyFrame::OnProcessTerminated(MyPipedProcess *process)
{
RemovePipedProcess(process);