X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4799f3baab3805e51cc1754b89d855d32e94c232..ae06f91bf1c13aeecaa326207268e05689c60043:/src/cocoa/mdi.mm diff --git a/src/cocoa/mdi.mm b/src/cocoa/mdi.mm index 63e1bfd0e0..a501ee6723 100644 --- a/src/cocoa/mdi.mm +++ b/src/cocoa/mdi.mm @@ -15,6 +15,8 @@ #include "wx/mdi.h" +#include "wx/cocoa/objc/objc_uniquifying.h" + #ifndef WX_PRECOMP #include "wx/log.h" #endif // WX_PRECOMP @@ -44,6 +46,7 @@ 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 @@ -67,6 +70,7 @@ WX_DECLARE_HASH_MAP(int, wxMDIChildFrame*, wxIntegerHash, wxIntegerEqual, wxIntM } @end // implementation wxMDIParentFrameObserver : NSObject +WX_IMPLEMENT_GET_OBJC_CLASS(wxMDIParentFrameObserver,NSObject) // ======================================================================== // wxMDIParentFrame @@ -79,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:) @@ -91,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() @@ -123,36 +129,12 @@ void wxMDIParentFrame::RemoveMDIChild(wxMDIChildFrame *child) SetActiveChild(NULL); } -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - return m_currentChild; -} - void wxMDIParentFrame::SetActiveChild(wxMDIChildFrame *child) { m_currentChild = child; wxMenuBarManager::GetInstance()->UpdateMenuBar(); } -wxMDIClientWindow *wxMDIParentFrame::GetClientWindow() const -{ - return m_clientWindow; -} - -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - m_clientWindow = new wxMDIClientWindow( this ); - return m_clientWindow; -} - -void wxMDIParentFrame::ActivateNext() -{ -} - -void wxMDIParentFrame::ActivatePrevious() -{ -} - wxMenuBar *wxMDIParentFrame::GetAppMenuBar(wxCocoaNSWindow *win) { if(m_currentChild && (win==this)) @@ -319,22 +301,9 @@ bool wxMDIChildFrame::Destroy() // ======================================================================== IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow,wxWindow) -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::wxMDIClientWindow(wxMDIParentFrame *parent, long style) - :wxWindow(parent, wxID_ANY) -{ -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style) +bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) { - return false; + return Create(parent, wxID_ANY, wxPoint(0, 0), wxSize(0, 0), style); } -#endif +#endif // wxUSE_MDI