src/macosx/native/sun/awt/DnDUtilities.m

Print this page




 144             break;
 145         case java_awt_dnd_DnDConstants_ACTION_COPY_OR_MOVE:    // 3
 146             result = NSDragOperationCopy | NSDragOperationMove;
 147             break;
 148         case java_awt_dnd_DnDConstants_ACTION_LINK:            // 1073741824L
 149             result = NSDragOperationLink;
 150             break;
 151         case (java_awt_dnd_DnDConstants_ACTION_COPY_OR_MOVE | java_awt_dnd_DnDConstants_ACTION_LINK):
 152             result = NSDragOperationCopy | NSDragOperationMove | NSDragOperationLink;
 153             break;
 154     }
 155 
 156         if (result != NSDragOperationNone) {
 157             result |= NSDragOperationGeneric;
 158         }
 159 
 160     return result;
 161 }
 162 
 163 // Mouse and key modifiers mapping:
 164 + (NSUInteger)mapJavaExtModifiersToNSKeyModifiers:(jint)modifiers
 165 {
 166     NSUInteger result = 0;
 167 
 168     if ((modifiers & java_awt_event_InputEvent_SHIFT_DOWN_MASK) != 0)
 169         result |= NSShiftKeyMask;
 170 
 171     if ((modifiers & java_awt_event_InputEvent_CTRL_DOWN_MASK) != 0)
 172         result |= NSControlKeyMask;
 173 
 174     if ((modifiers & java_awt_event_InputEvent_META_DOWN_MASK) != 0)
 175         result |= NSCommandKeyMask;
 176 
 177     if ((modifiers & java_awt_event_InputEvent_ALT_DOWN_MASK) != 0)
 178         result |= NSAlternateKeyMask;
 179 
 180     if ((modifiers & java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK) != 0)
 181         result |= NSAlternateKeyMask;
 182 
 183     return result;
 184 }
 185 
 186 + (NSUInteger)mapJavaExtModifiersToNSMouseDownButtons:(jint)modifiers
 187 {
 188     NSUInteger result = NSLeftMouseDown;
 189 
 190     if ((modifiers & java_awt_event_InputEvent_BUTTON1_DOWN_MASK) != 0)
 191         result = NSLeftMouseDown;
 192 
 193     if ((modifiers & java_awt_event_InputEvent_BUTTON2_DOWN_MASK) != 0)
 194         result = NSOtherMouseDown;
 195 
 196     if ((modifiers & java_awt_event_InputEvent_BUTTON3_DOWN_MASK) != 0)
 197         result = NSRightMouseDown;
 198 
 199     return result;
 200 }
 201 
 202 + (NSUInteger)mapJavaExtModifiersToNSMouseUpButtons:(jint)modifiers
 203 {
 204     NSUInteger result = NSLeftMouseUp;
 205 


 228     // Get results
 229     jint result = modifiers & mask;
 230 
 231     // Java appears to have 2 ALT buttons - combine them.
 232     if (modifiers & java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK)
 233         result |= java_awt_event_InputEvent_ALT_DOWN_MASK;
 234 
 235     return result;
 236 }
 237 
 238 // Returns just the mouse modifiers from a java modifier flag
 239 + (jint)extractJavaExtMouseModifiersFromJavaExtModifiers:(jint)modifiers
 240 {
 241     // Build the mask
 242     static jint mask = java_awt_event_InputEvent_BUTTON1_DOWN_MASK | java_awt_event_InputEvent_BUTTON2_DOWN_MASK | java_awt_event_InputEvent_BUTTON3_DOWN_MASK;
 243 
 244     // Get results
 245     return modifiers & mask;
 246 }
 247 
 248 
 249 + (jint)currentJavaExtKeyModifiers
 250 {
 251     NSUInteger modifiers = [NSEvent modifierFlags];
 252     jint jmodifiers = 0;
 253 
 254     if(modifiers & NSShiftKeyMask) {
 255         jmodifiers |= java_awt_event_InputEvent_SHIFT_DOWN_MASK;
 256     }
 257 
 258     if(modifiers & NSControlKeyMask) {
 259         jmodifiers |= java_awt_event_InputEvent_CTRL_DOWN_MASK;
 260     }
 261 
 262     if(modifiers & NSAlternateKeyMask) {
 263         jmodifiers |= java_awt_event_InputEvent_ALT_DOWN_MASK;
 264     }
 265 
 266     if(modifiers & NSCommandKeyMask) {
 267         jmodifiers |= java_awt_event_InputEvent_META_DOWN_MASK;
 268     }
 269 
 270     return jmodifiers;
 271 }
 272 
 273 
 274 + (NSDragOperation) nsDragOperationForModifiers:(NSUInteger)modifiers {
 275 
 276     // Java first
 277     if ( (modifiers & NSShiftKeyMask) && (modifiers & NSControlKeyMask) ) {
 278         return NSDragOperationLink;
 279     }
 280     if (modifiers & NSShiftKeyMask) {
 281         return NSDragOperationMove;
 282     }
 283     if (modifiers & NSControlKeyMask) {
 284         return NSDragOperationCopy;
 285     }
 286 
 287     // Then native
 288     if ( (modifiers & NSCommandKeyMask) && (modifiers & NSAlternateKeyMask) ) {
 289         return NSDragOperationLink;
 290     }
 291     if (modifiers & NSCommandKeyMask) {
 292         return NSDragOperationMove;
 293     }




 144             break;
 145         case java_awt_dnd_DnDConstants_ACTION_COPY_OR_MOVE:    // 3
 146             result = NSDragOperationCopy | NSDragOperationMove;
 147             break;
 148         case java_awt_dnd_DnDConstants_ACTION_LINK:            // 1073741824L
 149             result = NSDragOperationLink;
 150             break;
 151         case (java_awt_dnd_DnDConstants_ACTION_COPY_OR_MOVE | java_awt_dnd_DnDConstants_ACTION_LINK):
 152             result = NSDragOperationCopy | NSDragOperationMove | NSDragOperationLink;
 153             break;
 154     }
 155 
 156         if (result != NSDragOperationNone) {
 157             result |= NSDragOperationGeneric;
 158         }
 159 
 160     return result;
 161 }
 162 
 163 // Mouse and key modifiers mapping:






















 164 + (NSUInteger)mapJavaExtModifiersToNSMouseDownButtons:(jint)modifiers
 165 {
 166     NSUInteger result = NSLeftMouseDown;
 167 
 168     if ((modifiers & java_awt_event_InputEvent_BUTTON1_DOWN_MASK) != 0)
 169         result = NSLeftMouseDown;
 170 
 171     if ((modifiers & java_awt_event_InputEvent_BUTTON2_DOWN_MASK) != 0)
 172         result = NSOtherMouseDown;
 173 
 174     if ((modifiers & java_awt_event_InputEvent_BUTTON3_DOWN_MASK) != 0)
 175         result = NSRightMouseDown;
 176 
 177     return result;
 178 }
 179 
 180 + (NSUInteger)mapJavaExtModifiersToNSMouseUpButtons:(jint)modifiers
 181 {
 182     NSUInteger result = NSLeftMouseUp;
 183 


 206     // Get results
 207     jint result = modifiers & mask;
 208 
 209     // Java appears to have 2 ALT buttons - combine them.
 210     if (modifiers & java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK)
 211         result |= java_awt_event_InputEvent_ALT_DOWN_MASK;
 212 
 213     return result;
 214 }
 215 
 216 // Returns just the mouse modifiers from a java modifier flag
 217 + (jint)extractJavaExtMouseModifiersFromJavaExtModifiers:(jint)modifiers
 218 {
 219     // Build the mask
 220     static jint mask = java_awt_event_InputEvent_BUTTON1_DOWN_MASK | java_awt_event_InputEvent_BUTTON2_DOWN_MASK | java_awt_event_InputEvent_BUTTON3_DOWN_MASK;
 221 
 222     // Get results
 223     return modifiers & mask;
 224 }
 225 


























 226 + (NSDragOperation) nsDragOperationForModifiers:(NSUInteger)modifiers {
 227 
 228     // Java first
 229     if ( (modifiers & NSShiftKeyMask) && (modifiers & NSControlKeyMask) ) {
 230         return NSDragOperationLink;
 231     }
 232     if (modifiers & NSShiftKeyMask) {
 233         return NSDragOperationMove;
 234     }
 235     if (modifiers & NSControlKeyMask) {
 236         return NSDragOperationCopy;
 237     }
 238 
 239     // Then native
 240     if ( (modifiers & NSCommandKeyMask) && (modifiers & NSAlternateKeyMask) ) {
 241         return NSDragOperationLink;
 242     }
 243     if (modifiers & NSCommandKeyMask) {
 244         return NSDragOperationMove;
 245     }