< prev index next >

src/java.desktop/macosx/native/libosxui/ScreenMenu.m

Print this page
rev 52923 : 8226346: Build better binary builders
Reviewed-by: andrew


  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 #import "ScreenMenu.h"
  27 
  28 #import "com_apple_laf_ScreenMenu.h"
  29 #import "java_awt_Event.h"
  30 #import "java_awt_event_KeyEvent.h"
  31 #import "java_awt_event_InputEvent.h"
  32 #import "java_awt_event_MouseEvent.h"
  33 
  34 #import <JavaNativeFoundation/JavaNativeFoundation.h>
  35 #import <JavaRuntimeSupport/JavaRuntimeSupport.h>
  36 
  37 #import "ThreadUtilities.h"
  38 #import "CMenuBar.h"
  39 
  40 /* Use THIS_FILE when it is available. */
  41 #ifndef THIS_FILE
  42     #define THIS_FILE __FILE__     
  43 #endif 
  44  
  45 static JNF_CLASS_CACHE(sjc_ScreenMenu, "com/apple/laf/ScreenMenu");
  46 
  47 static jint ns2awtModifiers(NSUInteger keyMods) {
  48     jint result = 0;
  49     if (keyMods & NSShiftKeyMask)        result |= java_awt_Event_SHIFT_MASK;
  50     if (keyMods & NSControlKeyMask)        result |= java_awt_Event_CTRL_MASK;
  51     if (keyMods & NSAlternateKeyMask)    result |= java_awt_Event_ALT_MASK;
  52     if (keyMods & NSCommandKeyMask)        result |= java_awt_Event_META_MASK;
  53     return result;
  54 }
  55 
  56 static jint ns2awtMouseButton(NSInteger mouseButton) {
  57     switch (mouseButton) {
  58         case 1: return java_awt_event_InputEvent_BUTTON1_MASK;
  59         case 2: return java_awt_event_InputEvent_BUTTON2_MASK;
  60         case 3: return java_awt_event_InputEvent_BUTTON3_MASK;
  61     }
  62     return 0;
  63 }
  64 


  84 @synthesize javaObjectWrapper;
  85 
  86 - (id)initFromMenu:(NSMenu *)aMenu javaObj:(JNFJObjectWrapper *)obj
  87 {
  88     self = [super init];
  89     if (self) {
  90         self.nsmenu = aMenu;
  91         self.javaObjectWrapper = obj;
  92     }
  93     return self;
  94 }
  95 
  96 - (NSMenu *)menu {
  97     return self.nsmenu;
  98 }
  99 
 100 - (void)menuWillOpen:(NSMenu *)menu
 101 {
 102     if (self.javaObjectWrapper == nil) {
 103 #ifdef DEBUG
 104         NSLog(@"_javaObject is NULL: (%s - %s : %d)", THIS_FILE, __FUNCTION__, __LINE__);
 105 #endif
 106         return;
 107     }
 108 
 109     JNIEnv *env = [ThreadUtilities getJNIEnv];
 110 JNF_COCOA_ENTER(env);
 111     //NSLog(@"menuWillOpen %@", [menu title]);
 112     static JNF_MEMBER_CACHE(jm_ScreenMenu_invokeOpenLater, sjc_ScreenMenu, "invokeOpenLater", "()V");
 113     JNFCallVoidMethod(env, [self.javaObjectWrapper jObject], jm_ScreenMenu_invokeOpenLater); // AWT_THREADING Safe (AWTRunLoopMode)
 114 JNF_COCOA_EXIT(env);
 115 
 116 }
 117 
 118 - (void)menuDidClose:(NSMenu *)menu
 119 {
 120     if (self.javaObjectWrapper == nil) {
 121 #ifdef DEBUG
 122         NSLog(@"_javaObject is NULL: (%s - %s : %d)", THIS_FILE, __FUNCTION__, __LINE__);
 123 #endif
 124         return;
 125     }
 126 
 127     JNIEnv *env = [ThreadUtilities getJNIEnv];
 128 JNF_COCOA_ENTER(env);
 129     //NSLog(@"menuDidClose %@", [menu title]);
 130     static JNF_MEMBER_CACHE(jm_ScreenMenu_invokeMenuClosing, sjc_ScreenMenu, "invokeMenuClosing", "()V");
 131     JNFCallVoidMethod(env, [self.javaObjectWrapper jObject], jm_ScreenMenu_invokeMenuClosing); // AWT_THREADING Safe (AWTRunLoopMode)
 132 JNF_COCOA_EXIT(env);
 133 }
 134 
 135 
 136 - (void)handleJavaMenuItemTargetedAtIndex:(NSUInteger)menuIndex rect:(NSRect)rect
 137 {
 138     if (self.javaObjectWrapper == nil) {
 139 #ifdef DEBUG
 140         NSLog(@"_javaObject is NULL: (%s - %s : %d)", THIS_FILE, __FUNCTION__, __LINE__);
 141 #endif
 142         return;
 143     }
 144 
 145     JNIEnv *env = [ThreadUtilities getJNIEnv];
 146 JNF_COCOA_ENTER(env);
 147     // Send that to Java so we can test which item was hit.
 148     static JNF_MEMBER_CACHE(jm_ScreenMenu_updateSelectedItem, sjc_ScreenMenu, "handleItemTargeted", "(IIIII)V");
 149     JNFCallVoidMethod(env, [self.javaObjectWrapper jObject], jm_ScreenMenu_updateSelectedItem, menuIndex,
 150                     NSMinY(rect), NSMinX(rect), NSMaxY(rect), NSMaxX(rect)); // AWT_THREADING Safe (AWTRunLoopMode)
 151 
 152 JNF_COCOA_EXIT(env);
 153 }
 154 
 155 
 156 // Called from event handler callback
 157 - (void)handleJavaMouseEvent:(NSEvent *)event
 158 {
 159     NSInteger kind = [event type];
 160     jint javaKind = 0;




  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 #import "ScreenMenu.h"
  27 
  28 #import "com_apple_laf_ScreenMenu.h"
  29 #import "java_awt_Event.h"
  30 #import "java_awt_event_KeyEvent.h"
  31 #import "java_awt_event_InputEvent.h"
  32 #import "java_awt_event_MouseEvent.h"
  33 
  34 #import <JavaNativeFoundation/JavaNativeFoundation.h>
  35 #import <JavaRuntimeSupport/JavaRuntimeSupport.h>
  36 
  37 #import "ThreadUtilities.h"
  38 #import "CMenuBar.h"
  39 





  40 static JNF_CLASS_CACHE(sjc_ScreenMenu, "com/apple/laf/ScreenMenu");
  41 
  42 static jint ns2awtModifiers(NSUInteger keyMods) {
  43     jint result = 0;
  44     if (keyMods & NSShiftKeyMask)        result |= java_awt_Event_SHIFT_MASK;
  45     if (keyMods & NSControlKeyMask)        result |= java_awt_Event_CTRL_MASK;
  46     if (keyMods & NSAlternateKeyMask)    result |= java_awt_Event_ALT_MASK;
  47     if (keyMods & NSCommandKeyMask)        result |= java_awt_Event_META_MASK;
  48     return result;
  49 }
  50 
  51 static jint ns2awtMouseButton(NSInteger mouseButton) {
  52     switch (mouseButton) {
  53         case 1: return java_awt_event_InputEvent_BUTTON1_MASK;
  54         case 2: return java_awt_event_InputEvent_BUTTON2_MASK;
  55         case 3: return java_awt_event_InputEvent_BUTTON3_MASK;
  56     }
  57     return 0;
  58 }
  59 


  79 @synthesize javaObjectWrapper;
  80 
  81 - (id)initFromMenu:(NSMenu *)aMenu javaObj:(JNFJObjectWrapper *)obj
  82 {
  83     self = [super init];
  84     if (self) {
  85         self.nsmenu = aMenu;
  86         self.javaObjectWrapper = obj;
  87     }
  88     return self;
  89 }
  90 
  91 - (NSMenu *)menu {
  92     return self.nsmenu;
  93 }
  94 
  95 - (void)menuWillOpen:(NSMenu *)menu
  96 {
  97     if (self.javaObjectWrapper == nil) {
  98 #ifdef DEBUG
  99         NSLog(@"_javaObject is NULL: (%s - %s : %d)", __FILE__, __FUNCTION__, __LINE__);
 100 #endif
 101         return;
 102     }
 103 
 104     JNIEnv *env = [ThreadUtilities getJNIEnv];
 105 JNF_COCOA_ENTER(env);
 106     //NSLog(@"menuWillOpen %@", [menu title]);
 107     static JNF_MEMBER_CACHE(jm_ScreenMenu_invokeOpenLater, sjc_ScreenMenu, "invokeOpenLater", "()V");
 108     JNFCallVoidMethod(env, [self.javaObjectWrapper jObject], jm_ScreenMenu_invokeOpenLater); // AWT_THREADING Safe (AWTRunLoopMode)
 109 JNF_COCOA_EXIT(env);
 110 
 111 }
 112 
 113 - (void)menuDidClose:(NSMenu *)menu
 114 {
 115     if (self.javaObjectWrapper == nil) {
 116 #ifdef DEBUG
 117         NSLog(@"_javaObject is NULL: (%s - %s : %d)", __FILE__, __FUNCTION__, __LINE__);
 118 #endif
 119         return;
 120     }
 121 
 122     JNIEnv *env = [ThreadUtilities getJNIEnv];
 123 JNF_COCOA_ENTER(env);
 124     //NSLog(@"menuDidClose %@", [menu title]);
 125     static JNF_MEMBER_CACHE(jm_ScreenMenu_invokeMenuClosing, sjc_ScreenMenu, "invokeMenuClosing", "()V");
 126     JNFCallVoidMethod(env, [self.javaObjectWrapper jObject], jm_ScreenMenu_invokeMenuClosing); // AWT_THREADING Safe (AWTRunLoopMode)
 127 JNF_COCOA_EXIT(env);
 128 }
 129 
 130 
 131 - (void)handleJavaMenuItemTargetedAtIndex:(NSUInteger)menuIndex rect:(NSRect)rect
 132 {
 133     if (self.javaObjectWrapper == nil) {
 134 #ifdef DEBUG
 135         NSLog(@"_javaObject is NULL: (%s - %s : %d)", __FILE__, __FUNCTION__, __LINE__);
 136 #endif
 137         return;
 138     }
 139 
 140     JNIEnv *env = [ThreadUtilities getJNIEnv];
 141 JNF_COCOA_ENTER(env);
 142     // Send that to Java so we can test which item was hit.
 143     static JNF_MEMBER_CACHE(jm_ScreenMenu_updateSelectedItem, sjc_ScreenMenu, "handleItemTargeted", "(IIIII)V");
 144     JNFCallVoidMethod(env, [self.javaObjectWrapper jObject], jm_ScreenMenu_updateSelectedItem, menuIndex,
 145                     NSMinY(rect), NSMinX(rect), NSMaxY(rect), NSMaxX(rect)); // AWT_THREADING Safe (AWTRunLoopMode)
 146 
 147 JNF_COCOA_EXIT(env);
 148 }
 149 
 150 
 151 // Called from event handler callback
 152 - (void)handleJavaMouseEvent:(NSEvent *)event
 153 {
 154     NSInteger kind = [event type];
 155     jint javaKind = 0;


< prev index next >