]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/msgdlg.h
even more interface fixes
[wxWidgets.git] / interface / wx / msgdlg.h
index 197224859b74938419cd550eb3e9eaf43221dee7..e2693fe9112be56112133549b45d4a5fce714ab2 100644 (file)
@@ -8,7 +8,6 @@
 
 /**
     @class wxMessageDialog
-    @wxheader{msgdlg.h}
 
     This class represents a dialog that shows a single or multi-line message,
     with a choice of OK, Yes, No and Cancel buttons.
@@ -40,9 +39,14 @@ public:
             @c wxCANCEL.
         @style{wxNO_DEFAULT}
             Makes the "No" button default, can only be used with @c wxYES_NO.
+        @style{wxCANCEL_DEFAULT}
+            Makes the "Cancel" button default, can only be used with @c wxCANCEL
         @style{wxYES_DEFAULT}
             Makes the "Yes" button default, this is the default behaviour and
             this flag exists solely for symmetry with @c wxNO_DEFAULT.
+        @style{wxOK_DEFAULT}
+            Makes the "OK" button default, this is the default behaviour and
+            this flag exists solely for symmetry with @c wxCANCEL_DEFAULT.
         @style{wxICON_EXCLAMATION}
             Displays an exclamation mark symbol.
         @style{wxICON_ERROR}
@@ -63,6 +67,11 @@ public:
             implemented only under MSW).
         @endStyleTable
 
+        Notice that not all styles are compatible: only one of @c wxOK and @c
+        wxYES_NO may be specified (and one of them must be specified) and at
+        most one default button style can be used and it is only valid if the
+        corresponding button is shown in the message box.
+
         @param parent
             Parent window.
         @param message
@@ -76,7 +85,7 @@ public:
     */
     wxMessageDialog(wxWindow* parent, const wxString& message,
                     const wxString& caption = "Message box",
-                    long style = wxOK | wxCANCEL,
+                    long style = wxOK | wxCENTRE,
                     const wxPoint& pos = wxDefaultPosition);
 
     /**
@@ -101,30 +110,45 @@ public:
 
         Please see the remarks in SetYesNoLabels() documentation.
     */
-    bool SetOKCancelLabels(const wxString ok, const wxString cancel);
+    virtual bool SetOKCancelLabels(const ButtonLabel& ok,
+                                   const ButtonLabel& cancel);
 
     /**
         Overrides the default label of the OK button.
 
         Please see the remarks in SetYesNoLabels() documentation.
     */
-    bool SetOKLabel(const wxString ok);
+    virtual bool SetOKLabel(const ButtonLabel& ok);
 
     /**
         Overrides the default labels of the Yes, No and Cancel buttons.
 
         Please see the remarks in SetYesNoLabels() documentation.
     */
-    bool SetYesNoCancelLabels(const wxString yes, const wxString no,
-                              const wxString cancel);
+    bool SetYesNoCancelLabels(const ButtonLabel& yes, const ButtonLabel& no,
+                              const ButtonLabel& cancel);
 
     /**
         Overrides the default labels of the Yes and No buttons.
 
-        Notice that this function is not currently available on all platforms,
-        so it may return @false to indicate that the labels couldn't be
-        changed. If it returns @true (currently only under wxMac), the labels
-        were set successfully. Typically, if the function was used
+        The arguments of this function can be either strings or one of the
+        standard identifiers, such as @c wxID_APPLY or @c wxID_OPEN. Notice
+        that even if the label is specified as an identifier, the return value
+        of the dialog ShowModal() method still remains one of @c wxID_OK, @c
+        wxID_CANCEL, @c wxID_YES or @c wxID_NO values, i.e. this identifier
+        changes only the label appearance but not the return code generated by
+        the button. It is possible to mix stock identifiers and string labels
+        in the same function call, for example:
+        @code
+        wxMessageDialog dlg(...);
+        dlg.SetYesNoLabels(wxID_SAVE, _("&Don't save"));
+        @endcode
+
+        Also notice that this function is not currently available on all
+        platforms (although as of wxWidgets 2.9.0 it is implemented in all
+        major ports), so it may return @false to indicate that the labels
+        couldn't be changed. If it returns @true (currently only under wxMac),
+        the labels were set successfully. Typically, if the function was used
         successfully, the main dialog message may need to be changed, e.g.:
         @code
         wxMessageDialog dlg(...);
@@ -134,7 +158,7 @@ public:
             dlg.SetMessage(_("Do you really want to quit?"));
         @endcode
     */
-    bool SetYesNoLabels(const wxString yes, const wxString no);
+    virtual bool SetYesNoLabels(const ButtonLabel& yes, const ButtonLabel& no);
 
     /**
         Shows the dialog, returning one of wxID_OK, wxID_CANCEL, wxID_YES,
@@ -143,7 +167,7 @@ public:
         Notice that this method returns the identifier of the button which was
         clicked unlike wxMessageBox() function.
     */
-    int ShowModal();
+    virtual int ShowModal();
 };