summaryrefslogtreecommitdiff
path: root/macosx/settings.mm
blob: 59091241e27d156e2986ddb7aafc901977f14f36 (plain)
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
#import <Foundation/Foundation.h>

#include "settings.hpp"

using namespace llmr;

Settings_MacOSX::Settings_MacOSX()
{
    [[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"longitude" : @(longitude),
                                                               @"latitude"  : @(latitude),
                                                               @"scale"     : @(scale),
                                                               @"angle"     : @(angle),
                                                               @"debug"     : @(debug) }];
}

void Settings_MacOSX::load()
{
    NSDictionary *settings = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];

    longitude = [settings[@"longitude"] doubleValue];
    latitude  = [settings[@"latitude"]  doubleValue];
    scale     = [settings[@"scale"]     doubleValue];
    angle     = [settings[@"angle"]     doubleValue];
    debug     = [settings[@"debug"]     boolValue];
}

void Settings_MacOSX::persist()
{
    [[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:@{ @"longitude" : @(longitude),
                                                                             @"latitude"  : @(latitude),
                                                                             @"scale"     : @(scale),
                                                                             @"angle"     : @(angle),
                                                                             @"debug"     : @(debug) }];
}

void Settings_MacOSX::sync()
{
    [[NSUserDefaults standardUserDefaults] synchronize];
}

void Settings_MacOSX::clear()
{
    [NSUserDefaults resetStandardUserDefaults];
}