]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/toplevel_osx.cpp
Applied #15375 to stop event-sending in generic wxSpinCtrl ctor (eco)
[wxWidgets.git] / src / osx / toplevel_osx.cpp
index 3c1c8ae4d339d92bafc64f4d2ec1fb6241f05cc4..b0dc8209047823ada3ca5071368aa935ec0fedcf 100644 (file)
@@ -1,10 +1,9 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        src/osx/toplevel.cpp
+// Name:        src/osx/toplevel_osx.cpp
 // Purpose:     implements wxTopLevelWindow for Mac
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     24.09.01
 // Purpose:     implements wxTopLevelWindow for Mac
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     24.09.01
-// RCS-ID:      $Id$
 // Copyright:   (c) 2001-2004 Stefan Csomor
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 2001-2004 Stefan Csomor
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -73,10 +72,7 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent,
                                  long style,
                                  const wxString& name)
 {
                                  long style,
                                  const wxString& name)
 {
-    int w = WidthDefault(size.x);
-    int h = HeightDefault(size.y);
-
-    if ( !wxNonOwnedWindow::Create(parent, id, pos, wxSize(w,h), style, name) )
+    if ( !wxNonOwnedWindow::Create(parent, id, pos, size, style, name) )
         return false;
 
     wxWindow::SetLabel( title ) ;
         return false;
 
     wxWindow::SetLabel( title ) ;
@@ -91,9 +87,9 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent,
 {
     if ( !wxNonOwnedWindow::Create(parent, nativeWindow ) )
         return false;
 {
     if ( !wxNonOwnedWindow::Create(parent, nativeWindow ) )
         return false;
-    
+
     wxTopLevelWindows.Append(this);
     wxTopLevelWindows.Append(this);
-    
+
     return true;
 }
 
     return true;
 }
 
@@ -109,7 +105,13 @@ bool wxTopLevelWindowMac::Destroy()
     if (m_nowpeer && m_nowpeer->GetWXWindow())
         ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() );
 #endif
     if (m_nowpeer && m_nowpeer->GetWXWindow())
         ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() );
 #endif
-    return wxTopLevelWindowBase::Destroy();
+    // delayed destruction: the tlw will be deleted during the next idle
+    // loop iteration
+    if ( !wxPendingDelete.Member(this) )
+        wxPendingDelete.Append(this);
+    
+    Hide();
+    return true;
 }
 
 
 }
 
 
@@ -127,7 +129,7 @@ bool wxTopLevelWindowMac::IsMaximized() const
 {
     if ( m_nowpeer == NULL )
         return false;
 {
     if ( m_nowpeer == NULL )
         return false;
-    
+
     return m_nowpeer->IsMaximized();
 }
 
     return m_nowpeer->IsMaximized();
 }
 
@@ -183,8 +185,9 @@ void wxTopLevelWindowMac::ShowWithoutActivating()
         return;
 
     m_nowpeer->ShowWithoutActivating();
         return;
 
     m_nowpeer->ShowWithoutActivating();
-    
-    // TODO: Should we call EVT_SIZE here?
+
+    // because apps expect a size event to occur at this moment
+    SendSizeEvent();
 }
 
 bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style)
 }
 
 bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style)
@@ -216,3 +219,8 @@ bool wxTopLevelWindowMac::OSXIsModified() const
 {
     return m_nowpeer->IsModified();
 }
 {
     return m_nowpeer->IsModified();
 }
+
+void wxTopLevelWindowMac::SetRepresentedFilename(const wxString& filename)
+{
+    m_nowpeer->SetRepresentedFilename(filename);
+}