< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/CMenuItem.m

Print this page
rev 54086 : 8240487: Cleanup whitespace in .cc, .hh, .m, and .mm files

*** 131,220 **** JNF_COCOA_EXIT(env); } - (void) setJavaLabel:(NSString *)theLabel shortcut:(NSString *)theKeyEquivalent modifierMask:(jint)modifiers { ! NSUInteger modifierMask = 0; ! if (![theKeyEquivalent isEqualToString:@""]) { // Force the key equivalent to lower case if not using the shift key. // Otherwise AppKit will draw a Shift glyph in the menu. if ((modifiers & java_awt_event_KeyEvent_SHIFT_MASK) == 0) { theKeyEquivalent = [theKeyEquivalent lowercaseString]; } ! // Hack for the question mark -- SHIFT and / means use the question mark. if ((modifiers & java_awt_event_KeyEvent_SHIFT_MASK) != 0 && [theKeyEquivalent isEqualToString:@"/"]) { theKeyEquivalent = @"?"; modifiers &= ~java_awt_event_KeyEvent_SHIFT_MASK; } ! modifierMask = JavaModifiersToNsKeyModifiers(modifiers, NO); } ! [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ [fMenuItem setKeyEquivalent:theKeyEquivalent]; [fMenuItem setKeyEquivalentModifierMask:modifierMask]; [fMenuItem setTitle:theLabel]; }]; } - (void) setJavaImage:(NSImage *)theImage { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ [fMenuItem setImage:theImage]; }]; } - (void) setJavaToolTipText:(NSString *)theText { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ [fMenuItem setToolTip:theText]; }]; } - (void)setJavaEnabled:(BOOL) enabled { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ @synchronized(self) { fIsEnabled = enabled; ! // Warning: This won't work if the parent menu is disabled. // See [CMenu syncFromJava]. We still need to call it here so // the NSMenuItem itself gets properly updated. [fMenuItem setEnabled:fIsEnabled]; } }]; } - (BOOL)isEnabled { ! BOOL enabled = NO; @synchronized(self) { enabled = fIsEnabled; } return enabled; } - (void)setJavaState:(BOOL)newState { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ [fMenuItem setState:(newState ? NSOnState : NSOffState)]; }]; } - (void)dealloc { [fMenuItem setAction:NULL]; [fMenuItem setTarget:nil]; [fMenuItem release]; fMenuItem = nil; ! [super dealloc]; } - (void)addNSMenuItemToMenu:(NSMenu *)inMenu { [inMenu addItem:fMenuItem]; --- 131,220 ---- JNF_COCOA_EXIT(env); } - (void) setJavaLabel:(NSString *)theLabel shortcut:(NSString *)theKeyEquivalent modifierMask:(jint)modifiers { ! NSUInteger modifierMask = 0; ! if (![theKeyEquivalent isEqualToString:@""]) { // Force the key equivalent to lower case if not using the shift key. // Otherwise AppKit will draw a Shift glyph in the menu. if ((modifiers & java_awt_event_KeyEvent_SHIFT_MASK) == 0) { theKeyEquivalent = [theKeyEquivalent lowercaseString]; } ! // Hack for the question mark -- SHIFT and / means use the question mark. if ((modifiers & java_awt_event_KeyEvent_SHIFT_MASK) != 0 && [theKeyEquivalent isEqualToString:@"/"]) { theKeyEquivalent = @"?"; modifiers &= ~java_awt_event_KeyEvent_SHIFT_MASK; } ! modifierMask = JavaModifiersToNsKeyModifiers(modifiers, NO); } ! [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ [fMenuItem setKeyEquivalent:theKeyEquivalent]; [fMenuItem setKeyEquivalentModifierMask:modifierMask]; [fMenuItem setTitle:theLabel]; }]; } - (void) setJavaImage:(NSImage *)theImage { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ [fMenuItem setImage:theImage]; }]; } - (void) setJavaToolTipText:(NSString *)theText { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ [fMenuItem setToolTip:theText]; }]; } - (void)setJavaEnabled:(BOOL) enabled { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ @synchronized(self) { fIsEnabled = enabled; ! // Warning: This won't work if the parent menu is disabled. // See [CMenu syncFromJava]. We still need to call it here so // the NSMenuItem itself gets properly updated. [fMenuItem setEnabled:fIsEnabled]; } }]; } - (BOOL)isEnabled { ! BOOL enabled = NO; @synchronized(self) { enabled = fIsEnabled; } return enabled; } - (void)setJavaState:(BOOL)newState { ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ [fMenuItem setState:(newState ? NSOnState : NSOffState)]; }]; } - (void)dealloc { [fMenuItem setAction:NULL]; [fMenuItem setTarget:nil]; [fMenuItem release]; fMenuItem = nil; ! [super dealloc]; } - (void)addNSMenuItemToMenu:(NSMenu *)inMenu { [inMenu addItem:fMenuItem];
*** 235,245 **** @end /** Convert a Java keycode for SetMenuItemCmd */ static unichar AWTKeyToMacShortcut(jint awtKey, BOOL doShift) { unichar macKey = 0; ! if ((awtKey >= java_awt_event_KeyEvent_VK_0 && awtKey <= java_awt_event_KeyEvent_VK_9) || (awtKey >= java_awt_event_KeyEvent_VK_A && awtKey <= java_awt_event_KeyEvent_VK_Z)) { // These ranges are the same in ASCII macKey = awtKey; --- 235,245 ---- @end /** Convert a Java keycode for SetMenuItemCmd */ static unichar AWTKeyToMacShortcut(jint awtKey, BOOL doShift) { unichar macKey = 0; ! if ((awtKey >= java_awt_event_KeyEvent_VK_0 && awtKey <= java_awt_event_KeyEvent_VK_9) || (awtKey >= java_awt_event_KeyEvent_VK_A && awtKey <= java_awt_event_KeyEvent_VK_Z)) { // These ranges are the same in ASCII macKey = awtKey;
*** 252,298 **** } else { // Special characters switch (awtKey) { case java_awt_event_KeyEvent_VK_BACK_QUOTE : macKey = '`'; break; case java_awt_event_KeyEvent_VK_QUOTE : macKey = '\''; break; ! case java_awt_event_KeyEvent_VK_ESCAPE : macKey = 0x1B; break; case java_awt_event_KeyEvent_VK_SPACE : macKey = ' '; break; case java_awt_event_KeyEvent_VK_PAGE_UP : macKey = NSPageUpFunctionKey; break; case java_awt_event_KeyEvent_VK_PAGE_DOWN : macKey = NSPageDownFunctionKey; break; case java_awt_event_KeyEvent_VK_END : macKey = NSEndFunctionKey; break; case java_awt_event_KeyEvent_VK_HOME : macKey = NSHomeFunctionKey; break; ! case java_awt_event_KeyEvent_VK_LEFT : macKey = NSLeftArrowFunctionKey; break; case java_awt_event_KeyEvent_VK_UP : macKey = NSUpArrowFunctionKey; break; case java_awt_event_KeyEvent_VK_RIGHT : macKey = NSRightArrowFunctionKey; break; case java_awt_event_KeyEvent_VK_DOWN : macKey = NSDownArrowFunctionKey; break; ! case java_awt_event_KeyEvent_VK_COMMA : macKey = ','; break; ! // Mac OS doesn't distinguish between the two '-' keys... case java_awt_event_KeyEvent_VK_MINUS : case java_awt_event_KeyEvent_VK_SUBTRACT : macKey = '-'; break; ! // or the two '.' keys... case java_awt_event_KeyEvent_VK_DECIMAL : case java_awt_event_KeyEvent_VK_PERIOD : macKey = '.'; break; ! // or the two '/' keys. case java_awt_event_KeyEvent_VK_DIVIDE : case java_awt_event_KeyEvent_VK_SLASH : macKey = '/'; break; ! case java_awt_event_KeyEvent_VK_SEMICOLON : macKey = ';'; break; case java_awt_event_KeyEvent_VK_EQUALS : macKey = '='; break; ! case java_awt_event_KeyEvent_VK_OPEN_BRACKET : macKey = '['; break; case java_awt_event_KeyEvent_VK_BACK_SLASH : macKey = '\\'; break; case java_awt_event_KeyEvent_VK_CLOSE_BRACKET : macKey = ']'; break; ! case java_awt_event_KeyEvent_VK_MULTIPLY : macKey = '*'; break; case java_awt_event_KeyEvent_VK_ADD : macKey = '+'; break; ! case java_awt_event_KeyEvent_VK_HELP : macKey = NSHelpFunctionKey; break; case java_awt_event_KeyEvent_VK_TAB : macKey = NSTabCharacter; break; case java_awt_event_KeyEvent_VK_ENTER : macKey = NSNewlineCharacter; break; case java_awt_event_KeyEvent_VK_BACK_SPACE : macKey = NSBackspaceCharacter; break; case java_awt_event_KeyEvent_VK_DELETE : macKey = NSDeleteCharacter; break; --- 252,298 ---- } else { // Special characters switch (awtKey) { case java_awt_event_KeyEvent_VK_BACK_QUOTE : macKey = '`'; break; case java_awt_event_KeyEvent_VK_QUOTE : macKey = '\''; break; ! case java_awt_event_KeyEvent_VK_ESCAPE : macKey = 0x1B; break; case java_awt_event_KeyEvent_VK_SPACE : macKey = ' '; break; case java_awt_event_KeyEvent_VK_PAGE_UP : macKey = NSPageUpFunctionKey; break; case java_awt_event_KeyEvent_VK_PAGE_DOWN : macKey = NSPageDownFunctionKey; break; case java_awt_event_KeyEvent_VK_END : macKey = NSEndFunctionKey; break; case java_awt_event_KeyEvent_VK_HOME : macKey = NSHomeFunctionKey; break; ! case java_awt_event_KeyEvent_VK_LEFT : macKey = NSLeftArrowFunctionKey; break; case java_awt_event_KeyEvent_VK_UP : macKey = NSUpArrowFunctionKey; break; case java_awt_event_KeyEvent_VK_RIGHT : macKey = NSRightArrowFunctionKey; break; case java_awt_event_KeyEvent_VK_DOWN : macKey = NSDownArrowFunctionKey; break; ! case java_awt_event_KeyEvent_VK_COMMA : macKey = ','; break; ! // Mac OS doesn't distinguish between the two '-' keys... case java_awt_event_KeyEvent_VK_MINUS : case java_awt_event_KeyEvent_VK_SUBTRACT : macKey = '-'; break; ! // or the two '.' keys... case java_awt_event_KeyEvent_VK_DECIMAL : case java_awt_event_KeyEvent_VK_PERIOD : macKey = '.'; break; ! // or the two '/' keys. case java_awt_event_KeyEvent_VK_DIVIDE : case java_awt_event_KeyEvent_VK_SLASH : macKey = '/'; break; ! case java_awt_event_KeyEvent_VK_SEMICOLON : macKey = ';'; break; case java_awt_event_KeyEvent_VK_EQUALS : macKey = '='; break; ! case java_awt_event_KeyEvent_VK_OPEN_BRACKET : macKey = '['; break; case java_awt_event_KeyEvent_VK_BACK_SLASH : macKey = '\\'; break; case java_awt_event_KeyEvent_VK_CLOSE_BRACKET : macKey = ']'; break; ! case java_awt_event_KeyEvent_VK_MULTIPLY : macKey = '*'; break; case java_awt_event_KeyEvent_VK_ADD : macKey = '+'; break; ! case java_awt_event_KeyEvent_VK_HELP : macKey = NSHelpFunctionKey; break; case java_awt_event_KeyEvent_VK_TAB : macKey = NSTabCharacter; break; case java_awt_event_KeyEvent_VK_ENTER : macKey = NSNewlineCharacter; break; case java_awt_event_KeyEvent_VK_BACK_SPACE : macKey = NSBackspaceCharacter; break; case java_awt_event_KeyEvent_VK_DELETE : macKey = NSDeleteCharacter; break;
*** 332,353 **** { JNF_COCOA_ENTER(env); NSString *theLabel = JNFJavaToNSString(env, label); NSString *theKeyEquivalent = nil; unichar macKey = shortcutKey; ! if (macKey == 0) { macKey = AWTKeyToMacShortcut(shortcutKeyCode, (mods & java_awt_event_KeyEvent_SHIFT_MASK) != 0); } ! if (macKey != 0) { unichar equivalent[1] = {macKey}; theKeyEquivalent = [NSString stringWithCharacters:equivalent length:1]; } else { theKeyEquivalent = @""; } ! [((CMenuItem *)jlong_to_ptr(menuItemObj)) setJavaLabel:theLabel shortcut:theKeyEquivalent modifierMask:mods]; JNF_COCOA_EXIT(env); } /* --- 332,353 ---- { JNF_COCOA_ENTER(env); NSString *theLabel = JNFJavaToNSString(env, label); NSString *theKeyEquivalent = nil; unichar macKey = shortcutKey; ! if (macKey == 0) { macKey = AWTKeyToMacShortcut(shortcutKeyCode, (mods & java_awt_event_KeyEvent_SHIFT_MASK) != 0); } ! if (macKey != 0) { unichar equivalent[1] = {macKey}; theKeyEquivalent = [NSString stringWithCharacters:equivalent length:1]; } else { theKeyEquivalent = @""; } ! [((CMenuItem *)jlong_to_ptr(menuItemObj)) setJavaLabel:theLabel shortcut:theKeyEquivalent modifierMask:mods]; JNF_COCOA_EXIT(env); } /*
*** 386,418 **** */ JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CMenuItem_nativeCreate (JNIEnv *env, jobject peer, jlong parentCMenuObj, jboolean isSeparator) { ! __block CMenuItem *aCMenuItem = nil; BOOL asSeparator = (isSeparator == JNI_TRUE) ? YES: NO; CMenu *parentCMenu = (CMenu *)jlong_to_ptr(parentCMenuObj); JNF_COCOA_ENTER(env); ! jobject cPeerObjGlobal = (*env)->NewGlobalRef(env, peer); [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ aCMenuItem = [[CMenuItem alloc] initWithPeer: cPeerObjGlobal asSeparator: asSeparator]; // the CMenuItem is released in CMenuComponent.dispose() }]; ! if (aCMenuItem == nil) { return 0L; } ! // and add it to the parent item. [parentCMenu addJavaMenuItem: aCMenuItem]; ! // setLabel will be called after creation completes. ! JNF_COCOA_EXIT(env); return ptr_to_jlong(aCMenuItem); } /* --- 386,418 ---- */ JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CMenuItem_nativeCreate (JNIEnv *env, jobject peer, jlong parentCMenuObj, jboolean isSeparator) { ! __block CMenuItem *aCMenuItem = nil; BOOL asSeparator = (isSeparator == JNI_TRUE) ? YES: NO; CMenu *parentCMenu = (CMenu *)jlong_to_ptr(parentCMenuObj); JNF_COCOA_ENTER(env); ! jobject cPeerObjGlobal = (*env)->NewGlobalRef(env, peer); [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ aCMenuItem = [[CMenuItem alloc] initWithPeer: cPeerObjGlobal asSeparator: asSeparator]; // the CMenuItem is released in CMenuComponent.dispose() }]; ! if (aCMenuItem == nil) { return 0L; } ! // and add it to the parent item. [parentCMenu addJavaMenuItem: aCMenuItem]; ! // setLabel will be called after creation completes. ! JNF_COCOA_EXIT(env); return ptr_to_jlong(aCMenuItem); } /*
< prev index next >