1#import <AppKit/NSWindowController.h> 2#import <AppKit/NSNibDeclarations.h> 3#import "JVInspectorController.h" 4 5@class NSDrawer; 6@class NSOutlineView; 7@class MVMenuButton; 8@class NSMutableArray; 9@class MVChatConnection; 10@class NSArray; 11@class NSToolbarItem; 12@class NSString; 13@class NSView; 14@class JVChatWindowController; 15@class NSToolbar; 16@class NSImage; 17@class NSMenu; 18 19@protocol JVChatViewController; 20@protocol JVChatListItem; 21 22extern NSString *JVToolbarToggleChatDrawerItemIdentifier; 23extern NSString *JVToolbarToggleChatActivityItemIdentifier; 24extern NSString *JVChatViewPboardType; 25 26@interface JVChatWindowController : NSWindowController <JVInspectionDelegator> { 27 @protected 28 IBOutlet NSDrawer *viewsDrawer; 29 IBOutlet NSOutlineView *chatViewsOutlineView; 30 IBOutlet MVMenuButton *viewActionButton; 31 IBOutlet MVMenuButton *favoritesButton; 32 IBOutlet MVMenuButton *activityToolbarButton; 33 NSToolbarItem *_activityToolbarItem; 34 NSView *_placeHolder; 35 NSMutableArray *_views; 36 id <JVChatViewController> _activeViewController; 37 BOOL _usesSmallIcons; 38} 39- (void) showChatViewController:(id <JVChatViewController>) controller; 40 41- (void) addChatViewController:(id <JVChatViewController>) controller; 42- (void) insertChatViewController:(id <JVChatViewController>) controller atIndex:(unsigned int) index; 43 44- (void) removeChatViewController:(id <JVChatViewController>) controller; 45- (void) removeChatViewControllerAtIndex:(unsigned int) index; 46- (void) removeAllChatViewControllers; 47 48- (void) replaceChatViewController:(id <JVChatViewController>) controller withController:(id <JVChatViewController>) newController; 49- (void) replaceChatViewControllerAtIndex:(unsigned int) index withController:(id <JVChatViewController>) controller; 50 51- (NSArray *) chatViewControllersForConnection:(MVChatConnection *) connection; 52- (NSArray *) chatViewControllersWithControllerClass:(Class) class; 53- (NSArray *) allChatViewControllers; 54 55- (id <JVChatViewController>) activeChatViewController; 56- (id <JVChatListItem>) selectedListItem; 57 58- (IBAction) getInfo:(id) sender; 59 60- (IBAction) joinRoom:(id) sender; 61 62- (IBAction) closeCurrentPanel:(id) sender; 63- (IBAction) detachCurrentPanel:(id) sender; 64- (IBAction) selectPreviousPanel:(id) sender; 65- (IBAction) selectPreviousActivePanel:(id) sender; 66- (IBAction) selectNextPanel:(id) sender; 67- (IBAction) selectNextActivePanel:(id) sender; 68 69- (NSToolbarItem *) toggleChatDrawerToolbarItem; 70- (NSToolbarItem *) chatActivityToolbarItem; 71- (IBAction) toggleViewsDrawer:(id) sender; 72- (IBAction) openViewsDrawer:(id) sender; 73- (IBAction) closeViewsDrawer:(id) sender; 74 75- (void) reloadListItem:(id <JVChatListItem>) controller andChildren:(BOOL) children; 76- (BOOL) isListItemExpanded:(id <JVChatListItem>) item; 77- (void) expandListItem:(id <JVChatListItem>) item; 78- (void) collapseListItem:(id <JVChatListItem>) item; 79@end 80 81@interface JVChatWindowController (JVChatWindowControllerScripting) 82- (NSNumber *) uniqueIdentifier; 83@end 84 85@protocol JVChatViewController <NSObject, JVChatListItem> 86- (MVChatConnection *) connection; 87 88- (JVChatWindowController *) windowController; 89- (void) setWindowController:(JVChatWindowController *) controller; 90 91- (NSView *) view; 92- (NSResponder *) firstResponder; 93- (NSToolbar *) toolbar; 94- (NSString *) windowTitle; 95- (NSString *) identifier; 96@end 97 98@interface NSObject (JVChatViewControllerOptional) 99- (void) willSelect; 100- (void) didSelect; 101 102- (void) willUnselect; 103- (void) didUnselect; 104 105- (void) willDispose; 106@end 107 108@protocol JVChatListItemScripting 109- (NSNumber *) uniqueIdentifier; 110@end 111 112@protocol JVChatListItem <NSObject> 113- (id <JVChatListItem>) parent; 114 115- (NSImage *) icon; 116- (NSString *) title; 117@end 118 119@interface NSObject (JVChatListItemOptional) 120- (BOOL) acceptsDraggedFileOfType:(NSString *) type; 121- (void) handleDraggedFile:(NSString *) path; 122- (IBAction) doubleClicked:(id) sender; 123- (BOOL) isEnabled; 124 125- (NSMenu *) menu; 126- (NSString *) information; 127- (NSString *) toolTip; 128- (NSImage *) statusImage; 129 130- (int) numberOfChildren; 131- (id) childAtIndex:(int) index; 132@end