Reverted [20954]: Growl-WithInstaller 0.76. The 1.1.1 framework has some remaining...
[adiumx.git] / Frameworks / Growl-WithInstaller.framework / Versions / A / Headers / GrowlDefines.h
blob6ff6ee3d257f4205440f6e43f2e9ccef27196030
1 //
2 // GrowlDefines.h
3 //
5 #ifndef _GROWLDEFINES_H
6 #define _GROWLDEFINES_H
8 #ifdef __OBJC__
9 #define XSTR(x) (@x)
10 #define STRING NSString *
11 #else
12 #define XSTR CFSTR
13 #define STRING CFStringRef
14 #endif
16 /*! @header GrowlDefines.h
17 * @abstract Defines all the notification keys.
18 * @discussion Defines all the keys used for registration with Growl and for
19 * Growl notifications.
21 * Most applications should use the functions or methods of Growl.framework
22 * instead of posting notifications such as those described here.
23 * @updated 2004-01-25
26 // UserInfo Keys for Registration
27 #pragma mark UserInfo Keys for Registration
29 /*! @group Registration userInfo keys */
30 /* @abstract Keys for the userInfo dictionary of a GROWL_APP_REGISTRATION distributed notification.
31 * @discussion The values of these keys describe the application and the
32 * notifications it may post.
34 * Your application must register with Growl before it can post Growl
35 * notifications (and have them not be ignored). However, as of Growl 0.6,
36 * posting GROWL_APP_REGISTRATION notifications directly is no longer the
37 * preferred way to register your application. Your application should instead
38 * use Growl.framework's delegate system.
39 * See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for
40 * more information.
43 /*! @defined GROWL_APP_NAME
44 * @abstract The name of your application.
45 * @discussion The name of your application. This should remain stable between
46 * different versions and incarnations of your application.
47 * For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and
48 * "SurfWriter Lite" are not.
50 #define GROWL_APP_NAME XSTR("ApplicationName")
51 /*! @defined GROWL_APP_ICON
52 * @abstract The image data for your application's icon.
53 * @discussion Image data representing your application's icon. This may be
54 * superimposed on a notification icon as a badge, used as the notification
55 * icon when a notification-specific icon is not supplied, or ignored
56 * altogether, depending on the display. Must be in a format supported by
57 * NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
59 * Optional. Not supported by all display plugins.
61 #define GROWL_APP_ICON XSTR("ApplicationIcon")
62 /*! @defined GROWL_NOTIFICATIONS_DEFAULT
63 * @abstract The array of notifications to turn on by default.
64 * @discussion These are the names of the notifications that should be enabled
65 * by default when your application registers for the first time. If your
66 * application reregisters, Growl will look here for any new notification
67 * names found in GROWL_NOTIFICATIONS_ALL, but ignore any others.
69 #define GROWL_NOTIFICATIONS_DEFAULT XSTR("DefaultNotifications")
70 /*! @defined GROWL_NOTIFICATIONS_ALL
71 * @abstract The array of all notifications your application can send.
72 * @discussion These are the names of all of the notifications that your
73 * application may post. See GROWL_NOTIFICATION_NAME for a discussion of good
74 * notification names.
76 #define GROWL_NOTIFICATIONS_ALL XSTR("AllNotifications")
77 /*! @defined GROWL_TICKET_VERSION
78 * @abstract The version of your registration ticket.
79 * @discussion Include this key in a ticket plist file that you put in your
80 * application bundle for auto-discovery. The current ticket version is 1.
82 #define GROWL_TICKET_VERSION XSTR("TicketVersion")
83 // UserInfo Keys for Notifications
84 #pragma mark UserInfo Keys for Notifications
86 /*! @group Notification userInfo keys */
87 /* @abstract Keys for the userInfo dictionary of a GROWL_NOTIFICATION distributed notification.
88 * @discussion The values of these keys describe the content of a Growl
89 * notification.
91 * Not all of these keys are supported by all displays. Only the name, title,
92 * and description of a notification are universal. Most of the built-in
93 * displays do support all of these keys, and most other visual displays
94 * probably will also. But, as of 0.6, the Log, MailMe, and Speech displays
95 * support only textual data.
98 /*! @defined GROWL_NOTIFICATION_NAME
99 * @abstract The name of the notification.
100 * @discussion The name of the notification. This should be human-readable, as
101 * it's shown in the prefpane, in the list of notifications your application
102 * supports. */
103 #define GROWL_NOTIFICATION_NAME XSTR("NotificationName")
104 /*! @defined GROWL_NOTIFICATION_TITLE
105 * @abstract The title to display in the notification.
106 * @discussion The title of the notification. Should be very brief.
107 * The title usually says what happened, e.g. "Download complete".
109 #define GROWL_NOTIFICATION_TITLE XSTR("NotificationTitle")
110 /*! @defined GROWL_NOTIFICATION_DESCRIPTION
111 * @abstract The description to display in the notification.
112 * @discussion The description should be longer and more verbose than the title.
113 * The description usually tells the subject of the action,
114 * e.g. "Growl-0.6.dmg downloaded in 5.02 minutes".
116 #define GROWL_NOTIFICATION_DESCRIPTION XSTR("NotificationDescription")
117 /*! @defined GROWL_NOTIFICATION_ICON
118 * @discussion Image data for the notification icon. Must be in a format
119 * supported by NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
121 * Optional. Not supported by all display plugins.
123 #define GROWL_NOTIFICATION_ICON XSTR("NotificationIcon")
124 /*! @defined GROWL_NOTIFICATION_APP_ICON
125 * @discussion Image data for the application icon, in case GROWL_APP_ICON does
126 * not apply for some reason. Must be in a format supported by NSImage, such
127 * as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
129 * Optional. Not supported by all display plugins.
131 #define GROWL_NOTIFICATION_APP_ICON XSTR("NotificationAppIcon")
132 /*! @defined GROWL_NOTIFICATION_PRIORITY
133 * @discussion The priority of the notification as an integer number from
134 * -2 to +2 (+2 being highest).
136 * Optional. Not supported by all display plugins.
138 #define GROWL_NOTIFICATION_PRIORITY XSTR("NotificationPriority")
139 /*! @defined GROWL_NOTIFICATION_STICKY
140 * @discussion A Boolean number controlling whether the notification is sticky.
142 * Optional. Not supported by all display plugins.
144 #define GROWL_NOTIFICATION_STICKY XSTR("NotificationSticky")
145 /*! @defined GROWL_NOTIFICATION_CLICK_CONTEXT
146 * @abstract Identifies which notification was clicked.
147 * @discussion An identifier for the notification for clicking purposes.
149 * This will be passed back to the application when the notification is
150 * clicked. It must be plist-encodable (a data, dictionary, array, number, or
151 * string object), and it should be unique for each notification you post.
152 * A good click context would be a UUID string returned by NSProcessInfo or
153 * CFUUID.
155 * Optional. Not supported by all display plugins.
157 #define GROWL_NOTIFICATION_CLICK_CONTEXT XSTR("NotificationClickContext")
159 /*! @defined GROWL_DISPLAY_PLUGIN
160 * @discussion The name of a display plugin which should be used for this notification.
161 * Optional. If this key is not set or the specified display plugin does not
162 * exist, the display plugin stored in the application ticket is used. This key
163 * allows applications to use different default display plugins for their
164 * notifications. The user can still override those settings in the preference
165 * pane.
167 #define GROWL_DISPLAY_PLUGIN XSTR("NotificationDisplayPlugin")
169 /*! @defined GROWL_NOTIFICATION_IDENTIFIER
170 * @abstract An identifier for the notification for coalescing purposes.
171 * Notifications with the same identifier fall into the same class; only
172 * the last notification of a class is displayed on the screen. If a
173 * notification of the same class is currently being displayed, it is
174 * replaced by this notification.
176 * Optional. Not supported by all display plugins.
178 #define GROWL_NOTIFICATION_IDENTIFIER XSTR("GrowlNotificationIdentifier")
180 /*! @defined GROWL_APP_PID
181 * @abstract The process identifier of the process which sends this
182 * notification. If this field is set, the application will only receive
183 * clicked and timed out notifications which originate from this process.
185 * Optional.
187 #define GROWL_APP_PID XSTR("ApplicationPID")
189 // Notifications
190 #pragma mark Notifications
192 /*! @group Notification names */
193 /* @abstract Names of distributed notifications used by Growl.
194 * @discussion These are notifications used by applications (directly or
195 * indirectly) to interact with Growl, and by Growl for interaction between
196 * its components.
198 * Most of these should no longer be used in Growl 0.6 and later, in favor of
199 * Growl.framework's GrowlApplicationBridge APIs.
202 /*! @defined GROWL_APP_REGISTRATION
203 * @abstract The distributed notification for registering your application.
204 * @discussion This is the name of the distributed notification that can be
205 * used to register applications with Growl.
207 * The userInfo dictionary for this notification can contain these keys:
208 * <ul>
209 * <li>GROWL_APP_NAME</li>
210 * <li>GROWL_APP_ICON</li>
211 * <li>GROWL_NOTIFICATIONS_ALL</li>
212 * <li>GROWL_NOTIFICATIONS_DEFAULT</li>
213 * </ul>
215 * No longer recommended as of Growl 0.6. An alternate method of registering
216 * is to use Growl.framework's delegate system.
217 * See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for
218 * more information.
220 #define GROWL_APP_REGISTRATION XSTR("GrowlApplicationRegistrationNotification")
221 /*! @defined GROWL_APP_REGISTRATION_CONF
222 * @abstract The distributed notification for confirming registration.
223 * @discussion The name of the distributed notification sent to confirm the
224 * registration. Used by the Growl preference pane. Your application probably
225 * does not need to use this notification.
227 #define GROWL_APP_REGISTRATION_CONF XSTR("GrowlApplicationRegistrationConfirmationNotification")
228 /*! @defined GROWL_NOTIFICATION
229 * @abstract The distributed notification for Growl notifications.
230 * @discussion This is what it all comes down to. This is the name of the
231 * distributed notification that your application posts to actually send a
232 * Growl notification.
234 * The userInfo dictionary for this notification can contain these keys:
235 * <ul>
236 * <li>GROWL_NOTIFICATION_NAME (required)</li>
237 * <li>GROWL_NOTIFICATION_TITLE (required)</li>
238 * <li>GROWL_NOTIFICATION_DESCRIPTION (required)</li>
239 * <li>GROWL_NOTIFICATION_ICON</li>
240 * <li>GROWL_NOTIFICATION_APP_ICON</li>
241 * <li>GROWL_NOTIFICATION_PRIORITY</li>
242 * <li>GROWL_NOTIFICATION_STICKY</li>
243 * <li>GROWL_NOTIFICATION_CLICK_CONTEXT</li>
244 * <li>GROWL_APP_NAME (required)</li>
245 * </ul>
247 * No longer recommended as of Growl 0.6. Three alternate methods of posting
248 * notifications are +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:],
249 * Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext, and
250 * Growl_PostNotification.
252 #define GROWL_NOTIFICATION XSTR("GrowlNotification")
253 /*! @defined GROWL_SHUTDOWN
254 * @abstract The distributed notification name that tells Growl to shutdown.
255 * @discussion The Growl preference pane posts this notification when the
256 * "Stop Growl" button is clicked.
258 #define GROWL_SHUTDOWN XSTR("GrowlShutdown")
259 /*! @defined GROWL_PING
260 * @abstract A distributed notification to check whether Growl is running.
261 * @discussion This is used by the Growl preference pane. If it receives a
262 * GROWL_PONG, the preference pane takes this to mean that Growl is running.
264 #define GROWL_PING XSTR("Honey, Mind Taking Out The Trash")
265 /*! @defined GROWL_PONG
266 * @abstract The distributed notification sent in reply to GROWL_PING.
267 * @discussion GrowlHelperApp posts this in reply to GROWL_PING.
269 #define GROWL_PONG XSTR("What Do You Want From Me, Woman")
270 /*! @defined GROWL_IS_READY
271 * @abstract The distributed notification sent when Growl starts up.
272 * @discussion GrowlHelperApp posts this when it has begin listening on all of
273 * its sources for new notifications. GrowlApplicationBridge (in
274 * Growl.framework), upon receiving this notification, reregisters using the
275 * registration dictionary supplied by its delegate.
277 #define GROWL_IS_READY XSTR("Lend Me Some Sugar; I Am Your Neighbor!")
278 /*! @defined GROWL_NOTIFICATION_CLICKED
279 * @abstract The distributed notification sent when a supported notification is clicked.
280 * @discussion When a Growl notification with a click context is clicked on by
281 * the user, Growl posts this distributed notification.
282 * The GrowlApplicationBridge responds to this notification by calling a
283 * callback in its delegate.
285 #define GROWL_NOTIFICATION_CLICKED XSTR("GrowlClicked!")
286 #define GROWL_NOTIFICATION_TIMED_OUT XSTR("GrowlTimedOut!")
288 /*! @group Other symbols */
289 /* Symbols which don't fit into any of the other categories. */
291 /*! @defined GROWL_KEY_CLICKED_CONTEXT
292 * @abstract Used internally as the key for the clickedContext passed over DNC.
293 * @discussion This key is used in GROWL_NOTIFICATION_CLICKED, and contains the
294 * click context that was supplied in the original notification.
296 #define GROWL_KEY_CLICKED_CONTEXT XSTR("ClickedContext")
297 /*! @defined GROWL_REG_DICT_EXTENSION
298 * @abstract The filename extension for registration dictionaries.
299 * @discussion The GrowlApplicationBridge in Growl.framework registers with
300 * Growl by creating a file with the extension of .(GROWL_REG_DICT_EXTENSION)
301 * and opening it in the GrowlHelperApp. This happens whether or not Growl is
302 * running; if it was stopped, it quits immediately without listening for
303 * notifications.
305 #define GROWL_REG_DICT_EXTENSION XSTR("growlRegDict")
307 #endif //ndef _GROWLDEFINES_H