-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVNCPreferences.m
125 lines (100 loc) · 3.59 KB
/
VNCPreferences.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//
// VNCPreferences.m
// vnsea
//
// Created by Chris Reed on 11/17/07.
// Copyright 2007 __MyCompanyName__. All rights reserved.
//
#import "VNCPreferences.h"
NSString * kShowMouseTracksPrefKey = @"MouseTracks";
NSString * kDisconnectOnSuspendPrefKey = @"Disconnect";
NSString * kMouseDownDelayPrefKey = @"MouseDownDelay";
NSString * kMouseTracksFadeTimePrefKey = @"MouseTracksFadeTime";
NSString * kShowScrollingIconPrefKey = @"ShowScrollingIcon";
NSString * kShowZoomPercentPrefKey = @"ShowZoomPercent";
//! Singleton object.
static id s_sharedPreferences = nil;
@implementation VNCPreferences
+ (VNCPreferences *)sharedPreferences
{
if (!s_sharedPreferences)
{
s_sharedPreferences = [[VNCPreferences alloc] init];
}
return s_sharedPreferences;
}
- (id)init
{
if ([super init])
{
// Set default preference values.
NSMutableDictionary * defaultsDict = [NSMutableDictionary dictionary];
[defaultsDict setObject:[NSNumber numberWithBool:YES] forKey:kShowMouseTracksPrefKey];
[defaultsDict setObject:[NSNumber numberWithBool:NO] forKey:kDisconnectOnSuspendPrefKey];
[defaultsDict setObject:[NSNumber numberWithFloat:0.285] forKey:kMouseDownDelayPrefKey];
[defaultsDict setObject:[NSNumber numberWithFloat:1.5] forKey:kMouseTracksFadeTimePrefKey];
[defaultsDict setObject:[NSNumber numberWithBool:NO] forKey:kShowScrollingIconPrefKey];
[defaultsDict setObject:[NSNumber numberWithBool:YES] forKey:kShowZoomPercentPrefKey];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];
}
return self;
}
#pragma mark *Getters*
//! Whether the mouse tracks should be shown on mouse down and mouse up events.
//!
- (BOOL)showMouseTracks
{
return [[NSUserDefaults standardUserDefaults] boolForKey:kShowMouseTracksPrefKey];
}
- (BOOL)disconnectOnSuspend
{
return [[NSUserDefaults standardUserDefaults] boolForKey:kDisconnectOnSuspendPrefKey];
}
//! Number of seconds to wait before sending a mouse down, during which we
//! check to see if the user is really wanting to scroll.
- (float)mouseDownDelay
{
return [[NSUserDefaults standardUserDefaults] floatForKey:kMouseDownDelayPrefKey];
}
- (float)mouseTracksFadeTime
{
return [[NSUserDefaults standardUserDefaults] floatForKey:kShowMouseTracksPrefKey];
}
//! This preference controls whether any icon is displayed between the fingers
//! while scrolling in active mode. No icon is ever displayed in view-only mode.
- (BOOL)showScrollingIcon
{
return [[NSUserDefaults standardUserDefaults] boolForKey:kShowScrollingIconPrefKey];
}
//! This preference controls whether the popup window that shows the current zoom
//! scale percentage is displayed while the user is zooming.
- (BOOL)showZoomPercent
{
return [[NSUserDefaults standardUserDefaults] boolForKey:kShowZoomPercentPrefKey];
}
#pragma mark *Setters*
- (void)setShowMouseTracks:(BOOL)showTracks
{
[[NSUserDefaults standardUserDefaults] setBool:showTracks forKey:kShowMouseTracksPrefKey];
}
- (void)setDisconnectOnSuspend:(BOOL)disconnect
{
[[NSUserDefaults standardUserDefaults] setBool:disconnect forKey:kDisconnectOnSuspendPrefKey];
}
- (void)setMouseDownDelay:(float)delay
{
[[NSUserDefaults standardUserDefaults] setFloat:delay forKey:kMouseDownDelayPrefKey];
}
- (void)setMouseTracksFadeTime:(float)fadeTime
{
[[NSUserDefaults standardUserDefaults] setFloat:fadeTime forKey:kShowMouseTracksPrefKey];
}
- (BOOL)setShowScrollingIcon:(BOOL)showIcon
{
[[NSUserDefaults standardUserDefaults] setBool:showIcon forKey:kShowScrollingIconPrefKey];
}
- (BOOL)setShowZoomPercent:(BOOL)showPercent
{
[[NSUserDefaults standardUserDefaults] setBool:showPercent forKey:kShowZoomPercentPrefKey];
}
@end