1#import <Foundation/NSString.h> 2#import <Foundation/NSObject.h> 3#import <AppKit/NSNibDeclarations.h> 4#import "JVChatWindowController.h" 5 6@class WebView; 7@class MVMenuButton; 8@class NSMutableSet; 9@class NSString; 10@class JVStyle; 11@class NSBundle; 12@class NSDictionary; 13@class NSMutableDictionary; 14@class JVChatMessage; 15@class NSLock; 16 17extern NSMutableSet *JVChatStyleBundles; 18extern NSMutableSet *JVChatEmoticonBundles; 19 20extern NSString *JVChatStylesScannedNotification; 21extern NSString *JVChatEmoticonsScannedNotification; 22 23@interface JVChatTranscript : NSObject <JVChatViewController> { 24 @protected 25 IBOutlet NSView *contents; 26 IBOutlet WebView *display; 27 BOOL _nibLoaded; 28 29 JVChatWindowController *_windowController; 30 31 NSString *_filePath; 32 BOOL _isArchive; 33 34 NSLock *_logLock; 35 void *_xmlLog; /* xmlDocPtr */ 36 NSMutableArray *_messages; 37 38 NSMenu *_styleMenu; 39 JVStyle *_chatStyle; 40 NSString *_chatStyleVariant; 41 NSMutableDictionary *_styleParams; 42 43 NSMenu *_emoticonMenu; 44 NSBundle *_chatEmoticons; 45 NSDictionary *_emoticonMappings; 46 47 BOOL _previousStyleSwitch; 48} 49- (id) initWithTranscript:(NSString *) filename; 50 51- (void) saveTranscriptTo:(NSString *) path; 52 53- (IBAction) changeChatStyle:(id) sender; 54- (void) setChatStyle:(JVStyle *) style withVariant:(NSString *) variant; 55- (JVStyle *) chatStyle; 56 57- (IBAction) changeChatStyleVariant:(id) sender; 58- (void) setChatStyleVariant:(NSString *) variant; 59- (NSString *) chatStyleVariant; 60 61- (IBAction) changeChatEmoticons:(id) sender; 62- (void) setChatEmoticons:(NSBundle *) emoticons; 63- (void) setChatEmoticons:(NSBundle *) emoticons performRefresh:(BOOL) refresh; 64- (NSBundle *) chatEmoticons; 65 66- (unsigned long) numberOfMessages; 67- (JVChatMessage *) messageAtIndex:(unsigned long) index; 68- (NSArray *) messagesInRange:(NSRange) range; 69 70- (IBAction) leaveChat:(id) sender; 71@end 72 73#pragma mark - 74 75@interface JVChatTranscript (JVChatTranscriptScripting) <JVChatListItemScripting> 76- (NSNumber *) uniqueIdentifier; 77@end 78 79#pragma mark - 80 81@interface NSObject (MVChatPluginLinkClickSupport) 82- (BOOL) handleClickedLink:(NSURL *) url inView:(id <JVChatViewController>) view; 83@end