1#import <AppKit/NSWindowController.h> 2#import <AppKit/NSNibDeclarations.h> 3#import "JVInspectorController.h" 4 5@class MVTableView; 6@class NSWindow; 7@class NSView; 8@class NSMenu; 9@class NSButton; 10@class NSImageView; 11@class NSTextField; 12@class NSPopUpButton; 13@class JVBuddy; 14@class NSMutableSet; 15@class NSMutableArray; 16@class NSString; 17@class NSTimer; 18@class ABPeoplePickerController; 19@class MVChatConnection; 20 21typedef enum { 22 MVAvailabilitySortOrder = 'avlY', 23 MVFirstNameSortOrder = 'fSnM', 24 MVLastNameSortOrder = 'lSnM', 25 MVServerSortOrder = 'serV' 26} MVBuddyListSortOrder; 27 28@interface MVBuddyListController : NSWindowController <JVInspectionDelegator> { 29 @private 30 IBOutlet MVTableView *buddies; 31 IBOutlet NSMenu *actionMenu; 32 IBOutlet NSButton *sendMessageButton; 33 IBOutlet NSButton *infoButton; 34 35 IBOutlet NSWindow *pickerWindow; 36 IBOutlet NSView *pickerView; 37 38 IBOutlet NSWindow *newPersonWindow; 39 IBOutlet NSTextField *nickname; 40 IBOutlet NSPopUpButton *server; 41 IBOutlet NSTextField *firstName; 42 IBOutlet NSTextField *lastName; 43 IBOutlet NSTextField *email; 44 IBOutlet NSImageView *image; 45 IBOutlet NSButton *addButton; 46 47 NSMutableSet *_buddyList; 48 NSMutableSet *_onlineBuddies; 49 NSMutableArray *_buddyOrder; 50 ABPeoplePickerController* _picker; 51 NSString *_addPerson; 52 53 BOOL _showFullNames; 54 BOOL _showNicknameAndServer; 55 BOOL _showIcons; 56 BOOL _showOfflineBuddies; 57 MVBuddyListSortOrder _sortOrder; 58 59 float _animationPosition; 60 NSMutableArray *_oldPositions; 61 NSTimer *_sortTimer; 62 BOOL _viewingTop; 63 BOOL _needsToAnimate; 64 BOOL _animating; 65} 66+ (MVBuddyListController *) sharedBuddyList; 67 68- (IBAction) getInfo:(id) sender; 69 70- (IBAction) showBuddyList:(id) sender; 71- (IBAction) hideBuddyList:(id) sender; 72 73- (JVBuddy *) buddyForNickname:(NSString *) name onServer:(NSString *) address; 74- (NSArray *) buddies; 75- (NSArray *) onlineBuddies; 76 77- (IBAction) showBuddyPickerSheet:(id) sender; 78- (IBAction) cancelBuddySelection:(id) sender; 79- (IBAction) confirmBuddySelection:(id) sender; 80 81- (IBAction) showNewPersonSheet:(id) sender; 82- (IBAction) cancelNewBuddy:(id) sender; 83- (IBAction) confirmNewBuddy:(id) sender; 84 85- (void) setNewBuddyNickname:(NSString *) nick; 86- (void) setNewBuddyFullname:(NSString *) name; 87- (void) setNewBuddyServer:(MVChatConnection *) connection; 88 89- (IBAction) messageSelectedBuddy:(id) sender; 90- (IBAction) sendFileToSelectedBuddy:(id) sender; 91 92- (void) setShowFullNames:(BOOL) flag; 93- (BOOL) showFullNames; 94- (IBAction) toggleShowFullNames:(id) sender; 95 96- (void) setShowNicknameAndServer:(BOOL) flag; 97- (BOOL) showNicknameAndServer; 98- (IBAction) toggleShowNicknameAndServer:(id) sender; 99 100- (void) setShowIcons:(BOOL) flag; 101- (BOOL) showIcons; 102- (IBAction) toggleShowIcons:(id) sender; 103 104- (void) setShowOfflineBuddies:(BOOL) flag; 105- (BOOL) showOfflineBuddies; 106- (IBAction) toggleShowOfflineBuddies:(id) sender; 107 108- (void) setSortOrder:(MVBuddyListSortOrder) order; 109- (MVBuddyListSortOrder) sortOrder; 110- (IBAction) sortByAvailability:(id) sender; 111- (IBAction) sortByFirstName:(id) sender; 112- (IBAction) sortByLastName:(id) sender; 113- (IBAction) sortByServer:(id) sender; 114@end 115