1#import <Foundation/NSObject.h> 2#import <Foundation/NSDate.h> 3 4extern NSString *JVBuddyCameOnlineNotification; 5extern NSString *JVBuddyWentOfflineNotification; 6 7extern NSString *JVBuddyNicknameCameOnlineNotification; 8extern NSString *JVBuddyNicknameWentOfflineNotification; 9extern NSString *JVBuddyNicknameStatusChangedNotification; 10 11extern NSString *JVBuddyActiveNicknameChangedNotification; 12 13@class ABPerson; 14@class NSMutableSet; 15@class NSMutableDictionary; 16@class NSURL; 17@class NSString; 18@class NSImage; 19@class NSSet; 20 21typedef enum { 22 JVBuddyOfflineStatus = 'oflN', 23 JVBuddyAvailableStatus = 'avaL', 24 JVBuddyIdleStatus = 'idlE', 25 JVBuddyAwayStatus = 'awaY' 26} JVBuddyStatus; 27 28typedef enum { 29 JVBuddyActiveNickname = 0x0, 30 JVBuddyGivenNickname = 0x1, 31 JVBuddyFullName = 0x2 32} JVBuddyName; 33 34@interface JVBuddy : NSObject { 35 ABPerson *_person; 36 NSMutableSet *_nicknames; 37 NSMutableSet *_onlineNicknames; 38 NSMutableDictionary *_nicknameStatus; 39 NSURL *_activeNickname; 40} 41+ (JVBuddyName) preferredName; 42+ (void) setPreferredName:(JVBuddyName) preferred; 43 44+ (id) buddyWithPerson:(ABPerson *) person; 45+ (id) buddyWithUniqueIdentifier:(NSString *) identifier; 46 47- (id) initWithPerson:(ABPerson *) person; 48 49- (void) registerWithApplicableConnections; 50- (void) unregisterWithApplicableConnections; 51 52- (NSURL *) activeNickname; 53- (void) setActiveNickname:(NSURL *) nickname; 54 55- (JVBuddyStatus) status; 56- (BOOL) isOnline; 57- (NSTimeInterval) idleTime; 58- (NSString *) awayMessage; 59 60- (NSSet *) nicknames; 61- (NSSet *) onlineNicknames; 62 63- (void) addNickname:(NSURL *) nickname; 64- (void) removeNickname:(NSURL *) nickname; 65- (void) replaceNickname:(NSURL *) old withNickname:(NSURL *) new; 66 67- (NSImage *) picture; 68- (void) setPicture:(NSImage *) picture; 69 70- (NSString *) preferredName; 71- (JVBuddyName) preferredNameWillReturn; 72- (unsigned int) availableNames; 73 74- (NSString *) compositeName; 75- (NSString *) firstName; 76- (NSString *) lastName; 77- (NSString *) primaryEmail; 78- (NSString *) givenNickname; 79 80- (void) setFirstName:(NSString *) name; 81- (void) setLastName:(NSString *) name; 82- (void) setPrimaryEmail:(NSString *) email; 83- (void) setGivenNickname:(NSString *) name; 84 85- (NSString *) uniqueIdentifier; 86- (ABPerson *) person; 87- (void) editInAddressBook; 88- (void) viewInAddressBook; 89 90- (NSComparisonResult) availabilityCompare:(JVBuddy *) buddy; 91- (NSComparisonResult) firstNameCompare:(JVBuddy *) buddy; 92- (NSComparisonResult) lastNameCompare:(JVBuddy *) buddy; 93- (NSComparisonResult) serverCompare:(JVBuddy *) buddy; 94- (NSComparisonResult) nicknameCompare:(JVBuddy *) buddy; 95@end 96