X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d6f93922574f0733fde4817445c3575398e2bf7a..3d777efedc1e05bd6c2a7c34a00a65895b62bb13:/src/osx/toplevel_osx.cpp?ds=sidebyside diff --git a/src/osx/toplevel_osx.cpp b/src/osx/toplevel_osx.cpp index 1886e988c9..b0dc820904 100644 --- a/src/osx/toplevel_osx.cpp +++ b/src/osx/toplevel_osx.cpp @@ -1,12 +1,11 @@ /////////////////////////////////////////////////////////////////////////////// -// 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 /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -83,10 +82,38 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent, return true; } +bool wxTopLevelWindowMac::Create(wxWindow *parent, + WXWindow nativeWindow) +{ + if ( !wxNonOwnedWindow::Create(parent, nativeWindow ) ) + return false; + + wxTopLevelWindows.Append(this); + + return true; +} + wxTopLevelWindowMac::~wxTopLevelWindowMac() { } +bool wxTopLevelWindowMac::Destroy() +{ + // 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 && m_nowpeer->GetWXWindow()) + ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() ); +#endif + // delayed destruction: the tlw will be deleted during the next idle + // loop iteration + if ( !wxPendingDelete.Member(this) ) + wxPendingDelete.Append(this); + + Hide(); + return true; +} + // ---------------------------------------------------------------------------- // wxTopLevelWindowMac maximize/minimize @@ -100,6 +127,9 @@ void wxTopLevelWindowMac::Maximize(bool maximize) bool wxTopLevelWindowMac::IsMaximized() const { + if ( m_nowpeer == NULL ) + return false; + return m_nowpeer->IsMaximized(); } @@ -111,6 +141,9 @@ void wxTopLevelWindowMac::Iconize(bool iconize) bool wxTopLevelWindowMac::IsIconized() const { + if ( m_nowpeer == NULL ) + return false; + return m_nowpeer->IsIconized(); } @@ -133,8 +166,10 @@ wxPoint wxTopLevelWindowMac::GetClientAreaOrigin() const void wxTopLevelWindowMac::SetTitle(const wxString& title) { - wxWindow::SetLabel( title ) ; - m_nowpeer->SetTitle(title, GetFont().GetEncoding() ); + m_label = title ; + + if ( m_nowpeer ) + m_nowpeer->SetTitle(title, GetFont().GetEncoding() ); } wxString wxTopLevelWindowMac::GetTitle() const @@ -142,6 +177,19 @@ wxString wxTopLevelWindowMac::GetTitle() const return wxWindow::GetLabel(); } +void wxTopLevelWindowMac::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->ShowFullScreen(show, style); @@ -156,3 +204,23 @@ void wxTopLevelWindowMac::RequestUserAttention(int flags) { return m_nowpeer->RequestUserAttention(flags); } + +bool wxTopLevelWindowMac::IsActive() +{ + 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); +}