/////////////////////////////////////////////////////////////////////////////
-// Name: cocoa/mdi.mm
+// Name: src/cocoa/mdi.mm
// Purpose: wxMDIParentFrame, wxMDIChildFrame, wxMDIClientWindow
// Author: David Elliott
// Modified by:
/////////////////////////////////////////////////////////////////////////////
#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"
// #import <AppKit/NSApplication.h>
// #import <AppKit/NSView.h>
-#include <wx/listimpl.cpp>
+#include "wx/listimpl.cpp"
WX_DEFINE_LIST(wxCocoaMDIChildFrameList);
WX_DECLARE_HASH_MAP(int, wxMDIChildFrame*, wxIntegerHash, wxIntegerEqual, wxIntMDIChildFrameHashMap);
- (id)initWithWxMDIParentFrame: (wxMDIParentFrame *)mdiParent;
- (void)windowDidBecomeMain: (NSNotification *)notification;
@end // interface wxMDIParentFrameObserver : NSObject
+WX_DECLARE_GET_OBJC_CLASS(wxMDIParentFrameObserver,NSObject)
@implementation wxMDIParentFrameObserver : NSObject
- (id)init
}
@end // implementation wxMDIParentFrameObserver : NSObject
+WX_IMPLEMENT_GET_OBJC_CLASS(wxMDIParentFrameObserver,NSObject)
// ========================================================================
// wxMDIParentFrame
{
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:)
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()
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))
void wxMDIParentFrame::CocoaDelegate_windowDidBecomeKey(void)
{
- wxLogDebug(wxT("wxMDIParentFrame=%p::CocoaDelegate_windowDidBecomeKey"),this);
+ wxLogTrace(wxTRACE_COCOA,wxT("wxMDIParentFrame=%p::CocoaDelegate_windowDidBecomeKey"),this);
if(sm_cocoaDeactivateWindow && sm_cocoaDeactivateWindow==m_currentChild)
{
sm_cocoaDeactivateWindow = NULL;
void wxMDIParentFrame::CocoaDelegate_windowDidResignKey(void)
{
- wxLogDebug(wxT("wxMDIParentFrame=%p::CocoaDelegate_windowDidResignKey"),this);
+ wxLogTrace(wxTRACE_COCOA,wxT("wxMDIParentFrame=%p::CocoaDelegate_windowDidResignKey"),this);
if(m_closed)
wxFrame::CocoaDelegate_windowDidResignKey();
else
}
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<windowCount && iter == hashmap.end(); i++)
void wxMDIChildFrame::CocoaDelegate_windowDidBecomeKey(void)
{
- wxLogDebug(wxT("wxMDIChildFrame=%p::CocoaDelegate_windowDidBecomeKey"),this);
+ wxLogTrace(wxTRACE_COCOA,wxT("wxMDIChildFrame=%p::CocoaDelegate_windowDidBecomeKey"),this);
if(sm_cocoaDeactivateWindow && sm_cocoaDeactivateWindow==m_mdiParent)
{
sm_cocoaDeactivateWindow = NULL;
void wxMDIChildFrame::CocoaDelegate_windowDidResignKey(void)
{
- wxLogDebug(wxT("wxMDIChildFrame=%p::CocoaDelegate_windowDidResignKey"),this);
+ wxLogTrace(wxTRACE_COCOA,wxT("wxMDIChildFrame=%p::CocoaDelegate_windowDidResignKey"),this);
sm_cocoaDeactivateWindow = this;
}
// ========================================================================
IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow,wxWindow)
-wxMDIClientWindow::wxMDIClientWindow()
-{
-}
-
-wxMDIClientWindow::wxMDIClientWindow(wxMDIParentFrame *parent, long style)
-: wxWindow(parent, -1)
-{
-}
-
-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 // wxUSE_MDI