lint _CPMenuManager.j

This commit is contained in:
Klaas Pieter Annema
2011-03-04 10:21:25 +01:00
parent 1dc53ed149
commit 566fdf6400
+49 -50
View File
@@ -5,9 +5,8 @@ _CPMenuManagerScrollingStateUp = -1,
_CPMenuManagerScrollingStateDown = 1,
_CPMenuManagerScrollingStateNone = 0;
var STICKY_TIME_INTERVAL = 500;
var SharedMenuManager = nil;
var STICKY_TIME_INTERVAL = 500,
SharedMenuManager = nil;
@implementation _CPMenuManager: CPObject
{
@@ -69,13 +68,13 @@ var SharedMenuManager = nil;
if (menu === [CPApp mainMenu])
{
var globalLocation = [anEvent globalLocation];
var globalLocation = [anEvent globalLocation],
// Find which menu window the mouse is currently on top of
var menuLocation = [aMenuContainer convertGlobalToBase:globalLocation];
menuLocation = [aMenuContainer convertGlobalToBase:globalLocation],
// Find out the item the mouse is currently on top of
var activeItemIndex = [aMenuContainer itemIndexAtPoint:menuLocation],
activeItemIndex = [aMenuContainer itemIndexAtPoint:menuLocation],
activeItem = activeItemIndex !== CPNotFound ? [menu itemAtIndex:activeItemIndex] : nil;
_menuBarButtonItemIndex = activeItemIndex;
@@ -99,25 +98,25 @@ var SharedMenuManager = nil;
[CPApp setTarget:self selector:@selector(trackEvent:) forNextEventMatchingMask:CPKeyDownMask | CPPeriodicMask | CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask | CPAppKitDefinedMask untilDate:nil inMode:nil dequeue:YES];
if(type === CPKeyDown)
if (type === CPKeyDown)
{
var menu = trackingMenu,
submenu = [[menu highlightedItem] submenu];
// get the current active menu
while(submenu && [submenu._menuWindow isVisible])
while (submenu && [submenu._menuWindow isVisible])
{ menu = submenu;
submenu = [[menu highlightedItem] submenu];
}
if([menu numberOfItems])
}
if ([menu numberOfItems])
[self interpretKeyEvent:anEvent forMenu:menu];
return;
}
if(_keyBuffer)
if (_keyBuffer)
{
if(([CPDate date] - _startTime) > (STICKY_TIME_INTERVAL + [activeMenu numberOfItems]/2))
if (([CPDate date] - _startTime) > (STICKY_TIME_INTERVAL + [activeMenu numberOfItems] / 2))
[self selectNextItemBeginningWith:_keyBuffer inMenu:menu clearBuffer:YES];
if(type === CPPeriodic)
if (type === CPPeriodic)
return;
}
@@ -126,7 +125,7 @@ var SharedMenuManager = nil;
// Remember this for the next periodic event.
_lastGlobalLocation = globalLocation;
if(!_lastGlobalLocation)
if (!_lastGlobalLocation)
return;
// Find which menu window the mouse is currently on top of
@@ -208,7 +207,7 @@ var SharedMenuManager = nil;
[CPEvent startPeriodicEventsAfterDelay:0.0 withPeriod:0.04];
}
}
else if (type === CPLeftMouseUp && ([anEvent timestamp] - _startTime > (STICKY_TIME_INTERVAL + [activeMenu numberOfItems]*5)))
else if (type === CPLeftMouseUp && ([anEvent timestamp] - _startTime > (STICKY_TIME_INTERVAL + [activeMenu numberOfItems] * 5)))
[trackingMenu cancelTracking];
}
@@ -393,11 +392,11 @@ var SharedMenuManager = nil;
character = [anEvent charactersIgnoringModifiers],
selectorNames = [CPKeyBinding selectorsForKey:character modifierFlags:modifierFlags];
if(selectorNames)
if (selectorNames)
{ var iter = [selectorNames objectEnumerator],
obj;
while(obj = [iter nextObject])
{
while (obj = [iter nextObject])
{
var aSelector = CPSelectorFromString(obj);
if ([self respondsToSelector:aSelector])
[self performSelector:aSelector withObject:menu];
@@ -405,17 +404,17 @@ var SharedMenuManager = nil;
}
else if (!(modifierFlags & (CPCommandKeyMask | CPControlKeyMask)))
{
if(!_keyBuffer)
if (!_keyBuffer)
{
_startTime = [CPDate date];
_keyBuffer = character;
[CPEvent stopPeriodicEvents];
[CPEvent startPeriodicEventsAfterDelay:0.1 withPeriod:0.1];
[CPEvent stopPeriodicEvents];
[CPEvent startPeriodicEventsAfterDelay:0.1 withPeriod:0.1];
}
else
_keyBuffer += character;
[self selectNextItemBeginningWith:_keyBuffer inMenu:menu clearBuffer:NO];
_lastGlobalLocation = Nil;
}
@@ -425,20 +424,20 @@ var SharedMenuManager = nil;
{
var iter = [[menu itemArray] objectEnumerator],
obj;
while(obj = [iter nextObject])
{
if([[[obj title] commonPrefixWithString:characters options:CPCaseInsensitiveSearch] length] == [characters length])
while (obj = [iter nextObject])
{
if ([[[obj title] commonPrefixWithString:characters options:CPCaseInsensitiveSearch] length] == [characters length])
{
if(![obj isHidden] && [obj isEnabled])
if (![obj isHidden] && [obj isEnabled])
{
[menu _highlightItemAtIndex:iter._index];
break;
}
}
}
if(shouldClear)
if (shouldClear)
{
[CPEvent stopPeriodicEvents];
[CPEvent stopPeriodicEvents];
_keyBuffer = Nil;
}
else
@@ -465,20 +464,20 @@ var SharedMenuManager = nil;
last = [menuWindow itemIndexAtPoint:CGPointMake(1, bottom)],
current = [menu indexOfItem:[menu highlightedItem]];
if(current == CPNotFound)
if (current == CPNotFound)
{
[menu _highlightItemAtIndex:0];
return;
}
next = current + (last - first);
if(next<[menu numberOfItems])
if (next < [menu numberOfItems])
[menu _highlightItemAtIndex:next];
else
[menu _highlightItemAtIndex:[menu numberOfItems]-1];
[menu _highlightItemAtIndex:[menu numberOfItems] - 1];
var item = [menu highlightedItem];
if([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
if ([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
[self moveDown:menu];
}
@@ -491,28 +490,28 @@ var SharedMenuManager = nil;
last = [menuWindow itemIndexAtPoint:CGPointMake(1, bottom)],
current = [menu indexOfItem:[menu highlightedItem]];
if(current == CPNotFound)
if (current == CPNotFound)
{
[menu _highlightItemAtIndex:0];
return;
}
next = current - (last - first);
if(next < 0)
if (next < 0)
[menu _highlightItemAtIndex:0];
else
[menu _highlightItemAtIndex:next];
var item = [menu highlightedItem];
if([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
if ([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
[self moveUp:menu];
}
- (void)moveLeft:(CPMenu)menu
{
if([menu supermenu])
{
if ([menu supermenu])
{
if([menu supermenu] == [CPApp mainMenu])
if ([menu supermenu] == [CPApp mainMenu])
{
[self showMenu:nil fromMenu:[menu supermenu] atPoint:CGPointMakeZero()];
[self moveUp:[CPApp mainMenu]];
@@ -533,28 +532,28 @@ var SharedMenuManager = nil;
{ if([[activeItem submenu] numberOfItems])
{
var activeItemIndex = [menu indexOfItem:activeItem],
activeMenuContainer = menu._menuWindow;
activeMenuContainer = menu._menuWindow,
activeItemRect = [activeMenuContainer rectForItemAtIndex:activeItemIndex];
if ([activeMenuContainer isMenuBar])
var newMenuOrigin = CGPointMake(CGRectGetMinX(activeItemRect), CGRectGetMaxY(activeItemRect));
else
var newMenuOrigin = CGPointMake(CGRectGetMaxX(activeItemRect), CGRectGetMinY(activeItemRect));
newMenuOrigin = [activeMenuContainer convertBaseToGlobal:newMenuOrigin];
[self showMenu:[activeItem submenu] fromMenu:[activeItem menu] atPoint:newMenuOrigin];
[self moveDown:[activeItem submenu]];
}
}
else if([self trackingMenu] == [CPApp mainMenu])
else if ([self trackingMenu] == [CPApp mainMenu])
{
[self showMenu:nil fromMenu:menu atPoint:CGPointMakeZero()];
[self moveDown:[CPApp mainMenu]];
var activeItem = [[CPApp mainMenu] highlightedItem],
menuLocation = CGPointMake([[activeItem _menuItemView] frameOrigin].x , [[activeItem _menuItemView] frameSize].height);
[self showMenu:[activeItem submenu] fromMenu:[activeItem menu] atPoint:menuLocation];
}
}
@@ -562,11 +561,11 @@ var SharedMenuManager = nil;
- (void)moveDown:(CPMenu)menu
{
var index = menu._highlightedIndex + 1;
if(index < [menu numberOfItems])
if (index < [menu numberOfItems])
{
[menu _highlightItemAtIndex:index];
var item = [menu highlightedItem];
if([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
if ([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
[self moveDown:menu];
}
}
@@ -574,18 +573,18 @@ var SharedMenuManager = nil;
- (void)moveUp:(CPMenu)menu
{
var index = menu._highlightedIndex - 1;
if(index < 0)
if (index < 0)
return;
[menu _highlightItemAtIndex:index];
var item = [menu highlightedItem];
if([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
if ([item isSeparatorItem] || [item isHidden] || ![item isEnabled])
[self moveUp:menu];
}
- (void)insertNewline:(CPMenu)menu
{
if([[menu highlightedItem] hasSubmenu])
if ([[menu highlightedItem] hasSubmenu])
[self moveRight:menu];
else
[menu cancelTracking]