wxMenuBar *menuBar = new wxMenuBar;
wxMenu *menuFile = new wxMenu;
- menuFile->Append(THREAD_CLEAR, _T("&Clear log\tCtrl-L"));
+ menuFile->Append(THREAD_CLEAR, wxT("&Clear log\tCtrl-L"));
menuFile->AppendSeparator();
- menuFile->Append(THREAD_QUIT, _T("E&xit\tAlt-X"));
- menuBar->Append(menuFile, _T("&File"));
+ menuFile->Append(THREAD_QUIT, wxT("E&xit\tAlt-X"));
+ menuBar->Append(menuFile, wxT("&File"));
wxMenu *menuThread = new wxMenu;
- menuThread->Append(THREAD_START_THREAD, _T("&Start a new thread\tCtrl-N"));
- menuThread->Append(THREAD_START_THREADS, _T("Start &many threads at once"));
- menuThread->Append(THREAD_STOP_THREAD, _T("S&top the last spawned thread\tCtrl-S"));
+ menuThread->Append(THREAD_START_THREAD, wxT("&Start a new thread\tCtrl-N"));
+ menuThread->Append(THREAD_START_THREADS, wxT("Start &many threads at once"));
+ menuThread->Append(THREAD_STOP_THREAD, wxT("S&top the last spawned thread\tCtrl-S"));
menuThread->AppendSeparator();
- menuThread->Append(THREAD_PAUSE_THREAD, _T("&Pause the last spawned running thread\tCtrl-P"));
- menuThread->Append(THREAD_RESUME_THREAD, _T("&Resume the first suspended thread\tCtrl-R"));
+ menuThread->Append(THREAD_PAUSE_THREAD, wxT("&Pause the last spawned running thread\tCtrl-P"));
+ menuThread->Append(THREAD_RESUME_THREAD, wxT("&Resume the first suspended thread\tCtrl-R"));
menuThread->AppendSeparator();
- menuThread->Append(THREAD_START_WORKER, _T("Start a &worker thread\tCtrl-W"));
- menuThread->Append(THREAD_EXEC_MAIN, _T("&Launch a program from main thread\tF5"));
- menuThread->Append(THREAD_START_GUI_THREAD, _T("Launch a &GUI thread\tF6"));
- menuBar->Append(menuThread, _T("&Thread"));
+ menuThread->Append(THREAD_START_WORKER, wxT("Start a &worker thread\tCtrl-W"));
+ menuThread->Append(THREAD_EXEC_MAIN, wxT("&Launch a program from main thread\tF5"));
+ menuThread->Append(THREAD_START_GUI_THREAD, wxT("Launch a &GUI thread\tF6"));
+ menuBar->Append(menuThread, wxT("&Thread"));
wxMenu *menuHelp = new wxMenu;
- menuHelp->Append(THREAD_SHOWCPUS, _T("&Show CPU count"));
+ menuHelp->Append(THREAD_SHOWCPUS, wxT("&Show CPU count"));
menuHelp->AppendSeparator();
- menuHelp->Append(THREAD_ABOUT, _T("&About..."));
- menuBar->Append(menuHelp, _T("&Help"));
+ menuHelp->Append(THREAD_ABOUT, wxT("&About..."));
+ menuBar->Append(menuHelp, wxT("&Help"));
SetMenuBar(menuBar);
{
static long s_num;
- s_num = wxGetNumberFromUser(_T("How many threads to start: "), _T(""),
- _T("wxThread sample"), s_num, 1, 10000, this);
+ s_num = wxGetNumberFromUser(wxT("How many threads to start: "), wxT(""),
+ wxT("wxThread sample"), s_num, 1, 10000, this);
if ( s_num == -1 )
{
s_num = 10;
}
#if wxUSE_STATUSBAR
- SetStatusText(_T("New thread started."), 1);
+ SetStatusText(wxT("New thread started."), 1);
#endif // wxUSE_STATUSBAR
}
wxGetApp().m_threads.Last()->Delete();
#if wxUSE_STATUSBAR
- SetStatusText(_T("Last thread stopped."), 1);
+ SetStatusText(wxT("Last thread stopped."), 1);
#endif // wxUSE_STATUSBAR
}
}
wxGetApp().m_threads[n]->Resume();
#if wxUSE_STATUSBAR
- SetStatusText(_T("Thread resumed."), 1);
+ SetStatusText(wxT("Thread resumed."), 1);
#endif // wxUSE_STATUSBAR
}
}
wxGetApp().m_threads[n]->Pause();
#if wxUSE_STATUSBAR
- SetStatusText(_T("Thread paused."), 1);
+ SetStatusText(wxT("Thread paused."), 1);
#endif // wxUSE_STATUSBAR
}
}
switch ( nCPUs )
{
case -1:
- msg = _T("Unknown number of CPUs");
+ msg = wxT("Unknown number of CPUs");
break;
case 0:
- msg = _T("WARNING: you're running without any CPUs!");
+ msg = wxT("WARNING: you're running without any CPUs!");
break;
case 1:
- msg = _T("This system only has one CPU.");
+ msg = wxT("This system only has one CPU.");
break;
default:
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )
{
wxMessageDialog dialog(this,
- _T("wxWidgets multithreaded application sample\n")
- _T("(c) 1998 Julian Smart, Guilhem Lavaux\n")
- _T("(c) 2000 Robert Roebling\n")
- _T("(c) 1999,2009 Vadim Zeitlin"),
- _T("About wxThread sample"),
+ wxT("wxWidgets multithreaded application sample\n")
+ wxT("(c) 1998 Julian Smart, Guilhem Lavaux\n")
+ wxT("(c) 2000 Robert Roebling\n")
+ wxT("(c) 1999,2009 Vadim Zeitlin"),
+ wxT("About wxThread sample"),
wxOK | wxICON_INFORMATION);
dialog.ShowModal();
m_dlgProgress = new wxProgressDialog
(
- _T("Progress dialog"),
- _T("Wait until the thread terminates or press [Cancel]"),
+ wxT("Progress dialog"),
+ wxT("Wait until the thread terminates or press [Cancel]"),
100,
this,
wxPD_CAN_ABORT |
void MyFrame::OnStartGUIThread(wxCommandEvent& WXUNUSED(event))
{
+ // we use this to check that disabling logging only affects the main thread
+ // but the messages from the worker thread will still be logged
+ wxLogNull noLog;
+ wxLogMessage("You shouldn't see this message because of wxLogNull");
+
MyImageDialog dlg(this);
dlg.ShowModal();
wxThread::ExitCode MyGUIThread::Entry()
{
+ // uncomment this to check that disabling logging here does disable it for
+ // this thread -- but not the main one if you also comment out wxLogNull
+ // line in MyFrame::OnStartGUIThread()
+ //wxLogNull noLog;
+
// this goes to the main window
wxLogMessage("GUI thread starting");