From 1e988c595bd4eb46c4df19cc33faf5d69a7d2ef1 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 4 Jan 2014 17:17:33 +0100 Subject: cocoa: handle files drag and drop on the player video view --- video/out/cocoa/mpvadapter.h | 1 + video/out/cocoa/view.h | 2 +- video/out/cocoa/view.m | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) (limited to 'video/out/cocoa') diff --git a/video/out/cocoa/mpvadapter.h b/video/out/cocoa/mpvadapter.h index b1a13d5ace..f691f4d824 100644 --- a/video/out/cocoa/mpvadapter.h +++ b/video/out/cocoa/mpvadapter.h @@ -25,6 +25,7 @@ - (void)putAxis:(int)mpkey delta:(float)delta; - (void)putCommand:(char*)cmd; - (void)performAsyncResize:(NSSize)size; +- (void)handleFilesArray:(NSArray *)files; - (BOOL)isInFullScreenMode; - (NSSize)videoSize; diff --git a/video/out/cocoa/view.h b/video/out/cocoa/view.h index 71d58a3348..490af221b1 100644 --- a/video/out/cocoa/view.h +++ b/video/out/cocoa/view.h @@ -18,7 +18,7 @@ #import #import "video/out/cocoa/mpvadapter.h" -@interface MpvVideoView : NSView { +@interface MpvVideoView : NSView { BOOL hasMouseDown; } @property(nonatomic, retain) MpvCocoaAdapter *adapter; diff --git a/video/out/cocoa/view.m b/video/out/cocoa/view.m index 45f0f17b06..9fc7506fc6 100644 --- a/video/out/cocoa/view.m +++ b/video/out/cocoa/view.m @@ -30,6 +30,14 @@ @synthesize adapter = _adapter; @synthesize tracker = _tracker; +- (id)initWithFrame:(NSRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self registerForDraggedTypes:@[NSFilenamesPboardType]]; + } + return self; +} + - (void)setFullScreen:(BOOL)willBeFullscreen { if (willBeFullscreen && ![self isInFullScreenMode]) { @@ -223,4 +231,17 @@ [self.adapter performAsyncResize:[self frameInPixels].size]; [self.adapter setNeedsResize]; } + +- (NSDragOperation)draggingEntered:(id )sender +{ + return NSDragOperationEvery; +} + +- (BOOL)performDragOperation:(id )sender +{ + NSPasteboard *pboard = [sender draggingPasteboard]; + NSArray *pbitems = [pboard propertyListForType:NSFilenamesPboardType]; + [self.adapter handleFilesArray:pbitems]; + return YES; +} @end -- cgit v1.2.3