1 | /* |
---|
2 | * AIChatControllerProtocol.h |
---|
3 | * Adium |
---|
4 | * |
---|
5 | * Created by Evan Schoenberg on 7/31/06. |
---|
6 | * |
---|
7 | */ |
---|
8 | |
---|
9 | #import <Adium/AIControllerProtocol.h> |
---|
10 | #import <Adium/AIListContact.h> |
---|
11 | |
---|
12 | @protocol AIChatController_Private; |
---|
13 | @class AIChat, AIAccount; |
---|
14 | |
---|
15 | //Observer which receives notifications of changes in chat status |
---|
16 | @protocol AIChatObserver |
---|
17 | - (NSSet *)updateChat:(AIChat *)inChat keys:(NSSet *)inModifiedKeys silent:(BOOL)silent; |
---|
18 | @end |
---|
19 | |
---|
20 | @protocol AIChatController <AIController, AIChatController_Private> |
---|
21 | //Chats |
---|
22 | - (AIChat *)mostRecentUnviewedChat; |
---|
23 | - (NSSet *)allChatsWithContact:(AIListContact *)inContact; |
---|
24 | - (AIChat *)openChatWithContact:(AIListContact *)inContact onPreferredAccount:(BOOL)onPreferredAccount; |
---|
25 | - (AIChat *)chatWithContact:(AIListContact *)inContact; |
---|
26 | - (AIChat *)existingChatWithContact:(AIListContact *)inContact; |
---|
27 | - (AIChat *)existingChatWithUniqueChatID:(NSString *)uniqueChatID; |
---|
28 | - (AIChat *)chatWithName:(NSString *)inName |
---|
29 | identifier:(id)identifier |
---|
30 | onAccount:(AIAccount *)account |
---|
31 | chatCreationInfo:(NSDictionary *)chatCreationInfo; |
---|
32 | |
---|
33 | - (AIChat *)existingChatWithIdentifier:(id)identifier onAccount:(AIAccount *)account; |
---|
34 | - (AIChat *)existingChatWithName:(NSString *)name onAccount:(AIAccount *)account; |
---|
35 | |
---|
36 | - (BOOL)closeChat:(AIChat *)inChat; |
---|
37 | - (void)accountDidCloseChat:(AIChat *)inChat; |
---|
38 | |
---|
39 | - (NSSet *)openChats; |
---|
40 | - (AIChat *)mostRecentUnviewedChat; |
---|
41 | - (int)unviewedContentCount; |
---|
42 | - (int)unviewedConversationCount; |
---|
43 | - (void)switchChat:(AIChat *)chat toAccount:(AIAccount *)newAccount; |
---|
44 | - (void)switchChat:(AIChat *)chat toListContact:(AIListContact *)inContact usingContactAccount:(BOOL)useContactAccount; |
---|
45 | - (BOOL)contactIsInGroupChat:(AIListContact *)listContact; |
---|
46 | |
---|
47 | //Status |
---|
48 | - (void)registerChatObserver:(id <AIChatObserver>)inObserver; |
---|
49 | - (void)unregisterChatObserver:(id <AIChatObserver>)inObserver; |
---|
50 | - (void)updateAllChatsForObserver:(id <AIChatObserver>)observer; |
---|
51 | |
---|
52 | //Addition/removal of contacts to group chats |
---|
53 | - (void)chat:(AIChat *)chat addedListContact:(AIListContact *)inContact notify:(BOOL)notify; |
---|
54 | - (void)chat:(AIChat *)chat removedListContact:(AIListContact *)inContact; |
---|
55 | |
---|
56 | - (NSString *)defaultInvitationMessageForRoom:(NSString *)room account:(AIAccount *)inAccount; |
---|
57 | @end |
---|
58 | |
---|
59 | @protocol AIChatController_Private |
---|
60 | - (void)chatStatusChanged:(AIChat *)inChat modifiedStatusKeys:(NSSet *)inModifiedKeys silent:(BOOL)silent; |
---|
61 | @end |
---|