]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dialog.h
As per wx-dev, split the sort arrow options out to a separate parameter.
[wxWidgets.git] / include / wx / dialog.h
index ae621112ef68d49948a9c9fce3b170e232be399a..1dd7535bc098429fdc03b7c09f86b279a42cb368 100644 (file)
@@ -41,19 +41,27 @@ public:
     wxDialogBase() { Init(); }
     virtual ~wxDialogBase() { }
 
     wxDialogBase() { Init(); }
     virtual ~wxDialogBase() { }
 
-    void Init();
+    // define public wxDialog methods to be implemented by the derived classes
+    virtual int ShowModal() = 0;
+    virtual void EndModal(int retCode) = 0;
+    virtual bool IsModal() const = 0;
+
 
     // Modal dialogs have a return code - usually the id of the last
     // pressed button
     void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
     int GetReturnCode() const { return m_returnCode; }
 
 
     // Modal dialogs have a return code - usually the id of the last
     // pressed button
     void SetReturnCode(int returnCode) { m_returnCode = returnCode; }
     int GetReturnCode() const { return m_returnCode; }
 
-    // The identifier for the affirmative button
-    void SetAffirmativeId(int affirmativeId) { m_affirmativeId = affirmativeId; }
+    // Set the identifier for the affirmative button: this button will close
+    // the dialog after validating data and calling TransferDataFromWindow()
+    void SetAffirmativeId(int affirmativeId);
     int GetAffirmativeId() const { return m_affirmativeId; }
 
     int GetAffirmativeId() const { return m_affirmativeId; }
 
-    // Identifier for Esc key translation
-    void SetEscapeId(int escapeId) { m_escapeId = escapeId; }
+    // Set identifier for Esc key translation: the button with this id will
+    // close the dialog without doing anything else; special value wxID_NONE
+    // means to not handle Esc at all while wxID_ANY means to map Esc to
+    // wxID_CANCEL if present and GetAffirmativeId() otherwise
+    void SetEscapeId(int escapeId);
     int GetEscapeId() const { return m_escapeId; }
 
 #if wxUSE_STATTEXT // && wxUSE_TEXTCTRL
     int GetEscapeId() const { return m_escapeId; }
 
 #if wxUSE_STATTEXT // && wxUSE_TEXTCTRL
@@ -84,6 +92,14 @@ protected:
     // could do something different if needed
     virtual bool IsEscapeKey(const wxKeyEvent& event);
 
     // could do something different if needed
     virtual bool IsEscapeKey(const wxKeyEvent& event);
 
+    // end either modal or modeless dialog, for the modal dialog rc is used as
+    // the dialog return code
+    void EndDialog(int rc);
+
+    // call Validate() and TransferDataFromWindow() and close dialog with
+    // wxID_OK return code
+    void AcceptAndClose();
+
 
     // The return code from modal dialog
     int m_returnCode;
 
     // The return code from modal dialog
     int m_returnCode;
@@ -95,9 +111,22 @@ protected:
     int m_escapeId;
 
 private:
     int m_escapeId;
 
 private:
+    // common part of all ctors
+    void Init();
+
     // handle Esc key presses
     void OnCharHook(wxKeyEvent& event);
 
     // handle Esc key presses
     void OnCharHook(wxKeyEvent& event);
 
+    // handle closing the dialog window
+    void OnCloseWindow(wxCloseEvent& event);
+
+    // handle the standard buttons
+    void OnButton(wxCommandEvent& event);
+
+    // update the background colour
+    void OnSysColourChanged(wxSysColourChangedEvent& event);
+
+
     DECLARE_NO_COPY_CLASS(wxDialogBase)
     DECLARE_EVENT_TABLE()
     WX_DECLARE_CONTROL_CONTAINER();
     DECLARE_NO_COPY_CLASS(wxDialogBase)
     DECLARE_EVENT_TABLE()
     WX_DECLARE_CONTROL_CONTAINER();