]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/progdlgg.h
Cast for argument to delete[] - VC6 doesn't want to delete a const pointer
[wxWidgets.git] / include / wx / generic / progdlgg.h
index bc298194958547a4963123a3231a765e03a30066..a3ff1a8f029ebd595b1dde00d770f1184b36609f 100644 (file)
@@ -1,11 +1,11 @@
 ////////////////////////////////////////////////////
 // Name:        progdlgg.h
 // Purpose:     wxProgressDialog class
 ////////////////////////////////////////////////////
 // Name:        progdlgg.h
 // Purpose:     wxProgressDialog class
-// Author:      Karsten Ballüder
+// Author:      Karsten Ballueder
 // Modified by:
 // Created:     09.05.1999
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     09.05.1999
 // RCS-ID:      $Id$
-// Copyright:   (c) Karsten Ballüder
+// Copyright:   (c) Karsten Ballueder
 // Licence:     wxWindows licence
 ////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 ////////////////////////////////////////////////////
 
 #define __PROGDLGH_G__
 
 #include "wx/defs.h"
 #define __PROGDLGH_G__
 
 #include "wx/defs.h"
+#include "wx/progdlg.h"
 
 #if wxUSE_PROGRESSDLG
 
 #include "wx/dialog.h"
 
 
 #if wxUSE_PROGRESSDLG
 
 #include "wx/dialog.h"
 
-class WXDLLEXPORT wxButton;
-class WXDLLEXPORT wxGauge;
-class WXDLLEXPORT wxStaticText;
+class WXDLLIMPEXP_FWD_CORE wxButton;
+class WXDLLIMPEXP_FWD_CORE wxGauge;
+class WXDLLIMPEXP_FWD_CORE wxStaticText;
 
 /* Progress dialog which shows a moving progress bar.
     Taken from the Mahogany project.*/
 
 
 /* Progress dialog which shows a moving progress bar.
     Taken from the Mahogany project.*/
 
-class WXDLLEXPORT wxProgressDialog : public wxDialog
+class WXDLLIMPEXP_CORE wxProgressDialog : public wxDialog
 {
 DECLARE_DYNAMIC_CLASS(wxProgressDialog)
 public:
 {
 DECLARE_DYNAMIC_CLASS(wxProgressDialog)
 public:
-   /* Creates and displays dialog, disables event handling for other
+    /* Creates and displays dialog, disables event handling for other
        frames or parent frame to avoid recursion problems.
        @param title title for window
        @param message message to display in window
        @param maximum value for status bar, if <= 0, no bar is shown
        @param parent window or NULL
        @param style is the bit mask of wxPD_XXX constants from wx/defs.h
        frames or parent frame to avoid recursion problems.
        @param title title for window
        @param message message to display in window
        @param maximum value for status bar, if <= 0, no bar is shown
        @param parent window or NULL
        @param style is the bit mask of wxPD_XXX constants from wx/defs.h
-   */
-   wxProgressDialog(const wxString &title, wxString const &message,
-                    int maximum = 100,
-                    wxWindow *parent = NULL,
-                    int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE);
-   /* Destructor.
-       Re-enables event handling for other windows.
-   */
-   ~wxProgressDialog();
-
-   /* Update the status bar to the new value.
+    */
+    wxProgressDialog(const wxString& title, const wxString& message,
+                     int maximum = 100,
+                     wxWindow *parent = NULL,
+                     int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE);
+    /* Destructor.
+        Re-enables event handling for other windows.
+    */
+    virtual ~wxProgressDialog();
+
+    /* Update the status bar to the new value.
        @param value new value
        @param newmsg if used, new message to display
        @param value new value
        @param newmsg if used, new message to display
-       @returns true if ABORT button has not been pressed
-   */
-   virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL);
+       @return true if ABORT button has not been pressed
+    */
+    virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL);
 
 
-   /* Can be called to continue after the cancel button has been pressed, but
+    /* Switches the dialog to use a gauge in indeterminate mode and calls
+       wxGauge::Pulse() to show to the user a bit of progress */
+    virtual bool Pulse(const wxString& newmsg = wxEmptyString, bool *skip = NULL);
+
+    // Must provide overload to avoid hiding it (and warnings about it)
+    virtual void Update() { wxDialog::Update(); }
+
+    /* Can be called to continue after the cancel button has been pressed, but
        the program decided to continue the operation (e.g., user didn't
        confirm it)
        the program decided to continue the operation (e.g., user didn't
        confirm it)
-   */
-   void Resume();
+    */
+    void Resume();
 
 
-   virtual bool Show( bool show = true );
+    virtual bool Show( bool show = true );
 
 protected:
 
 protected:
-   // callback for optional abort button
-   void OnCancel(wxCommandEvent& event);
+    // callback for optional abort button
+    void OnCancel(wxCommandEvent&);
 
 
-   // callback for optional skip button
-   void OnSkip(wxCommandEvent& event);
+    // callback for optional skip button
+    void OnSkip(wxCommandEvent&);
 
 
-   // callback to disable "hard" window closing
-   void OnClose(wxCloseEvent& event);
+    // callback to disable "hard" window closing
+    void OnClose(wxCloseEvent&);
 
 
-   // must be called to reenable the other windows temporarily disabled while
-   // the dialog was shown
-   void ReenableOtherWindows();
+    // must be called to reenable the other windows temporarily disabled while
+    // the dialog was shown
+    void ReenableOtherWindows();
 
 private:
 
 private:
-   // create the label with given text and another one to show the time nearby
-   // as the next windows in the sizer, returns the created control
-   wxStaticText *CreateLabel(const wxString& text, wxSizer *sizer);
-
-   // shortcuts for enabling buttons
-   void EnableClose();
-   void EnableSkip(bool enable=true);
-   void EnableAbort(bool enable=true);
-   inline void DisableSkip() { EnableSkip(false); }
-   inline void DisableAbort() { EnableAbort(false); }
-
-   // the status bar
-   wxGauge *m_gauge;
-   // the message displayed
-   wxStaticText *m_msg;
-   // displayed elapsed, estimated, remaining time
-   class wxStaticText *m_elapsed,
-                      *m_estimated,
-                      *m_remaining;
-   // time when the dialog was created
-   unsigned long m_timeStart;
-   // time when the dialog was closed or cancelled
-   unsigned long m_timeStop;
-   // time between the moment the dialog was closed/cancelled and resume
-   unsigned long m_break;
-
-   // parent top level window (may be NULL)
-   wxWindow *m_parentTop;
+    // create the label with given text and another one to show the time nearby
+    // as the next windows in the sizer, returns the created control
+    wxStaticText *CreateLabel(const wxString& text, wxSizer *sizer);
+
+    // updates the label message
+    void UpdateMessage(const wxString &newmsg);
+
+    // common part of Update() and Pulse(), returns true if not cancelled
+    bool DoAfterUpdate(bool *skip);
+
+    // shortcuts for enabling buttons
+    void EnableClose();
+    void EnableSkip(bool enable = true);
+    void EnableAbort(bool enable = true);
+    void DisableSkip() { EnableSkip(false); }
+    void DisableAbort() { EnableAbort(false); }
+
+    // the status bar
+    wxGauge *m_gauge;
+    // the message displayed
+    wxStaticText *m_msg;
+    // displayed elapsed, estimated, remaining time
+    wxStaticText *m_elapsed,
+                 *m_estimated,
+                 *m_remaining;
+    // time when the dialog was created
+    unsigned long m_timeStart;
+    // time when the dialog was closed or cancelled
+    unsigned long m_timeStop;
+    // time between the moment the dialog was closed/cancelled and resume
+    unsigned long m_break;
+
+    // parent top level window (may be NULL)
+    wxWindow *m_parentTop;
 
     // continue processing or not (return value for Update())
     enum
 
     // continue processing or not (return value for Update())
     enum
@@ -147,13 +161,9 @@ private:
 #endif // __WXMSW__
 
     // for wxPD_APP_MODAL case
 #endif // __WXMSW__
 
     // for wxPD_APP_MODAL case
-    class WXDLLEXPORT wxWindowDisabler *m_winDisabler;
+    class WXDLLIMPEXP_FWD_CORE wxWindowDisabler *m_winDisabler;
 
     DECLARE_EVENT_TABLE()
 
     DECLARE_EVENT_TABLE()
-private:
-    // Virtual function hiding supression
-    virtual void Update() { wxDialog::Update(); }
-
     DECLARE_NO_COPY_CLASS(wxProgressDialog)
 };
 
     DECLARE_NO_COPY_CLASS(wxProgressDialog)
 };