Changeset 24921
- Timestamp:
- 08/24/2008 01:08:28 PM (5 months ago)
- Files:
-
- trunk/Frameworks/Adium Framework/Resources/en.lproj/Buttons.strings (added)
- trunk/Frameworks/Adium Framework/Source/AIAccountControllerProtocol.h (modified) (3 diffs)
- trunk/Frameworks/Adium Framework/Source/AIAccountPlusFieldPromptController.m (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AIAddressBookUserIconSource.m (modified) (2 diffs)
- trunk/Frameworks/Adium Framework/Source/AIChatControllerProtocol.h (modified) (2 diffs)
- trunk/Frameworks/Adium Framework/Source/AIContactObserverManager.m (modified) (3 diffs)
- trunk/Frameworks/Adium Framework/Source/AIDebugControllerProtocol.h (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AIHTMLDecoder.m (modified) (8 diffs)
- trunk/Frameworks/Adium Framework/Source/AIIconState.m (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AIInterfaceControllerProtocol.h (modified) (5 diffs)
- trunk/Frameworks/Adium Framework/Source/AILoginControllerProtocol.h (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AIMenuControllerProtocol.h (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AIMessageEntryTextView.m (modified) (5 diffs)
- trunk/Frameworks/Adium Framework/Source/AIModularPaneCategoryView.m (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AISoundControllerProtocol.h (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/AIStatusIcons.m (modified) (1 diff)
- trunk/Frameworks/Adium Framework/Source/DCJoinChatWindowController.m (modified) (1 diff)
- trunk/Plugins/Contact Status Dock Overlays/AIContactStatusDockOverlaysPlugin.m (modified) (1 diff)
- trunk/Plugins/Dual Window Interface/AIAccountSelectionView.m (modified) (1 diff)
- trunk/Plugins/Dual Window Interface/AIDualWindowInterfacePlugin.m (modified) (2 diffs)
- trunk/Plugins/Dual Window Interface/AIMessageWindowController.m (modified) (2 diffs)
- trunk/Plugins/Facebook Service/AIFacebookAccount.m (modified) (1 diff)
- trunk/Plugins/Facebook Service/AIFacebookIncomingMessageManager.m (modified) (1 diff)
- trunk/Plugins/Purple Service/adiumPurpleCore.m (modified) (3 diffs)
- trunk/Plugins/Purple Service/adiumPurpleSignals.m (modified) (1 diff)
- trunk/Plugins/Purple Service/CBPurpleAccount.m (modified) (1 diff)
- trunk/Plugins/Purple Service/SLPurpleCocoaAdapter.m (modified) (2 diffs)
- trunk/Plugins/Send Message Contact Alert/ESSendMessageAlertDetailPane.m (modified) (1 diff)
- trunk/Plugins/Status Menu Item/CBStatusMenuItemController.m (modified) (3 diffs)
- trunk/Plugins/WebKit Message View/AIWebkitMessageViewStyle.m (modified) (1 diff)
- trunk/Plugins/WebKit Message View/ESWebKitMessageViewPreferences.m (modified) (2 diffs)
- trunk/Source/AdiumAccounts.m (modified) (1 diff)
- trunk/Source/AdiumContentFiltering.m (modified) (5 diffs)
- trunk/Source/AdiumOTREncryption.m (modified) (3 diffs)
- trunk/Source/AdiumPreferredAccounts.m (modified) (3 diffs)
- trunk/Source/AdiumServices.m (modified) (4 diffs)
- trunk/Source/AdiumSoundSets.m (modified) (1 diff)
- trunk/Source/AIAbstractLogViewerWindowController.m (modified) (10 diffs)
- trunk/Source/AIAccountController.m (modified) (3 diffs)
- trunk/Source/AIAccountListPreferences.m (modified) (7 diffs)
- trunk/Source/AIAdium.m (modified) (5 diffs)
- trunk/Source/AIAdvancedInspectorPane.m (modified) (1 diff)
- trunk/Source/AIAnimatingListOutlineView.m (modified) (5 diffs)
- trunk/Source/AIAppearancePreferencesPlugin.m (modified) (4 diffs)
- trunk/Source/AIChatController.m (modified) (4 diffs)
- trunk/Source/AIContactController.m (modified) (20 diffs)
- trunk/Source/AIContactHidingController.m (modified) (1 diff)
- trunk/Source/AIContactListEditorPlugin.m (modified) (1 diff)
- trunk/Source/AIContactSortSelectionPlugin.m (modified) (2 diffs)
- trunk/Source/AIContactStatusColoringPlugin.m (modified) (1 diff)
- trunk/Source/AIDockAccountStatusPlugin.m (modified) (2 diffs)
- trunk/Source/AIDockIconSelectionSheet.m (modified) (1 diff)
- trunk/Source/AIEmoticonController.m (modified) (11 diffs)
- trunk/Source/AIInfoInspectorPane.m (modified) (3 diffs)
- trunk/Source/AIInterfaceController.m (modified) (10 diffs)
- trunk/Source/AILogFromGroup.m (modified) (1 diff)
- trunk/Source/AILoggerPlugin.m (modified) (6 diffs)
- trunk/Source/AILogToGroup.m (modified) (2 diffs)
- trunk/Source/AIMenuBarIcons.m (modified) (1 diff)
- trunk/Source/AIMenuController.m (modified) (1 diff)
- trunk/Source/AINewContactWindowController.m (modified) (2 diffs)
- trunk/Source/AINewMessagePanelPlugin.m (modified) (1 diff)
- trunk/Source/AIPreferenceController.m (modified) (1 diff)
- trunk/Source/AISCLViewPlugin.m (modified) (3 diffs)
- trunk/Source/AIStandardListWindowController.m (modified) (3 diffs)
- trunk/Source/AIStateMenuPlugin.m (modified) (1 diff)
- trunk/Source/AIStatusController.m (modified) (19 diffs)
- trunk/Source/AIStatusIconPreviewController.m (modified) (1 diff)
- trunk/Source/AIXMLChatlogConverter.m (modified) (1 diff)
- trunk/Source/AIXtrasManager.m (modified) (2 diffs)
- trunk/Source/BGEmoticonMenuPlugin.m (modified) (1 diff)
- trunk/Source/DCJoinChatPanelPlugin.m (modified) (1 diff)
- trunk/Source/ESAccountNetworkConnectivityPlugin.m (modified) (9 diffs)
- trunk/Source/ESContactAlertsController.m (modified) (11 diffs)
- trunk/Source/ESDebugWindowController.m (modified) (2 diffs)
- trunk/Source/ESEventSoundAlertDetailPane.m (modified) (1 diff)
- trunk/Source/ESFileTransferMessagesPlugin.m (modified) (2 diffs)
- trunk/Source/ESGlobalEventsPreferencesPlugin.m (modified) (2 diffs)
- trunk/Source/ESUserIconHandlingPlugin.m (modified) (1 diff)
- trunk/Source/GBApplescriptFiltersPlugin.m (modified) (5 diffs)
- trunk/Source/OWABSearchWindowController.m (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Frameworks/Adium Framework/Source/AIAccountControllerProtocol.h
r24691 r24921 48 48 * @return NSArray of AIService instances 49 49 */ 50 - (NSArray *)services;50 @property (nonatomic, readonly) NSArray *services; 51 51 52 52 /*! … … 144 144 145 145 #pragma mark Accounts 146 - (NSArray *)accounts;146 @property (nonatomic, readonly) NSArray *accounts; 147 147 - (NSArray *)accountsCompatibleWithService:(AIService *)service; 148 148 - (NSArray *)accountsWithCurrentStatus:(AIStatus *)status; … … 159 159 //Connection convenience methods 160 160 - (void)disconnectAllAccounts; 161 - (BOOL)oneOrMoreConnectedAccounts;162 - (BOOL)oneOrMoreConnectedOrConnectingAccounts;161 @property (nonatomic, readonly) BOOL oneOrMoreConnectedAccounts; 162 @property (nonatomic, readonly) BOOL oneOrMoreConnectedOrConnectingAccounts; 163 163 164 164 /*! trunk/Frameworks/Adium Framework/Source/AIAccountPlusFieldPromptController.m
r24898 r24921 209 209 { 210 210 //First online account in our list 211 NSEnumerator *enumerator = [[adium.accountController accounts] objectEnumerator];212 211 AIAccount *preferredAccount; 213 while ((preferredAccount = [enumerator nextObject])) {214 if ( [preferredAccount online])212 for (preferredAccount in adium.accountController.accounts) { 213 if (preferredAccount.online) 215 214 break; 216 215 } trunk/Frameworks/Adium Framework/Source/AIAddressBookUserIconSource.m
r24798 r24921 69 69 */ 70 70 if ([inObject isKindOfClass:[AIMetaContact class]]) { 71 NSEnumerator *enumerator = [[(AIMetaContact *)inObject listContacts] objectEnumerator]; 72 AIListContact *listContact; 73 while ((listContact = [enumerator nextObject])) { 71 for (AIListContact *listContact in ((AIMetaContact *)inObject).listContacts) { 74 72 if (![AIUserIcons userIconSource:self changeWouldBeRelevantForObject:listContact]) 75 73 return AIUserIconSourceDidNotFindIcon; … … 159 157 160 158 } else /*if ([setOrObject isKindOfClass:[NSSet class]])*/{ 161 NSEnumerator *enumerator;162 163 159 //Apply the image to each listObject at the appropriate priority 164 enumerator = [(NSSet *)setOrObject objectEnumerator]; 165 while ((listObject = [enumerator nextObject])) { 160 for (AIListObject *listObject in (NSSet *)setOrObject) { 166 161 [AIUserIcons userIconSource:self 167 162 didDetermineUserIcon:image trunk/Frameworks/Adium Framework/Source/AIChatControllerProtocol.h
r24691 r24921 20 20 @protocol AIChatController <AIController, AIChatController_Private> 21 21 //Chats 22 - (AIChat *)mostRecentUnviewedChat;23 22 - (NSSet *)allChatsWithContact:(AIListContact *)inContact; 24 23 - (AIChat *)openChatWithContact:(AIListContact *)inContact onPreferredAccount:(BOOL)onPreferredAccount; … … 37 36 - (void)accountDidCloseChat:(AIChat *)inChat; 38 37 39 - (NSSet *)openChats; 40 - (AIChat *)mostRecentUnviewedChat; 41 - (NSUInteger)unviewedContentCount; 42 - (NSUInteger)unviewedConversationCount; 38 //XXX Don't modify openChats. Why do we have to have its type match the ivar's type? Ugh. 39 @property (nonatomic, readonly) NSMutableSet *openChats; 40 @property (nonatomic, readonly) AIChat *mostRecentUnviewedChat; 41 @property (nonatomic, readonly) NSUInteger unviewedContentCount; 42 @property (nonatomic, readonly) NSUInteger unviewedConversationCount; 43 43 44 - (void)switchChat:(AIChat *)chat toAccount:(AIAccount *)newAccount; 44 45 - (void)switchChat:(AIChat *)chat toListContact:(AIListContact *)inContact usingContactAccount:(BOOL)useContactAccount; trunk/Frameworks/Adium Framework/Source/AIContactObserverManager.m
r24811 r24921 274 274 - (void)updateContacts:(NSSet *)contacts forObserver:(id <AIListObjectObserver>)inObserver 275 275 { 276 NSEnumerator *enumerator;277 AIListObject *listObject;278 279 276 [self delayListObjectNotifications]; 280 277 281 enumerator = (contacts ? [contacts objectEnumerator] : [(AIContactController *)adium.contactController contactEnumerator]); 282 while ((listObject = [enumerator nextObject])) { 278 for (AIListObject *listObject in (contacts ? [contacts objectEnumerator] : [(AIContactController *)adium.contactController contactEnumerator])) { 283 279 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 284 280 NSSet *attributes = [inObserver updateListObject:listObject keys:nil silent:YES]; … … 303 299 - (void)updateAllListObjectsForObserver:(id <AIListObjectObserver>)inObserver 304 300 { 305 NSEnumerator *enumerator;306 AIListObject *listObject;307 308 301 [self delayListObjectNotifications]; 309 302 … … 312 305 313 306 //Reset all groups 314 enumerator = [(AIContactController *)adium.contactController groupEnumerator]; 315 while ((listObject = [enumerator nextObject])) { 316 NSSet *attributes = [inObserver updateListObject:listObject keys:nil silent:YES]; 317 if (attributes) [self listObjectAttributesChanged:listObject modifiedKeys:attributes]; 307 for (AIListGroup *listGroup in [(AIContactController *)adium.contactController groupEnumerator]) { 308 NSSet *attributes = [inObserver updateListObject:listGroup keys:nil silent:YES]; 309 if (attributes) [self listObjectAttributesChanged:listGroup modifiedKeys:attributes]; 318 310 } 319 311 320 312 //Reset all accounts 321 enumerator = [[adium.accountController accounts] objectEnumerator]; 322 while ((listObject = [enumerator nextObject])) { 323 NSSet *attributes = [inObserver updateListObject:listObject keys:nil silent:YES]; 324 if (attributes) [self listObjectAttributesChanged:listObject modifiedKeys:attributes]; 313 for (AIAccount *account in adium.accountController.accounts) { 314 NSSet *attributes = [inObserver updateListObject:account keys:nil silent:YES]; 315 if (attributes) [self listObjectAttributesChanged:account modifiedKeys:attributes]; 325 316 } 326 317 trunk/Frameworks/Adium Framework/Source/AIDebugControllerProtocol.h
r17134 r24921 12 12 #ifdef DEBUG_BUILD 13 13 - (void)addMessage:(NSString *)actualMessage; 14 - (NSArray *)debugLogArray;14 @property (nonatomic, readonly) NSArray *debugLogArray; 15 15 - (void)clearDebugLogArray; 16 16 #endif trunk/Frameworks/Adium Framework/Source/AIHTMLDecoder.m
r24783 r24921 966 966 addElementContentToTopElement = NO; 967 967 968 NSEnumerator *startedKeysEnum = [startedKeysArray objectEnumerator]; 969 NSArray *item; 970 while ((item = [startedKeysEnum nextObject])) { 968 for (NSArray *item in startedKeysArray) { 971 969 NSSet *itemKeys = [item objectAtIndex:1]; 972 970 … … 1431 1429 1432 1430 - (void)restoreAttributesFromDict:(NSDictionary *)inAttributes intoAttributes:(AITextAttributes *)textAttributes 1433 { 1434 NSEnumerator *enumerator = [inAttributes keyEnumerator]; 1435 NSString *key; 1436 1437 while ((key = [enumerator nextObject])) { 1431 { 1432 for (NSString *key in inAttributes) { 1438 1433 id value = [inAttributes objectForKey:key]; 1439 1434 SEL selector = NSSelectorFromString(key); … … 1448 1443 - (NSDictionary *)processFontTagArgs:(NSDictionary *)inArgs attributes:(AITextAttributes *)textAttributes 1449 1444 { 1450 NSEnumerator *enumerator;1451 NSString *arg;1452 1445 NSMutableDictionary *originalAttributes = [NSMutableDictionary dictionary]; 1453 1446 1454 enumerator = [[inArgs allKeys] objectEnumerator]; 1455 while ((arg = [enumerator nextObject])) { 1447 for (NSString *arg in inArgs) { 1456 1448 if ([arg caseInsensitiveCompare:@"face"] == NSOrderedSame) { 1457 1449 [originalAttributes setObject:([textAttributes fontFamily] ? (id)[textAttributes fontFamily] : (id)[NSNull null]) … … 1521 1513 - (void)processBodyTagArgs:(NSDictionary *)inArgs attributes:(AITextAttributes *)textAttributes 1522 1514 { 1523 NSEnumerator *enumerator; 1524 NSString *arg; 1525 1526 enumerator = [[inArgs allKeys] objectEnumerator]; 1527 while ((arg = [enumerator nextObject])) { 1515 for (NSString *arg in inArgs) { 1528 1516 if ([arg caseInsensitiveCompare:@"bgcolor"] == NSOrderedSame) { 1529 1517 [textAttributes setBackgroundColor:[NSColor colorWithHTMLString:[inArgs objectForKey:arg] defaultColor:[NSColor whiteColor]]]; … … 1534 1522 - (NSDictionary *)processSpanTagArgs:(NSDictionary *)inArgs attributes:(AITextAttributes *)textAttributes 1535 1523 { 1536 NSEnumerator *enumerator;1537 NSString *arg;1538 1524 NSMutableDictionary *originalAttributes = [NSMutableDictionary dictionary]; 1539 1525 1540 enumerator = [[inArgs allKeys] objectEnumerator]; 1541 while ((arg = [enumerator nextObject])) { 1526 for (NSString *arg in inArgs) { 1542 1527 if ([arg caseInsensitiveCompare:@"class"] == NSOrderedSame) { 1543 1528 //Process the span tag if it's in a log … … 1747 1732 - (void)processLinkTagArgs:(NSDictionary *)inArgs attributes:(AITextAttributes *)textAttributes 1748 1733 { 1749 NSEnumerator *enumerator; 1750 NSString *arg; 1751 1752 enumerator = [[inArgs allKeys] objectEnumerator]; 1753 while ((arg = [enumerator nextObject])) { 1734 for (NSString *arg in inArgs) { 1754 1735 if ([arg caseInsensitiveCompare:@"href"] == NSOrderedSame) { 1755 1736 NSString *linkString = [inArgs objectForKey:arg]; … … 1779 1760 - (void)processDivTagArgs:(NSDictionary *)inArgs attributes:(AITextAttributes *)textAttributes 1780 1761 { 1781 NSEnumerator *enumerator; 1782 NSString *arg; 1783 1784 enumerator = [[inArgs allKeys] objectEnumerator]; 1785 while ((arg = [enumerator nextObject])) { 1762 for (NSString *arg in inArgs) { 1786 1763 if ([arg caseInsensitiveCompare:@"dir"] == NSOrderedSame) { 1787 1764 //Right to left, left to right handling … … 1812 1789 - (NSAttributedString *)processImgTagArgs:(NSDictionary *)inArgs attributes:(AITextAttributes *)textAttributes baseURL:(NSString *)inBaseURL 1813 1790 { 1814 NSEnumerator *enumerator;1815 NSString *arg;1816 1791 NSAttributedString *attachString; 1817 1792 AITextAttachmentExtension *attachment = [[AITextAttachmentExtension alloc] init]; 1818 1793 1819 enumerator = [inArgs keyEnumerator]; 1820 while ((arg = [enumerator nextObject])) { 1794 for (NSString *arg in inArgs) { 1821 1795 if ([arg caseInsensitiveCompare:@"src"] == NSOrderedSame) { 1822 1796 NSString *src = [inArgs objectForKey:arg]; trunk/Frameworks/Adium Framework/Source/AIIconState.m
r24783 r24921 61 61 - (id)initByCompositingStates:(NSArray *)inIconStates 62 62 { 63 AIIconState *animatingState = nil;64 AIIconState *overlayAnimatingState = nil;65 AIIconState *baseIconState = nil;66 67 NSEnumerator *enumerator;68 AIIconState *iconState;69 70 63 //init 71 if ((self = [super init])) 72 { 64 if ((self = [super init])) { 65 AIIconState *animatingState = nil; 66 AIIconState *overlayAnimatingState = nil; 67 AIIconState *baseIconState = nil; 68 73 69 [self _init]; 74 75 76 enumerator = [inIconStates reverseObjectEnumerator]; 77 while ((iconState = [enumerator nextObject]) && !baseIconState && !animatingState) { 70 71 for (AIIconState *iconState in [inIconStates reverseObjectEnumerator]) { 72 if (baseIconState || animatingState) 73 break; 74 78 75 //Find the base image (The image of the top-most non-overlay state) 79 76 if (!baseIconState && ![iconState overlay]) baseIconState = iconState; trunk/Frameworks/Adium Framework/Source/AIInterfaceControllerProtocol.h
r24751 r24921 102 102 * @returns YES if contact list is visible and selected, otherwise NO 103 103 */ 104 - (BOOL)contactListIsVisibleAndMain;104 @property (nonatomic, readonly) BOOL contactListIsVisibleAndMain; 105 105 /*! 106 106 * @returns YES if contact list is visible, otherwise NO 107 107 */ 108 - (BOOL)contactListIsVisible;108 @property (nonatomic, readonly) BOOL contactListIsVisible; 109 109 /*! @} */ 110 110 … … 156 156 157 157 /*! 158 * @brief Brings the tab/window for a chat to the front and sets it as active 159 * @param inChat The chat 160 */ 161 - (void)setActiveChat:(AIChat *)inChat; 162 163 /*! 164 * @brief Get the active chat. 165 * 166 * @result The active chat. If no chat is active (a non-chat window is focued, or Adium is not focused), returns nil. 167 */ 168 - (AIChat *)activeChat; 158 * @brief Active Chat property 159 * 160 * Setter brings the tab/window for a chat to the front and sets it as active 161 * If no chat is active (a non-chat window is focued, or Adium is not focused), getter returns nil. 162 */ 163 @property (nonatomic, retain) AIChat *activeChat; 169 164 170 165 /*! … … 174 169 * as any chat is open, this will return the chat most recently active. If no chats are open, this will return nil. 175 170 */ 176 - (AIChat *)mostRecentActiveChat;171 @property (nonatomic, readonly) AIChat *mostRecentActiveChat; 177 172 178 173 /*! … … 181 176 * @result The open chats. Returns an empty array if no chats are open. 182 177 */ 183 - (NSArray *)openChats;178 @property (nonatomic, readonly) NSArray *openChats; 184 179 185 180 /*! … … 193 188 * @brief Get an array of the containerIDs of all open containers 194 189 */ 195 - (NSArray *)openContainerIDs;190 @property (nonatomic, readonly) NSArray *openContainerIDs; 196 191 197 192 /*! trunk/Frameworks/Adium Framework/Source/AILoginControllerProtocol.h
r20915 r24921 14 14 15 15 @protocol AILoginController <AIController> 16 - (NSString *)userDirectory;17 - (NSString *)currentUser;18 - (NSArray *)userArray;16 @property (nonatomic, readonly) NSString *userDirectory; 17 @property (nonatomic, readonly) NSString *currentUser; 18 @property (nonatomic, readonly) NSArray *userArray; 19 19 20 20 - (void)addUser:(NSString *)inUserName; trunk/Frameworks/Adium Framework/Source/AIMenuControllerProtocol.h
r23830 r24921 54 54 - (NSMenu *)contextualMenuWithLocations:(NSArray *)inLocationArray forListObject:(AIListObject *)inObject; 55 55 - (NSMenu *)contextualMenuWithLocations:(NSArray *)inLocationArray forListObject:(AIListObject *)inObject inChat:(AIChat *)inChat; 56 - (AIListObject *)currentContextMenuObject; 57 - (AIChat *)currentContextMenuChat; 58 59 - (NSTextView *)contextualMenuTextView; 56 @property (nonatomic, readonly) AIListObject *currentContextMenuObject; 57 @property (nonatomic, readonly) AIChat *currentContextMenuChat; 58 @property (nonatomic, readonly) NSTextView *contextualMenuTextView; 60 59 - (NSMenu *)contextualMenuWithLocations:(NSArray *)inLocationArray forTextView:(NSTextView *)inObject; 61 60 trunk/Frameworks/Adium Framework/Source/AIMessageEntryTextView.m
r24898 r24921 478 478 { 479 479 NSPasteboard *generalPasteboard = [NSPasteboard generalPasteboard]; 480 NSEnumerator *enumerator = [[generalPasteboard types] objectEnumerator];481 NSString *type;482 480 BOOL handledPaste = NO; 483 481 484 482 //Types is ordered by the preference for handling of the data; enumerating it lets us allow the sending application's hints to be followed. 485 while ((type = [enumerator nextObject]) && !handledPaste) {483 for (NSString *type in generalPasteboard.types) { 486 484 if ([type isEqualToString:NSRTFDPboardType]) { 487 485 NSData *data = [generalPasteboard dataForType:NSRTFDPboardType]; … … 497 495 handledPaste = YES; 498 496 } 497 498 if (handledPaste) break; 499 499 500 500 } … … 1096 1096 1097 1097 NSArray *itemsArray = nil; 1098 NSEnumerator *enumerator;1099 NSMenuItem *menuItem;1100 1098 BOOL addedOurLinkItems = NO; 1101 1099 1102 1100 if ((contextualMenu = [super menuForEvent:theEvent])) { 1103 1101 contextualMenu = [[contextualMenu copy] autorelease]; 1104 enumerator = [[contextualMenu itemArray] objectEnumerator]; 1102 1105 1103 NSMenuItem *editLinkItem = nil; 1106 while ((menuItem = [enumerator nextObject])) {1104 for (NSMenuItem *menuItem in contextualMenu.itemArray) { 1107 1105 if ([[menuItem title] rangeOfString:AILocalizedString(@"Edit Link", nil)].location != NSNotFound) { 1108 1106 editLinkItem = menuItem; … … 1120 1118 forTextView:self]; 1121 1119 1122 enumerator = [[linkItemsMenu itemArray] objectEnumerator]; 1123 while ((menuItem = [enumerator nextObject])) { 1120 for (NSMenuItem *menuItem in linkItemsMenu.itemArray) { 1124 1121 [contextualMenu insertItem:[[menuItem copy] autorelease] atIndex:editIndex++]; 1125 1122 } … … 1143 1140 [contextualMenu addItem:[NSMenuItem separatorItem]]; 1144 1141 int i = [(NSMenu *)contextualMenu numberOfItems]; 1145 for ( menuItem in itemsArray) {1142 for (NSMenuItem *menuItem in itemsArray) { 1146 1143 //We're going to be copying; call menu needs update now since it won't be called later. 1147 1144 NSMenu *submenu = [menuItem submenu]; trunk/Frameworks/Adium Framework/Source/AIModularPaneCategoryView.m
r24774 r24921 85 85 + (int)heightForTabView:(NSTabView *)tabView 86 86 { 87 NSEnumerator *enumerator;88 NSTabViewItem *tabViewItem;89 87 int maxHeight = 0; 90 88 91 89 //Determine the tallest view contained within this tab view. 92 enumerator = [[tabView tabViewItems] objectEnumerator]; 93 while ((tabViewItem = [enumerator nextObject])) { 94 NSEnumerator *subViewEnumerator; 95 NSView *subView; 96 97 subViewEnumerator = [[[tabViewItem view] subviews] objectEnumerator]; 98 while ((subView = [subViewEnumerator nextObject])) { 99 int height = [(AIModularPaneCategoryView *)subView desiredHeight]; 100 90 for (NSTabViewItem *tabViewItem in [tabView tabViewItems]) { 91 for (NSView *subView in [tabViewItem.view subviews]) { 92 int height = ((AIModularPaneCategoryView *)subView).desiredHeight; 93 101 94 if (height > maxHeight) { 102 95 maxHeight = height; trunk/Frameworks/Adium Framework/Source/AISoundControllerProtocol.h
r24691 r24921 18 18 19 19 //Speech 20 - (NSArray *)voices;20 @property (nonatomic, readonly) NSArray *voices; 21 21 - (void)speakDemoTextForVoice:(NSString *)voiceString withPitch:(CGFloat)pitch andRate:(CGFloat)rate; 22 - (CGFloat)defaultRate;23 - (CGFloat)defaultPitch;22 @property (nonatomic, readonly) CGFloat defaultRate; 23 @property (nonatomic, readonly) CGFloat defaultPitch; 24 24 - (void)speakText:(NSString *)text; 25 25 - (void)speakText:(NSString *)text withVoice:(NSString *)voiceString pitch:(CGFloat)pitch rate:(CGFloat)rate; 26 26 27 27 //Soundsets 28 - (NSArray *)soundSets;28 @property (nonatomic, readonly) NSArray *soundSets; 29 29 30 30 - (void)setSoundsAreMuted:(BOOL)muted; trunk/Frameworks/Adium Framework/Source/AIStatusIcons.m
r24450 r24921 321 321 if (iconDict && [[iconDict objectForKey:@"AdiumSetVersion"] intValue] == 1) { 322 322 NSDictionary *previewIconNames = [iconDict objectForKey:@"List"]; 323 NSEnumerator *enumerator = [[NSArray arrayWithObjects:STATUS_NAME_AVAILABLE,STATUS_NAME_AWAY,@"Idle",@"Offline",nil] objectEnumerator];324 NSString *iconID;325 323 int xOrigin = 0; 326 324 327 325 [image lockFocus]; 328 while ((iconID = [enumerator nextObject])) { 326 for (NSString *iconID in [NSArray arrayWithObjects: 327 STATUS_NAME_AVAILABLE, 328 STATUS_NAME_AWAY, 329 @"Idle", 330 @"Offline", 331 nil]) { 329 332 NSString *anIconPath = [inPath stringByAppendingPathComponent:[previewIconNames objectForKey:iconID]]; 330 333 NSImage *anIcon; trunk/Frameworks/Adium Framework/Source/DCJoinChatWindowController.m
r24798 r24921 196 196 if ([popUp_service numberOfItems]) { 197 197 //First online account in our list 198 NSEnumerator *enumerator = [[adium.accountController accounts] objectEnumerator];199 198 AIAccount *preferredAccount; 200 while ((preferredAccount = [enumerator nextObject])) { 201 if ([preferredAccount online]) 199 200 for (preferredAccount in adium.accountController.accounts) { 201 if (preferredAccount.online) 202 202 break; 203 203 } trunk/Plugins/Contact Status Dock Overlays/AIContactStatusDockOverlaysPlugin.m
r24803 r24921 262 262 //contacts' statuses 263 263 if ([inModifiedKeys containsObject:@"Online"]) { 264 NSEnumerator *enumerator = [[[overlayObjectsArray copy] autorelease] objectEnumerator];265 AIListObject *listObject;266 264 BOOL madeChanges = NO; 267 265 268 while ((listObject = [enumerator nextObject])) {266 for (AIListObject *listObject in [[overlayObjectsArray copy] autorelease]) { 269 267 if (([listObject respondsToSelector:@selector(account)]) && 270 268 ([(id)listObject account] == inObject) && trunk/Plugins/Dual Window Interface/AIAccountSelectionView.m
r24798 r24921 262 262 - (BOOL)choicesAvailableForAccount 263 263 { 264 NSEnumerator *enumerator = [[adium.accountController accounts] objectEnumerator]; 265 AIAccount *account; 266 NSInteger choices = 0; 267 268 while ((account = [enumerator nextObject])) { 264 NSInteger choices = 0; 265 266 for (AIAccount *account in adium.accountController.accounts) { 269 267 if ([self _accountIsAvailable:account]) { 270 268 if (++choices > 1) return YES; trunk/Plugins/Dual Window Interface/AIDualWindowInterfacePlugin.m
r24803 r24921 180 180 { 181 181 NSMutableArray *openContainersAndChats = [NSMutableArray array]; 182 NSEnumerator *containerEnumerator = [containers objectEnumerator]; 183 AIMessageWindowController *container; 184 185 while ((container = [containerEnumerator nextObject])) { 182 183 for (AIMessageWindowController *container in [containers objectEnumerator]) { 186 184 [openContainersAndChats addObject:[NSDictionary dictionaryWithObjectsAndKeys: 187 [container containerID], @"ID",188 NSStringFromRect( [[container window] frame]), @"Frame",189 [container containedChats], @"Content",190 [container activeChat], @"ActiveChat",191 [container name], @"Name",185 container.containerID, @"ID", 186 NSStringFromRect(container.window.frame), @"Frame", 187 container.containedChats, @"Content", 188 container.activeChat, @"ActiveChat", 189 container.name, @"Name", 192 190 nil]]; 193 191 } … … 206 204 { 207 205 NSMutableArray *openContainersAndChats = [NSMutableArray array]; 208 NSEnumerator *containerEnumerator = [containers objectEnumerator]; 209 AIMessageWindowController *container; 210 211 while ((container = [containerEnumerator nextObject])) { 212 [openContainersAndChats addObjectsFromArray:[container containedChats]]; 206 207 for (AIMessageWindowController *container in [containers objectEnumerator]) { 208 [openContainersAndChats addObjectsFromArray:container.containedChats]; 213 209 } 214 210 trunk/Plugins/Dual Window Interface/AIMessageWindowController.m
r24803 r24921 273 273 enumerator = [[tabView_messages tabViewItems] reverseObjectEnumerator]; 274 274 while ((tabViewItem = [enumerator nextObject])) { 275 [adium.interfaceController closeChat: [tabViewItem chat]];275 [adium.interfaceController closeChat:tabViewItem.chat]; 276 276 } 277 277 … … 1233 1233 NSEnumerator *enumerator = [itemArray objectEnumerator]; 1234 1234 NSToolbarItem *item; 1235 NSInteger index = NSNotFound;1235 NSInteger index = NSNotFound; 1236 1236 1237 1237 while ((item = [enumerator nextObject])) { trunk/Plugins/Facebook Service/AIFacebookAccount.m
r24783 r24921 235 235 { 236 236 NSMutableString *post = [NSMutableString string]; 237 237 238 238 //Build post 239 NSEnumerator *enumerator = [inDict keyEnumerator]; 240 NSString *key; 241 while ((key = [enumerator nextObject])) { 239 for (NSString *key in inDict) { 242 240 if ([post length] !=