X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53e34ee6faf539b3e3b4bdd5a2795b2a96bbb72d..b356aa554a82f4d82f0c12abb83eb4656204fe7a:/src/common/dlgcmn.cpp diff --git a/src/common/dlgcmn.cpp b/src/common/dlgcmn.cpp index c47e33832b..7c5ef85837 100644 --- a/src/common/dlgcmn.cpp +++ b/src/common/dlgcmn.cpp @@ -40,9 +40,9 @@ #include "wx/statline.h" #include "wx/sysopt.h" #include "wx/module.h" -#include "wx/private/stattext.h" #include "wx/bookctrl.h" #include "wx/scrolwin.h" +#include "wx/textwrapper.h" #if wxUSE_DISPLAY #include "wx/display.h" @@ -464,6 +464,42 @@ void wxDialogBase::OnButton(wxCommandEvent& event) } } +// ---------------------------------------------------------------------------- +// compatibility methods for supporting the modality API +// ---------------------------------------------------------------------------- + +wxDEFINE_EVENT( wxEVT_WINDOW_MODAL_DIALOG_CLOSED , wxWindowModalDialogEvent ); + +IMPLEMENT_DYNAMIC_CLASS(wxWindowModalDialogEvent, wxCommandEvent) + +bool wxDialogBase::ShowWindowModal () +{ + ShowModal(); + SendWindowModalDialogEvent ( wxEVT_WINDOW_MODAL_DIALOG_CLOSED ); + return true; +} + +void wxDialogBase::SendWindowModalDialogEvent ( wxEventType type ) +{ + wxCommandEvent event ( type, GetId()); + event.SetEventObject(this); + + if ( !GetEventHandler()->ProcessEvent(event) ) + { + // the event is not propagated upwards to the parent automatically + // because the dialog is a top level window, so do it manually as + // in 9 cases of 10 the message must be processed by the dialog + // owner and not the dialog itself + (void)GetParent()->GetEventHandler()->ProcessEvent(event); + } +} + + +wxDialogModality wxDialogBase::GetModality() const +{ + return IsModal() ? wxDIALOG_MODALITY_APP_MODAL : wxDIALOG_MODALITY_NONE; +} + // ---------------------------------------------------------------------------- // other event handlers // ----------------------------------------------------------------------------