i know i can detect when a particular menu is about to be shown, but what I want is to run a quick process before any menus from the menu bar are shown, and not run it again all the while the user is browsing the menus in the menu bar

how do i do this? apparently there is no "mouseDown" event sent when it's in the menu bar. currently i have this very ugly code:

-(void)sendEvent:(NSEvent *)inEvent
{
        NSEventType             evtType = [inEvent type];
                
        switch (evtType) {
                                        
                //      is this a mouse down in the menu bar?
                case NSSystemDefined: {
                        
                        if (
                                   [inEvent subtype] == 
NX_SUBTYPE_AUX_MOUSE_BUTTONS
                                && [inEvent window] == NULL
                        ) {
                                NSPoint                                         
mousePt = [inEvent locationInWindow];
                                NSScreen*                                       
screenRef = [NSScreen mainScreen];
                                PointF32                myPt;
                                
                                //      flip the coordinates
                                myPt = 
TransformScreenPointFromMacScreen(screenRef, mousePt);
                                
                                CGFloat                 heightF = 
(CGFloat)[[NSApp mainMenu] menuBarHeight];

                                if (myPt.y < heightF && myPt.x < [screenRef 
frame].size.width) {
                                        // do my quick process
                                }
                        }
                        
                        break;
                }
                        

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to