-
Notifications
You must be signed in to change notification settings - Fork 2
/
PasscodeViewController.h
90 lines (75 loc) · 3.18 KB
/
PasscodeViewController.h
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
//
// PasscodeViewController.h
// https://github.com/jawj/PasscodeViewController
//
// Copyright (c) 2011 George MacKerron
// Released under the MIT licence: http://opensource.org/licenses/mit-license
//
#import <QuartzCore/QuartzCore.h> // for CALayer.cornerRadius
#import "UIView+ImageAdditions.h"
#define kPasscodeEntryPause 0.2 // seconds
#define kPasscodeFailedAttemptsShakeCount 5 // count
#define kPasscodeFailedAttemptsShakeOffset 7 // pixels
#define kPasscodeFailedAttemptsShakeDelay 0.05 // seconds
#define kPasscodeFailedAttemptsUndelayedCount 5 // count
#define kPasscodeFailedAttemptsDelayFactor 1.0 // seconds
#define kPasscodeKey @"com.mackerron.passcode"
#define kPasscodeFailedAttemptsKey @"com.mackerron.passcodeFailedAttempts"
#define kPasscodeImageBlank [UIImage imageNamed:@"passcodeDigitBlank.png"]
#define kPasscodeImageDigit [UIImage imageNamed:@"passcodeDigitEntered.png"]
typedef enum {
PasscodeDisplayStateChallenge,
PasscodeDisplayStateChangeEnterOld,
PasscodeDisplayStateChangeEnterNew1,
PasscodeDisplayStateChangeEnterNew2
} PasscodeDisplayState;
@protocol PasscodeViewControllerDelegate
@optional
- (void)passcodeChallengeSucceeded;
- (void)passcodeChallengeCancelled;
- (void)passcodeSetSucceeded;
- (void)passcodeSetCancelled;
@end
@interface PasscodeViewController : UIViewController {
UINavigationBar *navBar;
UINavigationItem *navItem;
UITextField *hiddenEntryField;
UIView *containingView;
UIImageView *slideOutImageView;
UILabel *promptLabel;
UIActivityIndicatorView *delaySpinner;
UIImageView *digit1;
UIImageView *digit2;
UIImageView *digit3;
UIImageView *digit4;
UIButton *failureLabel;
UILabel *mismatchLabel;
PasscodeDisplayState state;
BOOL ignoringInput;
BOOL mismatch;
NSObject <PasscodeViewControllerDelegate> *passcodeDelegate;
NSString *theNewPasscode;
}
@property (nonatomic, retain) IBOutlet UINavigationBar *navBar;
@property (nonatomic, retain) IBOutlet UINavigationItem *navItem;
@property (nonatomic, retain) IBOutlet UITextField *hiddenEntryField;
@property (nonatomic, retain) IBOutlet UIView *containingView;
@property (nonatomic, retain) IBOutlet UIImageView *slideOutImageView;
@property (nonatomic, retain) IBOutlet UILabel *promptLabel;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *delaySpinner;
@property (nonatomic, retain) IBOutlet UIImageView *digit1;
@property (nonatomic, retain) IBOutlet UIImageView *digit2;
@property (nonatomic, retain) IBOutlet UIImageView *digit3;
@property (nonatomic, retain) IBOutlet UIImageView *digit4;
@property (nonatomic, retain) IBOutlet UIButton *failureLabel;
@property (nonatomic, retain) IBOutlet UILabel *mismatchLabel;
@property (nonatomic, assign) NSObject *passcodeDelegate;
@property (nonatomic, retain) NSString *theNewPasscode;
- (IBAction)passcodeChanged;
- (IBAction)cancelled;
+ (void)challengeWithDelegate:(NSObject *)aDelegate parentViewController:(UIViewController *)pvc;
+ (void)setWithDelegate:(NSObject *)aDelegate parentViewController:(UIViewController *)pvc;
+ (void)clear;
+ (NSString *)passcode;
+ (NSInteger)failedAttempts;
@end