X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94b4dd54994eeae0e625bca08446f7e8d8d917a8..ebfee17940b5123d0527b63bcf23e5f27002092e:/include/wx/dialog.h diff --git a/include/wx/dialog.h b/include/wx/dialog.h index ef747fe246..d105144618 100644 --- a/include/wx/dialog.h +++ b/include/wx/dialog.h @@ -23,7 +23,9 @@ class WXDLLIMPEXP_FWD_CORE wxDialog; class WXDLLIMPEXP_FWD_CORE wxButton; class WXDLLIMPEXP_FWD_CORE wxScrolledWindow; -#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 +57,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 +67,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 +76,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,8 +100,19 @@ 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 @@ -170,7 +177,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 // @@ -348,8 +355,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); }