]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/progdlgg.h
SCROLLWIN instead of SCROLL again
[wxWidgets.git] / include / wx / generic / progdlgg.h
index 27b5fffe4f9de89cdf86a0b5e320057c024e2b3b..73b41912808ba3cca5b03c994512c686c47f3553 100644 (file)
@@ -1,4 +1,4 @@
-/////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////
 // Name:        progdlgg.h
 // Purpose:     wxProgressDialog class
 // Author:      Karsten Ballüder
 // Name:        progdlgg.h
 // Purpose:     wxProgressDialog class
 // Author:      Karsten Ballüder
@@ -6,8 +6,8 @@
 // Created:     09.05.1999
 // RCS-ID:      $Id$
 // Copyright:   (c) Karsten Ballüder
 // Created:     09.05.1999
 // RCS-ID:      $Id$
 // Copyright:   (c) Karsten Ballüder
-// Licence:    wxWindows license
-/////////////////////////////////////////////////////////////////////////////
+// Licence:     wxWindows license
+////////////////////////////////////////////////////
 
 #ifndef __PROGDLGH_G__
 #define __PROGDLGH_G__
 
 #ifndef __PROGDLGH_G__
 #define __PROGDLGH_G__
 #endif
 
 #include "wx/setup.h"
 #endif
 
 #include "wx/setup.h"
-#include "wx/frame.h"
 
 
+#if wxUSE_PROGRESSDLG
 
 
+#include "wx/dialog.h"
 
 
-/** Progress dialog which shows a moving progress bar.
+class WXDLLEXPORT wxButton;
+class WXDLLEXPORT wxStaticText;
+
+/* Progress dialog which shows a moving progress bar.
     Taken from the Mahogany project.*/
 
     Taken from the Mahogany project.*/
 
-class WXDLLEXPORT wxProgressDialog : public wxFrame
+class WXDLLEXPORT 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
        frames or parent frame to avoid recursion problems.
        @param title title for window
        @param message message to display in window
-       @param maximum maximum value for status bar, if <= 0, no bar is shown
+       @param maximum value for status bar, if <= 0, no bar is shown
        @param parent window or NULL
        @param parent window or NULL
-       @param disableParentOnly if true, only disable parent window's
-       event handling
-       @param abortButton if true, dialog will show an abort button
+       @param style is the bit mask of wxPD_XXX constants from wx/defs.h
    */
    wxProgressDialog(const wxString &title, wxString const &message,
    */
    wxProgressDialog(const wxString &title, wxString const &message,
-                   int maximum = 100,
-                   wxWindow *parent = NULL,
-                   bool disableParentOnly = FALSE,
-                   bool abortButton = FALSE);
-   /** Destructor.
+                    int maximum = 100,
+                    wxWindow *parent = NULL,
+                    int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE);
+   /* Destructor.
        Re-enables event handling for other windows.
    */
    ~wxProgressDialog();
 
        Re-enables event handling for other windows.
    */
    ~wxProgressDialog();
 
-   /** Update the status bar to the new value.
+   /* Update the status bar to the new value.
        @param value new value
        @param newmsg if used, new message to display
        @returns true if ABORT button has not been pressed
    */
        @param value new value
        @param newmsg if used, new message to display
        @returns true if ABORT button has not been pressed
    */
-   bool Update(int value = -1, const wxString& newmsg = "");
+   bool Update(int value = -1, const wxString& newmsg = wxT(""));
 
 
-   /** Can be called to continue after the cancel button has been pressed, but
+   /* 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
        the program decided to continue the operation (e.g., user didn't
-       configrm it)
+       confirm it)
    */
    void Resume() { m_state = Continue; }
 
    */
    void Resume() { m_state = Continue; }
 
-   /// Callback for optional abort button
-   void OnCancel(wxEvent& WXUNUSED(event)) { m_state = Canceled; }
-
-   /// callback to disable "hard" window closing
+   // implementation from now on
+       // callback for optional abort button
+   void OnCancel(wxCommandEvent& event);
+       // callback to disable "hard" window closing
    void OnClose(wxCloseEvent& event);
 
 private:
    void OnClose(wxCloseEvent& event);
 
 private:
-   /// the status bar
+   // create the label with given text and another one to show the time nearby
+   // under the lastWindow and modify it to be the same as the control created
+   // (which is returned)
+   wxStaticText *CreateLabel(const wxString& text, wxWindow **lastWindow);
+
+   // the status bar
    class wxGauge *m_gauge;
    class wxGauge *m_gauge;
-   /// the message displayed
+   // the message displayed
    class wxStaticText *m_msg;
    class wxStaticText *m_msg;
-   /// disable all or parent window only
+   // disable all or parent window only
    bool m_disableParentOnly;
    bool m_disableParentOnly;
-   /// parent window
-   class wxWindow *m_parent;
-   /// continue processing or not (return value for Update())
+   // auto-hide?
+   bool m_AutoHide;
+   // displayed elapsed, estimated, remaining time
+   class wxStaticText *m_elapsed,
+                      *m_estimated,
+                      *m_remaining;
+   // time when the dialog was created
+   unsigned long m_timeStart;
+   // parent window
+   wxWindow *m_parent;
+   // continue processing or not (return value for Update())
    enum
    {
       Uncancelable = -1,   // dialog can't be canceled
       Canceled,            // can be cancelled and, in fact, was
    enum
    {
       Uncancelable = -1,   // dialog can't be canceled
       Canceled,            // can be cancelled and, in fact, was
-      Continue             // can be cancelled but wasn't
+      Continue,            // can be cancelled but wasn't
+      Finished             // finished, waiting to be removed from screen
    } m_state;
    } m_state;
+   // the abort button (or NULL if none)
+   wxButton *m_btnAbort;
+   // the maximum value
+   int m_maximum;
 
    DECLARE_EVENT_TABLE()
 };
 
    DECLARE_EVENT_TABLE()
 };
+#endif
+
 #endif
     // __PROGDLGH_G__
 #endif
     // __PROGDLGH_G__