-
Notifications
You must be signed in to change notification settings - Fork 7
/
ResolutionDataItem.m
executable file
·70 lines (61 loc) · 2.05 KB
/
ResolutionDataItem.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
* DisableMonitor, Disable Monitors on Mac
*
* Copyright (C) 2014 Tobias Salzmann
*
* DisableMonitor 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.
*
* DisableMonitor 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 DisableMonitor. If not, see <http://www.gnu.org/licenses/>.
*
* Authors: Tobias Salzmann
*/
#import "ResolutionDataItem.h"
@implementation ResolutionDataItem
- (id)initWithMode:(CGSDisplayMode)mode {
self = [super init];
if (self) {
[self setMode:mode];
[self setVisible:true];
}
return self;
}
- (void)dealloc {
[super dealloc];
}
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeInt32:self.mode.width forKey:@"RSMode_width"];
[coder encodeInt32:self.mode.height forKey:@"RSMode_height"];
[coder encodeInt32:self.mode.depth forKey:@"RSMode_depth"];
[coder encodeInt32:self.mode.freq forKey:@"RSMode_freq"];
[coder encodeInt32:self.visible forKey:@"RSVisible"];
}
- (id)initWithCoder:(NSCoder *)coder {
self = [super init];
if (self) {
_mode.width = [coder decodeInt32ForKey:@"RSMode_width"];
_mode.height = [coder decodeInt32ForKey:@"RSMode_height"];
_mode.depth = [coder decodeInt32ForKey:@"RSMode_depth"];
_mode.freq = [coder decodeInt32ForKey:@"RSMode_freq"];
self.visible = [coder decodeInt32ForKey:@"RSVisible"];
}
return self;
}
+ (int) gcd:(int)width height:(int)height
{
return (height == 0) ? width : [self gcd:height height:width%height];
}
- (void) setWidth:(uint32_t) width
{
_mode.width = width;
}
- (void) setHeight:(uint32_t) height
{
_mode.height = height;
}
@end