diff --git a/AppKit/CPMenu/_CPMenuManager.j b/AppKit/CPMenu/_CPMenuManager.j index b6d8fd17f..5d35d1674 100644 --- a/AppKit/CPMenu/_CPMenuManager.j +++ b/AppKit/CPMenu/_CPMenuManager.j @@ -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]