menu-bar.cpp 753 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #if defined(Hiro_MenuBar)
  2. namespace hiro {
  3. auto pMenuBar::construct() -> void {
  4. }
  5. auto pMenuBar::destruct() -> void {
  6. }
  7. auto pMenuBar::append(sMenu menu) -> void {
  8. @autoreleasepool {
  9. if(auto parent = _parent()) {
  10. if(auto pMenu = menu->self()) {
  11. [[parent->cocoaWindow menuBar] addItem:pMenu->cocoaAction];
  12. }
  13. }
  14. }
  15. }
  16. auto pMenuBar::remove(sMenu menu) -> void {
  17. @autoreleasepool {
  18. if(auto parent = _parent()) {
  19. if(auto pMenu = menu->self()) {
  20. [[parent->cocoaWindow menuBar] removeItem:pMenu->cocoaAction];
  21. }
  22. }
  23. }
  24. }
  25. auto pMenuBar::_parent() -> maybe<pWindow&> {
  26. if(auto parent = self().parentWindow()) {
  27. if(auto self = parent->self()) return *self;
  28. }
  29. return nothing;
  30. }
  31. }
  32. #endif