summaryrefslogtreecommitdiffstats
path: root/video/out/cocoa
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2014-10-05 22:31:33 +0200
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2014-10-05 23:38:39 +0200
commit547b62f45e8c54dc892ba86b98f5ca7cb3f3beac (patch)
treee6479c46224b75150582102c2bd928b3bbaf4816 /video/out/cocoa
parentcb0f342ab281632b4557e3b5601fe41692680926 (diff)
downloadmpv-547b62f45e8c54dc892ba86b98f5ca7cb3f3beac.tar.bz2
mpv-547b62f45e8c54dc892ba86b98f5ca7cb3f3beac.tar.xz
cocoa: separate video view and events view
Diffstat (limited to 'video/out/cocoa')
-rw-r--r--video/out/cocoa/events_view.h (renamed from video/out/cocoa/view.h)6
-rw-r--r--video/out/cocoa/events_view.m (renamed from video/out/cocoa/view.m)16
-rw-r--r--video/out/cocoa/video_view.h23
-rw-r--r--video/out/cocoa/video_view.m38
-rw-r--r--video/out/cocoa/window.m2
5 files changed, 74 insertions, 11 deletions
diff --git a/video/out/cocoa/view.h b/video/out/cocoa/events_view.h
index 490af221b1..3dc0e0306e 100644
--- a/video/out/cocoa/view.h
+++ b/video/out/cocoa/events_view.h
@@ -18,13 +18,9 @@
#import <Cocoa/Cocoa.h>
#import "video/out/cocoa/mpvadapter.h"
-@interface MpvVideoView : NSView <NSDraggingDestination> {
- BOOL hasMouseDown;
-}
+@interface MpvEventsView : NSView <NSDraggingDestination>
@property(nonatomic, retain) MpvCocoaAdapter *adapter;
-@property(nonatomic, retain) NSTrackingArea *tracker;
- (void)setFullScreen:(BOOL)willBeFullscreen;
- (NSRect)frameInPixels;
- (BOOL)canHideCursor;
-- (void)signalMousePosition;
@end
diff --git a/video/out/cocoa/view.m b/video/out/cocoa/events_view.m
index 7be52b53c9..6e1b470d13 100644
--- a/video/out/cocoa/view.m
+++ b/video/out/cocoa/events_view.m
@@ -24,11 +24,18 @@
#include "video/out/cocoa_common.h"
#import "video/out/cocoa/additions.h"
-#include "view.h"
+#include "events_view.h"
-@implementation MpvVideoView
+@interface MpvEventsView()
+@property(nonatomic, assign) BOOL hasMouseDown;
+@property(nonatomic, retain) NSTrackingArea *tracker;
+- (void)signalMousePosition;
+@end
+
+@implementation MpvEventsView
@synthesize adapter = _adapter;
@synthesize tracker = _tracker;
+@synthesize hasMouseDown = _mouse_down;
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
@@ -130,7 +137,7 @@
- (BOOL)canHideCursor
{
- return !self->hasMouseDown && [self containsMouseLocation];
+ return self.hasMouseDown && [self containsMouseLocation];
}
- (void)mouseEntered:(NSEvent *)event
@@ -147,7 +154,6 @@
{
[super setFrameSize:size];
[self signalMousePosition];
- [self.adapter setNeedsResize];
}
- (NSPoint)convertPointToPixels:(NSPoint)point
@@ -223,7 +229,7 @@
- (void)putMouseEvent:(NSEvent *)event withState:(int)state
{
- self->hasMouseDown = (state == MP_KEY_STATE_DOWN);
+ self.hasMouseDown = (state == MP_KEY_STATE_DOWN);
int mpkey = (MP_MOUSE_BTN0 + [event mpvButtonNumber]);
[self.adapter putKey:(mpkey | state) withModifiers:[event modifierFlags]];
}
diff --git a/video/out/cocoa/video_view.h b/video/out/cocoa/video_view.h
new file mode 100644
index 0000000000..d31d1e014e
--- /dev/null
+++ b/video/out/cocoa/video_view.h
@@ -0,0 +1,23 @@
+/*
+ * This file is part of mpv.
+ *
+ * mpv is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * mpv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with mpv. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import "video/out/cocoa/mpvadapter.h"
+
+@interface MpvVideoView : NSView
+@property(nonatomic, retain) MpvCocoaAdapter *adapter;
+@end
diff --git a/video/out/cocoa/video_view.m b/video/out/cocoa/video_view.m
new file mode 100644
index 0000000000..851954c167
--- /dev/null
+++ b/video/out/cocoa/video_view.m
@@ -0,0 +1,38 @@
+/*
+ * This file is part of mpv.
+ *
+ * mpv is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * mpv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with mpv. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "osdep/macosx_compat.h"
+#include "video/out/cocoa_common.h"
+#include "video_view.h"
+
+@implementation MpvVideoView
+@synthesize adapter = _adapter;
+
+- (id)initWithFrame:(NSRect)frame {
+ self = [super initWithFrame:frame];
+ if (self) {
+ [self setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
+ }
+ return self;
+}
+
+- (void)setFrameSize:(NSSize)size
+{
+ [super setFrameSize:size];
+ [self.adapter setNeedsResize];
+}
+@end
diff --git a/video/out/cocoa/window.m b/video/out/cocoa/window.m
index ece6246f34..1540a1b769 100644
--- a/video/out/cocoa/window.m
+++ b/video/out/cocoa/window.m
@@ -55,7 +55,7 @@
- (void)windowDidChangeBackingProperties:(NSNotification *)notification
{
// XXX: we maybe only need expose for this
- [self.adapter setNeedsResize];
+ // [self.adapter setNeedsResize];
}
- (void)windowDidChangeScreenProfile:(NSNotification *)notification