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

Print this page




  92     if (sClipboard == nil) {
  93         sClipboard = [[CClipboard alloc] init];
  94         [[NSNotificationCenter defaultCenter] addObserver:sClipboard selector: @selector(checkPasteboard:) name: NSApplicationDidBecomeActiveNotification object: nil];
  95     }
  96 
  97     return sClipboard;
  98 }
  99 
 100 - (id) init
 101 {
 102     self = [super init];
 103 
 104     if (self != nil) {
 105         fChangeCount = [[NSPasteboard generalPasteboard] changeCount];
 106     }
 107 
 108     return self;
 109 }
 110 
 111 - (void) javaDeclareTypes:(NSArray *)inTypes withOwner:(jobject)inClipboard jniEnv:(JNIEnv *)inEnv {
 112     AWT_ASSERT_NOT_APPKIT_THREAD;
 113 
 114     //NSLog(@"CClipboard javaDeclareTypes %@ withOwner", inTypes);
 115 
 116     @synchronized(self) {
 117         if (inClipboard != NULL) {
 118             if (fClipboardOwner != NULL) {
 119                 JNFDeleteGlobalRef(inEnv, fClipboardOwner);
 120             }
 121             fClipboardOwner = JNFNewGlobalRef(inEnv, inClipboard);
 122         }
 123     }
 124     [ThreadUtilities performOnMainThread:@selector(_nativeDeclareTypes:) onObject:self withObject:inTypes waitUntilDone:YES awtMode:YES];
 125 }
 126 
 127 - (void) _nativeDeclareTypes:(NSArray *)inTypes {
 128     AWT_ASSERT_APPKIT_THREAD;
 129 
 130     //NSLog(@"CClipboard _nativeDeclareTypes %@ withOwner", inTypes);
 131 
 132     fChangeCount = [[NSPasteboard generalPasteboard] declareTypes:inTypes owner:self];
 133 }
 134 
 135 
 136 - (NSArray *) javaGetTypes {
 137     AWT_ASSERT_NOT_APPKIT_THREAD;
 138 
 139     NSMutableArray *args = [NSMutableArray arrayWithCapacity:1];
 140     [ThreadUtilities performOnMainThread:@selector(_nativeGetTypes:) onObject:self withObject:args waitUntilDone:YES awtMode:YES];
 141 
 142     //NSLog(@"CClipboard getTypes returns %@", [args lastObject]);
 143     return [args lastObject];
 144 }
 145 
 146 - (void) _nativeGetTypes:(NSMutableArray *)args {
 147     AWT_ASSERT_APPKIT_THREAD;
 148 
 149     [args addObject:[[NSPasteboard generalPasteboard] types]];
 150 
 151     //NSLog(@"CClipboard getTypes returns %@", [args lastObject]);
 152 }
 153 
 154 - (void) javaSetData:(NSData *)inData forType:(NSString *) inFormat {
 155     AWT_ASSERT_NOT_APPKIT_THREAD;
 156 
 157     CClipboardUpdate *newUpdate = [[CClipboardUpdate alloc] initWithData:inData withFormat:inFormat];
 158     [ThreadUtilities performOnMainThread:@selector(_nativeSetData:) onObject:self withObject:newUpdate waitUntilDone:YES awtMode:YES];
 159     [newUpdate release];
 160 
 161     //NSLog(@"CClipboard javaSetData forType %@", inFormat);
 162 }
 163 
 164 - (void) _nativeSetData:(CClipboardUpdate *)newUpdate {
 165     AWT_ASSERT_APPKIT_THREAD;
 166 
 167     [[NSPasteboard generalPasteboard] setData:[newUpdate data] forType:[newUpdate format]];
 168 
 169     //NSLog(@"CClipboard _nativeSetData setData %@", [newUpdate data]);
 170     //NSLog(@"CClipboard _nativeSetData forType %@", [newUpdate format]);
 171 }
 172 
 173 - (NSData *) javaGetDataForType:(NSString *) inFormat {
 174     AWT_ASSERT_NOT_APPKIT_THREAD;
 175 
 176     NSMutableArray *args = [NSMutableArray arrayWithObject:inFormat];
 177     [ThreadUtilities performOnMainThread:@selector(_nativeGetDataForType:) onObject:self withObject:args waitUntilDone:YES awtMode:YES];
 178 
 179     //NSLog(@"CClipboard javaGetDataForType %@ returns an NSData", inFormat);
 180     return [args lastObject];
 181 }
 182 
 183 - (void) _nativeGetDataForType:(NSMutableArray *) args {
 184     AWT_ASSERT_APPKIT_THREAD;
 185 
 186     NSData *returnValue = [[NSPasteboard generalPasteboard] dataForType:[args objectAtIndex:0]];
 187 
 188     if (returnValue) [args replaceObjectAtIndex:0 withObject:returnValue];
 189     else [args removeLastObject];
 190 
 191     //NSLog(@"CClipboard _nativeGetDataForType");
 192 }
 193 
 194 - (void) checkPasteboard:(id)application {




  92     if (sClipboard == nil) {
  93         sClipboard = [[CClipboard alloc] init];
  94         [[NSNotificationCenter defaultCenter] addObserver:sClipboard selector: @selector(checkPasteboard:) name: NSApplicationDidBecomeActiveNotification object: nil];
  95     }
  96 
  97     return sClipboard;
  98 }
  99 
 100 - (id) init
 101 {
 102     self = [super init];
 103 
 104     if (self != nil) {
 105         fChangeCount = [[NSPasteboard generalPasteboard] changeCount];
 106     }
 107 
 108     return self;
 109 }
 110 
 111 - (void) javaDeclareTypes:(NSArray *)inTypes withOwner:(jobject)inClipboard jniEnv:(JNIEnv *)inEnv {

 112 
 113     //NSLog(@"CClipboard javaDeclareTypes %@ withOwner", inTypes);
 114 
 115     @synchronized(self) {
 116         if (inClipboard != NULL) {
 117             if (fClipboardOwner != NULL) {
 118                 JNFDeleteGlobalRef(inEnv, fClipboardOwner);
 119             }
 120             fClipboardOwner = JNFNewGlobalRef(inEnv, inClipboard);
 121         }
 122     }
 123     [ThreadUtilities performOnMainThread:@selector(_nativeDeclareTypes:) onObject:self withObject:inTypes waitUntilDone:YES awtMode:YES];
 124 }
 125 
 126 - (void) _nativeDeclareTypes:(NSArray *)inTypes {
 127     AWT_ASSERT_APPKIT_THREAD;
 128 
 129     //NSLog(@"CClipboard _nativeDeclareTypes %@ withOwner", inTypes);
 130 
 131     fChangeCount = [[NSPasteboard generalPasteboard] declareTypes:inTypes owner:self];
 132 }
 133 
 134 
 135 - (NSArray *) javaGetTypes {

 136 
 137     NSMutableArray *args = [NSMutableArray arrayWithCapacity:1];
 138     [ThreadUtilities performOnMainThread:@selector(_nativeGetTypes:) onObject:self withObject:args waitUntilDone:YES awtMode:YES];
 139 
 140     //NSLog(@"CClipboard getTypes returns %@", [args lastObject]);
 141     return [args lastObject];
 142 }
 143 
 144 - (void) _nativeGetTypes:(NSMutableArray *)args {
 145     AWT_ASSERT_APPKIT_THREAD;
 146 
 147     [args addObject:[[NSPasteboard generalPasteboard] types]];
 148 
 149     //NSLog(@"CClipboard getTypes returns %@", [args lastObject]);
 150 }
 151 
 152 - (void) javaSetData:(NSData *)inData forType:(NSString *) inFormat {

 153 
 154     CClipboardUpdate *newUpdate = [[CClipboardUpdate alloc] initWithData:inData withFormat:inFormat];
 155     [ThreadUtilities performOnMainThread:@selector(_nativeSetData:) onObject:self withObject:newUpdate waitUntilDone:YES awtMode:YES];
 156     [newUpdate release];
 157 
 158     //NSLog(@"CClipboard javaSetData forType %@", inFormat);
 159 }
 160 
 161 - (void) _nativeSetData:(CClipboardUpdate *)newUpdate {
 162     AWT_ASSERT_APPKIT_THREAD;
 163 
 164     [[NSPasteboard generalPasteboard] setData:[newUpdate data] forType:[newUpdate format]];
 165 
 166     //NSLog(@"CClipboard _nativeSetData setData %@", [newUpdate data]);
 167     //NSLog(@"CClipboard _nativeSetData forType %@", [newUpdate format]);
 168 }
 169 
 170 - (NSData *) javaGetDataForType:(NSString *) inFormat {

 171 
 172     NSMutableArray *args = [NSMutableArray arrayWithObject:inFormat];
 173     [ThreadUtilities performOnMainThread:@selector(_nativeGetDataForType:) onObject:self withObject:args waitUntilDone:YES awtMode:YES];
 174 
 175     //NSLog(@"CClipboard javaGetDataForType %@ returns an NSData", inFormat);
 176     return [args lastObject];
 177 }
 178 
 179 - (void) _nativeGetDataForType:(NSMutableArray *) args {
 180     AWT_ASSERT_APPKIT_THREAD;
 181 
 182     NSData *returnValue = [[NSPasteboard generalPasteboard] dataForType:[args objectAtIndex:0]];
 183 
 184     if (returnValue) [args replaceObjectAtIndex:0 withObject:returnValue];
 185     else [args removeLastObject];
 186 
 187     //NSLog(@"CClipboard _nativeGetDataForType");
 188 }
 189 
 190 - (void) checkPasteboard:(id)application {