]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/dialogs/dialogs.cpp
fixed typo in the last before one change (UNIV_HDR, not UNIX_HDR)
[wxWidgets.git] / samples / dialogs / dialogs.cpp
index 605ea505a6d484594523c221a7efd07f3b90eada..9828815a22147700a3ee9dd5cd0769f017ffd779 100644 (file)
@@ -1070,33 +1070,7 @@ void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event) )
 
 void MyFrame::ShowProgress( wxCommandEvent& WXUNUSED(event) )
 {
-    #if wxUSE_STOPWATCH && wxUSE_LONGLONG
-    // check the performance
-    int countrandomnumbers = 0, count = 0;
-    wxTimeSpan tsTest(0,0,0,250);
-    wxDateTime DT2, DT1 = wxDateTime::UNow();
-    srand(0);
-    while(1)
-    {
-        rand();
-        ++countrandomnumbers;
-        if ( countrandomnumbers == 1000 )
-        {
-            srand(0);
-            countrandomnumbers = 0;
-            ++count;
-            DT2 = wxDateTime::UNow();
-            wxTimeSpan ts = DT2.Subtract( DT1 );
-            if ( ts.IsLongerThan( tsTest ) )
-            {
-                break;
-            }
-        }
-    }
-    const int max = 40 * count;
-    #else
-    static const int max = 10;
-    #endif // wxUSE_STOPWATCH && wxUSE_LONGLONG
+    static const int max = 100;
 
     wxProgressDialog dialog(_T("Progress dialog example"),
                             _T("An informative message"),
@@ -1109,80 +1083,48 @@ void MyFrame::ShowProgress( wxCommandEvent& WXUNUSED(event) )
                             wxPD_ELAPSED_TIME |
                             wxPD_ESTIMATED_TIME |
                             wxPD_REMAINING_TIME
-                            //wxPD_SMOOTH - makes indeterminate mode bar on WinXP very small
+                            | wxPD_SMOOTH // - makes indeterminate mode bar on WinXP very small
                             );
 
     bool cont = true;
-    bool skip = false;
-    // each skip will move progress about quarter forward
-    for ( int i = 0; i <= max; i = wxMin(i+(skip?int(max/4):1), max+1), skip = false )
+    for ( int i = 0; i <= max; i++ )
     {
-        #if wxUSE_STOPWATCH && wxUSE_LONGLONG
-        // do (almost) the same operations as we did for the performance test
-        srand(0);
-        for ( int j = 0; j < 1000; j++ )
-        {
-            rand();
-            if ( j == 999 )
-            {
-                DT2 = wxDateTime::UNow();
-                wxTimeSpan ts = DT2.Subtract( DT1 );
-                if ( ts.IsLongerThan( tsTest ) )
-                {
-                    // nothing to do
-                }
-            }
-        }
-        #else
-        wxSleep(1);
-        #endif
+        wxMilliSleep(200);
 
         wxString msg;
 
-        // test both behaviours of wxProgressDialog:
-        // determinate mode for first 33% and last 33% of the time
-        // indeterminate mode from 33% to 66% of the progress
-        const int firstpart = max /3,
-                  secondpart = 2 * max /3;
-        bool determinate = i < firstpart || i > secondpart;
-        bool indeterminate = !determinate;
+        // test both modes of wxProgressDialog behaviour: start in
+        // indeterminate mode but switch to the determinate one later
+        const bool determinate = i > max/2;
 
         if ( i == max )
         {
             msg = _T("That's all, folks!");
         }
-        else if ( indeterminate )
+        else if ( !determinate )
         {
-            msg = _T("Now test indeterminate mode");
+            msg = _T("Testing indeterminate mode");
         }
-        else if ( i > secondpart )
+        else if ( determinate )
         {
-            msg = _T("Back to determinate mode");
+            msg = _T("Now in standard determinate mode");
         }
 
-        if (determinate)
-        {
-#if wxUSE_STOPWATCH && wxUSE_LONGLONG
-        if ( (i % (max/100)) == 0 ) // // only 100 updates, this makes it much faster
+        // will be set to true if "Skip" button was pressed
+        bool skip = false;
+        if ( determinate )
         {
             cont = dialog.Update(i, msg, &skip);
         }
-#else
-        cont = dialog.Update(i, msg, &skip);
-#endif
-        }
         else
         {
-#if wxUSE_STOPWATCH && wxUSE_LONGLONG
-            if ( (i % (max/100)) == 0 ) // // only 100 updates, this makes it much faster
-            {
-                cont = dialog.Pulse(msg, &skip);
-            }
-#else
             cont = dialog.Pulse(msg, &skip);
-#endif
         }
 
+        // each skip will move progress about quarter forward
+        if ( skip )
+            i += max/4;
+
         if ( !cont )
         {
             if ( wxMessageBox(_T("Do you really want to cancel?"),
@@ -1282,25 +1224,26 @@ void MyFrame::ShowFullAboutDialog(wxCommandEvent& WXUNUSED(event))
     wxAboutBox(info);
 }
 
-void MyFrame::ShowCustomAboutDialog(wxCommandEvent& WXUNUSED(event))
+// a trivial example of a custom dialog class
+class MyAboutDialog : public wxGenericAboutDialog
 {
-    class MyAboutDialog : public wxGenericAboutDialog
+public:
+    MyAboutDialog(const wxAboutDialogInfo& info)
     {
-    public:
-        MyAboutDialog(const wxAboutDialogInfo& info)
-        {
-            Create(info);
-        }
+        Create(info);
+    }
 
-        // add some custom controls
-        virtual void DoAddCustomControls()
-        {
-            AddControl(new wxStaticLine(this), wxSizerFlags().Expand());
-            AddText(_T("Some custom text"));
-            AddControl(new wxStaticLine(this), wxSizerFlags().Expand());
-        }
-    };
+    // add some custom controls
+    virtual void DoAddCustomControls()
+    {
+        AddControl(new wxStaticLine(this), wxSizerFlags().Expand());
+        AddText(_T("Some custom text"));
+        AddControl(new wxStaticLine(this), wxSizerFlags().Expand());
+    }
+};
 
+void MyFrame::ShowCustomAboutDialog(wxCommandEvent& WXUNUSED(event))
+{
     wxAboutDialogInfo info;
     InitAboutInfoAll(info);