]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/dialog.cpp
use correct scale when drawing
[wxWidgets.git] / src / osx / carbon / dialog.cpp
index a17700638088d822b1ea985ad9dcb46c61cab217..42000d9a52982d5e4c0aacf708e8ddf74e65d59d 100644 (file)
 #include "wx/osx/private.h"
 #include "wx/evtloop.h"
 
-extern wxList wxModalDialogs;
-
 void wxDialog::EndWindowModal()
 {
     // Nothing to do for now.
 }
 
-void wxDialog::ShowWindowModal()
+void wxDialog::DoShowWindowModal()
 {
-    // If someone wants to add support for this to wxOSX Carbon, here would 
+    // 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.
-    wxDialogBase::ShowWindowModal();
-}
-
-void wxDialog::DoShowModal()
-{
-    wxCHECK_RET( !IsModal(), wxT("DoShowModal() called twice") );
-
-    wxModalDialogs.Append(this);
-
-    SetFocus() ;
-
-    WindowRef windowRef = (WindowRef) GetWXWindow();
-    WindowGroupRef windowGroup = NULL;
-    WindowGroupRef formerParentGroup = NULL;
-    bool resetGroupParent = false;
-
-    if ( GetParent() == NULL )
-    {
-        windowGroup = GetWindowGroup(windowRef) ;
-        if ( windowGroup != GetWindowGroupOfClass( kMovableModalWindowClass ) )
-        {
-            formerParentGroup = GetWindowGroupParent( windowGroup );
-            SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) );
-            resetGroupParent = true;
-        }
-    }
-    BeginAppModalStateForWindow(windowRef) ;
-
-#if wxUSE_CONSOLE_EVENTLOOP
-    wxEventLoopGuarantor ensureHasLoop;
-#endif
-    wxEventLoopBase * const loop = wxEventLoop::GetActive();
-    while ( IsModal() )
-        loop->Dispatch();
 
-    EndAppModalStateForWindow(windowRef) ;
-    if ( resetGroupParent )
-    {
-        SetWindowGroupParent( windowGroup , formerParentGroup );
-    }
+    m_modality = wxDIALOG_MODALITY_APP_MODAL;
+    ShowModal();
+    SendWindowModalDialogEvent ( wxEVT_WINDOW_MODAL_DIALOG_CLOSED  );
 }