NSWindow.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/cocoa/NSWindow.h
  3. // Purpose: wxCocoaNSWindow class
  4. // Author: David Elliott
  5. // Modified by:
  6. // Created: 2003/03/16
  7. // Copyright: (c) 2003 David Elliott
  8. // Licence: wxWindows licence
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #ifndef __WX_COCOA_NSWINDOW_H__
  11. #define __WX_COCOA_NSWINDOW_H__
  12. #include "wx/hashmap.h"
  13. #include "wx/cocoa/ObjcAssociate.h"
  14. WX_DECLARE_OBJC_HASHMAP(NSWindow);
  15. class WXDLLIMPEXP_FWD_CORE wxMenuBar;
  16. class WXDLLIMPEXP_FWD_CORE wxTopLevelWindowCocoa;
  17. DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem);
  18. DECLARE_WXCOCOA_OBJC_CLASS(wxNSWindowDelegate);
  19. class WXDLLIMPEXP_CORE wxCocoaNSWindow
  20. {
  21. /* NSWindow is a rather special case and requires some extra attention */
  22. WX_DECLARE_OBJC_INTERFACE_HASHMAP(NSWindow)
  23. public:
  24. void AssociateNSWindow(WX_NSWindow cocoaNSWindow);
  25. void DisassociateNSWindow(WX_NSWindow cocoaNSWindow);
  26. virtual bool Cocoa_canBecomeKeyWindow(bool &WXUNUSED(canBecome))
  27. { return false; }
  28. virtual bool Cocoa_canBecomeMainWindow(bool &WXUNUSED(canBecome))
  29. { return false; }
  30. virtual bool CocoaDelegate_windowShouldClose(void) = 0;
  31. virtual void CocoaDelegate_windowWillClose(void) = 0;
  32. virtual void CocoaDelegate_windowDidBecomeKey(void) { }
  33. virtual void CocoaDelegate_windowDidResignKey(void) { }
  34. virtual void CocoaDelegate_windowDidBecomeMain(void) { }
  35. virtual void CocoaDelegate_windowDidResignMain(void) { }
  36. virtual void CocoaDelegate_wxMenuItemAction(WX_NSMenuItem menuItem) = 0;
  37. virtual bool CocoaDelegate_validateMenuItem(WX_NSMenuItem menuItem) = 0;
  38. virtual wxMenuBar* GetAppMenuBar(wxCocoaNSWindow *win);
  39. inline wxTopLevelWindowCocoa* GetWxTopLevelWindowCocoa()
  40. { return m_wxTopLevelWindowCocoa; }
  41. protected:
  42. wxCocoaNSWindow(wxTopLevelWindowCocoa *tlw = NULL);
  43. virtual ~wxCocoaNSWindow();
  44. WX_wxNSWindowDelegate m_cocoaDelegate;
  45. wxTopLevelWindowCocoa *m_wxTopLevelWindowCocoa;
  46. };
  47. #endif // _WX_COCOA_NSWINDOW_H_