]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dialog.h
Set wxTextCtrl::m_verRichEdit to 4 for RichEdit 4.1.
[wxWidgets.git] / include / wx / dialog.h
index ef747fe24680f1de4bbc7b2153ed17004bbde781..a1657b72af753587464227175960535c09164638 100644 (file)
@@ -22,8 +22,11 @@ class WXDLLIMPEXP_FWD_CORE wxDialogLayoutAdapter;
 class WXDLLIMPEXP_FWD_CORE wxDialog;
 class WXDLLIMPEXP_FWD_CORE wxButton;
 class WXDLLIMPEXP_FWD_CORE wxScrolledWindow;
+class wxTextSizerWrapper;
 
-#define wxDIALOG_NO_PARENT      0x0001  // Don't make owned by apps top window
+// Also see the bit summary table in wx/toplevel.h.
+
+#define wxDIALOG_NO_PARENT      0x0100  // Don't make owned by apps top window
 
 #ifdef __WXWINCE__
 #define wxDEFAULT_DIALOG_STYLE  (wxCAPTION | wxMAXIMIZE | wxCLOSE_BOX | wxNO_BORDER)
@@ -55,9 +58,9 @@ enum wxDialogLayoutAdaptationMode
 
 enum wxDialogModality
 {
-    wxDIALOG_MODALITY_NONE = 0,             
-    wxDIALOG_MODALITY_WINDOW_MODAL = 1,      
-    wxDIALOG_MODALITY_APP_MODAL = 2         
+    wxDIALOG_MODALITY_NONE = 0,
+    wxDIALOG_MODALITY_WINDOW_MODAL = 1,
+    wxDIALOG_MODALITY_APP_MODAL = 2
 };
 
 extern WXDLLIMPEXP_DATA_CORE(const char) wxDialogNameStr[];
@@ -65,12 +68,6 @@ extern WXDLLIMPEXP_DATA_CORE(const char) wxDialogNameStr[];
 class WXDLLIMPEXP_CORE wxDialogBase : public wxTopLevelWindow
 {
 public:
-    enum
-    {
-        // all flags allowed in wxDialogBase::CreateButtonSizer()
-        ButtonSizerFlags = wxOK|wxCANCEL|wxYES|wxNO|wxHELP|wxNO_DEFAULT
-    };
-
     wxDialogBase() { Init(); }
     virtual ~wxDialogBase() { }
 
@@ -80,7 +77,7 @@ public:
     virtual bool IsModal() const = 0;
     // show the dialog frame-modally (needs a parent), using app-modal
     // dialogs on platforms that don't support it
-    virtual bool ShowWindowModal () ;
+    virtual void ShowWindowModal () ;
     virtual void SendWindowModalDialogEvent ( wxEventType type );
 
     // Modal dialogs have a return code - usually the id of the last
@@ -104,13 +101,29 @@ public:
     // but fall back to the current active window or main application window as
     // last resort if it is unsuitable.
     //
+    // As this function is often called from the ctor, the window style may be
+    // not set yet and hence must be passed explicitly to it so that we could
+    // check whether it contains wxDIALOG_NO_PARENT bit.
+    //
     // This function always returns a valid top level window or NULL.
-    wxWindow *GetParentForModalDialog(wxWindow *parent = NULL) const;
+    wxWindow *GetParentForModalDialog(wxWindow *parent, long style) const;
+
+    // This overload can only be used for already initialized windows, i.e. not
+    // from the ctor. It uses the current window parent and style.
+    wxWindow *GetParentForModalDialog() const
+    {
+        return GetParentForModalDialog(GetParent(), GetWindowStyle());
+    }
 
 #if wxUSE_STATTEXT // && wxUSE_TEXTCTRL
-    // splits text up at newlines and places the
-    // lines into a vertical wxBoxSizer
-    wxSizer *CreateTextSizer( const wxString &message );
+    // splits text up at newlines and places the lines into a vertical
+    // wxBoxSizer
+    wxSizer *CreateTextSizer( const wxString& message );
+
+    // same as above but uses a customized wxTextSizerWrapper to create
+    // non-standard controls for the lines
+    wxSizer *CreateTextSizer( const wxString& message,
+                              wxTextSizerWrapper& wrapper );
 #endif // wxUSE_STATTEXT // && wxUSE_TEXTCTRL
 
     // returns a horizontal wxBoxSizer containing the given buttons
@@ -120,9 +133,16 @@ public:
     // platforms which have hardware buttons replacing OK/Cancel and such)
     wxSizer *CreateButtonSizer(long flags);
 
+    // returns a sizer containing the given one and a static line separating it
+    // from the preceding elements if it's appropriate for the current platform
+    wxSizer *CreateSeparatedSizer(wxSizer *sizer);
+
     // returns the sizer containing CreateButtonSizer() below a separating
     // static line for the platforms which use static lines for items
     // separation (i.e. not Mac)
+    //
+    // this is just a combination of CreateButtonSizer() and
+    // CreateSeparatedSizer()
     wxSizer *CreateSeparatedButtonSizer(long flags);
 
 #if wxUSE_BUTTON
@@ -170,7 +190,7 @@ public:
     static void EnableLayoutAdaptation(bool enable) { sm_layoutAdaptation = enable; }
 
     // modality kind
-    wxDialogModality GetModality() const;
+    virtual wxDialogModality GetModality() const;
 protected:
     // emulate click of a button with the given id if it's present in the dialog
     //
@@ -229,6 +249,13 @@ private:
     // can be used as our parent or NULL if it can't
     wxWindow *CheckIfCanBeUsedAsParent(wxWindow *parent) const;
 
+    // Helper of OnCharHook() and OnCloseWindow(): find the appropriate button
+    // for closing the dialog and send a click event for it.
+    //
+    // Return true if we found a button to close the dialog and "clicked" it or
+    // false otherwise.
+    bool SendCloseButtonClickEvent();
+
     // handle Esc key presses
     void OnCharHook(wxKeyEvent& event);
 
@@ -348,8 +375,8 @@ public:
 
     wxDialog *GetDialog() const
         { return wxStaticCast(GetEventObject(), wxDialog); }
-        
-    int GetReturnCode() const 
+
+    int GetReturnCode() const
         { return GetDialog()->GetReturnCode(); }
 
     virtual wxEvent *Clone() const { return new wxWindowModalDialogEvent (*this); }