diff options
author | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-12 04:24:08 +0000 |
---|---|---|
committer | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-12 04:24:08 +0000 |
commit | 8ebfa3b67a5d756c9fba7f4f4925dd0c30d16e58 (patch) | |
tree | 91f07b26d01569dbc07f00ced3ca45ed3e9e959c | |
parent | 8b6b3cf3e623d8f48069aa30a23bca58852d0b36 (diff) | |
download | chromium_src-8ebfa3b67a5d756c9fba7f4f4925dd0c30d16e58.zip chromium_src-8ebfa3b67a5d756c9fba7f4f4925dd0c30d16e58.tar.gz chromium_src-8ebfa3b67a5d756c9fba7f4f4925dd0c30d16e58.tar.bz2 |
Autofill dialog for the Mac. This is UI only at this point. The UI is not hooked up to the back end yet. The UI demonstrates manipulation of one address and one credit card record. Eventually buttons will be added to add and remove additional records. The additions in this CL are:
- Preferences dialog has a new "Change autofill settings" button that triggers an autofill settings dialog.
- The autofill settings dialog now exists and allows the user to manipulate form autofill data. Specifically address information and credit card information.
- Each address or credit card record is presented in a disclosure view to allow for summary or detailed views of each record.
- The autofill dialog is layed out dynamically in a vertical list (ordered by y) using the VerticalLayoutView.
- Sections are delimited visually with the SectionSeparatorView. There are currently two sections, one for addresses and one for credit cards.
- Unit tests are present that exercise the invocation of the dialog and check basic functionality. Checks are performed to see that data is flowing from core profile and credit card data structures into Cocoa model data structures used for bindings internally by the UI.
- There are three .xib files (AutoFillDialog.xib, AutoFillAddressFormView.xib, and AutoFillCreditCardFormView.xib) that partition the dialog UI into distinct views, controllers, and model objects.
- Cocoa databinding is utilized to syncronize dependent parts of the UI.
- All strings are stored in internationalized form in .grd files and .xib files (with one small TODO execption, see below).
The things remaining to do are:
- Hook the UI up to the backend model, specifically the PersonalDataManager data.
- Add support for arbitrary number of address and credit card records. I.e. Add and Delete buttons.
- Scroll-to-Point support for autoscrolling when tabbing between fields.
- Billing and shipping address popups in the credit card section.
- Any validation of input (need to circle back with UI folks on this).
- Input validation unit tests.
- String concatenation of the summary label needs to be internationalized.
BUG=33029
TEST=none
Review URL: http://codereview.chromium.org/558066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38873 0039d316-1c4b-4281-b951-d872f2087c98
32 files changed, 5772 insertions, 73 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 0560cc9..8ab5e78 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -4901,6 +4901,18 @@ Keep your key file in a safe place. You will need it to create new versions of y <message name="IDS_AUTOFILL_NEW_ADDRESS" desc="The profile label of a new address."> New address </message> + <message name="IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_SEPARATOR" desc="The separator character used in the summary of an address."> + , ''' + </message> + <message name="IDS_AUTOFILL_DIALOG_ADDRESS_NAME_SEPARATOR" desc="The separator character used between first and last names in the address summary."> + ''' ''' + </message> + <message name="IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_FORMAT" desc="The format string of the summary of an address. $1=name, $2=separator, $3=addressLine1"> + $1$2$3 + </message> + <message name="IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_NAME_FORMAT" desc="The format string of the summary of an address. $1=firstName, $2=separator, $3=lastName"> + $1$2$3 + </message> <message name="IDS_AUTOFILL_NEW_CREDITCARD" desc="The profile label of a new credit card."> New credit card </message> diff --git a/chrome/app/nibs/AutoFillAddressFormView.xib b/chrome/app/nibs/AutoFillAddressFormView.xib new file mode 100644 index 0000000..68ece4c --- /dev/null +++ b/chrome/app/nibs/AutoFillAddressFormView.xib @@ -0,0 +1,1936 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> + <data> + <int key="IBDocument.SystemTarget">1050</int> + <string key="IBDocument.SystemVersion">9L31a</string> + <string key="IBDocument.InterfaceBuilderVersion">680</string> + <string key="IBDocument.AppKitVersion">949.54</string> + <string key="IBDocument.HIToolboxVersion">353.00</string> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="3"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="1001"> + <string key="NSClassName">AutoFillAddressViewController</string> + </object> + <object class="NSCustomObject" id="1003"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="1004"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSBox" id="70311064"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">268</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="122985017"> + <reference key="NSNextResponder" ref="70311064"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSButton" id="347358645"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{3, 386}, {13, 13}}</string> + <reference key="NSSuperview" ref="122985017"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="872433556"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="872268129"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">1044</int> + </object> + <reference key="NSControlView" ref="347358645"/> + <int key="NSButtonFlags">-1198767873</int> + <int key="NSButtonFlags2">133</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSTextField" id="102078487"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{21, 385}, {143, 14}}</string> + <reference key="NSSuperview" ref="122985017"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="341471168"> + <int key="NSCellFlags">69336641</int> + <int key="NSCellFlags2">272762880</int> + <string key="NSContents">Address Name</string> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.100000e+01</double> + <int key="NSfFlags">3100</int> + </object> + <reference key="NSControlView" ref="102078487"/> + <object class="NSColor" key="NSBackgroundColor" id="472147303"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="836547888"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <object class="NSColor" key="NSColor" id="93129442"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + </object> + <object class="NSTextField" id="959519786"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{181, 385}, {307, 14}}</string> + <reference key="NSSuperview" ref="122985017"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="455213863"> + <int key="NSCellFlags">69336641</int> + <int key="NSCellFlags2">272762880</int> + <string key="NSContents">Address Summary</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="959519786"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4yNQA</bytes> + <object class="NSColorSpace" key="NSCustomColorSpace"> + <int key="NSID">2</int> + </object> + </object> + </object> + </object> + <object class="NSBox" id="556992356"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">12</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="195575826"> + <reference key="NSNextResponder" ref="556992356"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="146416385"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{175, 246}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="1059452929"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_COMPANY_NAME</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="146416385"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="545163170"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 317}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="579219650"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="545163170"/> + <bool key="NSDrawsBackground">YES</bool> + <object class="NSColor" key="NSBackgroundColor" id="803370302"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="21034430"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textColor</string> + <reference key="NSColor" ref="93129442"/> + </object> + </object> + </object> + <object class="NSTextField" id="296311198"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 219}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="206849323"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="296311198"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="816149117"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{330, 295}, {126, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="627891103"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_LAST_NAME</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="816149117"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="874857332"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{391, 72}, {76, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="507664817"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="874857332"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="577710194"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 99}, {126, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="765480465"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_CITY</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="577710194"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="466701443"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 344}, {126, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="296998643"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_LABEL</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="466701443"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="899454944"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 121}, {294, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="444912714"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="899454944"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="610102465"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 246}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="307912629"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_EMAIL</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="610102465"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="91651004"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 170}, {294, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="754981047"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="91651004"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="357318770"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 72}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="863092623"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="357318770"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="181252802"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{333, 72}, {50, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="662916459"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="181252802"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="10502416"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 148}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="1037381502"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_ADDRESS_LINE_2</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="10502416"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="284349572"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 295}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="571336836"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_FIRST_NAME</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="284349572"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="1016152685"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{333, 268}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="370489450"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="1016152685"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="769271941"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{178, 219}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="604222827"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="769271941"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="833736226"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 50}, {213, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="978954508"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_PHONE</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="833736226"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="433159674"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 197}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="353262710"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_ADDRESS_LINE_1</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="433159674"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="848642703"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{108, 23}, {117, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="111342920"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="848642703"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="289669180"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{178, 268}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="160226063"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="289669180"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="557852134"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 23}, {34, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="31526252"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="557852134"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="23131512"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{60, 23}, {40, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="463062819"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="23131512"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="873535292"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{260, 23}, {34, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="486193331"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="873535292"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="714038373"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{178, 72}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="49057410"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="714038373"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="181356333"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{332, 99}, {56, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="326415012"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_ZIP_CODE</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="181356333"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="316039049"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{388, 99}, {79, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="230410745"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_COUNTRY</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="316039049"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="942868838"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{257, 50}, {213, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="425284459"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_FAX</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="942868838"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="538615142"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{302, 23}, {40, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="294409474"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="538615142"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="537064214"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{175, 99}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="1022619911"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_STATE</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="537064214"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="731633316"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 268}, {134, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="557583037"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="731633316"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="467266453"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{175, 295}, {153, 14}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="247507430"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_MIDDLE_NAME</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="467266453"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="115971484"> + <reference key="NSNextResponder" ref="195575826"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{350, 23}, {117, 22}}</string> + <reference key="NSSuperview" ref="195575826"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="285986798"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="115971484"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + </object> + <string key="NSFrame">{{1, 1}, {482, 368}}</string> + <reference key="NSSuperview" ref="556992356"/> + </object> + </object> + <string key="NSFrame">{{21, 9}, {484, 370}}</string> + <reference key="NSSuperview" ref="122985017"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Box</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="803370302"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="195575826"/> + <int key="NSBorderType">1</int> + <int key="NSBoxType">0</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + </object> + </object> + <string key="NSFrameSize">{518, 400}</string> + <reference key="NSSuperview" ref="70311064"/> + </object> + </object> + <string key="NSFrameSize">{518, 400}</string> + <reference key="NSSuperview"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Box</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="803370302"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="122985017"/> + <int key="NSBorderType">0</int> + <int key="NSBoxType">0</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + </object> + <object class="NSCustomObject" id="606174174"> + <string key="NSClassName">ChromeUILocalizer</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">view</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="70311064"/> + </object> + <int key="connectionID">32</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">owner_</string> + <reference key="source" ref="606174174"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">161</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">otherObjectToLocalize_</string> + <reference key="source" ref="606174174"/> + <reference key="destination" ref="70311064"/> + </object> + <int key="connectionID">162</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.label</string> + <reference key="source" ref="102078487"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="102078487"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.label</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.label</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">168</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.summary</string> + <reference key="source" ref="959519786"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="959519786"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.summary</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.summary</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">173</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.label</string> + <reference key="source" ref="545163170"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="545163170"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.label</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.label</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">175</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.email</string> + <reference key="source" ref="296311198"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="296311198"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.email</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.email</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">177</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.country</string> + <reference key="source" ref="874857332"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="874857332"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.country</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.country</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">179</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.addressLine2</string> + <reference key="source" ref="899454944"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="899454944"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.addressLine2</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.addressLine2</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">181</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.addressLine1</string> + <reference key="source" ref="91651004"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="91651004"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.addressLine1</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.addressLine1</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">183</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.city</string> + <reference key="source" ref="357318770"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="357318770"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.city</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.city</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">185</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.zip</string> + <reference key="source" ref="181252802"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="181252802"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.zip</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.zip</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">187</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.lastName</string> + <reference key="source" ref="1016152685"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="1016152685"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.lastName</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.lastName</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">189</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.companyName</string> + <reference key="source" ref="769271941"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="769271941"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.companyName</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.companyName</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">191</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.phoneNumber</string> + <reference key="source" ref="848642703"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="848642703"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.phoneNumber</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.phoneNumber</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">193</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.middleName</string> + <reference key="source" ref="289669180"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="289669180"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.middleName</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.middleName</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">195</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.phoneCountryCode</string> + <reference key="source" ref="557852134"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="557852134"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.phoneCountryCode</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.phoneCountryCode</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">197</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.phoneAreaCode</string> + <reference key="source" ref="23131512"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="23131512"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.phoneAreaCode</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.phoneAreaCode</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">199</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.faxCountryCode</string> + <reference key="source" ref="873535292"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="873535292"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.faxCountryCode</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.faxCountryCode</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">201</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.state</string> + <reference key="source" ref="714038373"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="714038373"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.state</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.state</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">204</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.faxAreaCode</string> + <reference key="source" ref="538615142"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="538615142"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.faxAreaCode</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.faxAreaCode</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">206</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.firstName</string> + <reference key="source" ref="731633316"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="731633316"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.firstName</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.firstName</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">208</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: addressModel.faxNumber</string> + <reference key="source" ref="115971484"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="115971484"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: addressModel.faxNumber</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">addressModel.faxNumber</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">210</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: disclosureState.disclosed</string> + <reference key="source" ref="347358645"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="347358645"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: disclosureState.disclosed</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">disclosureState.disclosed</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">212</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="1002"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="1001"/> + <reference key="parent" ref="1002"/> + <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="1003"/> + <reference key="parent" ref="1002"/> + <string key="objectName">First Responder</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-3</int> + <reference key="object" ref="1004"/> + <reference key="parent" ref="1002"/> + <string key="objectName">Application</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="70311064"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="347358645"/> + <reference ref="102078487"/> + <reference ref="959519786"/> + <reference ref="556992356"/> + </object> + <reference key="parent" ref="1002"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">5</int> + <reference key="object" ref="347358645"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="872433556"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">7</int> + <reference key="object" ref="102078487"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="341471168"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">9</int> + <reference key="object" ref="959519786"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="455213863"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">10</int> + <reference key="object" ref="455213863"/> + <reference key="parent" ref="959519786"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">8</int> + <reference key="object" ref="341471168"/> + <reference key="parent" ref="102078487"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">6</int> + <reference key="object" ref="872433556"/> + <reference key="parent" ref="347358645"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">101</int> + <reference key="object" ref="556992356"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="146416385"/> + <reference ref="545163170"/> + <reference ref="296311198"/> + <reference ref="816149117"/> + <reference ref="874857332"/> + <reference ref="577710194"/> + <reference ref="466701443"/> + <reference ref="899454944"/> + <reference ref="610102465"/> + <reference ref="91651004"/> + <reference ref="357318770"/> + <reference ref="181252802"/> + <reference ref="10502416"/> + <reference ref="284349572"/> + <reference ref="1016152685"/> + <reference ref="769271941"/> + <reference ref="833736226"/> + <reference ref="433159674"/> + <reference ref="848642703"/> + <reference ref="289669180"/> + <reference ref="557852134"/> + <reference ref="23131512"/> + <reference ref="873535292"/> + <reference ref="714038373"/> + <reference ref="181356333"/> + <reference ref="316039049"/> + <reference ref="942868838"/> + <reference ref="538615142"/> + <reference ref="537064214"/> + <reference ref="731633316"/> + <reference ref="467266453"/> + <reference ref="115971484"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">48</int> + <reference key="object" ref="146416385"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1059452929"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">51</int> + <reference key="object" ref="1059452929"/> + <reference key="parent" ref="146416385"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">13</int> + <reference key="object" ref="545163170"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="579219650"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">14</int> + <reference key="object" ref="579219650"/> + <reference key="parent" ref="545163170"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">47</int> + <reference key="object" ref="296311198"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="206849323"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">52</int> + <reference key="object" ref="206849323"/> + <reference key="parent" ref="296311198"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">25</int> + <reference key="object" ref="816149117"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="627891103"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">28</int> + <reference key="object" ref="627891103"/> + <reference key="parent" ref="816149117"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">75</int> + <reference key="object" ref="874857332"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="507664817"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">76</int> + <reference key="object" ref="507664817"/> + <reference key="parent" ref="874857332"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">62</int> + <reference key="object" ref="577710194"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="765480465"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">69</int> + <reference key="object" ref="765480465"/> + <reference key="parent" ref="577710194"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">11</int> + <reference key="object" ref="466701443"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="296998643"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">12</int> + <reference key="object" ref="296998643"/> + <reference key="parent" ref="466701443"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">59</int> + <reference key="object" ref="899454944"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="444912714"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">60</int> + <reference key="object" ref="444912714"/> + <reference key="parent" ref="899454944"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">46</int> + <reference key="object" ref="610102465"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="307912629"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">53</int> + <reference key="object" ref="307912629"/> + <reference key="parent" ref="610102465"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">55</int> + <reference key="object" ref="91651004"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="754981047"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">56</int> + <reference key="object" ref="754981047"/> + <reference key="parent" ref="91651004"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">63</int> + <reference key="object" ref="357318770"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="863092623"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">68</int> + <reference key="object" ref="863092623"/> + <reference key="parent" ref="357318770"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">71</int> + <reference key="object" ref="181252802"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="662916459"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">72</int> + <reference key="object" ref="662916459"/> + <reference key="parent" ref="181252802"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">58</int> + <reference key="object" ref="10502416"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1037381502"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">61</int> + <reference key="object" ref="1037381502"/> + <reference key="parent" ref="10502416"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">17</int> + <reference key="object" ref="284349572"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="571336836"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">20</int> + <reference key="object" ref="571336836"/> + <reference key="parent" ref="284349572"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">26</int> + <reference key="object" ref="1016152685"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="370489450"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">27</int> + <reference key="object" ref="370489450"/> + <reference key="parent" ref="1016152685"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">49</int> + <reference key="object" ref="769271941"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="604222827"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">50</int> + <reference key="object" ref="604222827"/> + <reference key="parent" ref="769271941"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">78</int> + <reference key="object" ref="833736226"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="978954508"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">81</int> + <reference key="object" ref="978954508"/> + <reference key="parent" ref="833736226"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">54</int> + <reference key="object" ref="433159674"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="353262710"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">57</int> + <reference key="object" ref="353262710"/> + <reference key="parent" ref="433159674"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">86</int> + <reference key="object" ref="848642703"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="111342920"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">87</int> + <reference key="object" ref="111342920"/> + <reference key="parent" ref="848642703"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">22</int> + <reference key="object" ref="289669180"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="160226063"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">23</int> + <reference key="object" ref="160226063"/> + <reference key="parent" ref="289669180"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">79</int> + <reference key="object" ref="557852134"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="31526252"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">80</int> + <reference key="object" ref="31526252"/> + <reference key="parent" ref="557852134"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">84</int> + <reference key="object" ref="23131512"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="463062819"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">85</int> + <reference key="object" ref="463062819"/> + <reference key="parent" ref="23131512"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">89</int> + <reference key="object" ref="873535292"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="486193331"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">96</int> + <reference key="object" ref="486193331"/> + <reference key="parent" ref="873535292"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">65</int> + <reference key="object" ref="714038373"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="49057410"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">66</int> + <reference key="object" ref="49057410"/> + <reference key="parent" ref="714038373"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">70</int> + <reference key="object" ref="181356333"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="326415012"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">73</int> + <reference key="object" ref="326415012"/> + <reference key="parent" ref="181356333"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">74</int> + <reference key="object" ref="316039049"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="230410745"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">77</int> + <reference key="object" ref="230410745"/> + <reference key="parent" ref="316039049"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">88</int> + <reference key="object" ref="942868838"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="425284459"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">97</int> + <reference key="object" ref="425284459"/> + <reference key="parent" ref="942868838"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">91</int> + <reference key="object" ref="538615142"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="294409474"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">94</int> + <reference key="object" ref="294409474"/> + <reference key="parent" ref="538615142"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">64</int> + <reference key="object" ref="537064214"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1022619911"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">67</int> + <reference key="object" ref="1022619911"/> + <reference key="parent" ref="537064214"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">18</int> + <reference key="object" ref="731633316"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="557583037"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">19</int> + <reference key="object" ref="557583037"/> + <reference key="parent" ref="731633316"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">21</int> + <reference key="object" ref="467266453"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="247507430"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">24</int> + <reference key="object" ref="247507430"/> + <reference key="parent" ref="467266453"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">92</int> + <reference key="object" ref="115971484"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="285986798"/> + </object> + <reference key="parent" ref="556992356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">93</int> + <reference key="object" ref="285986798"/> + <reference key="parent" ref="115971484"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">160</int> + <reference key="object" ref="606174174"/> + <reference key="parent" ref="1002"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.IBPluginDependency</string> + <string>-3.IBPluginDependency</string> + <string>10.IBPluginDependency</string> + <string>11.IBPluginDependency</string> + <string>12.IBPluginDependency</string> + <string>13.IBPluginDependency</string> + <string>14.IBPluginDependency</string> + <string>160.IBPluginDependency</string> + <string>17.IBPluginDependency</string> + <string>18.IBPluginDependency</string> + <string>19.IBPluginDependency</string> + <string>20.IBPluginDependency</string> + <string>21.IBPluginDependency</string> + <string>22.IBPluginDependency</string> + <string>23.IBPluginDependency</string> + <string>24.IBPluginDependency</string> + <string>25.IBPluginDependency</string> + <string>26.IBPluginDependency</string> + <string>27.IBPluginDependency</string> + <string>28.IBPluginDependency</string> + <string>3.IBEditorWindowLastContentRect</string> + <string>3.IBPluginDependency</string> + <string>3.IBUserGuides</string> + <string>46.IBPluginDependency</string> + <string>47.IBPluginDependency</string> + <string>48.IBPluginDependency</string> + <string>49.IBPluginDependency</string> + <string>5.IBPluginDependency</string> + <string>50.IBPluginDependency</string> + <string>51.IBPluginDependency</string> + <string>52.IBPluginDependency</string> + <string>53.IBPluginDependency</string> + <string>54.IBPluginDependency</string> + <string>55.IBPluginDependency</string> + <string>56.IBPluginDependency</string> + <string>57.IBPluginDependency</string> + <string>58.IBPluginDependency</string> + <string>59.IBPluginDependency</string> + <string>6.IBPluginDependency</string> + <string>60.IBPluginDependency</string> + <string>61.IBPluginDependency</string> + <string>62.IBPluginDependency</string> + <string>63.IBPluginDependency</string> + <string>64.IBPluginDependency</string> + <string>65.IBPluginDependency</string> + <string>66.IBPluginDependency</string> + <string>67.IBPluginDependency</string> + <string>68.IBPluginDependency</string> + <string>69.IBPluginDependency</string> + <string>7.IBPluginDependency</string> + <string>70.IBPluginDependency</string> + <string>71.IBPluginDependency</string> + <string>72.IBPluginDependency</string> + <string>73.IBPluginDependency</string> + <string>74.IBPluginDependency</string> + <string>75.IBPluginDependency</string> + <string>76.IBPluginDependency</string> + <string>77.IBPluginDependency</string> + <string>78.IBPluginDependency</string> + <string>79.IBPluginDependency</string> + <string>8.IBPluginDependency</string> + <string>80.IBPluginDependency</string> + <string>81.IBPluginDependency</string> + <string>84.IBPluginDependency</string> + <string>85.IBPluginDependency</string> + <string>86.IBPluginDependency</string> + <string>87.IBPluginDependency</string> + <string>88.IBPluginDependency</string> + <string>89.IBPluginDependency</string> + <string>9.IBPluginDependency</string> + <string>91.IBPluginDependency</string> + <string>92.IBPluginDependency</string> + <string>93.IBPluginDependency</string> + <string>94.IBPluginDependency</string> + <string>96.IBPluginDependency</string> + <string>97.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{42, 1099}, {518, 400}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSMutableArray"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">212</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">AutoFillAddressViewController</string> + <string key="superclassName">DisclosureViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/autofill/autofill_address_view_controller_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">ChromeUILocalizer</string> + <string key="superclassName">GTMUILocalizer</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/ui_localizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">DisclosureViewController</string> + <string key="superclassName">NSViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/disclosure_view_controller.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">GTMUILocalizer</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>otherObjectToLocalize_</string> + <string>owner_</string> + <string>yetAnotherObjectToLocalize_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/status_bubble_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/tab_strip_model_observer_bridge.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + </data> +</archive> diff --git a/chrome/app/nibs/AutoFillCreditCardFormView.xib b/chrome/app/nibs/AutoFillCreditCardFormView.xib new file mode 100644 index 0000000..b10535020 --- /dev/null +++ b/chrome/app/nibs/AutoFillCreditCardFormView.xib @@ -0,0 +1,1373 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> + <data> + <int key="IBDocument.SystemTarget">1050</int> + <string key="IBDocument.SystemVersion">9L31a</string> + <string key="IBDocument.InterfaceBuilderVersion">680</string> + <string key="IBDocument.AppKitVersion">949.54</string> + <string key="IBDocument.HIToolboxVersion">353.00</string> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="3"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="1001"> + <string key="NSClassName">AutoFillCreditCardViewController</string> + </object> + <object class="NSCustomObject" id="1003"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="1004"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSBox" id="70311064"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">268</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="122985017"> + <reference key="NSNextResponder" ref="70311064"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSButton" id="347358645"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{3, 275}, {13, 13}}</string> + <reference key="NSSuperview" ref="122985017"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="872433556"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="872268129"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">1044</int> + </object> + <reference key="NSControlView" ref="347358645"/> + <int key="NSButtonFlags">-1198767873</int> + <int key="NSButtonFlags2">133</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSTextField" id="102078487"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{21, 274}, {149, 14}}</string> + <reference key="NSSuperview" ref="122985017"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="341471168"> + <int key="NSCellFlags">69336641</int> + <int key="NSCellFlags2">272762880</int> + <string key="NSContents">Credit Card Name</string> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.100000e+01</double> + <int key="NSfFlags">3100</int> + </object> + <reference key="NSControlView" ref="102078487"/> + <object class="NSColor" key="NSBackgroundColor" id="472147303"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="836547888"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <object class="NSColor" key="NSColor" id="93129442"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + </object> + <object class="NSTextField" id="959519786"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{181, 274}, {310, 14}}</string> + <reference key="NSSuperview" ref="122985017"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="455213863"> + <int key="NSCellFlags">69336641</int> + <int key="NSCellFlags2">272762880</int> + <string key="NSContents">Credit Card Summary</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="959519786"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4yNQA</bytes> + <object class="NSColorSpace" key="NSCustomColorSpace"> + <int key="NSID">2</int> + </object> + </object> + </object> + </object> + <object class="NSBox" id="436522406"> + <reference key="NSNextResponder" ref="122985017"/> + <int key="NSvFlags">12</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="1034866434"> + <reference key="NSNextResponder" ref="436522406"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="816149117"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{213, 135}, {96, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="627891103"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_EXPIRATION_DATE</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="816149117"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="630595680"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{322, 108}, {37, 22}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="515758525"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="630595680"/> + <bool key="NSDrawsBackground">YES</bool> + <object class="NSColor" key="NSBackgroundColor" id="803370302"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="21034430"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textColor</string> + <reference key="NSColor" ref="93129442"/> + </object> + </object> + </object> + <object class="NSTextField" id="93866959"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{257, 108}, {53, 22}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="220099529"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="93866959"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="284349572"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 184}, {196, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="571336836"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_NAME_ON_CARD</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="284349572"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="1016152685"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{216, 108}, {37, 22}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="370489450"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="1016152685"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="289669180"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 108}, {190, 22}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="160226063"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="289669180"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSPopUpButton" id="418154734"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 10}, {196, 26}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSPopUpButtonCell" key="NSCell" id="883534991"> + <int key="NSCellFlags">-2076049856</int> + <int key="NSCellFlags2">2048</int> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="418154734"/> + <int key="NSButtonFlags">109199615</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + <object class="NSMenuItem" key="NSMenuItem" id="1022133445"> + <reference key="NSMenu" ref="137320030"/> + <string key="NSTitle"/> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <int key="NSState">1</int> + <object class="NSCustomResource" key="NSOnImage" id="457656406"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSMenuCheckmark</string> + </object> + <object class="NSCustomResource" key="NSMixedImage" id="178142860"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSMenuMixedState</string> + </object> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="883534991"/> + </object> + <bool key="NSMenuItemRespectAlignment">YES</bool> + <object class="NSMenu" key="NSMenu" id="137320030"> + <string key="NSTitle">OtherViews</string> + <object class="NSMutableArray" key="NSMenuItems"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1022133445"/> + <object class="NSMenuItem" id="478060244"> + <reference key="NSMenu" ref="137320030"/> + <string key="NSTitle">Item 2</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="457656406"/> + <reference key="NSMixedImage" ref="178142860"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="883534991"/> + </object> + <object class="NSMenuItem" id="201646289"> + <reference key="NSMenu" ref="137320030"/> + <string key="NSTitle">Item 3</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="457656406"/> + <reference key="NSMixedImage" ref="178142860"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="883534991"/> + </object> + </object> + </object> + <int key="NSPreferredEdge">1</int> + <bool key="NSUsesItemFromMenu">YES</bool> + <bool key="NSAltersState">YES</bool> + <int key="NSArrowPosition">2</int> + </object> + </object> + <object class="NSTextField" id="55735488"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 86}, {153, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="293259553"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_BILLING_ADDRESS</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="55735488"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="567463722"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{319, 135}, {43, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="835537491"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_CVC</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="567463722"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="466701443"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 233}, {140, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="296998643"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_LABEL</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="466701443"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSPopUpButton" id="329875611"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 59}, {196, 26}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSPopUpButtonCell" key="NSCell" id="770068771"> + <int key="NSCellFlags">-2076049856</int> + <int key="NSCellFlags2">2048</int> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="329875611"/> + <int key="NSButtonFlags">109199615</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + <object class="NSMenuItem" key="NSMenuItem" id="662913685"> + <reference key="NSMenu" ref="808967741"/> + <string key="NSTitle"/> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <int key="NSState">1</int> + <reference key="NSOnImage" ref="457656406"/> + <reference key="NSMixedImage" ref="178142860"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="770068771"/> + </object> + <bool key="NSMenuItemRespectAlignment">YES</bool> + <object class="NSMenu" key="NSMenu" id="808967741"> + <string key="NSTitle">OtherViews</string> + <object class="NSMutableArray" key="NSMenuItems"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="662913685"/> + <object class="NSMenuItem" id="537705532"> + <reference key="NSMenu" ref="808967741"/> + <string key="NSTitle">Item 2</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="457656406"/> + <reference key="NSMixedImage" ref="178142860"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="770068771"/> + </object> + <object class="NSMenuItem" id="782118437"> + <reference key="NSMenu" ref="808967741"/> + <string key="NSTitle">Item 3</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="457656406"/> + <reference key="NSMixedImage" ref="178142860"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="770068771"/> + </object> + </object> + </object> + <int key="NSPreferredEdge">1</int> + <bool key="NSUsesItemFromMenu">YES</bool> + <bool key="NSAltersState">YES</bool> + <int key="NSArrowPosition">2</int> + </object> + </object> + <object class="NSTextField" id="1014098534"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 37}, {153, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="793669905"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_SHIPPING_ADDRESS</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="1014098534"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="545163170"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 206}, {134, 22}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="579219650"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="545163170"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + <object class="NSTextField" id="467266453"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{15, 135}, {185, 14}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="247507430"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_CREDIT_CARD_NUMBER</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="467266453"/> + <reference key="NSBackgroundColor" ref="472147303"/> + <reference key="NSTextColor" ref="836547888"/> + </object> + </object> + <object class="NSTextField" id="731633316"> + <reference key="NSNextResponder" ref="1034866434"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{18, 157}, {190, 22}}</string> + <reference key="NSSuperview" ref="1034866434"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="557583037"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="872268129"/> + <reference key="NSControlView" ref="731633316"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="803370302"/> + <reference key="NSTextColor" ref="21034430"/> + </object> + </object> + </object> + <string key="NSFrame">{{1, 1}, {482, 257}}</string> + <reference key="NSSuperview" ref="436522406"/> + </object> + </object> + <string key="NSFrame">{{21, 9}, {484, 259}}</string> + <reference key="NSSuperview" ref="122985017"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Box</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="803370302"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="1034866434"/> + <int key="NSBorderType">1</int> + <int key="NSBoxType">0</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + </object> + </object> + <string key="NSFrameSize">{518, 289}</string> + <reference key="NSSuperview" ref="70311064"/> + </object> + </object> + <string key="NSFrameSize">{518, 289}</string> + <reference key="NSSuperview"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Box</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="803370302"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="122985017"/> + <int key="NSBorderType">0</int> + <int key="NSBoxType">0</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + </object> + <object class="NSCustomObject" id="708631435"> + <string key="NSClassName">ChromeUILocalizer</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">view</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="70311064"/> + </object> + <int key="connectionID">32</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">billingAddressLabel_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="55735488"/> + </object> + <int key="connectionID">150</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">billingAddressPopup_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="329875611"/> + </object> + <int key="connectionID">152</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">shippingAddressLabel_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="1014098534"/> + </object> + <int key="connectionID">155</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">shippingAddressPopup_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="418154734"/> + </object> + <int key="connectionID">156</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">owner_</string> + <reference key="source" ref="708631435"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">158</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">otherObjectToLocalize_</string> + <reference key="source" ref="708631435"/> + <reference key="destination" ref="70311064"/> + </object> + <int key="connectionID">159</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.label</string> + <reference key="source" ref="102078487"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="102078487"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.label</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.label</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">163</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.summary</string> + <reference key="source" ref="959519786"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="959519786"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.summary</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.summary</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">165</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.cvcCode</string> + <reference key="source" ref="630595680"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="630595680"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.cvcCode</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.cvcCode</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">167</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.expirationYear</string> + <reference key="source" ref="93866959"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="93866959"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.expirationYear</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.expirationYear</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">169</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.expirationMonth</string> + <reference key="source" ref="1016152685"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="1016152685"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.expirationMonth</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.expirationMonth</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">171</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.creditCardNumber</string> + <reference key="source" ref="289669180"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="289669180"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.creditCardNumber</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.creditCardNumber</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">173</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.label</string> + <reference key="source" ref="545163170"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="545163170"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.label</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.label</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">175</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: creditCardModel.nameOnCard</string> + <reference key="source" ref="731633316"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="731633316"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: creditCardModel.nameOnCard</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">creditCardModel.nameOnCard</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">177</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">value: disclosureState.disclosed</string> + <reference key="source" ref="347358645"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="347358645"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: disclosureState.disclosed</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">disclosureState.disclosed</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">179</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="1002"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="1001"/> + <reference key="parent" ref="1002"/> + <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="1003"/> + <reference key="parent" ref="1002"/> + <string key="objectName">First Responder</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-3</int> + <reference key="object" ref="1004"/> + <reference key="parent" ref="1002"/> + <string key="objectName">Application</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="70311064"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="347358645"/> + <reference ref="102078487"/> + <reference ref="959519786"/> + <reference ref="436522406"/> + </object> + <reference key="parent" ref="1002"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">5</int> + <reference key="object" ref="347358645"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="872433556"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">7</int> + <reference key="object" ref="102078487"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="341471168"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">9</int> + <reference key="object" ref="959519786"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="455213863"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">10</int> + <reference key="object" ref="455213863"/> + <reference key="parent" ref="959519786"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">8</int> + <reference key="object" ref="341471168"/> + <reference key="parent" ref="102078487"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">6</int> + <reference key="object" ref="872433556"/> + <reference key="parent" ref="347358645"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">115</int> + <reference key="object" ref="436522406"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="816149117"/> + <reference ref="630595680"/> + <reference ref="93866959"/> + <reference ref="284349572"/> + <reference ref="1016152685"/> + <reference ref="418154734"/> + <reference ref="55735488"/> + <reference ref="567463722"/> + <reference ref="466701443"/> + <reference ref="329875611"/> + <reference ref="1014098534"/> + <reference ref="545163170"/> + <reference ref="467266453"/> + <reference ref="731633316"/> + <reference ref="289669180"/> + </object> + <reference key="parent" ref="70311064"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">25</int> + <reference key="object" ref="816149117"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="627891103"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">28</int> + <reference key="object" ref="627891103"/> + <reference key="parent" ref="816149117"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">51</int> + <reference key="object" ref="630595680"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="515758525"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">52</int> + <reference key="object" ref="515758525"/> + <reference key="parent" ref="630595680"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">48</int> + <reference key="object" ref="93866959"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="220099529"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">49</int> + <reference key="object" ref="220099529"/> + <reference key="parent" ref="93866959"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">17</int> + <reference key="object" ref="284349572"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="571336836"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">20</int> + <reference key="object" ref="571336836"/> + <reference key="parent" ref="284349572"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">26</int> + <reference key="object" ref="1016152685"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="370489450"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">27</int> + <reference key="object" ref="370489450"/> + <reference key="parent" ref="1016152685"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">22</int> + <reference key="object" ref="289669180"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="160226063"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">23</int> + <reference key="object" ref="160226063"/> + <reference key="parent" ref="289669180"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">108</int> + <reference key="object" ref="418154734"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="883534991"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">109</int> + <reference key="object" ref="883534991"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="137320030"/> + </object> + <reference key="parent" ref="418154734"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">110</int> + <reference key="object" ref="137320030"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1022133445"/> + <reference ref="478060244"/> + <reference ref="201646289"/> + </object> + <reference key="parent" ref="883534991"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">113</int> + <reference key="object" ref="1022133445"/> + <reference key="parent" ref="137320030"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">112</int> + <reference key="object" ref="478060244"/> + <reference key="parent" ref="137320030"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">111</int> + <reference key="object" ref="201646289"/> + <reference key="parent" ref="137320030"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">54</int> + <reference key="object" ref="55735488"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="293259553"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">57</int> + <reference key="object" ref="293259553"/> + <reference key="parent" ref="55735488"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">50</int> + <reference key="object" ref="567463722"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="835537491"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">53</int> + <reference key="object" ref="835537491"/> + <reference key="parent" ref="567463722"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">11</int> + <reference key="object" ref="466701443"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="296998643"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">12</int> + <reference key="object" ref="296998643"/> + <reference key="parent" ref="466701443"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">102</int> + <reference key="object" ref="329875611"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="770068771"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">103</int> + <reference key="object" ref="770068771"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="808967741"/> + </object> + <reference key="parent" ref="329875611"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">104</int> + <reference key="object" ref="808967741"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="782118437"/> + <reference ref="537705532"/> + <reference ref="662913685"/> + </object> + <reference key="parent" ref="770068771"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">107</int> + <reference key="object" ref="782118437"/> + <reference key="parent" ref="808967741"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">106</int> + <reference key="object" ref="537705532"/> + <reference key="parent" ref="808967741"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">105</int> + <reference key="object" ref="662913685"/> + <reference key="parent" ref="808967741"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">58</int> + <reference key="object" ref="1014098534"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="793669905"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">61</int> + <reference key="object" ref="793669905"/> + <reference key="parent" ref="1014098534"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">13</int> + <reference key="object" ref="545163170"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="579219650"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">14</int> + <reference key="object" ref="579219650"/> + <reference key="parent" ref="545163170"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">21</int> + <reference key="object" ref="467266453"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="247507430"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">24</int> + <reference key="object" ref="247507430"/> + <reference key="parent" ref="467266453"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">18</int> + <reference key="object" ref="731633316"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="557583037"/> + </object> + <reference key="parent" ref="436522406"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">19</int> + <reference key="object" ref="557583037"/> + <reference key="parent" ref="731633316"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">157</int> + <reference key="object" ref="708631435"/> + <reference key="parent" ref="1002"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.IBPluginDependency</string> + <string>-3.IBPluginDependency</string> + <string>10.IBPluginDependency</string> + <string>102.IBPluginDependency</string> + <string>103.IBPluginDependency</string> + <string>104.IBPluginDependency</string> + <string>105.IBPluginDependency</string> + <string>106.IBPluginDependency</string> + <string>107.IBPluginDependency</string> + <string>108.IBPluginDependency</string> + <string>109.IBPluginDependency</string> + <string>11.IBPluginDependency</string> + <string>110.IBPluginDependency</string> + <string>111.IBPluginDependency</string> + <string>112.IBPluginDependency</string> + <string>113.IBPluginDependency</string> + <string>12.IBPluginDependency</string> + <string>13.IBPluginDependency</string> + <string>14.IBPluginDependency</string> + <string>157.IBPluginDependency</string> + <string>17.IBPluginDependency</string> + <string>18.IBPluginDependency</string> + <string>19.IBPluginDependency</string> + <string>20.IBPluginDependency</string> + <string>21.IBPluginDependency</string> + <string>22.IBPluginDependency</string> + <string>23.IBPluginDependency</string> + <string>24.IBPluginDependency</string> + <string>25.IBPluginDependency</string> + <string>26.IBPluginDependency</string> + <string>27.IBPluginDependency</string> + <string>28.IBPluginDependency</string> + <string>3.IBEditorWindowLastContentRect</string> + <string>3.IBPluginDependency</string> + <string>3.IBUserGuides</string> + <string>48.IBPluginDependency</string> + <string>49.IBPluginDependency</string> + <string>5.IBPluginDependency</string> + <string>50.IBPluginDependency</string> + <string>51.IBPluginDependency</string> + <string>52.IBPluginDependency</string> + <string>53.IBPluginDependency</string> + <string>54.IBPluginDependency</string> + <string>57.IBPluginDependency</string> + <string>58.IBPluginDependency</string> + <string>6.IBPluginDependency</string> + <string>61.IBPluginDependency</string> + <string>7.IBPluginDependency</string> + <string>8.IBPluginDependency</string> + <string>9.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{42, 1210}, {518, 289}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSMutableArray"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">179</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">AutoFillCreditCardViewController</string> + <string key="superclassName">DisclosureViewController</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>billingAddressLabel_</string> + <string>billingAddressPopup_</string> + <string>shippingAddressLabel_</string> + <string>shippingAddressPopup_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSTextField</string> + <string>NSPopUpButton</string> + <string>NSTextField</string> + <string>NSPopUpButton</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/autofill/autofill_credit_card_view_controller_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">ChromeUILocalizer</string> + <string key="superclassName">GTMUILocalizer</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/ui_localizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">DisclosureViewController</string> + <string key="superclassName">NSViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/disclosure_view_controller.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">GTMUILocalizer</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>otherObjectToLocalize_</string> + <string>owner_</string> + <string>yetAnotherObjectToLocalize_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMenuItem</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/nsmenuitem_additions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/status_bubble_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/tab_strip_model_observer_bridge.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + </data> +</archive> diff --git a/chrome/app/nibs/AutoFillDialog.xib b/chrome/app/nibs/AutoFillDialog.xib new file mode 100644 index 0000000..d098f5d --- /dev/null +++ b/chrome/app/nibs/AutoFillDialog.xib @@ -0,0 +1,773 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> + <data> + <int key="IBDocument.SystemTarget">1050</int> + <string key="IBDocument.SystemVersion">9L31a</string> + <string key="IBDocument.InterfaceBuilderVersion">680</string> + <string key="IBDocument.AppKitVersion">949.54</string> + <string key="IBDocument.HIToolboxVersion">353.00</string> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="71"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="1001"> + <string key="NSClassName">AutoFillDialogController</string> + </object> + <object class="NSCustomObject" id="1003"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="1004"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSWindowTemplate" id="1005"> + <int key="NSWindowStyleMask">9</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{990, 893}, {570, 514}}</string> + <int key="NSWTFlags">538968064</int> + <string key="NSWindowTitle">Autofill profiles</string> + <string key="NSWindowClass">NSWindow</string> + <nil key="NSViewClass"/> + <string key="NSWindowContentMaxSize">{570, 1200}</string> + <string key="NSWindowContentMinSize">{570, 400}</string> + <object class="NSView" key="NSWindowView" id="1006"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSScrollView" id="850198595"> + <reference key="NSNextResponder" ref="1006"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="412667745"> + <reference key="NSNextResponder" ref="850198595"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomView" id="872997946"> + <reference key="NSNextResponder" ref="412667745"/> + <int key="NSvFlags">18</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomView" id="294722067"> + <reference key="NSNextResponder" ref="872997946"/> + <int key="NSvFlags">268</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomView" id="762506376"> + <reference key="NSNextResponder" ref="294722067"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="572496162"> + <reference key="NSNextResponder" ref="762506376"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{7, 4}, {206, 17}}</string> + <reference key="NSSuperview" ref="762506376"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="130924255"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents">^IDS_AUTOFILL_ADDRESSES_GROUP_NAME</string> + <object class="NSFont" key="NSSupport" id="47060168"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">1044</int> + </object> + <reference key="NSControlView" ref="572496162"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + <object class="NSColorSpace" key="NSCustomColorSpace" id="864612163"> + <int key="NSID">2</int> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="422292609"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + </object> + </object> + <string key="NSFrame">{{0, 10}, {528, 26}}</string> + <reference key="NSSuperview" ref="294722067"/> + <string key="NSClassName">SectionSeparatorView</string> + </object> + </object> + <string key="NSFrame">{{0, 350}, {528, 36}}</string> + <reference key="NSSuperview" ref="872997946"/> + <string key="NSClassName">NSView</string> + </object> + <object class="NSBox" id="141888078"> + <reference key="NSNextResponder" ref="872997946"/> + <int key="NSvFlags">12</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="370291201"> + <reference key="NSNextResponder" ref="141888078"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{16, 16}</string> + <reference key="NSSuperview" ref="141888078"/> + </object> + </object> + <string key="NSFrame">{{243, 331}, {16, 16}}</string> + <reference key="NSSuperview" ref="872997946"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Box</string> + <object class="NSFont" key="NSSupport"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.100000e+01</double> + <int key="NSfFlags">3100</int> + </object> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="370291201"/> + <int key="NSBorderType">0</int> + <int key="NSBoxType">0</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + </object> + <object class="NSCustomView" id="79325094"> + <reference key="NSNextResponder" ref="872997946"/> + <int key="NSvFlags">268</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomView" id="151169583"> + <reference key="NSNextResponder" ref="79325094"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTextField" id="940961005"> + <reference key="NSNextResponder" ref="151169583"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{7, 4}, {206, 17}}</string> + <reference key="NSSuperview" ref="151169583"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="878779818"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents">^IDS_AUTOFILL_CREDITCARDS_GROUP_NAME</string> + <reference key="NSSupport" ref="47060168"/> + <reference key="NSControlView" ref="940961005"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + <reference key="NSCustomColorSpace" ref="864612163"/> + </object> + <reference key="NSTextColor" ref="422292609"/> + </object> + </object> + </object> + <string key="NSFrame">{{0, 10}, {528, 26}}</string> + <reference key="NSSuperview" ref="79325094"/> + <string key="NSClassName">SectionSeparatorView</string> + </object> + </object> + <string key="NSFrame">{{0, 268}, {528, 36}}</string> + <reference key="NSSuperview" ref="872997946"/> + <string key="NSClassName">NSView</string> + </object> + </object> + <string key="NSFrameSize">{528, 433}</string> + <reference key="NSSuperview" ref="412667745"/> + <string key="NSClassName">VerticalLayoutView</string> + </object> + </object> + <string key="NSFrame">{{1, 1}, {528, 433}}</string> + <reference key="NSSuperview" ref="850198595"/> + <reference key="NSNextKeyView" ref="872997946"/> + <reference key="NSDocView" ref="872997946"/> + <object class="NSColor" key="NSBGColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + <reference key="NSCustomColorSpace" ref="864612163"/> + </object> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="437086000"> + <reference key="NSNextResponder" ref="850198595"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{514, 1}, {15, 433}}</string> + <reference key="NSSuperview" ref="850198595"/> + <reference key="NSTarget" ref="850198595"/> + <string key="NSAction">_doScroller:</string> + <double key="NSCurValue">1.000000e+00</double> + <double key="NSPercent">9.954023e-01</double> + </object> + <object class="NSScroller" id="397766495"> + <reference key="NSNextResponder" ref="850198595"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{-100, -100}, {503, 15}}</string> + <reference key="NSSuperview" ref="850198595"/> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="850198595"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">5.060241e-01</double> + </object> + </object> + <string key="NSFrame">{{20, 60}, {530, 435}}</string> + <reference key="NSSuperview" ref="1006"/> + <reference key="NSNextKeyView" ref="412667745"/> + <int key="NSsFlags">530</int> + <reference key="NSVScroller" ref="437086000"/> + <reference key="NSHScroller" ref="397766495"/> + <reference key="NSContentView" ref="412667745"/> + </object> + <object class="NSButton" id="589566927"> + <reference key="NSNextResponder" ref="1006"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{460, 12}, {96, 32}}</string> + <reference key="NSSuperview" ref="1006"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="7810365"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">^IDS_CANCEL</string> + <reference key="NSSupport" ref="47060168"/> + <reference key="NSControlView" ref="589566927"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSButton" id="152555007"> + <reference key="NSNextResponder" ref="1006"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{364, 12}, {96, 32}}</string> + <reference key="NSSuperview" ref="1006"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="656277902"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">^IDS_AUTOFILL_DIALOG_SAVE</string> + <reference key="NSSupport" ref="47060168"/> + <reference key="NSControlView" ref="152555007"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + </object> + <string key="NSFrameSize">{570, 514}</string> + <reference key="NSSuperview"/> + </object> + <string key="NSScreenRect">{{0, 0}, {2560, 1578}}</string> + <string key="NSMinSize">{570, 422}</string> + <string key="NSMaxSize">{570, 1222}</string> + </object> + <object class="NSCustomObject" id="429712482"> + <string key="NSClassName">ChromeUILocalizer</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">window</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="1005"/> + </object> + <int key="connectionID">8</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">cancel:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="589566927"/> + </object> + <int key="connectionID">54</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">save:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="152555007"/> + </object> + <int key="connectionID">55</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">addressSection_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="294722067"/> + </object> + <int key="connectionID">76</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">addressSectionBox_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="762506376"/> + </object> + <int key="connectionID">77</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">childView_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="872997946"/> + </object> + <int key="connectionID">78</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">creditCardSection_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="79325094"/> + </object> + <int key="connectionID">79</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">owner_</string> + <reference key="source" ref="429712482"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">81</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">otherObjectToLocalize_</string> + <reference key="source" ref="429712482"/> + <reference key="destination" ref="1006"/> + </object> + <int key="connectionID">82</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">delegate</string> + <reference key="source" ref="1005"/> + <reference key="destination" ref="1001"/> + </object> + <int key="connectionID">83</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="1002"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="1001"/> + <reference key="parent" ref="1002"/> + <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="1003"/> + <reference key="parent" ref="1002"/> + <string key="objectName">First Responder</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-3</int> + <reference key="object" ref="1004"/> + <reference key="parent" ref="1002"/> + <string key="objectName">Application</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1</int> + <reference key="object" ref="1005"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1006"/> + </object> + <reference key="parent" ref="1002"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">2</int> + <reference key="object" ref="1006"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="850198595"/> + <reference ref="589566927"/> + <reference ref="152555007"/> + </object> + <reference key="parent" ref="1005"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="589566927"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="7810365"/> + </object> + <reference key="parent" ref="1006"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="7810365"/> + <reference key="parent" ref="589566927"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">46</int> + <reference key="object" ref="850198595"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="437086000"/> + <reference ref="397766495"/> + <reference ref="872997946"/> + </object> + <reference key="parent" ref="1006"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">47</int> + <reference key="object" ref="437086000"/> + <reference key="parent" ref="850198595"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">48</int> + <reference key="object" ref="397766495"/> + <reference key="parent" ref="850198595"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">28</int> + <reference key="object" ref="872997946"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="141888078"/> + <reference ref="294722067"/> + <reference ref="79325094"/> + </object> + <reference key="parent" ref="850198595"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">30</int> + <reference key="object" ref="141888078"/> + <reference key="parent" ref="872997946"/> + <string key="objectName">Spacer</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">52</int> + <reference key="object" ref="152555007"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="656277902"/> + </object> + <reference key="parent" ref="1006"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">53</int> + <reference key="object" ref="656277902"/> + <reference key="parent" ref="152555007"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">67</int> + <reference key="object" ref="294722067"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="762506376"/> + </object> + <reference key="parent" ref="872997946"/> + <string key="objectName">Addresses Header</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">66</int> + <reference key="object" ref="762506376"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="572496162"/> + </object> + <reference key="parent" ref="294722067"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">69</int> + <reference key="object" ref="79325094"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="151169583"/> + </object> + <reference key="parent" ref="872997946"/> + <string key="objectName">Credit Card Header</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">71</int> + <reference key="object" ref="151169583"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="940961005"/> + </object> + <reference key="parent" ref="79325094"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">36</int> + <reference key="object" ref="572496162"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="130924255"/> + </object> + <reference key="parent" ref="762506376"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">37</int> + <reference key="object" ref="130924255"/> + <reference key="parent" ref="572496162"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">70</int> + <reference key="object" ref="940961005"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="878779818"/> + </object> + <reference key="parent" ref="151169583"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">72</int> + <reference key="object" ref="878779818"/> + <reference key="parent" ref="940961005"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">80</int> + <reference key="object" ref="429712482"/> + <reference key="parent" ref="1002"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.IBPluginDependency</string> + <string>-3.IBPluginDependency</string> + <string>1.IBEditorWindowLastContentRect</string> + <string>1.IBPluginDependency</string> + <string>1.IBWindowTemplateEditedContentRect</string> + <string>1.NSWindowTemplate.visibleAtLaunch</string> + <string>1.WindowOrigin</string> + <string>1.editorWindowContentRectSynchronizationRect</string> + <string>1.windowTemplate.hasMaxSize</string> + <string>1.windowTemplate.hasMinSize</string> + <string>1.windowTemplate.maxSize</string> + <string>1.windowTemplate.minSize</string> + <string>2.IBPluginDependency</string> + <string>28.IBPluginDependency</string> + <string>3.IBPluginDependency</string> + <string>30.IBPluginDependency</string> + <string>36.IBPluginDependency</string> + <string>37.IBPluginDependency</string> + <string>4.IBPluginDependency</string> + <string>52.IBPluginDependency</string> + <string>53.IBPluginDependency</string> + <string>66.IBPluginDependency</string> + <string>67.IBPluginDependency</string> + <string>69.IBPluginDependency</string> + <string>70.IBPluginDependency</string> + <string>71.IBPluginDependency</string> + <string>72.IBPluginDependency</string> + <string>80.IBPluginDependency</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilderKit</string> + <string>com.apple.InterfaceBuilderKit</string> + <string>{{633, 442}, {570, 514}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{633, 442}, {570, 514}}</string> + <integer value="1"/> + <string>{196, 240}</string> + <string>{{202, 428}, {480, 270}}</string> + <boolean value="YES" id="5"/> + <reference ref="5"/> + <string>{570, 1200}</string> + <string>{570, 400}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">83</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">AutoFillDialogController</string> + <string key="superclassName">NSWindowController</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>cancel:</string> + <string>save:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>addressSectionBox_</string> + <string>addressSection_</string> + <string>childView_</string> + <string>creditCardSection_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>SectionSeparatorView</string> + <string>NSView</string> + <string>NSView</string> + <string>NSView</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/autofill/autofill_dialog_controller_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">ChromeUILocalizer</string> + <string key="superclassName">GTMUILocalizer</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/ui_localizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">GTMUILocalizer</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>otherObjectToLocalize_</string> + <string>owner_</string> + <string>yetAnotherObjectToLocalize_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/AppKit/GTMUILocalizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/status_bubble_mac.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/tab_strip_model_observer_bridge.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SectionSeparatorView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/section_separator_view.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">VerticalLayoutView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/vertical_layout_view.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + </data> +</archive> diff --git a/chrome/app/nibs/Preferences.xib b/chrome/app/nibs/Preferences.xib index e628c37..12ec5d1 100644 --- a/chrome/app/nibs/Preferences.xib +++ b/chrome/app/nibs/Preferences.xib @@ -3,14 +3,14 @@ <data> <int key="IBDocument.SystemTarget">1050</int> <string key="IBDocument.SystemVersion">9L31a</string> - <string key="IBDocument.InterfaceBuilderVersion">677</string> + <string key="IBDocument.InterfaceBuilderVersion">680</string> <string key="IBDocument.AppKitVersion">949.54</string> <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="481"/> - <integer value="482"/> <integer value="74"/> + <integer value="482"/> + <integer value="481"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -18,7 +18,7 @@ </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys" id="0"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> </object> <object class="NSMutableArray" key="dict.values"> @@ -786,7 +786,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <integer value="0" id="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -895,7 +895,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1025,7 +1025,7 @@ rwAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMDkAA</bytes <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1346,7 +1346,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1455,7 +1455,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1710,7 +1710,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="173446497"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 215}, {128, 68}}</string> + <string key="NSFrame">{{17, 248}, {128, 68}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="218087448"> @@ -1726,7 +1726,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="20640598"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 328}, {128, 60}}</string> + <string key="NSFrame">{{17, 361}, {128, 60}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="101746388"> @@ -1742,7 +1742,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSMatrix" id="1019357609"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{152, 245}, {358, 38}}</string> + <string key="NSFrame">{{152, 278}, {358, 38}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <int key="NSNumRows">2</int> @@ -1779,7 +1779,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1888,7 +1888,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -1934,7 +1934,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSButton" id="667220499"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{146, 207}, {184, 32}}</string> + <string key="NSFrame">{{146, 240}, {184, 32}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="745829249"> @@ -1954,7 +1954,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSButton" id="203729106"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{146, 360}, {184, 32}}</string> + <string key="NSFrame">{{146, 393}, {184, 32}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="431766699"> @@ -1990,7 +1990,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="212252045"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{17, 150}, {128, 38}}</string> + <string key="NSFrame">{{17, 183}, {128, 38}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="677476881"> @@ -2022,7 +2022,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTextField" id="90260648"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{152, 332}, {361, 28}}</string> + <string key="NSFrame">{{152, 365}, {361, 28}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="123936632"> @@ -2079,7 +2079,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSMatrix" id="854747859"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{152, 150}, {358, 38}}</string> + <string key="NSFrame">{{152, 183}, {358, 38}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <int key="NSNumRows">2</int> @@ -2116,7 +2116,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -2225,7 +2225,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <reference ref="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -2291,7 +2291,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSButton" id="1022040155"> <reference key="NSNextResponder" ref="393583039"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{152, 307}, {82, 17}}</string> + <string key="NSFrame">{{152, 340}, {82, 17}}</string> <reference key="NSSuperview" ref="393583039"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="1047338722"> @@ -2328,8 +2328,28 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <int key="NSPeriodicInterval">25</int> </object> </object> + <object class="NSButton" id="501995472"> + <reference key="NSNextResponder" ref="393583039"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{146, 145}, {118, 32}}</string> + <reference key="NSSuperview" ref="393583039"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="656411812"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents">^IDS_AUTOFILL_INFOBAR_ACCEPT</string> + <reference key="NSSupport" ref="445696277"/> + <reference key="NSControlView" ref="501995472"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> </object> - <string key="NSFrameSize">{530, 408}</string> + <string key="NSFrameSize">{530, 441}</string> <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> @@ -2676,7 +2696,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="NSKeyPath">defaultBrowserText</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSAllowsEditingMultipleValuesSelection</string> - <boolean value="NO" key="NS.object.0"/> + <boolean value="NO" key="NS.object.0" id="6"/> </object> <int key="NSNibBindingConnectorVersion">2</int> </object> @@ -2712,7 +2732,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="NSKeyPath">passwordManagerEnabledIndex</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSAllowsEditingMultipleValuesSelection</string> - <boolean value="NO" key="NS.object.0"/> + <reference key="NS.object.0" ref="6"/> </object> <int key="NSNibBindingConnectorVersion">2</int> </object> @@ -2732,7 +2752,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="NSKeyPath">formAutofillEnabledIndex</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSAllowsEditingMultipleValuesSelection</string> - <boolean value="NO" key="NS.object.0"/> + <reference key="NS.object.0" ref="6"/> </object> <int key="NSNibBindingConnectorVersion">2</int> </object> @@ -3640,32 +3660,50 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <int key="connectionID">627</int> </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">showAutoFillSettings:</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="501995472"/> + </object> + <int key="connectionID">630</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">object3_</string> + <reference key="source" ref="683074852"/> + <reference key="destination" ref="501995472"/> + </object> + <int key="connectionID">631</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBObjectRecord"> <int key="objectID">0</int> - <reference key="object" ref="0"/> + <object class="NSArray" key="object" id="956860932"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> <reference key="children" ref="1000"/> <nil key="parent"/> </object> <object class="IBObjectRecord"> <int key="objectID">-2</int> <reference key="object" ref="1001"/> - <reference key="parent" ref="0"/> - <string key="objectName">File's Owner</string> + <reference key="parent" ref="956860932"/> + <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> </object> <object class="IBObjectRecord"> <int key="objectID">-1</int> <reference key="object" ref="1003"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">First Responder</string> </object> <object class="IBObjectRecord"> <int key="objectID">-3</int> <reference key="object" ref="1004"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Application</string> </object> <object class="IBObjectRecord"> @@ -3676,7 +3714,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference ref="408649839"/> <reference ref="530275816"/> </object> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> </object> <object class="IBObjectRecord"> <int key="objectID">4</int> @@ -3715,7 +3753,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference ref="733677494"/> <reference ref="1054376288"/> </object> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Under the Hood Content</string> </object> <object class="IBObjectRecord"> @@ -3989,7 +4027,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">380</int> <reference key="object" ref="495015235"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">CustomHomePages Array Controller</string> </object> <object class="IBObjectRecord"> @@ -4051,7 +4089,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">449</int> <reference key="object" ref="650617813"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> </object> <object class="IBObjectRecord"> <int key="objectID">476</int> @@ -4091,7 +4129,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference ref="402804707"/> <reference ref="495791200"/> </object> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics View</string> </object> <object class="IBObjectRecord"> @@ -4103,19 +4141,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference ref="1019357609"/> <reference ref="667220499"/> <reference ref="212252045"/> - <reference ref="155299174"/> - <reference ref="885386403"/> <reference ref="854747859"/> <reference ref="20640598"/> <reference ref="203729106"/> <reference ref="90260648"/> <reference ref="1022040155"/> + <reference ref="921350969"/> + <reference ref="155299174"/> + <reference ref="885386403"/> <reference ref="987908490"/> - <reference ref="865039969"/> <reference ref="423027085"/> - <reference ref="921350969"/> + <reference ref="865039969"/> + <reference ref="501995472"/> </object> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Personal Stuff View</string> </object> <object class="IBObjectRecord"> @@ -4304,7 +4343,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference ref="14278481"/> <reference ref="926632778"/> </object> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Under the Hood View</string> </object> <object class="IBObjectRecord"> @@ -4362,12 +4401,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">505</int> <reference key="object" ref="385419425"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> </object> <object class="IBObjectRecord"> <int key="objectID">510</int> <reference key="object" ref="305848829"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> </object> <object class="IBObjectRecord"> <int key="objectID">515</int> @@ -4716,61 +4755,61 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">528</int> <reference key="object" ref="145618054"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics Startup Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">529</int> <reference key="object" ref="843942020"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics Home Page Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">530</int> <reference key="object" ref="423189874"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics Toolbar Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">531</int> <reference key="object" ref="609957344"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics Search Engine Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">532</int> <reference key="object" ref="376486454"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics Default Browser Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">541</int> <reference key="object" ref="317778625"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Basics Startup Group Cont</string> </object> <object class="IBObjectRecord"> <int key="objectID">559</int> <reference key="object" ref="325031373"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Personal Stuff Passwords Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">560</int> <reference key="object" ref="683074852"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Personal Stuff Autofill Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">561</int> <reference key="object" ref="481147379"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Personal Stuff Browser Data Group</string> </object> <object class="IBObjectRecord"> <int key="objectID">562</int> <reference key="object" ref="487772665"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Personal Stuff Themes Group</string> </object> <object class="IBObjectRecord"> @@ -4799,7 +4838,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">596</int> <reference key="object" ref="938815385"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> </object> <object class="IBObjectRecord"> <int key="objectID">601</int> @@ -4846,7 +4885,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">610</int> <reference key="object" ref="821768455"/> - <reference key="parent" ref="0"/> + <reference key="parent" ref="956860932"/> <string key="objectName">Personal Stuff Sync Group</string> </object> <object class="IBObjectRecord"> @@ -4863,6 +4902,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference key="object" ref="1047338722"/> <reference key="parent" ref="1022040155"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">628</int> + <reference key="object" ref="501995472"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="656411812"/> + </object> + <reference key="parent" ref="393583039"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">629</int> + <reference key="object" ref="656411812"/> + <reference key="parent" ref="501995472"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -5028,6 +5081,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>622.IBPluginDependency</string> <string>623.CustomClassName</string> <string>623.IBPluginDependency</string> + <string>628.IBPluginDependency</string> + <string>628.IBViewIntegration.shadowBlurRadius</string> + <string>628.IBViewIntegration.shadowColor</string> + <string>628.IBViewIntegration.shadowOffsetHeight</string> + <string>628.IBViewIntegration.shadowOffsetWidth</string> + <string>629.IBPluginDependency</string> <string>63.IBPluginDependency</string> <string>64.IBPluginDependency</string> <string>65.IBPluginDependency</string> @@ -5108,7 +5167,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{329, 276}, {450, 286}}</string> <string>{{329, 276}, {450, 286}}</string> - <boolean value="NO"/> + <reference ref="6"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5120,10 +5179,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <real value="0.0"/> + <real value="0.000000e+00"/> <reference ref="28651200"/> - <real value="0.0"/> - <real value="0.0"/> + <real value="0.000000e+00"/> + <real value="0.000000e+00"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5166,7 +5225,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSMutableArray"> <bool key="EncodedWithXMLCoder">YES</bool> </object> - <string>{{181, 390}, {530, 408}}</string> + <string>{{181, 357}, {530, 441}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{87, 136}, {530, 463}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5174,11 +5233,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <boolean value="YES"/> + <boolean value="YES" id="5"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <boolean value="YES"/> + <reference ref="5"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <boolean value="YES"/> + <reference ref="5"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5219,6 +5278,12 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>HyperlinkButtonCell</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <real value="0.000000e+00" id="1039723132"/> + <reference ref="28651200"/> + <reference ref="1039723132"/> + <reference ref="1039723132"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5248,7 +5313,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference key="dict.sortedKeys" ref="0"/> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -5256,13 +5323,15 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <nil key="activeLocalization"/> <object class="NSMutableDictionary" key="localizations"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference key="dict.sortedKeys" ref="0"/> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> </object> <nil key="sourceID"/> - <int key="maxID">627</int> + <int key="maxID">631</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -5416,6 +5485,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>privacyLearnMore:</string> <string>removeSelectedHomepages:</string> <string>resetThemeToDefault:</string> + <string>showAutoFillSettings:</string> <string>showCertificates:</string> <string>showCookies:</string> <string>showPreferences:</string> @@ -5445,6 +5515,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> diff --git a/chrome/browser/autofill/autofill_address_model_mac.h b/chrome/browser/autofill/autofill_address_model_mac.h new file mode 100644 index 0000000..92d02ae --- /dev/null +++ b/chrome/browser/autofill/autofill_address_model_mac.h @@ -0,0 +1,77 @@ +// 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_ADDRESS_MODEL_MAC_ +#define CHROME_BROWSER_AUTOFILL_AUTOFILL_ADDRESS_MODEL_MAC_ + +#import <Cocoa/Cocoa.h> + +class AutoFillProfile; + +// A "model" class used with bindings mechanism and the +// |AutoFillAddressViewController| 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 a given profile using the designated +// initializer |initWithProfile:|. +// 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 AutoFillAddressModel : NSObject { + @private + // These are not scoped_nsobjects because we use them via KVO/bindings. + NSString* label_; + NSString* firstName_; + NSString* middleName_; + NSString* lastName_; + NSString* email_; + NSString* companyName_; + NSString* addressLine1_; + NSString* addressLine2_; + NSString* city_; + NSString* state_; + NSString* zip_; + NSString* country_; + NSString* phoneCountryCode_; + NSString* phoneAreaCode_; + NSString* phoneNumber_; + NSString* faxCountryCode_; + NSString* faxAreaCode_; + NSString* faxNumber_; +} + +// |summary| is a derived property based on |firstName|, |lastName| and +// |addressLine1|. 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* firstName; +@property (nonatomic, copy) NSString* middleName; +@property (nonatomic, copy) NSString* lastName; +@property (nonatomic, copy) NSString* email; +@property (nonatomic, copy) NSString* companyName; +@property (nonatomic, copy) NSString* addressLine1; +@property (nonatomic, copy) NSString* addressLine2; +@property (nonatomic, copy) NSString* city; +@property (nonatomic, copy) NSString* state; +@property (nonatomic, copy) NSString* zip; +@property (nonatomic, copy) NSString* country; +@property (nonatomic, copy) NSString* phoneCountryCode; +@property (nonatomic, copy) NSString* phoneAreaCode; +@property (nonatomic, copy) NSString* phoneNumber; +@property (nonatomic, copy) NSString* faxCountryCode; +@property (nonatomic, copy) NSString* faxAreaCode; +@property (nonatomic, copy) NSString* faxNumber; + +// The designated initializer. Initializes the property strings to values +// retrieved from the |profile|. +- (id)initWithProfile:(const AutoFillProfile&)profile; + +// This method copies internal NSString property values into the +// |profile| object's fields as appropriate. |profile| should never be NULL. +- (void)copyModelToProfile:(AutoFillProfile*)profile; + +@end + +#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_ADDRESS_MODEL_MAC_ diff --git a/chrome/browser/autofill/autofill_address_model_mac.mm b/chrome/browser/autofill/autofill_address_model_mac.mm new file mode 100644 index 0000000..265b055 --- /dev/null +++ b/chrome/browser/autofill/autofill_address_model_mac.mm @@ -0,0 +1,181 @@ +// 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. + +#import "chrome/browser/autofill/autofill_address_model_mac.h" +#include "app/l10n_util.h" +#include "base/sys_string_conversions.h" +#include "chrome/browser/autofill/autofill_profile.h" +#include "grit/generated_resources.h" + +@implementation AutoFillAddressModel + +@dynamic summary; +@synthesize label = label_; +@synthesize firstName = firstName_; +@synthesize middleName = middleName_; +@synthesize lastName = lastName_; +@synthesize email = email_; +@synthesize companyName = companyName_; +@synthesize addressLine1 = addressLine1_; +@synthesize addressLine2 = addressLine2_; +@synthesize city = city_; +@synthesize state = state_; +@synthesize zip = zip_; +@synthesize country = country_; +@synthesize phoneCountryCode = phoneCountryCode_; +@synthesize phoneAreaCode = phoneAreaCode_; +@synthesize phoneNumber = phoneNumber_; +@synthesize faxCountryCode = faxCountryCode_; +@synthesize faxAreaCode = faxAreaCode_; +@synthesize faxNumber = faxNumber_; + +// Sets up the KVO dependency between "summary" and dependent fields. ++ (NSSet*)keyPathsForValuesAffectingValueForKey:(NSString*)key { + NSSet* keyPaths = [super keyPathsForValuesAffectingValueForKey:key]; + + if ([key isEqualToString:@"summary"]) { + NSSet* affectingKeys = + [NSSet setWithObjects:@"firstName", @"lastName", @"addressLine1", nil]; + keyPaths = [keyPaths setByAddingObjectsFromSet:affectingKeys]; + } + return keyPaths; +} + +- (id)initWithProfile:(const AutoFillProfile&)profile { + if ((self = [super init])) { + [self setLabel:SysUTF16ToNSString(profile.Label())]; + [self setFirstName:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(NAME_FIRST)))]; + [self setMiddleName:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(NAME_MIDDLE)))]; + [self setLastName:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(NAME_LAST)))]; + [self setEmail:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(EMAIL_ADDRESS)))]; + [self setCompanyName:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(COMPANY_NAME)))]; + [self setAddressLine1:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(ADDRESS_HOME_LINE1)))]; + [self setAddressLine2:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(ADDRESS_HOME_LINE2)))]; + [self setCity:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(ADDRESS_HOME_CITY)))]; + [self setState:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(ADDRESS_HOME_STATE)))]; + [self setZip:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(ADDRESS_HOME_ZIP)))]; + [self setCountry:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY)))]; + [self setPhoneCountryCode:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(PHONE_HOME_COUNTRY_CODE)))]; + [self setPhoneAreaCode:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(PHONE_HOME_CITY_CODE)))]; + [self setPhoneNumber:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(PHONE_HOME_NUMBER)))]; + [self setFaxCountryCode:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(PHONE_FAX_COUNTRY_CODE)))]; + [self setFaxAreaCode:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(PHONE_FAX_CITY_CODE)))]; + [self setFaxNumber:SysUTF16ToNSString( + profile.GetFieldText(AutoFillType(PHONE_FAX_NUMBER)))]; + } + return self; +} + +- (void)dealloc { + [label_ release]; + [firstName_ release]; + [middleName_ release]; + [lastName_ release]; + [email_ release]; + [companyName_ release]; + [addressLine1_ release]; + [addressLine2_ release]; + [city_ release]; + [state_ release]; + [zip_ release]; + [country_ release]; + [phoneCountryCode_ release]; + [phoneAreaCode_ release]; + [phoneNumber_ release]; + [faxCountryCode_ release]; + [faxAreaCode_ release]; + [faxNumber_ release]; + [super dealloc]; +} + +- (NSString*)summary { + // Bindings may set these to nil. We normalize here to @"". + if (firstName_ == nil) + firstName_ = @""; + if (lastName_ == nil) + lastName_ = @""; + if (addressLine1_ == nil) + addressLine1_ = @""; + + BOOL haveFirstName = [firstName_ length] > 0; + BOOL haveLastName = [lastName_ length] > 0; + BOOL haveAddress = [addressLine1_ length] > 0; + + NSString* nameSeparator = (haveFirstName && haveLastName) ? + l10n_util::GetNSString(IDS_AUTOFILL_DIALOG_ADDRESS_NAME_SEPARATOR) : + @""; + NSString* nameFormat = + l10n_util::GetNSStringF(IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_NAME_FORMAT, + base::SysNSStringToUTF16(firstName_), + base::SysNSStringToUTF16(nameSeparator), + base::SysNSStringToUTF16(lastName_)); + NSString* summarySeparator = (haveFirstName || haveLastName) && haveAddress ? + l10n_util::GetNSString(IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_SEPARATOR) : + @""; + NSString* summaryFormat = + l10n_util::GetNSStringF(IDS_AUTOFILL_DIALOG_ADDRESS_SUMMARY_FORMAT, + base::SysNSStringToUTF16(nameFormat), + base::SysNSStringToUTF16(summarySeparator), + base::SysNSStringToUTF16(addressLine1_)); + + return summaryFormat; +} + +- (void)copyModelToProfile:(AutoFillProfile*)profile { + DCHECK(profile); + profile->set_label(base::SysNSStringToUTF16([self label])); + + profile->SetInfo(AutoFillType(NAME_FIRST), + base::SysNSStringToUTF16([self firstName])); + profile->SetInfo(AutoFillType(NAME_MIDDLE), + base::SysNSStringToUTF16([self middleName])); + profile->SetInfo(AutoFillType(NAME_LAST), + base::SysNSStringToUTF16([self lastName])); + profile->SetInfo(AutoFillType(EMAIL_ADDRESS), + base::SysNSStringToUTF16([self email])); + profile->SetInfo(AutoFillType(COMPANY_NAME), + base::SysNSStringToUTF16([self companyName])); + profile->SetInfo(AutoFillType(ADDRESS_HOME_LINE1), + base::SysNSStringToUTF16([self addressLine1])); + profile->SetInfo(AutoFillType(ADDRESS_HOME_LINE2), + base::SysNSStringToUTF16([self addressLine2])); + profile->SetInfo(AutoFillType(ADDRESS_HOME_CITY), + base::SysNSStringToUTF16([self city])); + profile->SetInfo(AutoFillType(ADDRESS_HOME_STATE), + base::SysNSStringToUTF16([self state])); + profile->SetInfo(AutoFillType(ADDRESS_HOME_ZIP), + base::SysNSStringToUTF16([self zip])); + profile->SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), + base::SysNSStringToUTF16([self country])); + profile->SetInfo(AutoFillType(PHONE_HOME_COUNTRY_CODE), + base::SysNSStringToUTF16([self phoneCountryCode])); + profile->SetInfo(AutoFillType(PHONE_HOME_CITY_CODE), + base::SysNSStringToUTF16([self phoneAreaCode])); + profile->SetInfo(AutoFillType(PHONE_HOME_NUMBER), + base::SysNSStringToUTF16([self phoneNumber])); + profile->SetInfo(AutoFillType(PHONE_FAX_COUNTRY_CODE), + base::SysNSStringToUTF16([self faxCountryCode])); + profile->SetInfo(AutoFillType(PHONE_FAX_CITY_CODE), + base::SysNSStringToUTF16([self faxAreaCode])); + profile->SetInfo(AutoFillType(PHONE_FAX_NUMBER), + base::SysNSStringToUTF16([self faxNumber])); +} + +@end diff --git a/chrome/browser/autofill/autofill_address_view_controller_mac.h b/chrome/browser/autofill/autofill_address_view_controller_mac.h new file mode 100644 index 0000000..40448d5 --- /dev/null +++ b/chrome/browser/autofill/autofill_address_view_controller_mac.h @@ -0,0 +1,37 @@ +// 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_ADDRESS_VIEW_CONTROLLER_MAC_ +#define CHROME_BROWSER_AUTOFILL_AUTOFILL_ADDRESS_VIEW_CONTROLLER_MAC_ + +#import <Cocoa/Cocoa.h> +#import "chrome/browser/cocoa/disclosure_view_controller.h" + +@class AutoFillAddressModel; +class AutoFillProfile; + +// A class that coordinates the |addressModel| and the associated view +// held in AutoFillAddressFormView.xib. +// |initWithProfile:| is the designated initializer. It takes |profile| +// and transcribes it to |addressModel| to which the view is bound. +@interface AutoFillAddressViewController : DisclosureViewController { + @private + // The primary model for this controller. The model is instantiated + // from within |initWithProfile:|. We do not hold it as a scoped_nsobject + // because it is exposed as a KVO compliant property. + AutoFillAddressModel* addressModel_; // strong reference +} + +@property (nonatomic, retain) AutoFillAddressModel* addressModel; + +// Designated initializer. Takes a copy of the data in |profile|, +// it is not held as a reference. +- (id)initWithProfile:(const AutoFillProfile&)profile; + +// Copy data from internal model to |profile|. +- (void)copyModelToProfile:(AutoFillProfile*)profile; + +@end + +#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_ADDRESS_VIEW_CONTROLLER_MAC_ diff --git a/chrome/browser/autofill/autofill_address_view_controller_mac.mm b/chrome/browser/autofill/autofill_address_view_controller_mac.mm new file mode 100644 index 0000000..2862ad9 --- /dev/null +++ b/chrome/browser/autofill/autofill_address_view_controller_mac.mm @@ -0,0 +1,40 @@ +// 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. + +#import "chrome/browser/autofill/autofill_address_view_controller_mac.h" +#include "base/mac_util.h" +#include "base/sys_string_conversions.h" +#import "chrome/browser/autofill/autofill_address_model_mac.h" +#include "chrome/browser/autofill/autofill_profile.h" + +@implementation AutoFillAddressViewController + +@synthesize addressModel = addressModel_; + +- (id)initWithProfile:(const AutoFillProfile&)profile { + self = [super initWithNibName:@"AutoFillAddressFormView" + bundle:mac_util::MainAppBundle()]; + if (self) { + // Pull in the view for initialization. + [self view]; + + // Create the model. + [self setAddressModel:[[[AutoFillAddressModel alloc] + initWithProfile:profile] autorelease]]; + } + return self; +} + +- (void)dealloc { + [addressModel_ release]; + [super dealloc]; +} + +- (void)copyModelToProfile:(AutoFillProfile*)profile { + [addressModel_ copyModelToProfile:profile]; +} + +@end + + diff --git a/chrome/browser/autofill/autofill_credit_card_model_mac.h b/chrome/browser/autofill/autofill_credit_card_model_mac.h new file mode 100644 index 0000000..97dfb67 --- /dev/null +++ b/chrome/browser/autofill/autofill_credit_card_model_mac.h @@ -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_ diff --git a/chrome/browser/autofill/autofill_credit_card_model_mac.mm b/chrome/browser/autofill/autofill_credit_card_model_mac.mm new file mode 100644 index 0000000..f59cff9 --- /dev/null +++ b/chrome/browser/autofill/autofill_credit_card_model_mac.mm @@ -0,0 +1,86 @@ +// 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. + +#import "chrome/browser/autofill/autofill_credit_card_model_mac.h" +#include "app/l10n_util.h" +#include "base/sys_string_conversions.h" +#include "chrome/browser/autofill/credit_card.h" +#include "grit/generated_resources.h" + + +@implementation AutoFillCreditCardModel + +@dynamic summary; +@synthesize label = label_; +@synthesize nameOnCard = nameOnCard_; +@synthesize creditCardNumber = creditCardNumber_; +@synthesize expirationMonth = expirationMonth_; +@synthesize expirationYear = expirationYear_; +@synthesize cvcCode = cvcCode_; +@synthesize billingAddress = billingAddress_; +@synthesize shippingAddress = shippingAddress_; + +// Sets up the KVO dependency between "summary" and dependent fields. ++ (NSSet*)keyPathsForValuesAffectingValueForKey:(NSString*)key { + NSSet* keyPaths = [super keyPathsForValuesAffectingValueForKey:key]; + + if ([key isEqualToString:@"summary"]) { + NSSet* affectingKeys = [NSSet setWithObjects:@"creditCardNumber", + @"expirationMonth", @"expirationYear", nil]; + keyPaths = [keyPaths setByAddingObjectsFromSet:affectingKeys]; + } + return keyPaths; +} + +- (id)initWithCreditCard:(const CreditCard&)creditCard { + if ((self = [super init])) { + [self setLabel:SysUTF16ToNSString(creditCard.Label())]; + [self setNameOnCard:SysUTF16ToNSString( + creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NAME)))]; + [self setCreditCardNumber:SysUTF16ToNSString( + creditCard.GetFieldText(AutoFillType(CREDIT_CARD_NUMBER)))]; + [self setExpirationMonth:SysUTF16ToNSString( + creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_MONTH)))]; + [self setExpirationYear:SysUTF16ToNSString( + creditCard.GetFieldText(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR)))]; + [self setCvcCode:SysUTF16ToNSString( + creditCard.GetFieldText(AutoFillType(CREDIT_CARD_VERIFICATION_CODE)))]; + } + return self; +} + +- (void)dealloc { + [label_ release]; + [nameOnCard_ release]; + [creditCardNumber_ release]; + [expirationMonth_ release]; + [expirationYear_ release]; + [cvcCode_ release]; + [billingAddress_ release]; + [shippingAddress_ release]; + [super dealloc]; +} + +- (NSString*)summary { + // TODO(dhollowa): This has been pulled into cross platform code. + // Will hook up in separate CL. See http://crbug.com/33029. + return @""; +} + +- (void)copyModelToCreditCard:(CreditCard*)creditCard { + DCHECK(creditCard); + creditCard->set_label(base::SysNSStringToUTF16([self label])); + creditCard->SetInfo(AutoFillType(CREDIT_CARD_NAME), + base::SysNSStringToUTF16([self nameOnCard])); + creditCard->SetInfo(AutoFillType(CREDIT_CARD_NUMBER), + base::SysNSStringToUTF16([self creditCardNumber])); + creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_MONTH), + base::SysNSStringToUTF16([self expirationMonth])); + creditCard->SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), + base::SysNSStringToUTF16([self expirationYear])); + creditCard->SetInfo(AutoFillType(CREDIT_CARD_VERIFICATION_CODE), + base::SysNSStringToUTF16([self cvcCode])); +} + +@end diff --git a/chrome/browser/autofill/autofill_credit_card_view_controller_mac.h b/chrome/browser/autofill/autofill_credit_card_view_controller_mac.h new file mode 100644 index 0000000..05320c5 --- /dev/null +++ b/chrome/browser/autofill/autofill_credit_card_view_controller_mac.h @@ -0,0 +1,41 @@ +// 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_VIEW_CONTROLLER_MAC_ +#define CHROME_BROWSER_AUTOFILL_AUTOFILL_CREDIT_CARD_VIEW_CONTROLLER_MAC_ + +#import <Cocoa/Cocoa.h> +#import "chrome/browser/cocoa/disclosure_view_controller.h" + +@class AutoFillCreditCardModel; +class CreditCard; + +// A class that coordinates the |creditCardModel| and the associated view +// held in AutoFillCreditCardFormView.xib. +// |initWithCreditCard:| is the designated initializer. It takes |creditCard| +// and transcribes it to |creditCardModel| to which the view is bound. +@interface AutoFillCreditCardViewController : DisclosureViewController { + @private + // TODO(dhollowa): temporary to disable until implementend. + // See http://crbug.com/33029. + IBOutlet NSTextField* billingAddressLabel_; + IBOutlet NSPopUpButton* billingAddressPopup_; + IBOutlet NSTextField* shippingAddressLabel_; + IBOutlet NSPopUpButton* shippingAddressPopup_; + + // The primary model for this controller. The model is instantiated + // from within |initWithCreditCard:|. We do not hold it as a scoped_nsobject + // because it is exposed as a KVO compliant property. + AutoFillCreditCardModel* creditCardModel_; +} + +@property (nonatomic, retain) AutoFillCreditCardModel* creditCardModel; + +// Designated initializer. Takes a copy of the data in |creditCard|, +// it is not held as a reference. +- (id)initWithCreditCard:(const CreditCard&)creditCard; + +@end + +#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_CREDIT_CARD_VIEW_CONTROLLER_MAC_ diff --git a/chrome/browser/autofill/autofill_credit_card_view_controller_mac.mm b/chrome/browser/autofill/autofill_credit_card_view_controller_mac.mm new file mode 100644 index 0000000..36ea721 --- /dev/null +++ b/chrome/browser/autofill/autofill_credit_card_view_controller_mac.mm @@ -0,0 +1,51 @@ +// 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. + +#import "chrome/browser/autofill/autofill_credit_card_view_controller_mac.h" +#include "base/mac_util.h" +#include "base/sys_string_conversions.h" +#import "chrome/browser/autofill/autofill_credit_card_model_mac.h" +#include "chrome/browser/autofill/credit_card.h" + +@implementation AutoFillCreditCardViewController + +@synthesize creditCardModel = creditCardModel_; + +- (id)initWithCreditCard:(const CreditCard&)creditCard { + self = [super initWithNibName:@"AutoFillCreditCardFormView" + bundle:mac_util::MainAppBundle()]; + if (self) { + // Pull in the view for initialization. + [self view]; + + // Create the model. + [self setCreditCardModel:[[[AutoFillCreditCardModel alloc] + initWithCreditCard:creditCard] autorelease]]; + + // Setup initial state. + // TODO(dhollowa): not yet implemented, disabling controls for now. + // See http://crbug.com/33029. + [billingAddressLabel_ setEnabled:FALSE]; + [billingAddressLabel_ setTextColor:[NSColor secondarySelectedControlColor]]; + [billingAddressPopup_ removeAllItems]; + [billingAddressPopup_ setEnabled:FALSE]; + [shippingAddressLabel_ setEnabled:FALSE]; + [shippingAddressLabel_ setTextColor: + [NSColor secondarySelectedControlColor]]; + [shippingAddressPopup_ removeAllItems]; + [shippingAddressPopup_ setEnabled:FALSE]; + } + return self; +} + +- (void)dealloc { + [creditCardModel_ release]; + [super dealloc]; +} + +- (void)copyModelToCreditCard:(CreditCard*)creditCard { + [creditCardModel_ copyModelToCreditCard:creditCard]; +} + +@end diff --git a/chrome/browser/autofill/autofill_dialog_controller_mac.h b/chrome/browser/autofill/autofill_dialog_controller_mac.h new file mode 100644 index 0000000..6e1d8e3 --- /dev/null +++ b/chrome/browser/autofill/autofill_dialog_controller_mac.h @@ -0,0 +1,82 @@ +// 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_DIALOG_CONTROLLER_MAC_ +#define CHROME_BROWSER_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_MAC_ + +#import <Cocoa/Cocoa.h> +#include <vector> +#include "base/scoped_nsobject.h" +#include "chrome/browser/autofill/autofill_dialog.h" +#include "chrome/browser/autofill/autofill_profile.h" +#include "chrome/browser/autofill/credit_card.h" + +@class AutoFillAddressViewController; +@class AutoFillCreditCardViewController; +@class SectionSeparatorView; + +// A window controller for managing the autofill options dialog. +// Application modally presents a dialog allowing the user to store +// personal address and credit card information. +@interface AutoFillDialogController : NSWindowController { + @private + IBOutlet NSView* childView_; + IBOutlet NSView* addressSection_; + IBOutlet SectionSeparatorView* addressSectionBox_; + IBOutlet NSView* creditCardSection_; + + // TODO(dhollowa): one each of these for now. Will be n of each + // controller eventually, for n addresses and n credit cards. + // Note on ownership: the controllers are strongly owned by the dialog + // controller. Their views are inserted into the dialog's view hierarcy + // but are retained by these controllers as well. + // See http://crbug.com/33029. + scoped_nsobject<AutoFillAddressViewController> + addressFormViewController_; + scoped_nsobject<AutoFillCreditCardViewController> + creditCardFormViewController_; + + AutoFillDialogObserver* observer_; // (weak) not retained + std::vector<AutoFillProfile> profiles_; + std::vector<CreditCard> creditCards_; +} + +// Main interface for displaying an application modal autofill dialog on screen. +// This class method creates a new |AutoFillDialogController| and runs it as a +// modal dialog. The controller autoreleases itself when the dialog is closed. +// |observer| can be NULL, but if it is, then no notification is sent during +// call to |save|. If |observer| is non-NULL then its |OnAutoFillDialogApply| +// method is invoked during |save| with the new address and credit card +// information. +// |profiles| and |creditCards| must have non-NULL entries (zero or more). +// These provide the initial data that is presented to the user. ++ (void)showAutoFillDialogWithObserver:(AutoFillDialogObserver*)observer + autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles + creditCards:(const std::vector<CreditCard*>&)creditCards; + +// IBActions for the dialog buttons. +- (IBAction)save:(id)sender; +- (IBAction)cancel:(id)sender; + +@end + +// Interface exposed for unit testing. +@interface AutoFillDialogController (ExposedForUnitTests) +// Returns an instance of AutoFillDialogController. See |-initWithObserver| +// for details about arguments. +// Note: controller is autoreleased when |-closeDialog| is called. ++ (AutoFillDialogController*)controllerWithObserver: + (AutoFillDialogObserver*)observer + autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles + creditCards:(const std::vector<CreditCard*>&)creditCards; + +- (id)initWithObserver:(AutoFillDialogObserver*)observer + autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles + creditCards:(const std::vector<CreditCard*>&)creditCards; +- (AutoFillAddressViewController*)addressFormViewController; +- (AutoFillCreditCardViewController*)creditCardFormViewController; +- (void)closeDialog; +@end + +#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_DIALOG_CONTROLLER_MAC_ diff --git a/chrome/browser/autofill/autofill_dialog_controller_mac.mm b/chrome/browser/autofill/autofill_dialog_controller_mac.mm new file mode 100644 index 0000000..4288296 --- /dev/null +++ b/chrome/browser/autofill/autofill_dialog_controller_mac.mm @@ -0,0 +1,162 @@ +// 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. + +#import "chrome/browser/autofill/autofill_dialog_controller_mac.h" +#include "base/mac_util.h" +#import "chrome/browser/autofill/autofill_address_model_mac.h" +#import "chrome/browser/autofill/autofill_address_view_controller_mac.h" +#import "chrome/browser/autofill/autofill_credit_card_model_mac.h" +#import "chrome/browser/autofill/autofill_credit_card_view_controller_mac.h" +#import "chrome/browser/cocoa/disclosure_view_controller.h" +#import "chrome/browser/cocoa/section_separator_view.h" +#include "chrome/browser/profile.h" + +@interface AutoFillDialogController (PrivateMethods) +- (void)runModalDialog; +- (void)installChildViews; +@end + +@implementation AutoFillDialogController + ++ (void)showAutoFillDialogWithObserver:(AutoFillDialogObserver*)observer + autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles + creditCards:(const std::vector<CreditCard*>&)creditCards { + AutoFillDialogController* controller = + [AutoFillDialogController controllerWithObserver:observer + autoFillProfiles:profiles + creditCards:creditCards]; + + // Only run modal dialog if it is not already being shown. + if (![controller isWindowLoaded]) { + [controller runModalDialog]; + } +} + +- (void)awakeFromNib { + [addressSectionBox_ setShowTopLine:FALSE]; + [self installChildViews]; +} + +// NSWindow Delegate callback. When the window closes the controller can +// be released. +- (void)windowWillClose:(NSNotification *)notification { + [self autorelease]; +} + + +// Called when the user clicks the save button. +- (IBAction)save:(id)sender { + if (observer_) { + [addressFormViewController_ copyModelToProfile:&profiles_[0]]; + [creditCardFormViewController_ copyModelToCreditCard:&creditCards_[0]]; + observer_->OnAutoFillDialogApply(&profiles_, &creditCards_); + } + [self closeDialog]; +} + +// Called when the user clicks the cancel button. All we need to do is stop +// the modal session. +- (IBAction)cancel:(id)sender { + [self closeDialog]; +} + +@end + +@implementation AutoFillDialogController (ExposedForUnitTests) + ++ (AutoFillDialogController*)controllerWithObserver: + (AutoFillDialogObserver*)observer + autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles + creditCards:(const std::vector<CreditCard*>&)creditCards { + + // Deallocation is done upon window close. See |windowWillClose:|. + AutoFillDialogController* controller = + [[self alloc] initWithObserver:observer + autoFillProfiles:profiles + creditCards:creditCards]; + return controller; +} + + +// This is the designated initializer for this class. +// |profiles| are non-retained immutable list of autofill profiles. +// |creditCards| are non-retained immutable list of credit card info. +- (id)initWithObserver:(AutoFillDialogObserver*)observer + autoFillProfiles:(const std::vector<AutoFillProfile*>&)profiles + creditCards:(const std::vector<CreditCard*>&)creditCards { + // Use initWithWindowNibPath: instead of initWithWindowNibName: so we + // can override it in a unit test. + NSString* nibpath = [mac_util::MainAppBundle() + pathForResource:@"AutoFillDialog" + ofType:@"nib"]; + if ((self = [super initWithWindowNibPath:nibpath owner:self])) { + observer_ = observer; + + // Make local copy of |profiles|. + std::vector<AutoFillProfile*>::const_iterator i; + for (i = profiles.begin(); i != profiles.end(); ++i) + profiles_.push_back(**i); + + // Make local copy of |creditCards|. + std::vector<CreditCard*>::const_iterator j; + for (j = creditCards.begin(); j != creditCards.end(); ++j) + creditCards_.push_back(**j); + } + return self; +} + +// Close the dialog. +- (void)closeDialog { + [[self window] close]; + [NSApp stopModal]; +} + +- (AutoFillAddressViewController*)addressFormViewController { + return addressFormViewController_.get(); +} + +- (AutoFillCreditCardViewController*)creditCardFormViewController { + return creditCardFormViewController_.get(); +} + +@end + +@implementation AutoFillDialogController (PrivateMethods) + +// Run application modal. +- (void)runModalDialog { + [NSApp runModalForWindow:[self window]]; +} + +// Install controller and views for the address form and the credit card form. +// They are installed into the appropriate sibling order so that they can be +// arranged vertically by the VerticalLayoutView class. We insert the views +// into the |childView_| but we hold onto the controllers and release them in +// our dealloc once the dialog closes. +- (void)installChildViews { + if (profiles_.size() > 0) { + AutoFillAddressViewController* autoFillAddressViewController = + [[AutoFillAddressViewController alloc] initWithProfile:profiles_[0]]; + addressFormViewController_.reset(autoFillAddressViewController); + + // Embed the child view into our (owned by us) target view. + [childView_ addSubview:[addressFormViewController_ view] + positioned:NSWindowBelow relativeTo:addressSection_]; + [[addressFormViewController_ view] setFrameOrigin:NSMakePoint(0, 0)]; + } + + if (creditCards_.size() > 0) { + AutoFillCreditCardViewController* autoFillCreditCardViewController = + [[AutoFillCreditCardViewController alloc] + initWithCreditCard:creditCards_[0]]; + creditCardFormViewController_.reset(autoFillCreditCardViewController); + + // Embed the child view into our (owned by us) target view. + [childView_ addSubview:[creditCardFormViewController_ view] + positioned:NSWindowBelow relativeTo:creditCardSection_]; + [[creditCardFormViewController_ view] setFrameOrigin:NSMakePoint(0, 0)]; + } +} + +@end diff --git a/chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm b/chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm new file mode 100644 index 0000000..907e2dc --- /dev/null +++ b/chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm @@ -0,0 +1,205 @@ +// Copyright (c) 2009 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. + +#import "chrome/browser/autofill/autofill_address_model_mac.h" +#import "chrome/browser/autofill/autofill_address_view_controller_mac.h" +#import "chrome/browser/autofill/autofill_credit_card_model_mac.h" +#import "chrome/browser/autofill/autofill_credit_card_view_controller_mac.h" +#import "chrome/browser/autofill/autofill_dialog_controller_mac.h" +#include "chrome/browser/autofill/autofill_profile.h" +#include "chrome/browser/cocoa/browser_test_helper.h" +#import "chrome/browser/cocoa/cocoa_test_helper.h" +#include "chrome/browser/profile.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { +class AutoFillDialogObserverTester : public AutoFillDialogObserver { + public: + AutoFillDialogObserverTester() : hit_(false) {} + virtual ~AutoFillDialogObserverTester() {} + + virtual void OnAutoFillDialogApply( + std::vector<AutoFillProfile>* profiles, + std::vector<CreditCard>* credit_cards) { + hit_ = true; + + std::vector<AutoFillProfile>::iterator i; + profiles_.clear(); + for (i = profiles->begin(); i != profiles->end(); ++i) + profiles_.push_back(*i); + + std::vector<CreditCard>::iterator j; + credit_cards_.clear(); + for (j = credit_cards->begin(); j != credit_cards->end(); ++j) + credit_cards_.push_back(*j); + } + + bool hit_; + std::vector<AutoFillProfile> profiles_; + std::vector<CreditCard> credit_cards_; +}; + +class AutoFillDialogControllerTest : public CocoaTest { + public: + AutoFillDialogControllerTest() {} + + void LoadDialog() { + controller_ = [AutoFillDialogController + controllerWithObserver:&observer_ + autoFillProfiles:profiles_ + creditCards:credit_cards_]; + [controller_ window]; + } + + BrowserTestHelper helper_; + AutoFillDialogObserverTester observer_; + AutoFillDialogController* controller_; // weak reference + std::vector<AutoFillProfile*> profiles_; // weak references within vector + std::vector<CreditCard*> credit_cards_; // weak references within vector +}; + +TEST_F(AutoFillDialogControllerTest, SaveButtonInformsObserver) { + LoadDialog(); + [controller_ save:nil]; + ASSERT_TRUE(observer_.hit_); +} + +TEST_F(AutoFillDialogControllerTest, CancelButtonDoesNotInformObserver) { + LoadDialog(); + [controller_ cancel:nil]; + ASSERT_FALSE(observer_.hit_); +} + +TEST_F(AutoFillDialogControllerTest, NoEditsGiveBackOriginalProfile) { + AutoFillProfile profile; + profiles_.push_back(&profile); + LoadDialog(); + [controller_ save:nil]; + + // Should hit our observer. + ASSERT_TRUE(observer_.hit_); + + // Sizes should match. + ASSERT_EQ(observer_.profiles_.size(), profiles_.size()); + + // Contents should match. + size_t i = 0; + size_t count = profiles_.size(); + for (i = 0; i < count; i++) + ASSERT_EQ(observer_.profiles_[i], *profiles_[i]); + + // Contents should not match a different profile. + AutoFillProfile differentProfile; + differentProfile.set_label(ASCIIToUTF16("different")); + differentProfile.SetInfo(AutoFillType(NAME_FIRST), ASCIIToUTF16("joe")); + for (i = 0; i < count; i++) + ASSERT_NE(observer_.profiles_[i], differentProfile); +} + +TEST_F(AutoFillDialogControllerTest, NoEditsGiveBackOriginalCreditCard) { + CreditCard creditCard(ASCIIToUTF16("myCC"), 345); + credit_cards_.push_back(&creditCard); + LoadDialog(); + [controller_ save:nil]; + + // Should hit our observer. + ASSERT_TRUE(observer_.hit_); + + // Sizes should match. + ASSERT_EQ(observer_.credit_cards_.size(), credit_cards_.size()); + + // Contents should match. + size_t i = 0; + size_t count = credit_cards_.size(); + for (i = 0; i < count; i++) + ASSERT_EQ(observer_.credit_cards_[i], *credit_cards_[i]); + + // Contents should not match a different profile. + CreditCard differentCreditCard(ASCIIToUTF16("different"), 0); + differentCreditCard.SetInfo( + AutoFillType(CREDIT_CARD_NUMBER), ASCIIToUTF16("1234")); + for (i = 0; i < count; i++) + ASSERT_NE(observer_.credit_cards_[i], differentCreditCard); +} + +TEST_F(AutoFillDialogControllerTest, AutoFillDataMutation) { + AutoFillProfile profile(ASCIIToUTF16("Home"), 17); + profile.SetInfo(AutoFillType(NAME_FIRST), ASCIIToUTF16("David")); + profile.SetInfo(AutoFillType(NAME_MIDDLE), ASCIIToUTF16("C")); + profile.SetInfo(AutoFillType(NAME_LAST), ASCIIToUTF16("Holloway")); + profile.SetInfo(AutoFillType(EMAIL_ADDRESS), + ASCIIToUTF16("dhollowa@chromium.org")); + profile.SetInfo(AutoFillType(COMPANY_NAME), ASCIIToUTF16("Google Inc.")); + profile.SetInfo( + AutoFillType(ADDRESS_HOME_LINE1), ASCIIToUTF16("1122 Mountain View Road")); + profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE2), ASCIIToUTF16("Suite #1")); + profile.SetInfo(AutoFillType(ADDRESS_HOME_CITY), + ASCIIToUTF16("Mountain View")); + profile.SetInfo(AutoFillType(ADDRESS_HOME_STATE), ASCIIToUTF16("CA")); + profile.SetInfo(AutoFillType(ADDRESS_HOME_ZIP), ASCIIToUTF16("94111")); + profile.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("USA")); + profile.SetInfo(AutoFillType(PHONE_HOME_COUNTRY_CODE), ASCIIToUTF16("01")); + profile.SetInfo(AutoFillType(PHONE_HOME_CITY_CODE), ASCIIToUTF16("415")); + profile.SetInfo(AutoFillType(PHONE_HOME_NUMBER), ASCIIToUTF16("5552258")); + profile.SetInfo(AutoFillType(PHONE_FAX_COUNTRY_CODE), ASCIIToUTF16("02")); + profile.SetInfo(AutoFillType(PHONE_FAX_CITY_CODE), ASCIIToUTF16("408")); + profile.SetInfo(AutoFillType(PHONE_FAX_NUMBER), ASCIIToUTF16("7172258")); + profiles_.push_back(&profile); + + LoadDialog(); + + AutoFillAddressModel* am = [[controller_ addressFormViewController] + addressModel]; + EXPECT_TRUE([[am firstName] isEqualToString:@"David"]); + EXPECT_TRUE([[am middleName] isEqualToString:@"C"]); + EXPECT_TRUE([[am lastName] isEqualToString:@"Holloway"]); + EXPECT_TRUE([[am email] isEqualToString:@"dhollowa@chromium.org"]); + EXPECT_TRUE([[am companyName] isEqualToString:@"Google Inc."]); + EXPECT_TRUE([[am addressLine1] isEqualToString:@"1122 Mountain View Road"]); + EXPECT_TRUE([[am addressLine2] isEqualToString:@"Suite #1"]); + EXPECT_TRUE([[am city] isEqualToString:@"Mountain View"]); + EXPECT_TRUE([[am state] isEqualToString:@"CA"]); + EXPECT_TRUE([[am zip] isEqualToString:@"94111"]); + EXPECT_TRUE([[am phoneCountryCode] isEqualToString:@"01"]); + EXPECT_TRUE([[am phoneAreaCode] isEqualToString:@"415"]); + EXPECT_TRUE([[am phoneNumber] isEqualToString:@"5552258"]); + EXPECT_TRUE([[am faxCountryCode] isEqualToString:@"02"]); + EXPECT_TRUE([[am faxAreaCode] isEqualToString:@"408"]); + EXPECT_TRUE([[am faxNumber] isEqualToString:@"7172258"]); + + [controller_ save:nil]; + + ASSERT_TRUE(observer_.hit_); + ASSERT_TRUE(observer_.profiles_.size() == 1); +} + +TEST_F(AutoFillDialogControllerTest, CreditCardDataMutation) { + CreditCard creditCard(ASCIIToUTF16("myCC"), 345); + creditCard.SetInfo(AutoFillType(CREDIT_CARD_NAME), ASCIIToUTF16("DCH")); + creditCard.SetInfo( + AutoFillType(CREDIT_CARD_NUMBER), ASCIIToUTF16("1234 5678 9101 1121")); + creditCard.SetInfo(AutoFillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); + creditCard.SetInfo( + AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), ASCIIToUTF16("2012")); + creditCard.SetInfo( + AutoFillType(CREDIT_CARD_VERIFICATION_CODE), ASCIIToUTF16("222")); + credit_cards_.push_back(&creditCard); + + LoadDialog(); + + AutoFillCreditCardModel* cm = [[controller_ creditCardFormViewController] + creditCardModel]; + EXPECT_TRUE([[cm nameOnCard] isEqualToString:@"DCH"]); + EXPECT_TRUE([[cm creditCardNumber] isEqualToString:@"1234 5678 9101 1121"]); + EXPECT_TRUE([[cm expirationMonth] isEqualToString:@"01"]); + EXPECT_TRUE([[cm expirationYear] isEqualToString:@"2012"]); + EXPECT_TRUE([[cm cvcCode] isEqualToString:@"222"]); + + [controller_ save:nil]; + + ASSERT_TRUE(observer_.hit_); + ASSERT_TRUE(observer_.credit_cards_.size() == 1); +} + +} diff --git a/chrome/browser/autofill/autofill_dialog.cc b/chrome/browser/autofill/autofill_dialog_mac.mm index 44df062..912ced4 100644 --- a/chrome/browser/autofill/autofill_dialog.cc +++ b/chrome/browser/autofill/autofill_dialog_mac.mm @@ -2,13 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#import "chrome/browser/autofill/autofill_dialog_controller_mac.h" #include "chrome/browser/autofill/autofill_dialog.h" -// TODO(dhollowa): Remove these as each platform implements this -// function. The last one to implement the function should remove this file. -#if defined(OS_MACOSX) +// Mac implementation of |ShowAutoFillDialog| interface defined in +// |chrome/browser/autofill/autofill_dialog.h|. void ShowAutoFillDialog(AutoFillDialogObserver* observer, const std::vector<AutoFillProfile*>& profiles, const std::vector<CreditCard*>& credit_cards) { + [AutoFillDialogController + showAutoFillDialogWithObserver:observer + autoFillProfiles:profiles + creditCards:credit_cards]; } -#endif // defined(OS_WIN) || defined(OS_MACOSX) + diff --git a/chrome/browser/autofill/autofill_profile.cc b/chrome/browser/autofill/autofill_profile.cc index caf335a..fc3b30c 100644 --- a/chrome/browser/autofill/autofill_profile.cc +++ b/chrome/browser/autofill/autofill_profile.cc @@ -158,6 +158,10 @@ bool AutoFillProfile::operator==(const AutoFillProfile& profile) const { return true; } +bool AutoFillProfile::operator!=(const AutoFillProfile& profile) const { + return !operator==(profile); +} + void AutoFillProfile::set_use_billing_address(bool use) { if (use_billing_address_ == use) return; diff --git a/chrome/browser/autofill/autofill_profile.h b/chrome/browser/autofill/autofill_profile.h index 6142721..65182ec 100644 --- a/chrome/browser/autofill/autofill_profile.h +++ b/chrome/browser/autofill/autofill_profile.h @@ -56,6 +56,7 @@ class AutoFillProfile : public FormGroup { // Used by tests. // TODO(jhawkins): Move these to private and add the test as a friend. bool operator==(const AutoFillProfile& profile) const; + bool operator!=(const AutoFillProfile& profile) const; void set_label(const string16& label) { label_ = label; } private: diff --git a/chrome/browser/autofill/credit_card.cc b/chrome/browser/autofill/credit_card.cc index d4e5589..e32ccf1 100644 --- a/chrome/browser/autofill/credit_card.cc +++ b/chrome/browser/autofill/credit_card.cc @@ -42,7 +42,6 @@ CreditCard::CreditCard() expiration_year_(0) { } - FormGroup* CreditCard::Clone() const { return new CreditCard(*this); } @@ -325,6 +324,10 @@ bool CreditCard::operator==(const CreditCard& creditcard) const { return true; } +bool CreditCard::operator!=(const CreditCard& creditcard) const { + return !operator==(creditcard); +} + bool CreditCard::FindInfoMatchesHelper(const AutoFillFieldType& field_type, const string16& info, string16* match) const { diff --git a/chrome/browser/autofill/credit_card.h b/chrome/browser/autofill/credit_card.h index 1f99405..1c22d14 100644 --- a/chrome/browser/autofill/credit_card.h +++ b/chrome/browser/autofill/credit_card.h @@ -90,6 +90,7 @@ class CreditCard : public FormGroup { // Used by tests. bool operator==(const CreditCard& creditcard) const; + bool operator!=(const CreditCard& creditcard) const; void set_label(const string16& label) { label_ = label; } private: diff --git a/chrome/browser/cocoa/disclosure_view_controller.h b/chrome/browser/cocoa/disclosure_view_controller.h new file mode 100644 index 0000000..71a2c5f --- /dev/null +++ b/chrome/browser/cocoa/disclosure_view_controller.h @@ -0,0 +1,30 @@ +// 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_COCOA_DISCLOSURE_VIEW_CONTROLLER_ +#define CHROME_BROWSER_COCOA_DISCLOSURE_VIEW_CONTROLLER_ + +#import <Cocoa/Cocoa.h> + +@class DisclosureViewState; + +// A view class that provides a disclosure triangle that controls the size +// of the view. Toggling the disclosure triangle animates the change in +// size of the view. The |openHeight| is initialized from the initial size +// of the view. |disclosureState| is initialized as |NSOnState| (of type +// NSCellStateValue) which corresponds to "open". +@interface DisclosureViewController : NSViewController { + @private + // The |disclosureState_| is instantiated from within |awakeFromNib|. + // We do not hold it as a scoped_nsobject because it is exposed as a KVO + // compliant property. + DisclosureViewState* disclosureState_; // strong reference + CGFloat openHeight_; +} + +@property (nonatomic, retain) DisclosureViewState* disclosureState; + +@end + +#endif // CHROME_BROWSER_COCOA_DISCLOSURE_VIEW_CONTROLLER_ diff --git a/chrome/browser/cocoa/disclosure_view_controller.mm b/chrome/browser/cocoa/disclosure_view_controller.mm new file mode 100644 index 0000000..f41acd5 --- /dev/null +++ b/chrome/browser/cocoa/disclosure_view_controller.mm @@ -0,0 +1,189 @@ +// 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. + +#import "chrome/browser/cocoa/disclosure_view_controller.h" +#include "base/logging.h" +#include "base/scoped_nsobject.h" + +const NSCellStateValue kInitialDisclosureState = NSOffState; +const NSInteger kClosedBoxHeight = 20; +NSString* const kKVODisclosedKey = @"disclosed"; + +// This class externalizes the state of the disclosure control. When the +// disclosure control is pressed it changes the state of this object. In turn +// the KVO machinery detects the change to |disclosed| and signals the +// |observeValueForKeyPath| call in the |DisclosureViewController|. +@interface DisclosureViewState : NSObject { + @private + NSCellStateValue disclosed; +} +@end + +@implementation DisclosureViewState +@end + +@interface DisclosureViewController(PrivateMethods) + +- (void)initDisclosureState:(NSCellStateValue)state; +- (NSRect)openStateFrameSize:(NSRect)startFrame; +- (NSRect)closedStateFrameSize:(NSRect)startFrame; + +- (void)startAnimations:(NSView*)view + start:(NSRect)startFrame + end:(NSRect)endFrame; + +- (void)discloseDetails:(NSCellStateValue)state; + +- (void)observeValueForKeyPath:(NSString*)keyPath + ofObject:(id)object + change:(NSDictionary*)change + context:(void*)context; + +@end + +@implementation DisclosureViewController + +@synthesize disclosureState = disclosureState_; + +- (void)awakeFromNib { + // Create the disclosure state. + [self setDisclosureState:[[[DisclosureViewState alloc] init] autorelease]]; + + // Set up the initial disclosure state before we install the observer. + // We don't want our animations firing before we're done initializing. + [disclosureState_ setValue:[NSNumber numberWithInt:kInitialDisclosureState] + forKey:kKVODisclosedKey]; + + // Pick up "open" height from the initial state of the view in the nib. + openHeight_ = [[self view] frame].size.height; + + // Set frame size according to initial disclosure state. + [self initDisclosureState:kInitialDisclosureState]; + + // Setup observers so that when disclosure state changes we resize frame + // accordingly. + [disclosureState_ addObserver:self forKeyPath:kKVODisclosedKey + options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld + context:nil]; +} + +- (void)dealloc { + [disclosureState_ removeObserver:self forKeyPath:kKVODisclosedKey]; + [disclosureState_ release]; + [super dealloc]; +} + +@end + +@implementation DisclosureViewController(PrivateMethods) + +// Initializes the view's frame geometry based on the input |state|. +// If the |state| is NSOnState then the frame size corresponds to "open". +// If the |state| is NSOffState then the frame size corresponds to "closed". +// The |origin.x| and |size.width| remain unchanged, but the |origin.y| and +// |size.height| may vary. +- (void)initDisclosureState:(NSCellStateValue)state { + if (state == NSOnState) { + [[self view] setFrame:[self openStateFrameSize:[[self view] frame]]]; + } + else if (state == NSOffState) { + [[self view] setFrame:[self closedStateFrameSize:[[self view] frame]]]; + } + else { + NOTREACHED(); + } +} + +// Computes the frame geometry during the "open" state of the disclosure view. +- (NSRect)openStateFrameSize:(NSRect)startFrame { + return NSMakeRect(startFrame.origin.x, + startFrame.size.height - openHeight_ + + startFrame.origin.y, + startFrame.size.width, + openHeight_); +} + +// Computes the frame geometry during the "closed" state of the disclosure view. +- (NSRect)closedStateFrameSize:(NSRect)startFrame { + return NSMakeRect(startFrame.origin.x, + startFrame.size.height - kClosedBoxHeight + + startFrame.origin.y, + startFrame.size.width, + kClosedBoxHeight); +} + +// Animates the opening or closing of the disclosure view. The |startFrame| +// specifies the frame geometry at the beginning of the animation and the +// |endFrame| specifies the geometry at the end of the animation. The input +// |view| is view managed by this controller. +- (void)startAnimations:(NSView*)view + start:(NSRect)startFrame + end:(NSRect)endFrame +{ + // Setup dictionary describing animation. + // Create the attributes dictionary for the first view. + NSMutableDictionary* dictionary; + dictionary = [NSDictionary dictionaryWithObjectsAndKeys: + // Specify which view to modify. + view, NSViewAnimationTargetKey, + // Specify the starting position of the view. + [NSValue valueWithRect:startFrame], NSViewAnimationStartFrameKey, + // Change the ending position of the view. + [NSValue valueWithRect:endFrame], NSViewAnimationEndFrameKey, + nil]; + + // Create the view animation object. + scoped_nsobject<NSViewAnimation> animation; + animation.reset([[NSViewAnimation alloc] initWithViewAnimations: + [NSArray arrayWithObject:dictionary]]); + + // Set some additional attributes for the animation. + [animation.get() setDuration:.2]; + [animation.get() setAnimationCurve:NSAnimationEaseIn]; + + // Run the animation. + [animation.get() startAnimation]; +} + +// This method is invoked when the disclosure state changes. It computes +// the appropriate view frame geometry and then initiates the animation to +// change that geometry. +- (void)discloseDetails:(NSCellStateValue)state { + NSRect startFrame = [[self view] frame]; + NSRect endFrame = startFrame; + + if (state == NSOnState) { + endFrame = [self openStateFrameSize:startFrame]; + } else if (state == NSOffState) { + endFrame = [self closedStateFrameSize:startFrame]; + } else { + NOTREACHED(); + return; + } + + [self startAnimations:[self view] start:startFrame end:endFrame]; +} + +// The |DisclosureViewController| is an observer of an instance of a +// |DisclosureViewState| object. This object lives within the controller's +// nib file. When the KVO machinery detects a change to the state +// it triggers this call and we initiate the change in frame geometry of the +// view. +- (void)observeValueForKeyPath:(NSString*)keyPath + ofObject:(id)object + change:(NSDictionary*)change + context:(void*)context { + if ([keyPath isEqualToString:kKVODisclosedKey]) { + NSCellStateValue newValue = + [[change objectForKey:NSKeyValueChangeNewKey] intValue]; + NSCellStateValue oldValue = + [[change objectForKey:NSKeyValueChangeOldKey] intValue]; + + if (newValue != oldValue) { + [self discloseDetails:newValue]; + } + } +} + +@end diff --git a/chrome/browser/cocoa/preferences_window_controller.h b/chrome/browser/cocoa/preferences_window_controller.h index e29047e..352f6d8 100644 --- a/chrome/browser/cocoa/preferences_window_controller.h +++ b/chrome/browser/cocoa/preferences_window_controller.h @@ -126,6 +126,7 @@ class ProfileSyncService; // User Data panel - (IBAction)showSavedPasswords:(id)sender; +- (IBAction)showAutoFillSettings:(id)sender; - (IBAction)importData:(id)sender; - (IBAction)clearData:(id)sender; - (IBAction)resetThemeToDefault:(id)sender; diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm index 56e369f..357824d 100644 --- a/chrome/browser/cocoa/preferences_window_controller.mm +++ b/chrome/browser/cocoa/preferences_window_controller.mm @@ -12,6 +12,9 @@ #include "base/string16.h" #include "base/string_util.h" #include "base/sys_string_conversions.h" +#include "chrome/browser/autofill/autofill_dialog.h" +#include "chrome/browser/autofill/autofill_type.h" +#include "chrome/browser/autofill/personal_data_manager.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_list.h" #include "chrome/browser/browser_process.h" @@ -1145,6 +1148,28 @@ const int kDisabledIndex = 1; [self launchKeychainAccess]; } +// Called to show the Auto Fill Settings dialog. +- (IBAction)showAutoFillSettings:(id)sender { + [self recordUserAction:"Options_ShowAutoFillSettings"]; + + // TODO(dhollowa): Need "n" of these. Create single entry for now. + // See http://crbug.com/33029. + std::vector<AutoFillProfile*> profiles; + AutoFillProfile profile(ASCIIToUTF16(""), 0); + profiles.push_back(&profile); + + // TODO(dhollowa): Need "n" of these. Create single entry for now. + // See http://crbug.com/33029. + std::vector<CreditCard*> creditCards; + CreditCard creditCard(ASCIIToUTF16(""), 0); + creditCards.push_back(&creditCard); + + // TODO(dhollowa): There are outstanding assertions in autofill back end. + // Hooking up with UI only until those issues are resolved. + // See http://crbug.com/33029. + ShowAutoFillDialog(NULL, profiles, creditCards); +} + // Called to import data from other browsers (Safari, Firefox, etc). - (IBAction)importData:(id)sender { UserMetrics::RecordAction("Import_ShowDlg", profile_); diff --git a/chrome/browser/cocoa/section_separator_view.h b/chrome/browser/cocoa/section_separator_view.h new file mode 100644 index 0000000..22a9412 --- /dev/null +++ b/chrome/browser/cocoa/section_separator_view.h @@ -0,0 +1,32 @@ +// 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_COCOA_SECTION_SEPARATOR_VIEW_ +#define CHROME_BROWSER_COCOA_SECTION_SEPARATOR_VIEW_ + +#import <Cocoa/Cocoa.h> + +// A view class that renders a gradient "section" separator. The visual +// style is modelled similarly to iPhone table view separators. This view +// paints a simple top-to-bottom gradient in its bounds of fixed gray values. +// Optionally, it also paints a "topline" and "baseline". Default is to +// draw both topline and baseline, but these can be overridden. +// The user of the class can override the color of the base line and top line +// using the |baselineSeparatorColor| and |toplineSeparatorColor| properties. +@interface SectionSeparatorView : NSView { + @private + BOOL showBaseLine_; + NSColor* baselineSeparatorColor_; + BOOL showTopLine_; + NSColor* toplineSeparatorColor_; +} + +@property (nonatomic, assign) BOOL showBaseLine; +@property (nonatomic, retain) NSColor* baselineSeparatorColor; +@property (nonatomic, assign) BOOL showTopLine; +@property (nonatomic, retain) NSColor* toplineSeparatorColor; + +@end + +#endif // CHROME_BROWSER_COCOA_SECTION_SEPARATOR_VIEW_ diff --git a/chrome/browser/cocoa/section_separator_view.mm b/chrome/browser/cocoa/section_separator_view.mm new file mode 100644 index 0000000..a7968bc --- /dev/null +++ b/chrome/browser/cocoa/section_separator_view.mm @@ -0,0 +1,106 @@ +// 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. + +#import "chrome/browser/cocoa/section_separator_view.h" + +@interface SectionSeparatorView (PrivateMethods) +- (void)drawGradientRect:(NSRect)rect; +- (void)drawBaseLineRect:(NSRect)rect; +- (void)drawTopLineRect:(NSRect)rect; +@end + +@implementation SectionSeparatorView + +@synthesize showBaseLine = showBaseLine_; +@synthesize baselineSeparatorColor = baselineSeparatorColor_; +@synthesize showTopLine = showTopLine_; +@synthesize toplineSeparatorColor = toplineSeparatorColor_; + +- (id)initWithFrame:(NSRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self setShowBaseLine:YES]; + [self setBaselineSeparatorColor:[NSColor grayColor]]; + [self setShowTopLine:YES]; + [self setToplineSeparatorColor:[NSColor lightGrayColor]]; + } + return self; +} + +- (void)dealloc { + [baselineSeparatorColor_ release]; + [toplineSeparatorColor_ release]; + [super dealloc]; +} + +- (void)drawRect:(NSRect)rect { + NSRect gradientBounds = [self bounds]; + NSRect baselineRect = gradientBounds; + NSRect toplineRect = gradientBounds; + gradientBounds.size.height -= 1; + gradientBounds.origin.y += 1; + baselineRect.size.height = 1; + baselineRect.origin.y = 0; + toplineRect.size.height = 1; + toplineRect.origin.y = gradientBounds.size.height; + [self drawGradientRect:gradientBounds]; + if ([self showBaseLine]) + [self drawBaseLineRect:baselineRect]; + if ([self showTopLine]) + [self drawTopLineRect:toplineRect]; +} + +@end + +@implementation SectionSeparatorView (PrivateMethods) + +// This method draws the gradient fill of the "separator" bar. The input +// |rect| designates the bounds that will be filled with the the gradient. +// The gradient has two stops, lighter gray blending to +// darker gray, descending from the top of the |rect| to the bottom. +- (void)drawGradientRect:(NSRect)rect { + // Compute start and end points where to draw the gradient. + CGPoint startPoint = CGPointMake(NSMinX(rect), NSMinY(rect)); + CGPoint endPoint = CGPointMake(NSMinX(rect), NSMaxY(rect)); + + // Setup the context and colorspace. + CGContextRef context = + (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]; + CGContextSaveGState(context); + CGColorSpaceRef colorspace = + CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); + + // Create the gradient. + const size_t stopCount = 2; + CGFloat stops[stopCount] = { 0.0, 1.0 }; + CGFloat components[8] = { + 0.75, 0.75, 0.75, 1.0, // start color + 0.95, 0.95, 0.95, 1.0 }; // end color + + CGGradientRef gradient = CGGradientCreateWithColorComponents( + colorspace, components, stops, stopCount); + + CGContextClipToRect(context, *(CGRect*)&rect); + CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0); + + CGGradientRelease(gradient); + CGColorSpaceRelease(colorspace); + CGContextRestoreGState(context); +} + +// Draws the base line of the separator bar using the |baselineSeparatorColor_| +// designated color. +- (void)drawBaseLineRect:(NSRect)rect { + [baselineSeparatorColor_ set]; + NSFrameRect(rect); +} + +// Draws the top line of the separator bar using the |toplineSeparatorColor_| +// designated color. +- (void)drawTopLineRect:(NSRect)rect { + [toplineSeparatorColor_ set]; + NSFrameRect(rect); +} + +@end diff --git a/chrome/browser/cocoa/vertical_layout_view.h b/chrome/browser/cocoa/vertical_layout_view.h new file mode 100644 index 0000000..56e9954 --- /dev/null +++ b/chrome/browser/cocoa/vertical_layout_view.h @@ -0,0 +1,22 @@ +// 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_COCOA_VERTICAL_LAYOUT_VIEW_ +#define CHROME_BROWSER_COCOA_VERTICAL_LAYOUT_VIEW_ + +#import <Cocoa/Cocoa.h> + +// A view class that automatically performs layout of child views based +// on paint order of the children in the view hierarchy. The children are +// arranged top-to-bottom (in y-order) based on each child's height. +// Horizontal (x) positions are left as specified. Layout is performed when +// children are added, removed, or have their frames changed. Layout is also +// performed when this view (|self|) has its frame changed. +// Autoresizing is disabled for |VerticalLayoutView|s. +@interface VerticalLayoutView : NSView { +} + +@end + +#endif // CHROME_BROWSER_COCOA_VERTICAL_LAYOUT_VIEW_ diff --git a/chrome/browser/cocoa/vertical_layout_view.mm b/chrome/browser/cocoa/vertical_layout_view.mm new file mode 100644 index 0000000..b4e6a5e --- /dev/null +++ b/chrome/browser/cocoa/vertical_layout_view.mm @@ -0,0 +1,73 @@ +// 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. + +#import "chrome/browser/cocoa/vertical_layout_view.h" + +@interface VerticalLayoutView(PrivateMethods) +- (void)layoutChildren; +@end + +@implementation VerticalLayoutView + +- (id)initWithFrame:(NSRect)frame { + self = [super initWithFrame:frame]; + if (self) { + // Turn auto resizing off, we'll be laying out our children programatically. + [self setAutoresizesSubviews:NO]; + [self setAutoresizingMask:NSViewNotSizable]; + } + + return self; +} + +// Flip the coordinate system to arrange child views from top to bottom +// with top at 0, increasing down. This simplifies the logic and plays +// well with containing scroll views. +- (BOOL)isFlipped { + return YES; +} + +// Override the default |viewWillDraw| to indicate to drawing machinery proper +// arrangement of subvies. +- (void)viewWillDraw { + // Reposition child views prior to super's descent into its |viewWillDraw| + // pass. + [self layoutChildren]; + + // Default descent into subviews. + [super viewWillDraw]; + + // Adjust children again to account for any modifications made during the + // prior descent. Most importantly we resize our own frame to properly + // adjust any containing scroll view. + [self layoutChildren]; +} + +@end + +@implementation VerticalLayoutView(PrivateMethods) + +// This method traverses the immediate subviews measuring their height and +// adjusting their frames so they are arranged vertically ordered relative +// to their sibling views. Note the dependency here on the |isFlipped| +// state. This code assumes |isFlipped| is YES. +- (void)layoutChildren { + NSArray* children = [self subviews]; + int childCount = [children count]; + + CGFloat yPosition = 0.0; + for (int i = childCount-1; i >= 0; --i) { + NSView* child = [children objectAtIndex:i]; + [child setFrameOrigin:NSMakePoint([child frame].origin.x, yPosition)]; + yPosition += [child frame].size.height; + } + + // Resize self to reflect vertical extent of children. + [self setFrame:NSMakeRect([self frame].origin.x, + [self frame].origin.y, + [self frame].size.width, + yPosition)]; +} + +@end diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index fea9d48..109b503 100755 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -86,8 +86,18 @@ 'browser/autofill/address_field.h', 'browser/autofill/address.cc', 'browser/autofill/address.h', + 'browser/autofill/autofill_address_model_mac.h', + 'browser/autofill/autofill_address_model_mac.mm', + 'browser/autofill/autofill_address_view_controller_mac.h', + 'browser/autofill/autofill_address_view_controller_mac.mm', + 'browser/autofill/autofill_credit_card_model_mac.h', + 'browser/autofill/autofill_credit_card_model_mac.mm', + 'browser/autofill/autofill_credit_card_view_controller_mac.h', + 'browser/autofill/autofill_credit_card_view_controller_mac.mm', + 'browser/autofill/autofill_dialog_controller_mac.h', + 'browser/autofill/autofill_dialog_controller_mac.mm', 'browser/autofill/autofill_dialog_gtk.cc', - 'browser/autofill/autofill_dialog.cc', + 'browser/autofill/autofill_dialog_mac.mm', # Windows version of autofill dialog is defined in # 'browser/views/autofill_profiles_view_win.cc' 'browser/autofill/autofill_dialog.h', @@ -455,6 +465,8 @@ 'browser/cocoa/custom_home_pages_model.mm', 'browser/cocoa/delayedmenu_button.h', 'browser/cocoa/delayedmenu_button.mm', + 'browser/cocoa/disclosure_view_controller.h', + 'browser/cocoa/disclosure_view_controller.mm', 'browser/cocoa/dock_icon.h', 'browser/cocoa/dock_icon.mm', 'browser/cocoa/download_item_button.h', @@ -609,6 +621,8 @@ 'browser/cocoa/scoped_authorizationref.h', 'browser/cocoa/search_engine_list_model.h', 'browser/cocoa/search_engine_list_model.mm', + 'browser/cocoa/section_separator_view.h', + 'browser/cocoa/section_separator_view.mm', 'browser/cocoa/shell_dialogs_mac.mm', 'browser/cocoa/status_bubble_mac.h', 'browser/cocoa/status_bubble_mac.mm', @@ -648,6 +662,8 @@ 'browser/cocoa/ui_localizer.mm', 'browser/cocoa/url_drop_target.h', 'browser/cocoa/url_drop_target.mm', + 'browser/cocoa/vertical_layout_view.h', + 'browser/cocoa/vertical_layout_view.mm', 'browser/cocoa/view_resizer.h', 'browser/cocoa/web_drag_source.h', 'browser/cocoa/web_drag_source.mm', @@ -2290,6 +2306,9 @@ 'xib_files_to_scan': [ # The xibs that need localization 'app/nibs/About.xib', + 'app/nibs/AutoFillAddressFormView.xib', + 'app/nibs/AutoFillCreditCardFormView.xib', + 'app/nibs/AutoFillDialog.xib', 'app/nibs/BookmarkAllTabs.xib', 'app/nibs/BookmarkBar.xib', 'app/nibs/BookmarkBubble.xib', diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi index 528709a..b9025dd 100644 --- a/chrome/chrome_dll.gypi +++ b/chrome/chrome_dll.gypi @@ -179,6 +179,9 @@ 'app/framework-Info.plist', 'app/nibs/About.xib', 'app/nibs/AboutIPC.xib', + 'app/nibs/AutoFillAddressFormView.xib', + 'app/nibs/AutoFillCreditCardFormView.xib', + 'app/nibs/AutoFillDialog.xib', 'app/nibs/BookmarkAllTabs.xib', 'app/nibs/BookmarkBar.xib', 'app/nibs/BookmarkBubble.xib', diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 1a2c4b3..9a34647 100755 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -530,6 +530,7 @@ 'browser/autocomplete/history_url_provider_unittest.cc', 'browser/autocomplete/keyword_provider_unittest.cc', 'browser/autocomplete/search_provider_unittest.cc', + 'browser/autofill/autofill_dialog_controller_mac_unittest.mm', 'browser/autofill/personal_data_manager_unittest.cc', 'browser/automation/automation_provider_unittest.cc', 'browser/back_forward_menu_model_unittest.cc', |