Commits

Ronald Oussoren  committed 22e421f

Port AddressBook wrappers to OSX 10.7

  • Participants
  • Parent commits b0eef3b

Comments (0)

Files changed (11)

File pyobjc-framework-AddressBook/BridgeSupport/AddressBook.bridgesupport

   <cftype name='ABPersonRef' tollfree='ABPerson' type='^{__ABPerson=}' type64='^{__ABPerson=}' />
   <cftype name='ABPickerRef' tollfree='ABPeoplePickerView' type='^{OpaqueABPicker=}' type64='^{OpaqueABPicker=}' />
   <cftype name='ABSearchElementRef' tollfree='ABSearchElement' type='^{__ABSearchElementRef=}' type64='^{__ABSearchElementRef=}' />
+  <constant name='kABEmailMobileMeLabel' type='@' />
+  <constant name='kABBirthdayComponentsProperty' type='@' />
+  <constant name='kABOtherDateComponentsProperty' type='@' />
   <constant name='ABPeoplePickerDisplayedPropertyDidChangeNotification' type='@' />
   <constant name='ABPeoplePickerGroupSelectionDidChangeNotification' type='@' />
   <constant name='ABPeoplePickerNameSelectionDidChangeNotification' type='@' />
   <constant name='kABAddressWorkLabel' type='@' />
   <constant name='kABAddressZIPKey' type='@' />
   <constant name='kABAnniversaryLabel' type='@' />
+  <constant name='kABAIMMobileMeLabel' type='@' />
   <constant name='kABAssistantLabel' type='@' />
   <constant name='kABBirthdayProperty' type='@' />
   <constant name='kABBrotherLabel' type='@' />
   <constant name='kABInsertedRecords' type='@' />
   <constant name='kABJabberHomeLabel' type='@' />
   <constant name='kABJabberInstantProperty' type='@' />
+  <constant name='kABBirthdayComponentsProperty' type='@' />
+  <constant name='kABOtherDateComponentsProperty' type='@' />
+  <constant name='kABInstantMessageProperty' type='@' />
+  <constant name='kABInstantMessageUsernameKey' type='@' />
+  <constant name='kABInstantMessageServiceKey' type='@' />
+  <constant name='kABInstantMessageServiceAIM' type='@' />
+  <constant name='kABInstantMessageServiceFacebook' type='@' />
+  <constant name='kABInstantMessageServiceGaduGadu' type='@' />
+  <constant name='kABInstantMessageServiceGoogleTalk' type='@' />
+  <constant name='kABInstantMessageServiceICQ' type='@' />
+  <constant name='kABInstantMessageServiceJabber' type='@' />
+  <constant name='kABInstantMessageServiceMSN' type='@' />
+  <constant name='kABInstantMessageServiceQQ' type='@' />
+  <constant name='kABInstantMessageServiceSkype' type='@' />
+  <constant name='kABInstantMessageServiceYahoo' type='@' />
+  <constant name='kABSocialProfileProperty' type='@' />
+  <constant name='kABSocialProfileURLKey' type='@' />
+  <constant name='kABSocialProfileUsernameKey' type='@' />
+  <constant name='kABSocialProfileUserIdentifierKey' type='@' />
+  <constant name='kABSocialProfileServiceKey' type='@' />
+  <constant name='kABSocialProfileServiceTwitter' type='@' />
+  <constant name='kABSocialProfileServiceFacebook' type='@' />
+  <constant name='kABSocialProfileServiceLinkedIn' type='@' />
+  <constant name='kABSocialProfileServiceFlickr' type='@' />
+  <constant name='kABSocialProfileServiceMySpace' type='@' />
   <constant name='kABJabberWorkLabel' type='@' />
+  <constant name='kABMobileMeLabel' type='@' />
   <constant name='kABJobTitleProperty' type='@' />
   <constant name='kABLastNamePhoneticProperty' type='@' />
   <constant name='kABLastNameProperty' type='@' />
   <constant name='kABYahooHomeLabel' type='@' />
   <constant name='kABYahooInstantProperty' type='@' />
   <constant name='kABYahooWorkLabel' type='@' />
+  <constant name='ABAddressBookErrorDomain' type='@' />
+  <constant name='ABMultiValueIdentifiersErrorKey' type='@' />
+  <enum name='kABDateComponentsProperty' value='8' />
+  <enum name='ABAddRecordsError' value='1001' />
+  <enum name='ABRemoveRecordsError' value='1002' />
+  <enum name='ABPropertyValueValidationError' value='1012' />
+  <enum name='ABPropertyUnsupportedBySourceError' value='1013' />
+  <enum name='ABPropertyReadOnlyError' value='1014' />
   <enum name='ABMultipleValueSelection' value='2' />
   <enum name='kABShowAsResource' value='2' />
   <enum name='kABShowAsRoom' value='3' />
   <enum name='kABMultiArrayProperty' value='261' />
   <enum name='kABMultiDataProperty' value='263' />
   <enum name='kABMultiDateProperty' value='260' />
+  <enum name='kABMultiDateComponentsProperty' value='264' />
   <enum name='kABMultiDictionaryProperty' value='262' />
   <enum name='kABMultiIntegerProperty' value='258' />
   <enum name='kABMultiRealProperty' value='259' />
     <method selector='addRecord:'>
       <retval type='B' />
     </method>
+    <method selector='addRecord:error:'>
+      <retval type='B' />
+      <arg index='1' type_modifier='o' />
+    </method>
     <method selector='hasUnsavedChanges'>
       <retval type='B' />
     </method>
     <method selector='removeRecord:'>
       <retval type='B' />
     </method>
+    <method selector='removeRecord:error:'>
+      <retval type='B' />
+      <arg index='1' type_modifier='o' />
+    </method>
     <method selector='save'>
       <retval type='B' />
     </method>
     <method selector='setValue:forProperty:'>
       <retval type='B' />
     </method>
+    <method selector='setValue:forProperty:error:'>
+      <retval type='B' />
+      <arg index='2' type_modifier='o' />
+    </method>
   </class>
   <class name='ABSearchElement'>
     <method selector='matchesRecord:'>
       <retval type='B' />
     </method>
   </class>
+  <class name='ABPersonView'>
+    <method selector='editing'>
+      <retval type='B' />
+    </method>
+    <method selector='setEditing:'>
+      <arg index='0' type='B' />
+    </method>
+  </class>
 </signatures>
 

File pyobjc-framework-AddressBook/Lib/AddressBook/_metadata.py

 # Generated file, don't edit
 # Source: BridgeSupport/AddressBook.bridgesupport
-# Last update: Sun Jul 17 21:05:01 2011
+# Last update: Sun Jul 31 16:56:27 2011
 
 import objc, sys
 
 
 misc = {
 }
-constants = '''$ABPeoplePickerDisplayedPropertyDidChangeNotification$ABPeoplePickerGroupSelectionDidChangeNotification$ABPeoplePickerNameSelectionDidChangeNotification$ABPeoplePickerValueSelectionDidChangeNotification$kABAIMHomeLabel$kABAIMInstantProperty$kABAIMWorkLabel$kABAddressCityKey$kABAddressCountryCodeKey$kABAddressCountryKey$kABAddressHomeLabel$kABAddressProperty$kABAddressStateKey$kABAddressStreetKey$kABAddressWorkLabel$kABAddressZIPKey$kABAnniversaryLabel$kABAssistantLabel$kABBirthdayProperty$kABBrotherLabel$kABCalendarURIsProperty$kABChildLabel$kABCreationDateProperty$kABDatabaseChangedExternallyNotification$kABDatabaseChangedNotification$kABDeletedRecords$kABDepartmentProperty$kABEmailHomeLabel$kABEmailProperty$kABEmailWorkLabel$kABFatherLabel$kABFirstNamePhoneticProperty$kABFirstNameProperty$kABFriendLabel$kABGroupNameProperty$kABGroupRecordType@^{__CFString=}$kABHomeLabel$kABHomePageLabel$kABHomePageProperty$kABICQHomeLabel$kABICQInstantProperty$kABICQWorkLabel$kABInsertedRecords$kABJabberHomeLabel$kABJabberInstantProperty$kABJabberWorkLabel$kABJobTitleProperty$kABLastNamePhoneticProperty$kABLastNameProperty$kABMSNHomeLabel$kABMSNInstantProperty$kABMSNWorkLabel$kABMaidenNameProperty$kABManagerLabel$kABMiddleNamePhoneticProperty$kABMiddleNameProperty$kABModificationDateProperty$kABMotherLabel$kABNicknameProperty$kABNoteProperty$kABOrganizationProperty$kABOtherDatesProperty$kABOtherLabel$kABParentLabel$kABPartnerLabel$kABPersonFlags$kABPersonRecordType@^{__CFString=}$kABPhoneHomeFAXLabel$kABPhoneHomeLabel$kABPhoneiPhoneLabel$kABPhoneMobileLabel$kABPhoneMainLabel$kABPhonePagerLabel$kABPhoneProperty$kABPhoneWorkFAXLabel$kABPhoneWorkLabel$kABRelatedNamesProperty$kABSisterLabel$kABSpouseLabel$kABSuffixProperty$kABTitleProperty$kABUIDProperty$kABURLsProperty$kABUpdatedRecords$kABWorkLabel$kABYahooHomeLabel$kABYahooInstantProperty$kABYahooWorkLabel$'''
-enums = '''$ABMultipleValueSelection@2$kABShowAsResource@2$kABShowAsRoom@3$ABNoValueSelection@0$ABSingleValueSelection@1$kABArrayProperty@5$kABBitsInBitFieldMatch@11$kABContainsSubString@7$kABContainsSubStringCaseInsensitive@8$kABDataProperty@7$kABDateProperty@4$kABDefaultNameOrdering@0$kABDefaultNameOrdering@0$kABDictionaryProperty@6$kABDoesNotContainSubString@12$kABDoesNotContainSubStringCaseInsensitive@13$kABEqual@0$kABEqualCaseInsensitive@6$kABErrorInProperty@0$kABFirstNameFirst@32$kABFirstNameFirst@32$kABGreaterThan@4$kABGreaterThanOrEqual@5$kABIntegerProperty@2$kABLastNameFirst@16$kABLastNameFirst@16$kABLessThan@2$kABLessThanOrEqual@3$kABMultiArrayProperty@261$kABMultiDataProperty@263$kABMultiDateProperty@260$kABMultiDictionaryProperty@262$kABMultiIntegerProperty@258$kABMultiRealProperty@259$kABMultiStringProperty@257$kABMultiValueMask@256$kABNameOrderingMask@56$kABNameOrderingMask@56$kABNotEqual@1$kABNotEqualCaseInsensitive@14$kABNotWithinIntervalAroundToday@19$kABNotWithinIntervalAroundTodayYearless@20$kABNotWithinIntervalFromToday@23$kABNotWithinIntervalFromTodayYearless@24$kABPickerAllowGroupSelection@4$kABPickerAllowMultipleSelection@8$kABPickerMultipleValueSelection@2$kABPickerSingleValueSelection@1$kABPrefixMatch@9$kABPrefixMatchCaseInsensitive@10$kABRealProperty@3$kABSearchAnd@0$kABSearchOr@1$kABShowAsCompany@1$kABShowAsCompany@1$kABShowAsMask@7$kABShowAsMask@7$kABShowAsPerson@0$kABShowAsPerson@0$kABStringProperty@1$kABSuffixMatch@15$kABSuffixMatchCaseInsensitive@16$kABWithinIntervalAroundToday@17$kABWithinIntervalAroundTodayYearless@18$kABWithinIntervalFromToday@21$kABWithinIntervalFromTodayYearless@22$kEventABPeoplePickerDisplayedPropertyChanged@4$kEventABPeoplePickerGroupDoubleClicked@5$kEventABPeoplePickerGroupSelectionChanged@1$kEventABPeoplePickerNameDoubleClicked@6$kEventABPeoplePickerNameSelectionChanged@2$kEventABPeoplePickerValueSelectionChanged@3$kEventClassABPeoplePicker@1633841264$kEventParamABPickerRef@1633841264$'''
+constants = '''$kABEmailMobileMeLabel$kABBirthdayComponentsProperty$kABOtherDateComponentsProperty$ABPeoplePickerDisplayedPropertyDidChangeNotification$ABPeoplePickerGroupSelectionDidChangeNotification$ABPeoplePickerNameSelectionDidChangeNotification$ABPeoplePickerValueSelectionDidChangeNotification$kABAIMHomeLabel$kABAIMInstantProperty$kABAIMWorkLabel$kABAddressCityKey$kABAddressCountryCodeKey$kABAddressCountryKey$kABAddressHomeLabel$kABAddressProperty$kABAddressStateKey$kABAddressStreetKey$kABAddressWorkLabel$kABAddressZIPKey$kABAnniversaryLabel$kABAIMMobileMeLabel$kABAssistantLabel$kABBirthdayProperty$kABBrotherLabel$kABCalendarURIsProperty$kABChildLabel$kABCreationDateProperty$kABDatabaseChangedExternallyNotification$kABDatabaseChangedNotification$kABDeletedRecords$kABDepartmentProperty$kABEmailHomeLabel$kABEmailProperty$kABEmailWorkLabel$kABFatherLabel$kABFirstNamePhoneticProperty$kABFirstNameProperty$kABFriendLabel$kABGroupNameProperty$kABGroupRecordType@^{__CFString=}$kABHomeLabel$kABHomePageLabel$kABHomePageProperty$kABICQHomeLabel$kABICQInstantProperty$kABICQWorkLabel$kABInsertedRecords$kABJabberHomeLabel$kABJabberInstantProperty$kABBirthdayComponentsProperty$kABOtherDateComponentsProperty$kABInstantMessageProperty$kABInstantMessageUsernameKey$kABInstantMessageServiceKey$kABInstantMessageServiceAIM$kABInstantMessageServiceFacebook$kABInstantMessageServiceGaduGadu$kABInstantMessageServiceGoogleTalk$kABInstantMessageServiceICQ$kABInstantMessageServiceJabber$kABInstantMessageServiceMSN$kABInstantMessageServiceQQ$kABInstantMessageServiceSkype$kABInstantMessageServiceYahoo$kABSocialProfileProperty$kABSocialProfileURLKey$kABSocialProfileUsernameKey$kABSocialProfileUserIdentifierKey$kABSocialProfileServiceKey$kABSocialProfileServiceTwitter$kABSocialProfileServiceFacebook$kABSocialProfileServiceLinkedIn$kABSocialProfileServiceFlickr$kABSocialProfileServiceMySpace$kABJabberWorkLabel$kABMobileMeLabel$kABJobTitleProperty$kABLastNamePhoneticProperty$kABLastNameProperty$kABMSNHomeLabel$kABMSNInstantProperty$kABMSNWorkLabel$kABMaidenNameProperty$kABManagerLabel$kABMiddleNamePhoneticProperty$kABMiddleNameProperty$kABModificationDateProperty$kABMotherLabel$kABNicknameProperty$kABNoteProperty$kABOrganizationProperty$kABOtherDatesProperty$kABOtherLabel$kABParentLabel$kABPartnerLabel$kABPersonFlags$kABPersonRecordType@^{__CFString=}$kABPhoneHomeFAXLabel$kABPhoneHomeLabel$kABPhoneiPhoneLabel$kABPhoneMobileLabel$kABPhoneMainLabel$kABPhonePagerLabel$kABPhoneProperty$kABPhoneWorkFAXLabel$kABPhoneWorkLabel$kABRelatedNamesProperty$kABSisterLabel$kABSpouseLabel$kABSuffixProperty$kABTitleProperty$kABUIDProperty$kABURLsProperty$kABUpdatedRecords$kABWorkLabel$kABYahooHomeLabel$kABYahooInstantProperty$kABYahooWorkLabel$ABAddressBookErrorDomain$ABMultiValueIdentifiersErrorKey$'''
+enums = '''$kABDateComponentsProperty@8$ABAddRecordsError@1001$ABRemoveRecordsError@1002$ABPropertyValueValidationError@1012$ABPropertyUnsupportedBySourceError@1013$ABPropertyReadOnlyError@1014$ABMultipleValueSelection@2$kABShowAsResource@2$kABShowAsRoom@3$ABNoValueSelection@0$ABSingleValueSelection@1$kABArrayProperty@5$kABBitsInBitFieldMatch@11$kABContainsSubString@7$kABContainsSubStringCaseInsensitive@8$kABDataProperty@7$kABDateProperty@4$kABDefaultNameOrdering@0$kABDefaultNameOrdering@0$kABDictionaryProperty@6$kABDoesNotContainSubString@12$kABDoesNotContainSubStringCaseInsensitive@13$kABEqual@0$kABEqualCaseInsensitive@6$kABErrorInProperty@0$kABFirstNameFirst@32$kABFirstNameFirst@32$kABGreaterThan@4$kABGreaterThanOrEqual@5$kABIntegerProperty@2$kABLastNameFirst@16$kABLastNameFirst@16$kABLessThan@2$kABLessThanOrEqual@3$kABMultiArrayProperty@261$kABMultiDataProperty@263$kABMultiDateProperty@260$kABMultiDateComponentsProperty@264$kABMultiDictionaryProperty@262$kABMultiIntegerProperty@258$kABMultiRealProperty@259$kABMultiStringProperty@257$kABMultiValueMask@256$kABNameOrderingMask@56$kABNameOrderingMask@56$kABNotEqual@1$kABNotEqualCaseInsensitive@14$kABNotWithinIntervalAroundToday@19$kABNotWithinIntervalAroundTodayYearless@20$kABNotWithinIntervalFromToday@23$kABNotWithinIntervalFromTodayYearless@24$kABPickerAllowGroupSelection@4$kABPickerAllowMultipleSelection@8$kABPickerMultipleValueSelection@2$kABPickerSingleValueSelection@1$kABPrefixMatch@9$kABPrefixMatchCaseInsensitive@10$kABRealProperty@3$kABSearchAnd@0$kABSearchOr@1$kABShowAsCompany@1$kABShowAsCompany@1$kABShowAsMask@7$kABShowAsMask@7$kABShowAsPerson@0$kABShowAsPerson@0$kABStringProperty@1$kABSuffixMatch@15$kABSuffixMatchCaseInsensitive@16$kABWithinIntervalAroundToday@17$kABWithinIntervalAroundTodayYearless@18$kABWithinIntervalFromToday@21$kABWithinIntervalFromTodayYearless@22$kEventABPeoplePickerDisplayedPropertyChanged@4$kEventABPeoplePickerGroupDoubleClicked@5$kEventABPeoplePickerGroupSelectionChanged@1$kEventABPeoplePickerNameDoubleClicked@6$kEventABPeoplePickerNameSelectionChanged@2$kEventABPeoplePickerValueSelectionChanged@3$kEventClassABPeoplePicker@1633841264$kEventParamABPickerRef@1633841264$'''
 misc.update({})
 functions = {'ABMultiValueReplaceValue': (sel32or64('B^{__ABMultiValue=}@l', 'B^{__ABMultiValue=}@q'),), 'ABPickerSetDelegate': ('v^{OpaqueABPicker=}^{OpaqueHIObjectRef=}',), 'ABAddRecord': ('B^{__ABAddressBookRef=}@',), 'ABPickerClearSearchField': ('v^{OpaqueABPicker=}',), 'ABPickerSelectGroup': ('v^{OpaqueABPicker=}^{__ABGroup=}B',), 'ABCopyDefaultCountryCode': ('^{__CFString=}^{__ABAddressBookRef=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPickerGetAttributes': (sel32or64('L^{OpaqueABPicker=}', 'I^{OpaqueABPicker=}'),), 'ABSave': ('B^{__ABAddressBookRef=}',), 'ABPersonCreateWithVCardRepresentation': ('^{__ABPerson=}^{__CFData=}', '', {'retval': {'type': b'^{__ABPerson=}', 'already_cfretained': True}}), 'ABGroupAddMember': ('B^{__ABGroup=}^{__ABPerson=}',), 'ABPersonCreateSearchElement': (sel32or64('^{__ABSearchElementRef=}^{__CFString=}^{__CFString=}^{__CFString=}@l', '^{__ABSearchElementRef=}^{__CFString=}^{__CFString=}^{__CFString=}@q'), '', {'retval': {'type': b'^{__ABSearchElementRef=}', 'already_cfretained': True}}), 'ABMultiValueRemove': (sel32or64('B^{__ABMultiValue=}l', 'B^{__ABMultiValue=}q'),), 'ABSearchElementMatchesRecord': ('B^{__ABSearchElementRef=}@',), 'ABRecordCopyRecordType': ('^{__CFString=}@', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPickerSelectIdentifier': ('v^{OpaqueABPicker=}^{__ABPerson=}^{__CFString=}B',), 'ABMultiValueCopyPrimaryIdentifier': ('^{__CFString=}^{__ABMultiValue=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABMultiValueIndexForIdentifier': (sel32or64('l^{__ABMultiValue=}^{__CFString=}', 'q^{__ABMultiValue=}^{__CFString=}'),), 'ABPickerSelectRecord': ('v^{OpaqueABPicker=}@B',), 'ABMultiValueCreateMutableCopy': ('^{__ABMultiValue=}^{__ABMultiValue=}', '', {'retval': {'type': b'^{__ABMultiValue=}', 'already_cfretained': True}}), 'ABRecordRemoveValue': ('B@^{__CFString=}',), 'ABPickerCopySelectedGroups': ('^{__CFArray=}^{OpaqueABPicker=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABMultiValueCopyIdentifierAtIndex': (sel32or64('^{__CFString=}^{__ABMultiValue=}l', '^{__CFString=}^{__ABMultiValue=}q'), '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABCancelLoadingImageDataForTag': (sel32or64('vl', 'vq'),), 'ABCopyArrayOfMatchingRecords': ('^{__CFArray=}^{__ABAddressBookRef=}^{__ABSearchElementRef=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABPickerRemoveProperty': ('v^{OpaqueABPicker=}^{__CFString=}',), 'ABMultiValueCount': (sel32or64('l^{__ABMultiValue=}', 'q^{__ABMultiValue=}'),), 'ABPickerCopySelectedIdentifiers': ('^{__CFArray=}^{OpaqueABPicker=}^{__ABPerson=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABGroupCreate': ('^{__ABGroup=}', '', {'retval': {'type': b'^{__ABGroup=}', 'already_cfretained': True}}), 'ABMultiValueCreateCopy': ('^{__ABMultiValue=}^{__ABMultiValue=}', '', {'retval': {'type': b'^{__ABMultiValue=}', 'already_cfretained': True}}), 'ABMultiValueAdd': ('B^{__ABMultiValue=}@^{__CFString=}^^{__CFString}', '', {'arguments': {0: {'type': b'^{__ABMultiValue=}'}, 1: {'type': b'@'}, 2: {'type': b'^{__CFString=}'}, 3: {'type': b'^^{__CFString}', 'type_modifier': b'o'}}}), 'ABHasUnsavedChanges': ('B^{__ABAddressBookRef=}',), 'ABMultiValueReplaceLabel': (sel32or64('B^{__ABMultiValue=}^{__CFString=}l', 'B^{__ABMultiValue=}^{__CFString=}q'),), 'ABGroupCopyParentGroups': ('^{__CFArray=}^{__ABGroup=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABGroupSetDistributionIdentifier': ('B^{__ABGroup=}^{__ABPerson=}^{__CFString=}^{__CFString=}',), 'ABPickerDeselectRecord': ('v^{OpaqueABPicker=}@',), 'ABGroupCreateSearchElement': (sel32or64('^{__ABSearchElementRef=}^{__CFString=}^{__CFString=}^{__CFString=}@l', '^{__ABSearchElementRef=}^{__CFString=}^{__CFString=}^{__CFString=}@q'), '', {'retval': {'type': b'^{__ABSearchElementRef=}', 'already_cfretained': True}}), 'ABCopyRecordTypeFromUniqueId': ('^{__CFString=}^{__ABAddressBookRef=}^{__CFString=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABRemoveRecord': ('B^{__ABAddressBookRef=}@',), 'ABGroupCopyDistributionIdentifier': ('^{__CFString=}^{__ABGroup=}^{__ABPerson=}^{__CFString=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPersonCopyImageData': ('^{__CFData=}^{__ABPerson=}', '', {'retval': {'type': b'^{__CFData=}', 'already_cfretained': True}}), 'ABPickerDeselectGroup': ('v^{OpaqueABPicker=}^{__ABGroup=}',), 'ABGroupRemoveGroup': ('B^{__ABGroup=}^{__ABGroup=}',), 'ABRemoveProperties': (sel32or64('l^{__ABAddressBookRef=}^{__CFString=}^{__CFArray=}', 'q^{__ABAddressBookRef=}^{__CFString=}^{__CFArray=}'),), 'ABGroupCopyArrayOfAllSubgroups': ('^{__CFArray=}^{__ABGroup=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABMultiValueCreate': ('^{__ABMultiValue=}', '', {'retval': {'type': b'^{__ABMultiValue=}', 'already_cfretained': True}}), 'ABPickerSelectInAddressBook': ('v^{OpaqueABPicker=}',), 'ABGroupCopyArrayOfAllMembers': ('^{__CFArray=}^{__ABGroup=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABSearchElementCreateWithConjunction': (sel32or64('^{__ABSearchElementRef=}l^{__CFArray=}', '^{__ABSearchElementRef=}q^{__CFArray=}'), '', {'retval': {'type': b'^{__ABSearchElementRef=}', 'already_cfretained': True}}), 'ABMultiValueCopyValueAtIndex': (sel32or64('@^{__ABMultiValue=}l', '@^{__ABMultiValue=}q'), '', {'retval': {'type': b'@', 'already_cfretained': True}}), 'ABPersonSetImageData': ('B^{__ABPerson=}^{__CFData=}',), 'ABCreateFormattedAddressFromDictionary': ('^{__CFString=}^{__ABAddressBookRef=}^{__CFDictionary=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABRecordSetValue': ('B@^{__CFString=}@',), 'ABPickerGetDelegate': ('^{OpaqueHIObjectRef=}^{OpaqueABPicker=}',), 'ABPersonCreate': ('^{__ABPerson=}', '', {'retval': {'type': b'^{__ABPerson=}', 'already_cfretained': True}}), 'ABCopyArrayOfAllPeople': ('^{__CFArray=}^{__ABAddressBookRef=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABPickerCopyProperties': ('^{__CFArray=}^{OpaqueABPicker=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABMultiValueSetPrimaryIdentifier': ('B^{__ABMultiValue=}^{__CFString=}',), 'ABPickerCopyDisplayedProperty': ('^{__CFString=}^{OpaqueABPicker=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPickerCopySelectedRecords': ('^{__CFArray=}^{OpaqueABPicker=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABGroupAddGroup': ('B^{__ABGroup=}^{__ABGroup=}',), 'ABLocalizedPropertyOrLabel': ('@@', '', {'retval': {'type': b'@', 'already_cfretained': True}}), 'ABMultiValueCreateMutable': ('^{__ABMultiValue=}', '', {'retval': {'type': b'^{__ABMultiValue=}', 'already_cfretained': True}}), 'ABRecordCreateCopy': ('@@', '', {'retval': {'type': b'@', 'already_cfretained': True}}), 'ABGetMe': ('^{__ABPerson=}^{__ABAddressBookRef=}',), 'ABPickerSetFrame': (sel32or64('v^{OpaqueABPicker=}^{_NSRect={_NSPoint=ff}{_NSSize=ff}}', 'v^{OpaqueABPicker=}^{CGRect={CGPoint=dd}{CGSize=dd}}'), '', {'arguments': {0: {'type': b'^{OpaqueABPicker=}'}, 1: {'type': sel32or64(b'^{_NSRect={_NSPoint=ff}{_NSSize=ff}}', b'^{CGRect={CGPoint=dd}{CGSize=dd}}'), 'type_modifier': b'n'}}}), 'ABAddPropertiesAndTypes': (sel32or64('l^{__ABAddressBookRef=}^{__CFString=}^{__CFDictionary=}', 'q^{__ABAddressBookRef=}^{__CFString=}^{__CFDictionary=}'),), 'ABCopyRecordForUniqueId': ('@^{__ABAddressBookRef=}^{__CFString=}', '', {'retval': {'type': b'@', 'already_cfretained': True}}), 'ABSetMe': ('v^{__ABAddressBookRef=}^{__ABPerson=}',), 'ABRecordCopyValue': ('@@^{__CFString=}', '', {'retval': {'type': b'@', 'already_cfretained': True}}), 'ABTypeOfProperty': (sel32or64('l^{__ABAddressBookRef=}^{__CFString=}^{__CFString=}', 'q^{__ABAddressBookRef=}^{__CFString=}^{__CFString=}'),), 'ABMultiValueInsert': (sel32or64('B^{__ABMultiValue=}@^{__CFString=}l^^{__CFString}', 'B^{__ABMultiValue=}@^{__CFString=}q^^{__CFString}'), '', {'arguments': {0: {'type': b'^{__ABMultiValue=}'}, 1: {'type': b'@'}, 2: {'type': b'^{__CFString=}'}, 3: {'type': sel32or64(b'l', b'q')}, 4: {'type': b'^^{__CFString}', 'type_modifier': b'o'}}}), 'ABPickerAddProperty': ('v^{OpaqueABPicker=}^{__CFString=}',), 'ABMultiValueCopyLabelAtIndex': (sel32or64('^{__CFString=}^{__ABMultiValue=}l', '^{__CFString=}^{__ABMultiValue=}q'), '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPickerChangeAttributes': ('v^{OpaqueABPicker=}LL',), 'ABPickerDeselectAll': ('v^{OpaqueABPicker=}',), 'ABBeginLoadingImageDataForClient': (sel32or64('l^{__ABPerson=}^?^v', 'q^{__ABPerson=}^?^v'), '', {'arguments': {0: {'type': b'^{__ABPerson=}'}, 1: {'callable': {'retval': {'type': b'^v'}, 'arguments': {0: {'type': b'@'}, 1: {'type': sel32or64(b'l', b'q')}, 2: {'type': b'^v'}}}, 'type': b'^?'}, 2: {'type': b'^v'}}}), 'ABGetSharedAddressBook': ('^{__ABAddressBookRef=}',), 'ABRecordIsReadOnly': ('B@',), 'ABPickerIsVisible': ('B^{OpaqueABPicker=}',), 'ABRecordCopyUniqueId': ('^{__CFString=}@', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABCopyArrayOfAllGroups': ('^{__CFArray=}^{__ABAddressBookRef=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABPickerCreate': ('^{OpaqueABPicker=}', '', {'retval': {'type': b'^{OpaqueABPicker=}', 'already_cfretained': True}}), 'ABGroupRemoveMember': ('B^{__ABGroup=}^{__ABPerson=}',), 'ABPickerDeselectIdentifier': ('v^{OpaqueABPicker=}^{__ABPerson=}^{__CFString=}',), 'ABPickerSetColumnTitle': ('v^{OpaqueABPicker=}^{__CFString=}^{__CFString=}',), 'ABPickerCopySelectedValues': ('^{__CFArray=}^{OpaqueABPicker=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABPickerGetFrame': (sel32or64('v^{OpaqueABPicker=}^{_NSRect={_NSPoint=ff}{_NSSize=ff}}', 'v^{OpaqueABPicker=}^{CGRect={CGPoint=dd}{CGSize=dd}}'), '', {'arguments': {0: {'type': b'^{OpaqueABPicker=}'}, 1: {'type': sel32or64(b'^{_NSRect={_NSPoint=ff}{_NSSize=ff}}', b'^{CGRect={CGPoint=dd}{CGSize=dd}}'), 'type_modifier': b'o'}}}), 'ABMultiValuePropertyType': (sel32or64('l^{__ABMultiValue=}', 'q^{__ABMultiValue=}'),), 'ABPersonCopyVCardRepresentation': ('^{__CFData=}^{__ABPerson=}', '', {'retval': {'type': b'^{__CFData=}', 'already_cfretained': True}}), 'ABCopyArrayOfPropertiesForRecordType': ('^{__CFArray=}^{__ABAddressBookRef=}^{__CFString=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABPickerCopyColumnTitle': ('^{__CFString=}^{OpaqueABPicker=}^{__CFString=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPickerSetVisibility': ('v^{OpaqueABPicker=}B',), 'ABPersonCopyParentGroups': ('^{__CFArray=}^{__ABPerson=}', '', {'retval': {'type': b'^{__CFArray=}', 'already_cfretained': True}}), 'ABCopyLocalizedPropertyOrLabel': ('^{__CFString=}^{__CFString=}', '', {'retval': {'type': b'^{__CFString=}', 'already_cfretained': True}}), 'ABPickerEditInAddressBook': ('v^{OpaqueABPicker=}',), 'ABPickerSetDisplayedProperty': ('v^{OpaqueABPicker=}^{__CFString=}',)}
 cftypes = []
 try:
     pass
     r('ABAddressBook', b'addRecord:', {'retval': {'type': b'Z'}})
+    r('ABAddressBook', b'addRecord:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
     r('ABAddressBook', b'hasUnsavedChanges', {'retval': {'type': b'Z'}})
     r('ABAddressBook', b'removeRecord:', {'retval': {'type': b'Z'}})
+    r('ABAddressBook', b'removeRecord:error:', {'retval': {'type': b'Z'}, 'arguments': {3: {'type_modifier': b'o'}}})
     r('ABAddressBook', b'save', {'retval': {'type': b'Z'}})
     r('ABAddressBook', b'saveAndReturnError:', {'retval': {'type': b'Z'}, 'arguments': {2: {'type_modifier': b'o'}}})
     r('ABGroup', b'addMember:', {'retval': {'type': b'Z'}})
     r('ABRecord', b'isReadOnly', {'retval': {'type': b'Z'}})
     r('ABRecord', b'removeValueForProperty:', {'retval': {'type': b'Z'}})
     r('ABRecord', b'setValue:forProperty:', {'retval': {'type': b'Z'}})
+    r('ABRecord', b'setValue:forProperty:error:', {'retval': {'type': b'Z'}, 'arguments': {4: {'type_modifier': b'o'}}})
     r('ABSearchElement', b'matchesRecord:', {'retval': {'type': b'Z'}})
     r('NSObject', b'shouldEnableActionForPerson:identifier:', {'retval': {'type': b'Z'}})
+    r('ABPersonView', b'editing', {'retval': {'type': b'Z'}})
+    r('ABPersonView', b'setEditing:', {'arguments': {2: {'type': b'Z'}}})
 finally:
     objc._updatingMetadata(False)
 protocols={'ABActionDelegate': objc.informal_protocol('ABActionDelegate', [objc.selector(None, 'actionProperty', '@@:', isRequired=False), objc.selector(None, 'performActionForPerson:identifier:', 'v@:@@', isRequired=False), objc.selector(None, 'shouldEnableActionForPerson:identifier:', 'Z@:@@', isRequired=False), objc.selector(None, 'titleForPerson:identifier:', '@@:@@', isRequired=False)])}

File pyobjc-framework-AddressBook/PyObjCTest/test_abaddressbook.py

     def testMethods(self):
         self.assertResultIsBOOL(ABAddressBook.save)
         self.assertResultIsBOOL(ABAddressBook.hasUnsavedChanges)
+        self.assertResultIsBOOL(ABAddressBook.addRecord_)
+        self.assertResultIsBOOL(ABAddressBook.removeRecord_)
 
     @min_os_level('10.5')
     def testMethods10_5(self):
         self.assertResultIsBOOL(ABAddressBook.saveAndReturnError_)
         self.assertArgIsOut(ABAddressBook.saveAndReturnError_, 0)
 
+    @min_os_level('10.7')
+    def testMethods10_5(self):
+        self.assertResultIsBOOL(ABAddressBook.addRecord_error_)
+        self.assertArgIsOut(ABAddressBook.addRecord_error_, 1)
+        self.assertResultIsBOOL(ABAddressBook.removeRecord_error_)
+        self.assertArgIsOut(ABAddressBook.removeRecord_error_, 1)
+
+    def testConstants(self):
+        self.assertEqual(ABAddRecordsError, 1001)
+        self.assertEqual(ABRemoveRecordsError, 1002)
+        self.assertEqual(ABPropertyValueValidationError, 1012)
+        self.assertEqual(ABPropertyUnsupportedBySourceError, 1013)
+        self.assertEqual(ABPropertyReadOnlyError, 1014)
+
+    @min_os_level('10.7')
+    def testConstants10_7(self):
+        self.assertIsInstance(ABAddressBookErrorDomain, unicode)
+        self.assertIsInstance(ABMultiValueIdentifiersErrorKey, unicode)
+
+
+
 if __name__ == "__main__":
     main()

File pyobjc-framework-AddressBook/PyObjCTest/test_abglobals.py

 from AddressBook import *
 
 class TestABGlobals (TestCase):
-    @min_os_level('10.5')
-    def testConstants10_5(self):
-          self.assertIsInstance(kABCalendarURIsProperty, unicode)
+    @min_os_level('10.7')
+    def testConstants10_7(self):
+        self.assertIsInstance(kABMobileMeLabel, unicode)
+        self.assertIsInstance(kABBirthdayComponentsProperty, unicode)
+        self.assertIsInstance(kABOtherDateComponentsProperty, unicode)
+        self.assertIsInstance(kABInstantMessageProperty, unicode)
+        self.assertIsInstance(kABInstantMessageUsernameKey, unicode)
+        self.assertIsInstance(kABInstantMessageServiceKey, unicode)
+        self.assertIsInstance(kABInstantMessageServiceAIM, unicode)
+        self.assertIsInstance(kABInstantMessageServiceFacebook, unicode)
+        self.assertIsInstance(kABInstantMessageServiceGaduGadu, unicode)
+        self.assertIsInstance(kABInstantMessageServiceGoogleTalk, unicode)
+        self.assertIsInstance(kABInstantMessageServiceICQ, unicode)
+        self.assertIsInstance(kABInstantMessageServiceJabber, unicode)
+        self.assertIsInstance(kABInstantMessageServiceMSN, unicode)
+        self.assertIsInstance(kABInstantMessageServiceQQ, unicode)
+        self.assertIsInstance(kABInstantMessageServiceSkype, unicode)
+        self.assertIsInstance(kABInstantMessageServiceYahoo, unicode)
+        self.assertIsInstance(kABSocialProfileProperty, unicode)
+        self.assertIsInstance(kABSocialProfileURLKey, unicode)
+        self.assertIsInstance(kABSocialProfileUsernameKey, unicode)
+        self.assertIsInstance(kABSocialProfileUserIdentifierKey, unicode)
+        self.assertIsInstance(kABSocialProfileServiceKey, unicode)
+        self.assertIsInstance(kABSocialProfileServiceTwitter, unicode)
+        self.assertIsInstance(kABSocialProfileServiceFacebook, unicode)
+        self.assertIsInstance(kABSocialProfileServiceLinkedIn, unicode)
+        self.assertIsInstance(kABSocialProfileServiceFlickr, unicode)
+        self.assertIsInstance(kABSocialProfileServiceMySpace, unicode)
 
     @min_os_level('10.6')
     def testConstants10_6(self):
           self.assertEqual(kABShowAsResource, 2)
           self.assertEqual(kABShowAsRoom, 3)
 
+    @min_os_level('10.5')
+    def testConstants10_5(self):
+          self.assertIsInstance(kABCalendarURIsProperty, unicode)
+
+    @expectedFailure
+    def testConstants_10_7_broken(self):
+        self.assertIsInstance(kABEmailMobileMeLabel, unicode)
+        self.assertIsInstance(kABAIMMobileMeLabel, unicode)
+
     def testConstants(self):
         self.assertEqual(kABShowAsMask, 07)
         self.assertEqual(kABShowAsPerson, 00)
         self.assertIsInstance(kABNicknameProperty, unicode)
         self.assertIsInstance(kABMaidenNameProperty, unicode)
         self.assertIsInstance(kABBirthdayProperty, unicode)
+
         self.assertIsInstance(kABOrganizationProperty, unicode)
         self.assertIsInstance(kABJobTitleProperty, unicode)
         self.assertIsInstance(kABHomePageProperty, unicode)

File pyobjc-framework-AddressBook/PyObjCTest/test_abgroup.py

+from PyObjCTools.TestSupport import *
+import AddressBook
+
+class TestABGroup (TestCase):
+    def testMethods(self):
+        self.assertResultIsBOOL(AddressBook.ABGroup.addMember_)
+        self.assertResultIsBOOL(AddressBook.ABGroup.removeMember_)
+        self.assertResultIsBOOL(AddressBook.ABGroup.addSubgroup_)
+        self.assertResultIsBOOL(AddressBook.ABGroup.removeSubgroup_)
+        self.assertResultIsBOOL(AddressBook.ABGroup.setDistributionIdentifier_forProperty_person_)
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-AddressBook/PyObjCTest/test_abimageloading.py

+from PyObjCTools.TestSupport import *
+import AddressBook
+
+class TestABImageLoading (TestCase):
+    def test_methods(self):
+        self.assertResultIsBOOL(AddressBook.ABPerson.setImageData_)
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-AddressBook/PyObjCTest/test_abmultivalue.py

+from PyObjCTools.TestSupport import *
+import AddressBook
+
+class TestABMutableMultiValue (TestCase):
+    def testMethods(self):
+        self.assertResultIsBOOL(AddressBook.ABMutableMultiValue.removeValueAndLabelAtIndex_)
+        self.assertResultIsBOOL(AddressBook.ABMutableMultiValue.replaceValueAtIndex_withValue_)
+        self.assertResultIsBOOL(AddressBook.ABMutableMultiValue.replaceLabelAtIndex_withLabel_)
+        self.assertResultIsBOOL(AddressBook.ABMutableMultiValue.setPrimaryIdentifier_)
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-AddressBook/PyObjCTest/test_abpeoplepickerview.py

         self.assertArgIsBOOL(ABPeoplePickerView.selectRecord_byExtendingSelection_, 1)
         self.assertArgIsBOOL(ABPeoplePickerView.selectIdentifier_forPerson_byExtendingSelection_, 2)
 
+        self.assertResultIsBOOL(ABPeoplePickerView.allowsGroupSelection)
+        self.assertArgIsBOOL(ABPeoplePickerView.setAllowsGroupSelection_, 0)
+        self.assertResultIsBOOL(ABPeoplePickerView.allowsMultipleSelection)
+        self.assertArgIsBOOL(ABPeoplePickerView.setAllowsMultipleSelection_, 0)
+
+        self.assertArgIsSEL(ABPeoplePickerView.setGroupDoubleAction_, 0, 'v@:@')
+        self.assertArgIsSEL(ABPeoplePickerView.setNameDoubleAction_, 0, 'v@:@')
+
+
+
 if __name__ == "__main__":
     main()

File pyobjc-framework-AddressBook/PyObjCTest/test_abpersonview.py

+from PyObjCTools.TestSupport import *
+import AddressBook
+
+class TestABPersonView (TestCase):
+    @min_os_level('10.7')
+    def testMethods(self):
+        self.assertResultIsBOOL(AddressBook.ABPersonView.editing)
+        self.assertArgIsBOOL(AddressBook.ABPersonView.setEditing_, 0)
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-AddressBook/PyObjCTest/test_abrecord.py

 from AddressBook import *
 
 class TestABRecord (TestCase):
+    @min_os_level('10.7')
+    def testMethods10_7(self):
+        self.assertResultIsBOOL(ABRecord.setValue_forProperty_error_)
+        self.assertArgIsOut(ABRecord.setValue_forProperty_error_, 2)
+
     def testMethods(self):
         self.assertResultIsBOOL(ABRecord.setValue_forProperty_)
         self.assertResultIsBOOL(ABRecord.removeValueForProperty_)

File pyobjc-framework-AddressBook/PyObjCTest/test_abtypedefs.py

         self.assertEqual(kABArrayProperty, 0x5)
         self.assertEqual(kABDictionaryProperty, 0x6)
         self.assertEqual(kABDataProperty, 0x7)
+        self.assertEqual(kABDateComponentsProperty, 0x8)
+
         self.assertEqual(kABMultiStringProperty, kABMultiValueMask | kABStringProperty)
         self.assertEqual(kABMultiIntegerProperty, kABMultiValueMask | kABIntegerProperty)
         self.assertEqual(kABMultiRealProperty, kABMultiValueMask | kABRealProperty)
         self.assertEqual(kABMultiArrayProperty, kABMultiValueMask | kABArrayProperty)
         self.assertEqual(kABMultiDictionaryProperty, kABMultiValueMask | kABDictionaryProperty)
         self.assertEqual(kABMultiDataProperty, kABMultiValueMask | kABDataProperty)
+        self.assertEqual(kABMultiDateComponentsProperty, kABMultiValueMask | kABDateComponentsProperty)
 
         self.assertEqual(kABEqual, 0)
         self.assertEqual(kABNotEqual, 1)