X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f99422e9e916202c36a62534236d2288aae435c7..3e1924dd5f5744c3e2a8973de9b3e4f372b7fd85:/src/cocoa/mdi.mm?ds=sidebyside diff --git a/src/cocoa/mdi.mm b/src/cocoa/mdi.mm index 1d069d58b0..b1aa7c6b26 100644 --- a/src/cocoa/mdi.mm +++ b/src/cocoa/mdi.mm @@ -1,18 +1,24 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: cocoa/mdi.mm +// Name: src/cocoa/mdi.mm // Purpose: wxMDIParentFrame, wxMDIChildFrame, wxMDIClientWindow // Author: David Elliott // Modified by: // Created: 2003/09/08 // RCS-ID: $Id$ // Copyright: (c) 2003 David Elliott -// Licence: wxWindows licence +// Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" + +#if wxUSE_MDI + +#include "wx/mdi.h" + +#include "wx/cocoa/objc/objc_uniquifying.h" + #ifndef WX_PRECOMP #include "wx/log.h" - #include "wx/mdi.h" #endif // WX_PRECOMP // #include "wx/cocoa/autorelease.h" @@ -23,7 +29,7 @@ // #import // #import -#include +#include "wx/listimpl.cpp" WX_DEFINE_LIST(wxCocoaMDIChildFrameList); WX_DECLARE_HASH_MAP(int, wxMDIChildFrame*, wxIntegerHash, wxIntegerEqual, wxIntMDIChildFrameHashMap); @@ -40,11 +46,12 @@ WX_DECLARE_HASH_MAP(int, wxMDIChildFrame*, wxIntegerHash, wxIntegerEqual, wxIntM - (id)initWithWxMDIParentFrame: (wxMDIParentFrame *)mdiParent; - (void)windowDidBecomeMain: (NSNotification *)notification; @end // interface wxMDIParentFrameObserver : NSObject +WX_DECLARE_GET_OBJC_CLASS(wxMDIParentFrameObserver,NSObject) @implementation wxMDIParentFrameObserver : NSObject - (id)init { - wxFAIL_MSG("[wxMDIParentFrameObserver -init] should never be called!"); + wxFAIL_MSG(wxT("[wxMDIParentFrameObserver -init] should never be called!")); m_mdiParent = NULL; return self; } @@ -63,6 +70,7 @@ WX_DECLARE_HASH_MAP(int, wxMDIChildFrame*, wxIntegerHash, wxIntegerEqual, wxIntM } @end // implementation wxMDIParentFrameObserver : NSObject +WX_IMPLEMENT_GET_OBJC_CLASS(wxMDIParentFrameObserver,NSObject) // ======================================================================== // wxMDIParentFrame @@ -75,7 +83,7 @@ void wxMDIParentFrame::Init() { m_clientWindow = NULL; m_currentChild = NULL; - m_observer = [[wxMDIParentFrameObserver alloc] + m_observer = [[WX_GET_OBJC_CLASS(wxMDIParentFrameObserver) alloc] initWithWxMDIParentFrame:this]; [[NSNotificationCenter defaultCenter] addObserver:m_observer selector:@selector(windowDidBecomeMain:) @@ -87,10 +95,12 @@ bool wxMDIParentFrame::Create(wxWindow *parent, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { - bool success = wxFrame::Create(parent,winid,title,pos,size,style,name); - if(success) - OnCreateClient(); - return success; + if ( !wxFrame::Create(parent,winid,title,pos,size,style,name) ) + return false; + + m_clientWindow = OnCreateClient(); + + return m_clientWindow != NULL; } wxMDIParentFrame::~wxMDIParentFrame() @@ -137,8 +147,7 @@ wxMDIClientWindow *wxMDIParentFrame::GetClientWindow() const wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() { - m_clientWindow = new wxMDIClientWindow( this ); - return m_clientWindow; + return new wxMDIClientWindow( this ); } void wxMDIParentFrame::ActivateNext() @@ -158,7 +167,7 @@ wxMenuBar *wxMDIParentFrame::GetAppMenuBar(wxCocoaNSWindow *win) void wxMDIParentFrame::CocoaDelegate_windowDidBecomeKey(void) { - wxLogDebug("wxMDIParentFrame=%p::CocoaDelegate_windowDidBecomeKey",this); + wxLogTrace(wxTRACE_COCOA,wxT("wxMDIParentFrame=%p::CocoaDelegate_windowDidBecomeKey"),this); if(sm_cocoaDeactivateWindow && sm_cocoaDeactivateWindow==m_currentChild) { sm_cocoaDeactivateWindow = NULL; @@ -183,7 +192,7 @@ void wxMDIParentFrame::CocoaDelegate_windowDidBecomeKey(void) void wxMDIParentFrame::CocoaDelegate_windowDidResignKey(void) { - wxLogDebug("wxMDIParentFrame=%p::CocoaDelegate_windowDidResignKey",this); + wxLogTrace(wxTRACE_COCOA,wxT("wxMDIParentFrame=%p::CocoaDelegate_windowDidResignKey"),this); if(m_closed) wxFrame::CocoaDelegate_windowDidResignKey(); else @@ -228,10 +237,10 @@ void wxMDIParentFrame::WindowDidBecomeMain(NSNotification *notification) } if(!hashmap.empty()) { - int windowCount = 0; + NSInteger windowCount = 0; NSCountWindows(&windowCount); wxASSERT(windowCount>0); - int *windowList = new int[windowCount]; + NSInteger *windowList = new NSInteger[windowCount]; NSWindowList(windowCount, windowList); wxIntMDIChildFrameHashMap::iterator iter = hashmap.end(); for(int i=0; i