From 2b6fddf26c6e6dfd4f3ee3ae523686b08d670532 Mon Sep 17 00:00:00 2001 From: Klaas Pieter Annema Date: Wed, 6 Jul 2011 12:42:49 +0200 Subject: [PATCH] move menu delegate logic to generic methods --- AppKit/CPMenu/CPMenu.j | 26 ++++++++++++++++++-------- AppKit/CPMenu/_CPMenuManager.j | 6 +----- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/AppKit/CPMenu/CPMenu.j b/AppKit/CPMenu/CPMenu.j index 961f2a421..4589b059e 100644 --- a/AppKit/CPMenu/CPMenu.j +++ b/AppKit/CPMenu/CPMenu.j @@ -711,10 +711,7 @@ var _CPMenuBarVisible = NO, if (aView && !theWindow) throw "In call to popUpMenuPositioningItem:atLocation:inView:callback:, view is not in any window."; - var delegate = [self delegate]; - - if ([delegate respondsToSelector:@selector(menuWillOpen:)]) - [delegate menuWillOpen:self]; + [self _menuWillOpen]; // Convert location to global coordinates if not already in them. if (aView) @@ -802,10 +799,7 @@ var _CPMenuBarVisible = NO, + (void)popUpContextMenu:(CPMenu)aMenu withEvent:(CPEvent)anEvent forView:(CPView)aView withFont:(CPFont)aFont { - var delegate = [aMenu delegate]; - - if ([delegate respondsToSelector:@selector(menuWillOpen:)]) - [delegate menuWillOpen:aMenu]; + [aMenu _menuWillOpen]; if (!aFont) aFont = [CPFont systemFontOfSize:12.0]; @@ -890,6 +884,22 @@ var _CPMenuBarVisible = NO, return _delegate; } +- (void)_menuWillOpen +{ + var delegate = [self delegate]; + + if ([delegate respondsToSelector:@selector(menuWillOpen:)]) + [delegate menuWillOpen:self]; +} + +- (void)_menuDidClose +{ + var delegate = [self delegate]; + + if ([delegate respondsToSelector:@selector(menuDidClose:)]) + [delegate menuDidClose:self]; +} + // Handling Tracking /*! Cancels tracking. diff --git a/AppKit/CPMenu/_CPMenuManager.j b/AppKit/CPMenu/_CPMenuManager.j index 1aec30b9d..93ebc0480 100644 --- a/AppKit/CPMenu/_CPMenuManager.j +++ b/AppKit/CPMenu/_CPMenuManager.j @@ -306,11 +306,7 @@ var STICKY_TIME_INTERVAL = 500, // Hide all submenus. [self showMenu:nil fromMenu:trackingMenu atPoint:nil]; - - var delegate = [trackingMenu delegate]; - - if ([delegate respondsToSelector:@selector(menuDidClose:)]) - [delegate menuDidClose:trackingMenu]; + [trackingMenu _menuDidClose]; if (_trackingCallback) _trackingCallback([self trackingMenuContainer], trackingMenu);