Versioned to .88b3 and fixed the copyright date to 2006
[adiumx.git] / Source / AIAdium.h
blob62f94779fb184432e8e1474d36de360fe237c280
1 /*
2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
4 *
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11 * Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 #import <Cocoa/Cocoa.h>
19 #define BETA_RELEASE TRUE
21 @class AISortController, AILoginController, AIAccountController, AIInterfaceController, AIContactController,
22 AICorePluginLoader, AIPreferenceController, AIMenuController, AILoginWindowController,
23 AICoreComponentLoader, AIContentController, AIToolbarController, AIContactInfoViewController,
24 AIPreferenceViewController, AISoundController, AIDockController, ESFileTransferController,
25 ESContactAlertsController, ESApplescriptabilityController, AIStatusController, ESDebugController,
26 AIEmoticonController;
28 @interface AIAdium : NSObject {
29 IBOutlet AIAccountController *accountController;
30 IBOutlet AIContactController *contactController;
31 IBOutlet AIContentController *contentController;
32 IBOutlet AIDockController *dockController;
33 IBOutlet AIEmoticonController *emoticonController;
34 IBOutlet AIInterfaceController *interfaceController;
35 IBOutlet AILoginController *loginController;
36 IBOutlet AIMenuController *menuController;
37 IBOutlet AIPreferenceController *preferenceController;
38 IBOutlet AISoundController *soundController;
39 IBOutlet AIStatusController *statusController;
40 IBOutlet AIToolbarController *toolbarController;
41 IBOutlet ESApplescriptabilityController *applescriptabilityController;
42 IBOutlet ESDebugController *debugController;
43 IBOutlet ESContactAlertsController *contactAlertsController;
44 IBOutlet ESFileTransferController *fileTransferController;
46 IBOutlet AICoreComponentLoader *componentLoader;
47 IBOutlet AICorePluginLoader *pluginLoader;
49 NSNotificationCenter *notificationCenter;
50 NSMutableDictionary *eventNotifications;
52 //pathnames to the different Application Support folders.
53 NSArray *appSupportPaths;
55 NSMutableArray *queuedURLEvents;
57 BOOL completedApplicationLoad;
58 NSString *advancedPrefsName;
61 + (NSString *)applicationSupportDirectory;
62 - (AIAccountController *)accountController;
63 - (AIContactController *)contactController;
64 - (AIContentController *)contentController;
65 - (AIContentController *)chatController;
66 - (AIDockController *)dockController;
67 - (AIEmoticonController *)emoticonController;
68 - (AIInterfaceController *)interfaceController;
69 - (AILoginController *)loginController;
70 - (AIMenuController *)menuController;
71 - (AIPreferenceController *)preferenceController;
72 - (AISoundController *)soundController;
73 - (AIStatusController *)statusController;
74 - (AIToolbarController *)toolbarController;
75 - (ESContactAlertsController *)contactAlertsController;
76 - (ESDebugController *)debugController;
77 - (ESFileTransferController *)fileTransferController;
79 - (AICoreComponentLoader *)componentLoader;
81 - (NSNotificationCenter *)notificationCenter;
83 - (IBAction)showAboutBox:(id)sender;
84 - (IBAction)showHelp:(id)sender;
85 - (IBAction)reportABug:(id)sender;
86 - (IBAction)sendFeedback:(id)sender;
87 - (IBAction)showForums:(id)sender;
88 - (IBAction)showXtras:(id)sender;
89 - (IBAction)confirmQuit:(id)sender;
90 - (IBAction)launchJeeves:(id)sender;
92 - (NSString *)createResourcePathForName:(NSString *)name;
93 - (NSArray *)resourcePathsForName:(NSString *)name;
94 - (NSArray *)allResourcesForName:(NSString *)name withExtensions:(id)extensions;
95 - (NSString *)pathOfPackWithName:(NSString *)name extension:(NSString *)extension resourceFolderName:(NSString *)folderName;
96 - (NSString *)cachesPath;
98 @end
100 //Crash Reporter
101 #define PATH_TO_IMPORTER [[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"/Contents/Resources/Adium 1.6 Pref Importer.app"] stringByExpandingTildeInPath]
102 #define EXCEPTIONS_PATH [@"~/Library/Logs/CrashReporter/Adium.exception.log" stringByExpandingTildeInPath]
103 #define CRASHES_PATH [@"~/Library/Logs/CrashReporter/Adium.crash.log" stringByExpandingTildeInPath]
105 //Debugging
106 /* Enable to automatically turn on DEBUG_BUILD for all BETA_RELEASE builds */
107 #if 0
108 #if BETA_RELEASE
109 #ifndef DEBUG_BUILD
110 #define DEBUG_BUILD
111 #endif
112 #endif
113 #endif
115 //Adium events
116 #define KEY_EVENT_DISPLAY_NAME @"DisplayName"
117 #define KEY_EVENT_NOTIFICATION @"Notification"
119 //Adium Notifications
120 #define CONTACT_STATUS_ONLINE_YES @"Contact_StatusOnlineYes"
121 #define CONTACT_STATUS_ONLINE_NO @"Contact_StatusOnlineNo"
122 #define CONTACT_STATUS_AWAY_YES @"Contact_StatusAwayYes"
123 #define CONTACT_STATUS_AWAY_NO @"Contact_StatusAwayNo"
124 #define CONTACT_STATUS_IDLE_YES @"Contact_StatusIdleYes"
125 #define CONTACT_STATUS_IDLE_NO @"Contact_StatusIdleNo"
126 #define CONTACT_STATUS_MESSAGE @"Contact_StatusMessage"
127 #define CONTACT_SEEN_ONLINE_YES @"Contact_SeenOnlineYes"
128 #define CONTACT_SEEN_ONLINE_NO @"Contact_SeenOnlineNo"
129 #define CONTENT_MESSAGE_SENT @"Content_MessageSent"
130 #define CONTENT_MESSAGE_RECEIVED @"Content_MessageReceived"
131 #define CONTENT_MESSAGE_RECEIVED_FIRST @"Content_MessageReceivedFirst"
132 #define CONTENT_MESSAGE_RECEIVED_BACKGROUND @"Content_MessageReceivedBackground"
133 #define CONTENT_CONTACT_JOINED_CHAT @"Content_ContactJoinedChat"
134 #define CONTENT_CONTACT_LEFT_CHAT @"Content_ContactLeftChat"
135 #define INTERFACE_ERROR_MESSAGE @"Interface_ErrorMessageReceived"
136 #define ACCOUNT_CONNECTED @"Account_Connected"
137 #define ACCOUNT_DISCONNECTED @"Account_Disconnected"
138 #define ACCOUNT_RECEIVED_EMAIL @"Account_NewMailReceived"
139 #define FILE_TRANSFER_REQUEST @"FileTransfer_Request"
140 #define FILE_TRANSFER_BEGAN @"FileTransfer_Began"
141 #define FILE_TRANSFER_CANCELED @"FileTransfer_Canceled"
142 #define FILE_TRANSFER_COMPLETE @"FileTransfer_Complete"
144 #define Adium_Xtras_Changed @"Adium_Xtras_Changed"
145 #define Adium_CompletedApplicationLoad @"Adium_CompletedApplicationLoad"
146 //#define Adium_VersionWillBeUpgraded @"Adium_VersionWillBeUpgraded"
147 //#define Adium_VersionUpgraded @"Adium_VersionUpgraded"