X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/524c47aa3adf2af11a3069fd5da035a604f08f66..f48a115976827701bb7b4bab7333f7512de08ab2:/src/osx/carbon/dialog.cpp diff --git a/src/osx/carbon/dialog.cpp b/src/osx/carbon/dialog.cpp index 4779594662..42000d9a52 100644 --- a/src/osx/carbon/dialog.cpp +++ b/src/osx/carbon/dialog.cpp @@ -23,45 +23,19 @@ #include "wx/osx/private.h" #include "wx/evtloop.h" -extern wxList wxModalDialogs; - -void wxDialog::DoShowModal() +void wxDialog::EndWindowModal() { - wxCHECK_RET( !IsModal(), wxT("DoShowModal() called twice") ); - - wxModalDialogs.Append(this); - - SetFocus() ; - - WindowRef windowRef = (WindowRef) GetWXWindow(); - WindowGroupRef windowGroup; - WindowGroupRef formerParentGroup; - bool resetGroupParent = false; + // Nothing to do for now. +} - if ( GetParent() == NULL ) - { - windowGroup = GetWindowGroup(windowRef) ; - formerParentGroup = GetWindowGroupParent( windowGroup ); - SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) ); - resetGroupParent = true; - } - BeginAppModalStateForWindow(windowRef) ; - - wxEventLoop * const - loop = wx_static_cast(wxEventLoop *, wxEventLoop::GetActive()); - - - wxASSERT_MSG( loop , wxT("No Event Loop in place") ); - - if ( loop ) - { - while ( IsModal() ) - loop->Dispatch(); - } - - EndAppModalStateForWindow(windowRef) ; - if ( resetGroupParent ) - { - SetWindowGroupParent( windowGroup , formerParentGroup ); - } -} \ No newline at end of file +void wxDialog::DoShowWindowModal() +{ + // If someone wants to add support for this to wxOSX Carbon, here would + // be the place to start: http://trac.wxwidgets.org/ticket/9459 + // Unfortunately, supporting sheets in Carbon isn't as straightforward + // as with Cocoa, so it will probably take some tweaking. + + m_modality = wxDIALOG_MODALITY_APP_MODAL; + ShowModal(); + SendWindowModalDialogEvent ( wxEVT_WINDOW_MODAL_DIALOG_CLOSED ); +}