///////////////////////////////////////////////////////////////////////////////
-// 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
// RCS-ID: $Id$
// Copyright: (c) 2001-2004 Stefan Csomor
-// License: wxWindows licence
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
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 true;
}
+bool wxTopLevelWindowMac::Create(wxWindow *parent,
+ WXWindow nativeWindow)
+{
+ if ( !wxNonOwnedWindow::Create(parent, nativeWindow ) )
+ return false;
+
+ wxTopLevelWindows.Append(this);
+
+ return true;
+}
+
wxTopLevelWindowMac::~wxTopLevelWindowMac()
{
}
// NB: this will get called during destruction if we don't do it now,
// and may fire a kill focus event on a control being destroyed
#if wxOSX_USE_CARBON
- if (m_nowpeer->GetWXWindow())
+ 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;
}
bool wxTopLevelWindowMac::IsMaximized() const
{
+ if ( m_nowpeer == NULL )
+ return false;
+
return m_nowpeer->IsMaximized();
}
bool wxTopLevelWindowMac::IsIconized() const
{
+ if ( m_nowpeer == NULL )
+ return false;
+
return m_nowpeer->IsIconized();
}
void wxTopLevelWindowMac::SetTitle(const wxString& title)
{
- wxWindow::SetLabel( title ) ;
+ m_label = title ;
+
if ( m_nowpeer )
m_nowpeer->SetTitle(title, GetFont().GetEncoding() );
}
void wxTopLevelWindowMac::ShowWithoutActivating()
{
- return m_nowpeer->ShowWithoutActivating();
+ // wxTopLevelWindowBase is derived from wxNonOwnedWindow, so don't
+ // call it here.
+ if ( !wxWindow::Show(true) )
+ return;
+
+ m_nowpeer->ShowWithoutActivating();
+
+ // because apps expect a size event to occur at this moment
+ SendSizeEvent();
}
bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style)
{
return m_nowpeer->IsActive();
}
+
+void wxTopLevelWindowMac::OSXSetModified(bool modified)
+{
+ m_nowpeer->SetModified(modified);
+}
+
+bool wxTopLevelWindowMac::OSXIsModified() const
+{
+ return m_nowpeer->IsModified();
+}
+
+void wxTopLevelWindowMac::SetRepresentedFilename(const wxString& filename)
+{
+ m_nowpeer->SetRepresentedFilename(filename);
+}