git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63912
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
class WXDLLIMPEXP_CORE wxModalEventLoop : public wxGUIEventLoop
{
public:
class WXDLLIMPEXP_CORE wxModalEventLoop : public wxGUIEventLoop
{
public:
- wxModalEventLoop(wxWindow *winModal);
+ wxModalEventLoop(wxWindow *modalWindow);
+ wxModalEventLoop(WXWindow modalNativeWindow);
protected:
virtual void DoRun();
protected:
virtual void DoRun();
// (in case) the modal window for this event loop
wxNonOwnedWindow* m_modalWindow;
// (in case) the modal window for this event loop
wxNonOwnedWindow* m_modalWindow;
+ WXWindow m_modalNativeWindow;
QuitApplicationEventLoop();
}
QuitApplicationEventLoop();
}
-wxModalEventLoop::wxModalEventLoop(wxWindow *winModal)
+// TODO move into a evtloop_osx.cpp
+
+wxModalEventLoop::wxModalEventLoop(wxWindow *modalWindow)
- m_modalWindow = dynamic_cast<wxNonOwnedWindow*> (winModal);
+ m_modalWindow = dynamic_cast<wxNonOwnedWindow*> (modalWindow);
wxASSERT_MSG( m_modalWindow != NULL, "must pass in a toplevel window for modal event loop" );
wxASSERT_MSG( m_modalWindow != NULL, "must pass in a toplevel window for modal event loop" );
+ m_modalNativeWindow = m_modalWindow->GetWXWindow();
+wxModalEventLoop::wxModalEventLoop(WXWindow modalNativeWindow)
+{
+ m_modalWindow = NULL;
+ wxASSERT_MSG( modalNativeWindow != NULL, "must pass in a toplevel window for modal event loop" );
+ m_modalNativeWindow = modalNativeWindow;
+}
+
+// END move into a evtloop_osx.cpp
+
void wxModalEventLoop::DoRun()
{
wxMacAutoreleasePool autoreleasepool;
void wxModalEventLoop::DoRun()
{
wxMacAutoreleasePool autoreleasepool;
- WindowRef windowRef = m_modalWindow->GetWXWindow();
+
+ bool resetGroupParent = false;
WindowGroupRef windowGroup = NULL;
WindowGroupRef formerParentGroup = NULL;
WindowGroupRef windowGroup = NULL;
WindowGroupRef formerParentGroup = NULL;
- bool resetGroupParent = false;
// make sure modal dialogs are in the right layer so that they are not covered
// make sure modal dialogs are in the right layer so that they are not covered
-
- if ( m_modalWindow->GetParent() == NULL )
+ if ( m_modalWindow != NULL )
- windowGroup = GetWindowGroup(windowRef) ;
- if ( windowGroup != GetWindowGroupOfClass( kMovableModalWindowClass ) )
+ if ( m_modalWindow->GetParent() == NULL )
- formerParentGroup = GetWindowGroupParent( windowGroup );
- SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) );
- resetGroupParent = true;
+ windowGroup = GetWindowGroup(m_modalNativeWindow) ;
+ if ( windowGroup != GetWindowGroupOfClass( kMovableModalWindowClass ) )
+ {
+ formerParentGroup = GetWindowGroupParent( windowGroup );
+ SetWindowGroupParent( windowGroup, GetWindowGroupOfClass( kMovableModalWindowClass ) );
+ resetGroupParent = true;
+ }
}
}
m_modalWindow->SetFocus();
}
}
m_modalWindow->SetFocus();
- RunAppModalLoopForWindow(windowRef);
+ RunAppModalLoopForWindow(m_modalNativeWindow);
if ( resetGroupParent )
{
if ( resetGroupParent )
{
void wxModalEventLoop::DoStop()
{
wxMacAutoreleasePool autoreleasepool;
void wxModalEventLoop::DoStop()
{
wxMacAutoreleasePool autoreleasepool;
- WindowRef theWindow = m_modalWindow->GetWXWindow();
- QuitAppModalLoopForWindow(theWindow);
+ QuitAppModalLoopForWindow(m_modalNativeWindow);
-wxModalEventLoop::wxModalEventLoop(wxWindow *winModal)
+// TODO move into a evtloop_osx.cpp
+
+wxModalEventLoop::wxModalEventLoop(wxWindow *modalWindow)
- m_modalWindow = dynamic_cast<wxNonOwnedWindow*> (winModal);
+ m_modalWindow = dynamic_cast<wxNonOwnedWindow*> (modalWindow);
wxASSERT_MSG( m_modalWindow != NULL, "must pass in a toplevel window for modal event loop" );
wxASSERT_MSG( m_modalWindow != NULL, "must pass in a toplevel window for modal event loop" );
+ m_modalNativeWindow = m_modalWindow->GetWXWindow();
+wxModalEventLoop::wxModalEventLoop(WXWindow modalNativeWindow)
+{
+ m_modalWindow = NULL;
+ wxASSERT_MSG( modalNativeWindow != NULL, "must pass in a toplevel window for modal event loop" );
+ m_modalNativeWindow = modalNativeWindow;
+}
+
+// END move into a evtloop_osx.cpp
+
void wxModalEventLoop::DoRun()
{
wxMacAutoreleasePool pool;
void wxModalEventLoop::DoRun()
{
wxMacAutoreleasePool pool;
- NSWindow* theWindow = m_modalWindow->GetWXWindow();
- [NSApp runModalForWindow:theWindow];
+ [NSApp runModalForWindow:m_modalNativeWindow];
}
void wxModalEventLoop::DoStop()
}
void wxModalEventLoop::DoStop()
-wxModalEventLoop::wxModalEventLoop(wxWindow *winModal)
+// TODO move into a evtloop_osx.cpp
+
+wxModalEventLoop::wxModalEventLoop(wxWindow *modalWindow)
- m_modalWindow = dynamic_cast<wxNonOwnedWindow*> (winModal);
+ m_modalWindow = dynamic_cast<wxNonOwnedWindow*> (modalWindow);
wxASSERT_MSG( m_modalWindow != NULL, "must pass in a toplevel window for modal event loop" );
wxASSERT_MSG( m_modalWindow != NULL, "must pass in a toplevel window for modal event loop" );
+ m_modalNativeWindow = m_modalWindow->GetWXWindow();
+}
+
+wxModalEventLoop::wxModalEventLoop(WXWindow modalNativeWindow)
+{
+ m_modalWindow = NULL;
+ wxASSERT_MSG( modalNativeWindow != NULL, "must pass in a toplevel window for modal event loop" );
+ m_modalNativeWindow = modalNativeWindow;
+// END move into a evtloop_osx.cpp
+
+
void wxModalEventLoop::DoRun()
{
// presentModalViewController:animated:
void wxModalEventLoop::DoRun()
{
// presentModalViewController:animated: