Create a new advanced preference called "Confirmations". Move Quit Confirmations there.
Adds a new confirmation type for closing message windows with more than 1 tab open. Fixes #12006.
This new preference has two options: always confirm, only confirm when there's unread content. Displays an alert sheet when trying to close the window.
2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
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.
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 @class AICoreComponentLoader, AICorePluginLoader;
20 AIQuitConfirmAlways = 0,
21 AIQuitConfirmSelective
22 } AIQuitConfirmationType;
25 AIMessageCloseAlways = 0,
27 } AIMessageCloseConfirmationType;
29 @protocol AIAccountController, AIChatController, AIContactAlertsController, AIDebugController, AIEmoticonController,
30 AIPreferenceController, AIMenuController, AIApplescriptabilityController, AIStatusController,
31 AIContentController, AIToolbarController, AISoundController, AIDockController,
32 AIFileTransferController, AILoginController, AIInterfaceController, AIContactController;
34 @protocol AIAdium <NSObject>
35 @property (readonly, nonatomic) NSObject<AIAccountController> *accountController;
36 @property (readonly, nonatomic) NSObject<AIChatController> *chatController;
37 @property (readonly, nonatomic) NSObject<AIContactController> *contactController;
38 @property (readonly, nonatomic) NSObject<AIContentController> *contentController;
39 @property (readonly, nonatomic) NSObject<AIDockController> *dockController;
40 @property (readonly, nonatomic) NSObject<AIEmoticonController> *emoticonController;
41 @property (readonly, nonatomic) NSObject<AIInterfaceController> *interfaceController;
42 @property (readonly, nonatomic) NSObject<AILoginController> *loginController;
43 @property (readonly, nonatomic) NSObject<AIMenuController> *menuController;
44 @property (readonly, nonatomic) NSObject<AIPreferenceController> *preferenceController;
45 @property (readonly, nonatomic) NSObject<AISoundController> *soundController;
46 @property (readonly, nonatomic) NSObject<AIStatusController> *statusController;
47 @property (readonly, nonatomic) NSObject<AIToolbarController> *toolbarController;
48 @property (readonly, nonatomic) NSObject<AIContactAlertsController> *contactAlertsController;
49 @property (readonly, nonatomic) NSObject<AIFileTransferController> *fileTransferController;
50 @property (readonly, nonatomic) NSObject<AIDebugController> *debugController;
51 @property (readonly, nonatomic) NSObject<AIApplescriptabilityController> *applescriptabilityController;
53 @property (readonly, nonatomic) AICoreComponentLoader *componentLoader;
54 @property (readonly, nonatomic) AICorePluginLoader *pluginLoader;
56 @property (readonly, nonatomic) NSString *applicationSupportDirectory;
57 - (NSString *)createResourcePathForName:(NSString *)name;
58 - (NSArray *)resourcePathsForName:(NSString *)name;
59 - (NSArray *)allResourcesForName:(NSString *)name withExtensions:(id)extensions;
60 - (NSString *)pathOfPackWithName:(NSString *)name extension:(NSString *)extension resourceFolderName:(NSString *)folderName;
61 @property (readonly, nonatomic) NSString *cachesPath;
63 - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB;
65 @property (readonly, nonatomic) BOOL isQuitting;
70 #define KEY_EVENT_DISPLAY_NAME @"DisplayName"
71 #define KEY_EVENT_NOTIFICATION @"Notification"
74 #define CONTACT_STATUS_ONLINE_YES @"Contact_StatusOnlineYes" // Contact signs on
75 #define CONTACT_STATUS_ONLINE_NO @"Contact_StatusOnlineNo" // Contact signs off
76 #define CONTACT_STATUS_AWAY_YES @"Contact_StatusAwayYes"
77 #define CONTACT_STATUS_AWAY_NO @"Contact_StatusAwayNo"
78 #define CONTACT_STATUS_IDLE_YES @"Contact_StatusIdleYes"
79 #define CONTACT_STATUS_IDLE_NO @"Contact_StatusIdleNo"
80 #define CONTACT_STATUS_MESSAGE @"Contact_StatusMessage"
81 #define CONTACT_SEEN_ONLINE_YES @"Contact_SeenOnlineYes"
82 #define CONTACT_SEEN_ONLINE_NO @"Contact_SeenOnlineNo"
83 #define CONTACT_STATUS_MOBILE_YES @"Contact_StatusMobileYes"
84 #define CONTACT_STATUS_MOBILE_NO @"Contact_StatusMobileNo"
85 #define CONTENT_MESSAGE_SENT @"Content_MessageSent"
86 #define CONTENT_MESSAGE_RECEIVED @"Content_MessageReceived"
87 #define CONTENT_MESSAGE_RECEIVED_GROUP @"Content_MessageReceivedGroup"
88 #define CONTENT_MESSAGE_RECEIVED_FIRST @"Content_MessageReceivedFirst"
89 #define CONTENT_MESSAGE_RECEIVED_BACKGROUND @"Content_MessageReceivedBackground"
90 #define CONTENT_MESSAGE_RECEIVED_BACKGROUND_GROUP @"Content_MessageReceivedBackgroundGroup"
91 #define CONTENT_NUDGE_BUZZ_OCCURED @"Content_NudgeBuzzOccured"
92 #define CONTENT_CONTACT_JOINED_CHAT @"Content_ContactJoinedChat"
93 #define CONTENT_CONTACT_LEFT_CHAT @"Content_ContactLeftChat"
94 #define CONTENT_GROUP_CHAT_INVITE @"Content_GroupChatInvite"
95 #define CONTENT_GROUP_CHAT_MENTION @"Content_GroupChatMention"
96 #define INTERFACE_ERROR_MESSAGE @"Interface_ErrorMessageReceived"
98 /* Note: The account connected/disconnected events are aggregated for many accounts connecting simultaneously.
99 * Use a list object observer (see AIContactController) if you are concerned about specific account connectivity changes.
101 #define ACCOUNT_CONNECTED @"Account_Connected"
102 #define ACCOUNT_DISCONNECTED @"Account_Disconnected"
104 #define ACCOUNT_RECEIVED_EMAIL @"Account_NewMailReceived"
105 #define FILE_TRANSFER_REQUEST @"FileTransfer_Request"
106 #define FILE_TRANSFER_CHECKSUMMING @"FileTransfer_Checksumming"
107 #define FILE_TRANSFER_WAITING_REMOTE @"File_Transfer_WaitingRemote"
108 #define FILE_TRANSFER_BEGAN @"FileTransfer_Began"
109 #define FILE_TRANSFER_CANCELLED @"FileTransfer_Cancelled"
110 #define FILE_TRANSFER_FAILED @"FileTransfer_Failed"
111 #define FILE_TRANSFER_COMPLETE @"FileTransfer_Complete"
113 #define AIXtrasDidChangeNotification @"AIXtrasDidChange"
114 #define AIApplicationDidFinishLoadingNotification @"AIApplicationDidFinishLoading"
115 #define AIAppWillTerminateNotification @"AIAppWillTerminate"
116 #define AIShowLogAtPathNotification @"AIShowLogAtPath"
117 #define AIShowLogViewerAndReindexNotification @"AIShowLogViewerAndReindex"
118 #define AINetworkDidChangeNotification @"AINetworkDidChange"