diff options
author | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2013-09-03 21:18:28 +0200 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2013-09-28 11:20:00 +0200 |
commit | 0ab9634eb3f3005c37a0346d9035dbc4d4abd144 (patch) | |
tree | 2bd5dbd469772067a4549fb1afafa04d223624f9 /video/out/cocoa/additions.m | |
parent | 0e68ff4fad174d73c6e7ab82ead36f9209fb66a2 (diff) | |
download | mpv-0ab9634eb3f3005c37a0346d9035dbc4d4abd144.tar.bz2 mpv-0ab9634eb3f3005c37a0346d9035dbc4d4abd144.tar.xz |
cocoa_common: split the code, refactoring and cleanups
Split the code to several files. The GUI elements now each have they own files
and private state. The original code was a mess to respect the retarded mplayer
convention of having everything in a single file.
This commit also seems to fix the long running bug of artifacts showing
randomly when going fullscreen using nVidia GPUs.
Diffstat (limited to 'video/out/cocoa/additions.m')
-rw-r--r-- | video/out/cocoa/additions.m | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/video/out/cocoa/additions.m b/video/out/cocoa/additions.m new file mode 100644 index 0000000000..3caabef956 --- /dev/null +++ b/video/out/cocoa/additions.m @@ -0,0 +1,51 @@ +/* + * 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 "additions.h" + +@implementation NSScreen (mpvadditions) +- (BOOL)hasDock +{ + NSRect vF = [self visibleFrame]; + NSRect f = [self frame]; + return + // The visible frame's width is smaller: dock is on left or right end + // of this method's receiver. + vF.size.width < f.size.width || + // The visible frame's veritical origin is bigger: dock is + // on the bottom of this method's receiver. + vF.origin.y > f.origin.y; + +} + +- (BOOL)hasMenubar +{ + return [self isEqual: [NSScreen screens][0]]; +} +@end + +@implementation NSEvent (mpvadditions) +- (int)mpvButtonNumber +{ + int buttonNumber = [self buttonNumber]; + switch (buttonNumber) { + case 1: return 2; + case 2: return 1; + default: return buttonNumber; + } +} +@end |