Frameworks/Adium Framework/Source/AIChatControllerProtocol.h
author Thijs Alkemade <thijsalkemade@gmail.com>
Sat Aug 28 22:01:12 2010 +0200 (21 months ago)
changeset 3277 21ab21e877e0
parent 2472 724bdc7a81eb
child 3679 f4294bb53b0f
permissions -rw-r--r--
Add a Reopen Closed Tab menu item to the File menu that will restore the most recently closed tab, similar to Chrome. Fixes #12537

Does not work with MSN group chats (and probably other protocols that have unnamed MUCs).

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