X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4f73f25cc81a95cbfff4f1afa850aae5976a423c..a43a9e5521440dbb28037646ed4a07125c8823a9:/src/common/dlgcmn.cpp diff --git a/src/common/dlgcmn.cpp b/src/common/dlgcmn.cpp index 08e2282d8f..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" @@ -104,7 +104,9 @@ wxWindow *wxDialogBase::CheckIfCanBeUsedAsParent(wxWindow *parent) const return NULL; } - if ( parent == this ) + // FIXME-VC6: this compiler requires an explicit const cast or it fails + // with error C2446 + if ( const_cast(parent) == this ) { // not sure if this can really happen but it doesn't hurt to guard // against this clearly invalid situation @@ -462,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 // ----------------------------------------------------------------------------