1 /* 2 ** Constants.h 3 ** 4 ** Copyright (c) 2003-2007 Ludovic Marcotte 5 ** Copyright (C) 2014-2018 Riccardo Mottola 6 ** 7 ** Author: Ludovic Marcotte <ludovic@Sophos.ca> 8 ** Riccardo Mottola <rm@gnu.org> 9 ** 10 ** This program is free software; you can redistribute it and/or modify 11 ** it under the terms of the GNU General Public License as published by 12 ** the Free Software Foundation; either version 2 of the License, or 13 ** (at your option) any later version. 14 ** 15 ** This program is distributed in the hope that it will be useful, 16 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 17 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 ** GNU General Public License for more details. 19 ** 20 ** You should have received a copy of the GNU General Public License 21 ** along with this program. If not, see <http://www.gnu.org/licenses/>. 22 */ 23 24 #ifndef _GNUMail_H_GNUMailConstants 25 #define _GNUMail_H_GNUMailConstants 26 27 28 // 29 // Useful macros 30 // 31 #ifdef MACOSX 32 #define RETAIN(object) [object retain] 33 #define RELEASE(object) [object release] 34 #define AUTORELEASE(object) [object autorelease] 35 #define TEST_RELEASE(object) ({ if (object) [object release]; }) 36 #define ASSIGN(object,value) ({\ 37 id __value = (id)(value); \ 38 id __object = (id)(object); \ 39 if (__value != __object) \ 40 { \ 41 if (__value != nil) \ 42 { \ 43 [__value retain]; \ 44 } \ 45 object = __value; \ 46 if (__object != nil) \ 47 { \ 48 [__object release]; \ 49 } \ 50 } \ 51 }) 52 53 #define DESTROY(object) ({ \ 54 if (object) \ 55 { \ 56 id __o = object; \ 57 object = nil; \ 58 [__o release]; \ 59 } \ 60 }) 61 62 #define NSLocalizedString(key, comment) \ 63 [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil] 64 65 #define _(X) NSLocalizedString (X, @"") 66 67 68 // 69 // Only for older Mac versions 70 // 71 #if defined(__APPLE__) && (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4) 72 #ifndef NSUInteger 73 #define NSUInteger unsigned int 74 #endif 75 #ifndef NSInteger 76 #define NSInteger int 77 #endif 78 #endif 79 80 // 81 // Selector comparison as macro on older OS and runtime if available (10.5 Leopard or later) 82 // 83 #if !defined (GNUSTEP) && (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4) 84 #define sel_isEqual(selector1, selector2) (selector1 == selector2) 85 #else 86 #include <objc/runtime.h> 87 #endif 88 89 #ifdef DEBUG 90 #define NSDebugLog(format, args...) \ 91 do { NSLog(format, ##args); } while(0) 92 #else 93 #define NSDebugLog(format, args...) 94 #endif 95 96 #endif 97 98 99 // 100 // Constants for the application 101 // 102 #define RETAIN_PERIOD 300 103 #define THREAD_ARCS_CELL_WIDTH 180 104 #define THREAD_ARCS_CELL_MIN_HEIGHT 105 105 106 enum { 107 MANUALLY = 0, 108 AUTOMATICALLY = 1, 109 NEVER = 2 110 }; 111 112 enum { 113 SHOW_ALL_HEADERS = 1, 114 HIDE_ALL_HEADERS = 2 115 }; 116 117 enum { 118 DELETE_MESSAGE = 1, 119 UNDELETE_MESSAGE = 2, 120 }; 121 122 enum { 123 MARK_AS_FLAGGED = 1, 124 MARK_AS_UNFLAGGED = 2 125 }; 126 127 enum { 128 MARK_AS_READ = 1, 129 MARK_AS_UNREAD = 2 130 }; 131 132 enum { 133 SHOW_DELETED_MESSAGES = 1, 134 HIDE_DELETED_MESSAGES = 2 135 }; 136 137 enum { 138 SHOW_READ_MESSAGES = 1, 139 HIDE_READ_MESSAGES = 2 140 }; 141 142 enum { 143 THREAD_MESSAGES = 1, 144 UNTHREAD_MESSAGES = 2 145 }; 146 147 enum { 148 OTHER = 0, 149 POP3 = 1, 150 IMAP = 2, 151 UNIX = 3 152 }; 153 154 enum { 155 SECURITY_NONE = 0, 156 SECURITY_SSL = 1, 157 SECURITY_TLS_IF_AVAILABLE = 2, 158 SECURITY_TLS = 3 159 }; 160 161 enum { 162 TRANSPORT_MAILER = 1, 163 TRANSPORT_SMTP = 2 164 }; 165 166 enum { 167 SIGNATURE_BEGINNING = 0, 168 SIGNATURE_END = 1, 169 SIGNATURE_HIDDEN = 2 170 }; 171 172 enum { 173 MOVE_MESSAGES = 1, 174 COPY_MESSAGES = 2 175 }; 176 177 enum { 178 MODE_STANDARD = 1, 179 MODE_EXPERT = 2 180 }; 181 182 enum { 183 TYPE_PLAIN = 1, 184 TYPE_HTML = 2 185 }; 186 187 enum { 188 IMAP_SHOW_ALL = 0, 189 IMAP_SHOW_SUBSCRIBED_ONLY = 1 190 }; 191 192 193 enum { 194 ACTION_REPLY_TO_MESSAGE = 0, 195 ACTION_VIEW_MESSAGE = 1, 196 ACTION_NO_ACTION = 2 197 }; 198 199 // 200 // 201 // 202 enum { 203 GNUMailComposeMessage, 204 GNUMailForwardMessage, 205 GNUMailRedirectMessage, 206 GNUMailReplyToMessage, 207 GNUMailRestoreFromDrafts 208 }; 209 210 // 211 // 212 // 213 enum { 214 GNUMailDateColumn = 1, 215 GNUMailFlagsColumn = 2, 216 GNUMailFromColumn = 3, 217 GNUMailNumberColumn = 4, 218 GNUMailSizeColumn = 5, 219 GNUMailStatusColumn = 6, 220 GNUMailSubjectColumn = 7 221 }; 222 223 // 224 // 225 // 226 enum { 227 GNUMailSmallIconSize, 228 GNUMailStandardIconSize, 229 GNUMailLargeIconSize 230 }; 231 232 // 233 // 234 // 235 enum { 236 GNUMailDrawerView = 0, 237 GNUMailFloatingView = 1, 238 GNUMail3PaneView = 2, 239 GNUMailWidescreenView = 3 240 }; 241 242 // 243 // Constants for the UI 244 // 245 enum { 246 TextFieldHeight = 21, 247 ButtonHeight = 25, 248 }; 249 250 251 // 252 // Notifications used in GNUMail 253 // 254 extern NSString *AccountsHaveChanged; 255 extern NSString *FiltersHaveChanged; 256 extern NSString *FontValuesHaveChanged; 257 extern NSString *MessageThreadingNotification; 258 extern NSString *ReloadMessageList; 259 extern NSString *TableColumnsHaveChanged; 260 261 // 262 // Operations and attributes for folders and messages 263 // 264 extern NSString *FolderExpireDate; 265 extern NSString *MessageData; 266 extern NSString *MessageDestinationChangeEncoding; 267 extern NSString *MessageDestinationFolder; 268 extern NSString *MessageDestinationPasteboard; 269 extern NSString *MessageDestinationStore; 270 extern NSString *MessageExpireDate; 271 extern NSString *MessageFlags; 272 extern NSString *MessageLoading; 273 extern NSString *MessageNumber; 274 extern NSString *MessageOperation; 275 extern NSString *MessagePreloading; 276 extern NSString *MessageRedirecting; 277 extern NSString *MessageViewing; 278 279 // 280 // Pasteboard data types 281 // 282 extern NSString *MessagePboardType; 283 284 #endif // _GNUMail_H_GNUMailConstants 285