root/trunk/lilypad/Sources/LPUIController.h @ 166

Revision 166, 5.2 KB (checked in by jppavao, 5 years ago)

Added a badge to the app dock icon that displays the number of unread offline messages. Also added a dock menu. References #24 and #76.

  • Property svn:eol-style set to native
Line 
1//
2//  LPUIController.h
3//  Lilypad
4//
5//      Copyright (C) 2006-2007 PT.COM,  All rights reserved.
6//      Authors: Joao Pavao <jppavao@criticalsoftware.com>
7//           Jason Kim <jason@512k.org>
8//
9//      For more information on licensing, read the README file.
10//      Para mais informações sobre o licenciamento, leia o ficheiro README.
11//
12
13#import <Cocoa/Cocoa.h>
14
15
16@class LPPrefsController, LPRosterController, LPXmlConsoleController, LPAccountsController;
17@class LPEditContactController, LPContact, LPContactEntry, LPFileTransfersController, LPSapoAgentsDebugWinCtrl;
18@class LPAvatarEditorController;
19@class SUUpdater, CTBadge;
20@class LPMessageCenter, LPMessageCenterWinController;
21@class LPAccount, LPStatusMenuController;
22@class LPChatRoomsListController, LPJoinChatRoomWinController;
23@class LPGroupChat;
24
25
26@interface LPUIController : NSObject
27{
28        IBOutlet NSMenu                         *m_statusMenu;
29        IBOutlet NSMenu                         *m_debugMenu;
30        IBOutlet NSMenu                         *m_groupsMenu;
31        IBOutlet NSMenu                         *m_addContactSupermenu;
32        IBOutlet NSMenu                         *m_xmlConsolesPerAccountMenu;
33        IBOutlet NSMenu                         *m_discoDebugWindowsPerAccountMenu;
34        IBOutlet SUUpdater                      *m_appUpdater;
35       
36        LPAccountsController            *m_accountsController;
37        LPStatusMenuController          *m_globalStatusMenuController;
38        NSMutableDictionary                     *m_statusMenuControllers; // Account UUID (NSString) --> Status Menu Controller (LPStatusMenuController)
39       
40        LPMessageCenter                         *m_messageCenter;
41        LPMessageCenterWinController *m_messageCenterWinController;
42       
43        NSMutableDictionary                     *m_authorizationAlertsByJID;
44       
45        IBOutlet LPPrefsController      *m_prefsController;
46        LPRosterController                      *m_rosterController;
47        LPAvatarEditorController        *m_avatarEditorController;
48        LPFileTransfersController       *m_fileTransfersController;
49       
50        LPJoinChatRoomWinController     *m_joinChatRoomController;
51        LPChatRoomsListController       *m_chatRoomsListController;
52       
53        NSMutableDictionary                     *m_chatControllersByContact;            // LPContact --> LPChatController
54        NSMutableDictionary                     *m_editContactControllersByContact;     // LPContact --> LPEditContactController
55        NSMutableDictionary                     *m_smsSendingControllersByContact;      // LPContact --> LPSendSMSController
56        NSMutableDictionary                     *m_groupChatControllersByAccountAndRoomJID;     // NSString (account UUID) --> NSMutDict
57                                                                                                                                                        //    NSString (room JID) --> LPGroupChatController
58       
59        NSMutableDictionary                     *m_xmlConsoleControllersByAccountUUID;          // NSString --> LPXmlConsoleController
60        NSMutableDictionary                     *m_sapoAgentsDebugWinCtrlsByAccountUUID;        // NSString --> LPSapoAgentsDebugWinCtrl
61       
62        CTBadge                                         *m_appIconBadge;
63        unsigned int                            m_totalNrOfUnreadMessages;
64       
65        NSURL                                           *m_provideFeedbackURL;
66}
67
68- (LPStatusMenuController *)globalStatusMenuController;
69- (LPStatusMenuController *)sharedStatusMenuControllerForAccount:(LPAccount *)account;
70
71- (LPAccountsController *)accountsController;
72- (LPRosterController *)rosterController;
73- (LPAvatarEditorController *)avatarEditorController;
74- (LPFileTransfersController *)fileTransfersController;
75- (LPMessageCenterWinController *)messageCenterWindowController;
76- (LPJoinChatRoomWinController *)joinChatRoomWindowController;
77- (LPChatRoomsListController *)chatRoomsListWindowController;
78
79- (LPXmlConsoleController *)xmlConsoleForAccount:(LPAccount *)account;
80- (LPSapoAgentsDebugWinCtrl *)sapoAgentsDebugWindowCtrlForAccount:(LPAccount *)account;
81
82- (void)showWindowForChatWithContact:(LPContact *)contact;
83- (void)showWindowForChatWithContactEntry:(LPContactEntry *)contactEntry;
84- (void)showWindowForEditingContact:(LPContact *)contact;
85- (void)showWindowForSendingSMSWithContact:(LPContact *)contact;
86- (void)showWindowForGroupChat:(LPGroupChat *)groupChat;
87
88- (void)enableDebugMenu;
89- (BOOL)enableDebugMenuAndXMLConsoleIfModifiersCombinationIsPressedForAccount:(LPAccount *)account;
90
91- (void)updateDefaultsFromBuild:(NSString *)fromBuild toCurrentBuild:(NSString *)toBuild;
92- (void)enableCheckForUpdates;
93
94- (LPGroupChat *)createNewInstantChatRoomAndShowWindow;
95
96- (NSMenu *)pendingEventsMenu;
97- (void)updateApplicationDockIconBadges;
98
99// Actions
100- (IBAction)toggleDisplayEmoticonImages:(id)sender;
101- (IBAction)setStatusMessage:(id)sender;
102- (IBAction)showRoster:(id)sender;
103- (IBAction)showAvatarEditor:(id)sender;
104- (IBAction)showFileTransfers:(id)sender;
105- (IBAction)showMessageCenter:(id)sender;
106- (IBAction)newChatWithPerson:(id)sender;
107- (IBAction)newInstantChatRoom:(id)sender;
108- (IBAction)showJoinChatRoom:(id)sender;
109- (IBAction)showChatRoomsList:(id)sender;
110- (IBAction)provideFeedback:(id)sender;
111- (IBAction)showJoinChatRoom:(id)sender;
112
113// Debug Menu Actions
114- (IBAction)showXmlConsole:(id)sender;
115- (IBAction)showSapoAgentsDebugWindow:(id)sender;
116- (IBAction)addAdvancedPrefsPane:(id)sender;
117- (IBAction)toggleExtendedGetInfoWindow:(id)sender;
118- (IBAction)toggleShowNonRosterContacts:(id)sender;
119- (IBAction)toggleShowHiddenGroups:(id)sender;
120- (IBAction)reportBug:(id)sender;
121- (IBAction)showChatRoomsList:(id)sender;
122
123
124/*!
125 * @abstract Application termination sequence helper.
126 * @discussion This method is invoked from the alt thread to signal that the application can really terminate.
127 * @param arg This is expected to be an NSNumber containing a boolean value that indicates whether the application
128 *              should really be terminated or if the termination process should be cancelled.
129 */
130- (void)confirmPendingTermination:(id)arg;
131
132@end
Note: See TracBrowser for help on using the browser.