X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fb896a322a2ed53d393ee738765ddd3f72cee004..2d6dd9c09e7084d402fc923d2f09d8b7158a1a04:/include/wx/cocoa/NSWindow.h diff --git a/include/wx/cocoa/NSWindow.h b/include/wx/cocoa/NSWindow.h index c8ca32b1ae..cc62cb2ad1 100644 --- a/include/wx/cocoa/NSWindow.h +++ b/include/wx/cocoa/NSWindow.h @@ -6,30 +6,50 @@ // Created: 2003/03/16 // RCS-ID: $Id: // Copyright: (c) 2003 David Elliott -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef __WX_COCOA_NSWINDOW_H__ #define __WX_COCOA_NSWINDOW_H__ #include "wx/hashmap.h" -#include "wx/cocoa/ObjcPose.h" +#include "wx/cocoa/ObjcAssociate.h" WX_DECLARE_OBJC_HASHMAP(NSWindow); +class WXDLLEXPORT wxMenuBar; +class WXDLLEXPORT wxTopLevelWindowCocoa; + +DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem); +DECLARE_WXCOCOA_OBJC_CLASS(wxNSWindowDelegate); + 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); - inline void DisassociateNSWindow(WX_NSWindow cocoaNSWindow) - { - sm_cocoaHash.erase(cocoaNSWindow); - } - virtual void Cocoa_close(void) = 0; - virtual bool Cocoa_windowShouldClose(void) = 0; - virtual void Cocoa_wxMenuItemAction(wxMenuItem& item) = 0; + void DisassociateNSWindow(WX_NSWindow cocoaNSWindow); + virtual bool Cocoa_canBecomeKeyWindow(bool &canBecome) + { return false; } + virtual bool Cocoa_canBecomeMainWindow(bool &canBecome) + { return false; } + virtual bool CocoaDelegate_windowShouldClose(void) = 0; + virtual void CocoaDelegate_windowWillClose(void) = 0; + virtual void CocoaDelegate_windowDidBecomeKey(void) { } + virtual void CocoaDelegate_windowDidResignKey(void) { } + virtual void CocoaDelegate_windowDidBecomeMain(void) { } + virtual void CocoaDelegate_windowDidResignMain(void) { } + virtual void CocoaDelegate_wxMenuItemAction(WX_NSMenuItem menuItem) = 0; + virtual bool CocoaDelegate_validateMenuItem(WX_NSMenuItem menuItem) = 0; + virtual wxMenuBar* GetAppMenuBar(wxCocoaNSWindow *win); + inline wxTopLevelWindowCocoa* GetWxTopLevelWindowCocoa() + { return m_wxTopLevelWindowCocoa; } +protected: + wxCocoaNSWindow(wxTopLevelWindowCocoa *tlw = NULL); + virtual ~wxCocoaNSWindow(); + WX_wxNSWindowDelegate m_cocoaDelegate; + wxTopLevelWindowCocoa *m_wxTopLevelWindowCocoa; }; #endif // _WX_COCOA_NSWINDOW_H_