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

Print this page




  51 + (void)javaDraggingEnd;
  52 
  53 @end
  54 
  55 
  56 @implementation NSEvent(AWTAdditions)
  57 
  58 
  59 + (void)javaDraggingBegin
  60 {
  61     sIsJavaDragging = YES;
  62 }
  63 
  64 + (void)javaDraggingEnd
  65 {
  66     // sIsJavaDragging is reset on mouseDown as well.
  67     sIsJavaDragging = NO;
  68 }
  69 @end
  70 
  71 JNF_CLASS_CACHE(DataTransfererClass, "sun/awt/datatransfer/DataTransferer");
  72 JNF_CLASS_CACHE(CDragSourceContextPeerClass, "sun/lwawt/macosx/CDragSourceContextPeer");
  73 JNF_CLASS_CACHE(CImageClass, "sun/lwawt/macosx/CImage");
  74 
  75 static NSDragOperation    sDragOperation;
  76 static NSPoint            sDraggingLocation;
  77 
  78 static BOOL                sNeedsEnter;
  79 
  80 @interface CDragSource ()
  81 // Updates from the destination to the source
  82 - (void) postDragEnter;
  83 - (void) postDragExit;
  84 // Utility
  85 - (NSPoint) mapNSScreenPointToJavaWithOffset:(NSPoint) point;
  86 @end
  87 
  88 @implementation CDragSource
  89 
  90 - (id)        init:(jobject)jDragSourceContextPeer
  91          component:(jobject)jComponent


 194 - (void)dealloc
 195 {
 196     DLog2(@"[CDragSource dealloc]: %@\n", self);
 197 
 198     // Delete or release local data:
 199     [fView release];
 200     fView = nil;
 201 
 202     [fDragImage release];
 203     fDragImage = nil;
 204 
 205     [super dealloc];
 206 }
 207 
 208 // Appropriated from Windows' awt_DataTransferer.cpp:
 209 //
 210 // * NOTE: This returns a JNI Local Ref. Any code that calls must call DeleteLocalRef with the return value.
 211 //
 212 - (jobject)dataTransferer:(JNIEnv*)env
 213 {
 214     JNF_STATIC_MEMBER_CACHE(getInstanceMethod, DataTransfererClass, "getInstance", "()Lsun/awt/datatransfer/DataTransferer;");
 215     return JNFCallStaticObjectMethod(env, getInstanceMethod);
 216 }
 217 
 218 // Appropriated from Windows' awt_DataTransferer.cpp:
 219 //
 220 // * NOTE: This returns a JNI Local Ref. Any code that calls must call DeleteLocalRef with the return value.
 221 //
 222 - (jbyteArray)convertData:(jlong)format
 223 {
 224     JNIEnv*    env = [ThreadUtilities getJNIEnv];
 225     jobject    transferer = [self dataTransferer:env];
 226     jbyteArray data = nil;
 227 
 228     if (transferer != NULL) {
 229         JNF_MEMBER_CACHE(convertDataMethod, DataTransfererClass, "convertData", "(Ljava/lang/Object;Ljava/awt/datatransfer/Transferable;JLjava/util/Map;Z)[B");
 230         data = JNFCallObjectMethod(env, transferer, convertDataMethod, fComponent, fTransferable, format, fFormatMap, (jboolean) TRUE);
 231     }
 232 
 233     return data;
 234 }




  51 + (void)javaDraggingEnd;
  52 
  53 @end
  54 
  55 
  56 @implementation NSEvent(AWTAdditions)
  57 
  58 
  59 + (void)javaDraggingBegin
  60 {
  61     sIsJavaDragging = YES;
  62 }
  63 
  64 + (void)javaDraggingEnd
  65 {
  66     // sIsJavaDragging is reset on mouseDown as well.
  67     sIsJavaDragging = NO;
  68 }
  69 @end
  70 
  71 JNF_CLASS_CACHE(DataTransfererClass, "sun/awt/datatransfer/desktop/DataTransferer");
  72 JNF_CLASS_CACHE(CDragSourceContextPeerClass, "sun/lwawt/macosx/CDragSourceContextPeer");
  73 JNF_CLASS_CACHE(CImageClass, "sun/lwawt/macosx/CImage");
  74 
  75 static NSDragOperation    sDragOperation;
  76 static NSPoint            sDraggingLocation;
  77 
  78 static BOOL                sNeedsEnter;
  79 
  80 @interface CDragSource ()
  81 // Updates from the destination to the source
  82 - (void) postDragEnter;
  83 - (void) postDragExit;
  84 // Utility
  85 - (NSPoint) mapNSScreenPointToJavaWithOffset:(NSPoint) point;
  86 @end
  87 
  88 @implementation CDragSource
  89 
  90 - (id)        init:(jobject)jDragSourceContextPeer
  91          component:(jobject)jComponent


 194 - (void)dealloc
 195 {
 196     DLog2(@"[CDragSource dealloc]: %@\n", self);
 197 
 198     // Delete or release local data:
 199     [fView release];
 200     fView = nil;
 201 
 202     [fDragImage release];
 203     fDragImage = nil;
 204 
 205     [super dealloc];
 206 }
 207 
 208 // Appropriated from Windows' awt_DataTransferer.cpp:
 209 //
 210 // * NOTE: This returns a JNI Local Ref. Any code that calls must call DeleteLocalRef with the return value.
 211 //
 212 - (jobject)dataTransferer:(JNIEnv*)env
 213 {
 214     JNF_STATIC_MEMBER_CACHE(getInstanceMethod, DataTransfererClass, "getInstance", "()Lsun/awt/datatransfer/desktop/DataTransferer;");
 215     return JNFCallStaticObjectMethod(env, getInstanceMethod);
 216 }
 217 
 218 // Appropriated from Windows' awt_DataTransferer.cpp:
 219 //
 220 // * NOTE: This returns a JNI Local Ref. Any code that calls must call DeleteLocalRef with the return value.
 221 //
 222 - (jbyteArray)convertData:(jlong)format
 223 {
 224     JNIEnv*    env = [ThreadUtilities getJNIEnv];
 225     jobject    transferer = [self dataTransferer:env];
 226     jbyteArray data = nil;
 227 
 228     if (transferer != NULL) {
 229         JNF_MEMBER_CACHE(convertDataMethod, DataTransfererClass, "convertData", "(Ljava/lang/Object;Ljava/awt/datatransfer/Transferable;JLjava/util/Map;Z)[B");
 230         data = JNFCallObjectMethod(env, transferer, convertDataMethod, fComponent, fTransferable, format, fFormatMap, (jboolean) TRUE);
 231     }
 232 
 233     return data;
 234 }