Index: chrome/browser/autofill/autofill_credit_card_model_mac.h |
=================================================================== |
--- chrome/browser/autofill/autofill_credit_card_model_mac.h (revision 0) |
+++ chrome/browser/autofill/autofill_credit_card_model_mac.h (revision 0) |
@@ -0,0 +1,58 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_AUTOFILL_AUTOFILL_CREDIT_CARD_MODEL_MAC_ |
+#define CHROME_BROWSER_AUTOFILL_AUTOFILL_CREDIT_CARD_MODEL_MAC_ |
+ |
+#import <Cocoa/Cocoa.h> |
+ |
+class CreditCard; |
+ |
+// A "model" class used with bindings mechanism and the |
+// |AutoFillCreditCardViewController| to achieve the form-like view |
+// of autofill data in the Chrome options UI. |
+// Note that |summary| is a derived property. |
+// Model objects are initialized from the given |creditCard| using the |
+// designated initializer |initWithCreditCard:|. |
+// Users of this class must be prepared to handle nil string return values. |
+// The KVO/bindings mechanisms expect this and deal with nil string values |
+// appropriately. |
+@interface AutoFillCreditCardModel : NSObject { |
+ @private |
+ // These are not scoped_nsobjects because we use them via KVO/bindings. |
+ NSString* label_; |
+ NSString* nameOnCard_; |
+ NSString* creditCardNumber_; |
+ NSString* expirationMonth_; |
+ NSString* expirationYear_; |
+ NSString* cvcCode_; |
+ NSString* billingAddress_; |
+ NSString* shippingAddress_; |
+} |
+ |
+// |summary| is a derived property based on |creditCardNumber|, |
+// |expirationMonth| and |expirationYear|. KVO observers receive change |
+// notifications for |summary| when any of these properties change. |
+@property (readonly) NSString* summary; |
+@property (nonatomic, copy) NSString* label; |
+@property (nonatomic, copy) NSString* nameOnCard; |
+@property (nonatomic, copy) NSString* creditCardNumber; |
+@property (nonatomic, copy) NSString* expirationMonth; |
+@property (nonatomic, copy) NSString* expirationYear; |
+@property (nonatomic, copy) NSString* cvcCode; |
+@property (nonatomic, copy) NSString* billingAddress; |
+@property (nonatomic, copy) NSString* shippingAddress; |
+ |
+// Designated initializer. Initializes the property strings to values retrieved |
+// from the |creditCard| object. |
+- (id)initWithCreditCard:(const CreditCard&)creditCard; |
+ |
+// This method copies internal NSString property values into the |
+// |creditCard| object's fields as appropriate. |creditCard| should never |
+// be NULL. |
+- (void)copyModelToCreditCard:(CreditCard*)creditCard; |
+ |
+@end |
+ |
+#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_CREDIT_CARD_MODEL_MAC_ |