2003-03-21 19:51:47 +00:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: wx/cocoa/NSWindow.h
|
|
|
|
// Purpose: wxCocoaNSWindow class
|
|
|
|
// Author: David Elliott
|
|
|
|
// Modified by:
|
|
|
|
// Created: 2003/03/16
|
|
|
|
// RCS-ID: $Id:
|
|
|
|
// Copyright: (c) 2003 David Elliott
|
2004-05-23 20:53:33 +00:00
|
|
|
// Licence: wxWindows licence
|
2003-03-21 19:51:47 +00:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef __WX_COCOA_NSWINDOW_H__
|
|
|
|
#define __WX_COCOA_NSWINDOW_H__
|
|
|
|
|
|
|
|
#include "wx/hashmap.h"
|
2003-04-19 17:51:50 +00:00
|
|
|
#include "wx/cocoa/ObjcAssociate.h"
|
2003-03-21 19:51:47 +00:00
|
|
|
|
|
|
|
WX_DECLARE_OBJC_HASHMAP(NSWindow);
|
|
|
|
|
2003-11-06 19:53:31 +00:00
|
|
|
class WXDLLEXPORT wxMenuBar;
|
2004-03-03 03:44:20 +00:00
|
|
|
class WXDLLEXPORT wxTopLevelWindowCocoa;
|
2003-11-06 19:53:31 +00:00
|
|
|
|
2004-02-27 06:07:47 +00:00
|
|
|
DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem);
|
2004-02-19 06:32:34 +00:00
|
|
|
DECLARE_WXCOCOA_OBJC_CLASS(wxNSWindowDelegate);
|
|
|
|
|
2003-03-21 19:51:47 +00:00
|
|
|
class wxCocoaNSWindow
|
|
|
|
{
|
|
|
|
/* NSWindow is a rather special case and requires some extra attention */
|
|
|
|
WX_DECLARE_OBJC_INTERFACE_HASHMAP(NSWindow)
|
|
|
|
public:
|
|
|
|
void AssociateNSWindow(WX_NSWindow cocoaNSWindow);
|
2003-08-26 19:28:35 +00:00
|
|
|
void DisassociateNSWindow(WX_NSWindow cocoaNSWindow);
|
2003-09-04 20:59:30 +00:00
|
|
|
virtual bool Cocoa_canBecomeMainWindow(bool &canBecome)
|
|
|
|
{ return false; }
|
2003-08-29 14:59:04 +00:00
|
|
|
virtual bool CocoaDelegate_windowShouldClose(void) = 0;
|
2003-10-06 19:17:11 +00:00
|
|
|
virtual void CocoaDelegate_windowWillClose(void) = 0;
|
2003-08-29 14:59:04 +00:00
|
|
|
virtual void CocoaDelegate_windowDidBecomeKey(void) { }
|
|
|
|
virtual void CocoaDelegate_windowDidResignKey(void) { }
|
2003-09-04 20:59:30 +00:00
|
|
|
virtual void CocoaDelegate_windowDidBecomeMain(void) { }
|
|
|
|
virtual void CocoaDelegate_windowDidResignMain(void) { }
|
2004-02-27 06:07:47 +00:00
|
|
|
virtual void CocoaDelegate_wxMenuItemAction(WX_NSMenuItem menuItem) = 0;
|
|
|
|
virtual bool CocoaDelegate_validateMenuItem(WX_NSMenuItem menuItem) = 0;
|
2003-11-06 20:37:16 +00:00
|
|
|
virtual wxMenuBar* GetAppMenuBar(wxCocoaNSWindow *win);
|
2004-03-03 03:44:20 +00:00
|
|
|
inline wxTopLevelWindowCocoa* GetWxTopLevelWindowCocoa()
|
|
|
|
{ return m_wxTopLevelWindowCocoa; }
|
2003-08-26 19:28:35 +00:00
|
|
|
protected:
|
2004-03-03 03:44:20 +00:00
|
|
|
wxCocoaNSWindow(wxTopLevelWindowCocoa *tlw = NULL);
|
2004-02-19 06:32:34 +00:00
|
|
|
virtual ~wxCocoaNSWindow();
|
|
|
|
WX_wxNSWindowDelegate m_cocoaDelegate;
|
2004-03-03 03:44:20 +00:00
|
|
|
wxTopLevelWindowCocoa *m_wxTopLevelWindowCocoa;
|
2003-03-21 19:51:47 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _WX_COCOA_NSWINDOW_H_
|