I found it to be quite easy to make the CCMenu
change any CCMenuItem
to the selected
state when the mouse passes over it, giving it a hover effect. First, make sure you've set [window_ setAcceptsMouseMovedEvents:YES];
Then add this function to CCMenu.m
(perhaps just after ccMouseDragged
definition):
- (BOOL) ccMouseMoved:(NSEvent *)event {
if( ! _visible || ! _enabled)
return NO;
CCMenuItem *currentItem = [self itemForMouseEvent:event];
if(!currentItem) {
if(_highlightedItem != _selectedItem) {
[_highlightedItem unselected];
}
[_highlightedItem release];
_highlightedItem = nil;
return NO;
}
if (currentItem != _highlightedItem) {
[_highlightedItem unselected];
_highlightedItem = currentItem;
[_highlightedItem retain];
[_highlightedItem selected];
}
return YES;
}