]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/thread/thread.cpp
Make height of red square depend on value in the model
[wxWidgets.git] / samples / thread / thread.cpp
index d239920382196f678b063b81565ebae6370be1d0..d85db154a444d8a31f3aa468fb912bd2e8a1d17e 100644 (file)
@@ -30,6 +30,8 @@
 
 #include "wx/progdlg.h"
 
+#include "../sample.xpm"
+
 // define this to use wxExecute in the exec tests, otherwise just use system
 #define USE_EXECUTE
 
@@ -132,7 +134,8 @@ private:
 // ID for the menu commands
 enum
 {
-    THREAD_QUIT          = 1,
+    THREAD_QUIT  = wxID_EXIT,
+    THREAD_ABOUT = wxID_ABOUT,
     THREAD_TEXT          = 101,
     THREAD_CLEAR,
     THREAD_START_THREAD  = 201,
@@ -146,7 +149,6 @@ enum
     THREAD_EXEC_THREAD,
 
     THREAD_SHOWCPUS,
-    THREAD_ABOUT,
 
     WORKER_EVENT    // this one gets sent from the worker thread
 };
@@ -171,7 +173,7 @@ public:
     void WriteText(const wxString& text);
 
 public:
-    size_t   m_count;
+    unsigned m_count;
     MyFrame *m_frame;
 };
 
@@ -264,7 +266,7 @@ public:
 
 public:
     MyFrame *m_frame;
-    size_t   m_count;
+    unsigned m_count;
 };
 
 MyWorkerThread::MyWorkerThread(MyFrame *frame)
@@ -361,6 +363,9 @@ MyApp::MyApp()
 // `Main program' equivalent, creating windows and returning main app frame
 bool MyApp::OnInit()
 {
+    if ( !wxApp::OnInit() )
+        return false;
+
     // uncomment this to get some debugging messages from the trace code
     // on the console (or just set WXTRACE env variable to include "thread")
     //wxLog::AddTraceMask("thread");
@@ -401,7 +406,7 @@ bool MyApp::OnInit()
     menuBar->Append(menuHelp, _T("&Help"));
 
     frame->SetMenuBar(menuBar);
-
+    
     // Show the frame
     frame->Show(true);
 
@@ -415,6 +420,8 @@ MyFrame::MyFrame(wxFrame *frame, const wxString& title,
                  int x, int y, int w, int h)
        : wxFrame(frame, wxID_ANY, title, wxPoint(x, y), wxSize(w, h))
 {
+    SetIcon(wxIcon(sample_xpm));
+    
     m_nRunning = m_nCount = 0;
 
     m_dlgProgress = (wxProgressDialog *)NULL;
@@ -490,7 +497,7 @@ MyThread *MyFrame::CreateThread()
 
 void MyFrame::OnStartThreads(wxCommandEvent& WXUNUSED(event) )
 {
-    static long s_num = 10;
+    static long s_num;
 
     s_num = wxGetNumberFromUser(_T("How many threads to start: "), _T(""),
                                 _T("wxThread sample"), s_num, 1, 10000, this);
@@ -501,7 +508,7 @@ void MyFrame::OnStartThreads(wxCommandEvent& WXUNUSED(event) )
         return;
     }
 
-    size_t count = (size_t)s_num, n;
+    unsigned count = unsigned(s_num), n;
 
     wxArrayThread threads;
 
@@ -643,7 +650,7 @@ void MyFrame::OnIdle(wxIdleEvent& event)
         m_nRunning = nRunning;
         m_nCount = nCount;
 
-        wxLogStatus(this, wxT("%u threads total, %u running."), nCount, nRunning);
+        wxLogStatus(this, wxT("%u threads total, %u running."), unsigned(nCount), unsigned(nRunning));
     }
     //else: avoid flicker - don't print anything
 
@@ -726,6 +733,7 @@ void MyFrame::OnStartWorker(wxCommandEvent& WXUNUSED(event))
     if ( thread->Create() != wxTHREAD_NO_ERROR )
     {
         wxLogError(wxT("Can't create thread!"));
+        return;
     }
 
     m_dlgProgress = new wxProgressDialog