NSMenu.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/cocoa/NSMenu.h
  3. // Purpose: wxCocoaNSMenu class
  4. // Author: David Elliott
  5. // Modified by:
  6. // Created: 2002/12/09
  7. // Copyright: (c) 2002 David Elliott
  8. // Licence: wxWindows licence
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #ifndef __WX_COCOA_NSMENU_H__
  11. #define __WX_COCOA_NSMENU_H__
  12. #include "wx/hashmap.h"
  13. #include "wx/cocoa/ObjcAssociate.h"
  14. WX_DECLARE_OBJC_HASHMAP(NSMenu);
  15. // ========================================================================
  16. // wxCocoaNSMenu
  17. // ========================================================================
  18. class wxCocoaNSMenu
  19. {
  20. WX_DECLARE_OBJC_INTERFACE_HASHMAP(NSMenu)
  21. public:
  22. void AssociateNSMenu(WX_NSMenu cocoaNSMenu, unsigned int flags = 0);
  23. void DisassociateNSMenu(WX_NSMenu cocoaNSMenu);
  24. enum
  25. { OBSERVE_DidAddItem = 0x01
  26. , OBSERVE_DidChangeItem = 0x02
  27. , OBSERVE_DidRemoveItem = 0x04
  28. , OBSERVE_DidSendAction = 0x08
  29. , OBSERVE_WillSendAction = 0x10
  30. };
  31. virtual void Cocoa_dealloc() {}
  32. virtual void CocoaNotification_menuDidAddItem(WX_NSNotification WXUNUSED(notification)) {}
  33. virtual void CocoaNotification_menuDidChangeItem(WX_NSNotification WXUNUSED(notification)) {}
  34. virtual void CocoaNotification_menuDidRemoveItem(WX_NSNotification WXUNUSED(notification)) {}
  35. virtual void CocoaNotification_menuDidSendAction(WX_NSNotification WXUNUSED(notification)) {}
  36. virtual void CocoaNotification_menuWillSendAction(WX_NSNotification WXUNUSED(notification)) {}
  37. virtual ~wxCocoaNSMenu() { }
  38. protected:
  39. static struct objc_object *sm_cocoaObserver;
  40. };
  41. #endif // _WX_COCOA_NSMENU_H_