PAPasscodeViewController.h 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //Copyright (c) 2012, Denis Hennessy (Peer Assembly - http://peerassembly.com)
  2. //All rights reserved.
  3. //
  4. //Redistribution and use in source and binary forms, with or without
  5. //modification, are permitted provided that the following conditions are met:
  6. // * Redistributions of source code must retain the above copyright
  7. // notice, this list of conditions and the following disclaimer.
  8. // * Redistributions in binary form must reproduce the above copyright
  9. // notice, this list of conditions and the following disclaimer in the
  10. // documentation and/or other materials provided with the distribution.
  11. // * Neither the name of Peer Assembly, Denis Hennessy nor the
  12. // names of its contributors may be used to endorse or promote products
  13. // derived from this software without specific prior written permission.
  14. //
  15. //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  16. //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  17. //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  18. //DISCLAIMED. IN NO EVENT SHALL PEER ASSEMBLY OR DENIS HENNESSY BE LIABLE FOR ANY
  19. //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  20. //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  21. //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  22. //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  23. //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  24. //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25. #import <UIKit/UIKit.h>
  26. typedef enum {
  27. PasscodeActionSet,
  28. PasscodeActionEnter,
  29. PasscodeActionChange
  30. } PasscodeAction;
  31. @class PAPasscodeViewController;
  32. @protocol PAPasscodeViewControllerDelegate <NSObject>
  33. @optional
  34. - (void)PAPasscodeViewControllerDidCancel:(PAPasscodeViewController *)controller;
  35. - (void)PAPasscodeViewControllerDidChangePasscode:(PAPasscodeViewController *)controller;
  36. - (void)PAPasscodeViewControllerDidEnterAlternativePasscode:(PAPasscodeViewController *)controller;
  37. - (void)PAPasscodeViewControllerDidEnterPasscode:(PAPasscodeViewController *)controller;
  38. - (void)PAPasscodeViewControllerDidSetPasscode:(PAPasscodeViewController *)controller;
  39. - (void)PAPasscodeViewController:(PAPasscodeViewController *)controller didFailToEnterPasscode:(NSInteger)attempts;
  40. @end
  41. @interface PAPasscodeViewController : UIViewController {
  42. UIView *contentView;
  43. NSInteger phase;
  44. UILabel *promptLabel;
  45. UILabel *messageLabel;
  46. UIImageView *failedImageView;
  47. UILabel *failedAttemptsLabel;
  48. UITextField *passcodeTextField;
  49. UIImageView *digitImageViews[4];
  50. UIImageView *snapshotImageView;
  51. }
  52. @property (strong) UIView *backgroundView;
  53. @property (readonly) PasscodeAction action;
  54. @property (weak) id<PAPasscodeViewControllerDelegate> delegate;
  55. @property (strong) NSString *alternativePasscode;
  56. @property (strong) NSString *passcode;
  57. @property (assign) BOOL simple;
  58. @property (assign) NSInteger failedAttempts;
  59. @property (strong) NSString *enterPrompt;
  60. @property (strong) NSString *confirmPrompt;
  61. @property (strong) NSString *changePrompt;
  62. @property (strong) NSString *message;
  63. - (id)initForAction:(PasscodeAction)action;
  64. @end