aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/devdraw
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/devdraw')
-rw-r--r--src/cmd/devdraw/cocoa-screen.m39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/cmd/devdraw/cocoa-screen.m b/src/cmd/devdraw/cocoa-screen.m
index 03355362..fc73814b 100644
--- a/src/cmd/devdraw/cocoa-screen.m
+++ b/src/cmd/devdraw/cocoa-screen.m
@@ -159,6 +159,7 @@ static NSRect dilate(NSRect);
detachDrawingThread:@selector(callservep9p:)
toTarget:[self class] withObject:nil];
}
+
- (void)windowDidBecomeKey:(id)arg
{
getmousepos();
@@ -298,6 +299,41 @@ attachscreen(char *label, char *winsize)
[win.content setHidden:NO];
[super deminiaturize:arg];
}
+
+- (NSDragOperation)draggingEntered:(id)arg
+{
+ NSPasteboard *b;
+ NSDragOperation op;
+
+ op = [arg draggingSourceOperationMask];
+ b = [arg draggingPasteboard];
+
+ if([[b types] containsObject:NSFilenamesPboardType])
+ if(op&NSDragOperationLink)
+ return NSDragOperationLink;
+
+ return NSDragOperationNone;
+}
+
+- (BOOL)performDragOperation:(id)arg
+{
+ NSPasteboard *b;
+ NSArray *files;
+ int i, n;
+
+ b = [arg draggingPasteboard];
+ if(![[b types] containsObject:NSFilenamesPboardType])
+ return NO;
+
+ files = [b propertyListForType:NSFilenamesPboardType];
+ n = [files count];
+ for(i=0; i<n; i++)
+ if(fork() == 0)
+ execl("macedit", "macedit", [[files objectAtIndex:i] UTF8String], nil);
+
+ return YES;
+}
+
@end
double
@@ -354,6 +390,9 @@ makewin(char *s)
#endif
[w setContentMinSize:NSMakeSize(128,128)];
+ [w registerForDraggedTypes:[NSArray arrayWithObjects:
+ NSFilenamesPboardType, nil]];
+
win.ofs[0] = w;
win.ofs[1] = [[appwin alloc]
initWithContentRect:sr