Files
wxWidgets/src/cocoa/NSWindow.mm
David Elliott fb45bb1fb2 #include "wx/cocoa/ObjcPose.h" from the source in preparation for removing
it from the already included headers


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-04-19 17:40:46 +00:00

93 lines
2.7 KiB
Plaintext

/////////////////////////////////////////////////////////////////////////////
// Name: cocoa/NSWindow.mm
// Purpose: wxCocoaNSWindow
// Author: David Elliott
// Modified by:
// Created: 2003/03/16
// RCS-ID: $Id:
// Copyright: (c) 2003 David Elliott
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/menuitem.h"
#endif // WX_PRECOMP
#include "wx/cocoa/ObjcPose.h"
#include "wx/cocoa/NSWindow.h"
#import <Appkit/NSWindow.h>
// ----------------------------------------------------------------------------
// globals
// ----------------------------------------------------------------------------
WX_IMPLEMENT_OBJC_INTERFACE_HASHMAP(NSWindow)
void wxCocoaNSWindow::AssociateNSWindow(WX_NSWindow cocoaNSWindow)
{
[cocoaNSWindow setReleasedWhenClosed: NO];
sm_cocoaHash.insert(wxCocoaNSWindowHash::value_type(cocoaNSWindow,this));
}
// ============================================================================
// @class wxPoserNSWindow
// ============================================================================
@interface wxPoserNSWindow : NSWindow
{
}
- (void)close;
- (BOOL)windowShouldClose: (id)sender;
- (BOOL)wxMenuItemAction: (id)sender;
@end // wxPoserNSwindow
WX_IMPLEMENT_POSER(wxPoserNSWindow);
@implementation wxPoserNSWindow : NSWindow
- (void)close
{
wxLogDebug("close");
wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(self);
if(tlw)
tlw->Cocoa_close();
[super close];
}
- (BOOL)windowShouldClose: (id)sender
{
wxLogDebug("windowShouldClose");
wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(sender);
if(tlw && !tlw->Cocoa_windowShouldClose())
return NO;
wxLogDebug("Window will most likely be CLOSED");
if([[wxPoserNSWindow superclass] instancesRespondToSelector:@selector(windowShouldClose:)])
return [super windowShouldClose: sender];
return YES;
}
- (BOOL)wxMenuItemAction: (id)sender
{
wxLogDebug("wxMenuItemAction");
wxMenuItem *item = wxMenuItem::GetFromCocoa(sender);
if(!item)
return NO;
wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(self);
wxASSERT(tlw);
tlw->Cocoa_wxMenuItemAction(*item);
return YES;
}
@end // implementation wxPoserNSWindow