# #defines

### GROWL_APP_ICON

The image data for your application's icon.

>     #define GROWL_APP_ICON XSTR(
>         "ApplicationIcon")

##### Discussion

Image data representing your application's icon. This may be superimposed on a notification icon as a badge, used as the notification icon when a notification-specific icon is not supplied, or ignored altogether, depending on the display. Must be in a format supported by NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
Optional. Not supported by all display plugins.

### GROWL_APP_NAME

The name of your application.

>     #define GROWL_APP_NAME XSTR(
>         "ApplicationName")

##### Discussion

The name of your application. This should remain stable between different versions and incarnations of your application. For example, "SurfWriter" is a good app name, whereas "SurfWriter 2.0" and "SurfWriter Lite" are not.

### GROWL_APP_PID

The process identifier of the process which sends this notification. If this field is set, the application will only receive clicked and timed out notifications which originate from this process.
Optional.

>     #define GROWL_APP_PID XSTR(
>         "ApplicationPID")

### GROWL_APP_REGISTRATION

The distributed notification for registering your application.

>     #define GROWL_APP_REGISTRATION XSTR(
>         "GrowlApplicationRegistrationNotification")

##### Discussion

This is the name of the distributed notification that can be used to register applications with Growl.
The userInfo dictionary for this notification can contain these keys:

- GROWL_APP_NAME
- GROWL_APP_ICON
- GROWL_NOTIFICATIONS_ALL
- GROWL_NOTIFICATIONS_DEFAULT

No longer recommended as of Growl 0.6. An alternate method of registering is to use Growl.framework's delegate system. See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for more information.

### GROWL_APP_REGISTRATION_CONF

The distributed notification for confirming registration.

>     #define GROWL_APP_REGISTRATION_CONF XSTR(
>         "GrowlApplicationRegistrationConfirmationNotification")

##### Discussion

The name of the distributed notification sent to confirm the registration. Used by the Growl preference pane. Your application probably does not need to use this notification.

### GROWL_DISPLAY_PLUGIN

>     #define GROWL_DISPLAY_PLUGIN XSTR(
>         "NotificationDisplayPlugin")

##### Discussion

The name of a display plugin which should be used for this notification. Optional. If this key is not set or the specified display plugin does not exist, the display plugin stored in the application ticket is used. This key allows applications to use different default display plugins for their notifications. The user can still override those settings in the preference pane.

### GROWL_IS_READY

The distributed notification sent when Growl starts up.

>     #define GROWL_IS_READY XSTR(
>         "Lend Me Some Sugar; I Am Your Neighbor!")

##### Discussion

GrowlHelperApp posts this when it has begin listening on all of its sources for new notifications. GrowlApplicationBridge (in Growl.framework), upon receiving this notification, reregisters using the registration dictionary supplied by its delegate.

### GROWL_KEY_CLICKED_CONTEXT

Used internally as the key for the clickedContext passed over DNC.

>     #define GROWL_KEY_CLICKED_CONTEXT XSTR(
>         "ClickedContext")

##### Discussion

This key is used in GROWL_NOTIFICATION_CLICKED, and contains the click context that was supplied in the original notification.

### GROWL_NOTIFICATION

The distributed notification for Growl notifications.

>     #define GROWL_NOTIFICATION XSTR(
>         "GrowlNotification")

##### Discussion

This is what it all comes down to. This is the name of the distributed notification that your application posts to actually send a Growl notification.
The userInfo dictionary for this notification can contain these keys:

- GROWL_NOTIFICATION_NAME (required)
- GROWL_NOTIFICATION_TITLE (required)
- GROWL_NOTIFICATION_DESCRIPTION (required)
- GROWL_NOTIFICATION_ICON
- GROWL_NOTIFICATION_APP_ICON
- GROWL_NOTIFICATION_PRIORITY
- GROWL_NOTIFICATION_STICKY
- GROWL_NOTIFICATION_CLICK_CONTEXT
- GROWL_APP_NAME (required)

No longer recommended as of Growl 0.6. Three alternate methods of posting notifications are +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:], Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext, and Growl_PostNotification.

### GROWL_NOTIFICATION_APP_ICON

>     #define GROWL_NOTIFICATION_APP_ICON XSTR(
>         "NotificationAppIcon")

##### Discussion

Image data for the application icon, in case GROWL_APP_ICON does not apply for some reason. Must be in a format supported by NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
Optional. Not supported by all display plugins.

### GROWL_NOTIFICATION_CLICK_CONTEXT

Identifies which notification was clicked.

>     #define GROWL_NOTIFICATION_CLICK_CONTEXT XSTR(
>         "NotificationClickContext")

##### Discussion

An identifier for the notification for clicking purposes.
This will be passed back to the application when the notification is clicked. It must be plist-encodable (a data, dictionary, array, number, or string object), and it should be unique for each notification you post. A good click context would be a UUID string returned by NSProcessInfo or CFUUID.
Optional. Not supported by all display plugins.

### GROWL_NOTIFICATION_CLICKED

The distributed notification sent when a supported notification is clicked.

>     #define GROWL_NOTIFICATION_CLICKED XSTR(
>         "GrowlClicked!")

##### Discussion

When a Growl notification with a click context is clicked on by the user, Growl posts this distributed notification. The GrowlApplicationBridge responds to this notification by calling a callback in its delegate.

### GROWL_NOTIFICATION_DESCRIPTION

The description to display in the notification.

>     #define GROWL_NOTIFICATION_DESCRIPTION XSTR(
>         "NotificationDescription")

##### Discussion

The description should be longer and more verbose than the title. The description usually tells the subject of the action, e.g. "Growl-0.6.dmg downloaded in 5.02 minutes".

### GROWL_NOTIFICATION_ICON

>     #define GROWL_NOTIFICATION_ICON XSTR(
>         "NotificationIcon")

##### Discussion

Image data for the notification icon. Must be in a format supported by NSImage, such as TIFF, PNG, GIF, JPEG, BMP, PICT, or PDF.
Optional. Not supported by all display plugins.

### GROWL_NOTIFICATION_IDENTIFIER

An identifier for the notification for coalescing purposes. Notifications with the same identifier fall into the same class; only the last notification of a class is displayed on the screen. If a notification of the same class is currently being displayed, it is replaced by this notification.
Optional. Not supported by all display plugins.

>     #define GROWL_NOTIFICATION_IDENTIFIER XSTR(
>         "GrowlNotificationIdentifier")

### GROWL_NOTIFICATION_NAME

The name of the notification.

>     #define GROWL_NOTIFICATION_NAME XSTR(
>         "NotificationName")

##### Discussion

The name of the notification. This should be human-readable, as it's shown in the prefpane, in the list of notifications your application * supports.

### GROWL_NOTIFICATION_PRIORITY

>     #define GROWL_NOTIFICATION_PRIORITY XSTR(
>         "NotificationPriority")

##### Discussion

The priority of the notification as an integer number from -2 to +2 (+2 being highest). Optional. Not supported by all display plugins.

### GROWL_NOTIFICATION_STICKY

>     #define GROWL_NOTIFICATION_STICKY XSTR(
>         "NotificationSticky")

##### Discussion

A Boolean number controlling whether the notification is sticky.
Optional. Not supported by all display plugins.

### GROWL_NOTIFICATION_TITLE

The title to display in the notification.

>     #define GROWL_NOTIFICATION_TITLE XSTR(
>         "NotificationTitle")

##### Discussion

The title of the notification. Should be very brief. The title usually says what happened, e.g. "Download complete".

### GROWL_NOTIFICATIONS_ALL

The array of all notifications your application can send.

>     #define GROWL_NOTIFICATIONS_ALL XSTR(
>         "AllNotifications")

##### Discussion

These are the names of all of the notifications that your application may post. See GROWL_NOTIFICATION_NAME for a discussion of good notification names.

### GROWL_NOTIFICATIONS_DEFAULT

The array of notifications to turn on by default.

>     #define GROWL_NOTIFICATIONS_DEFAULT XSTR(
>         "DefaultNotifications")

##### Discussion

These are the names of the notifications that should be enabled by default when your application registers for the first time. If your application reregisters, Growl will look here for any new notification names found in GROWL_NOTIFICATIONS_ALL, but ignore any others.

### GROWL_PING

A distributed notification to check whether Growl is running.

>     #define GROWL_PING XSTR(
>         "Honey, Mind Taking Out The Trash")

##### Discussion

This is used by the Growl preference pane. If it receives a GROWL_PONG, the preference pane takes this to mean that Growl is running.

### GROWL_PONG

The distributed notification sent in reply to GROWL_PING.

>     #define GROWL_PONG XSTR(
>         "What Do You Want From Me, Woman")

##### Discussion

GrowlHelperApp posts this in reply to GROWL_PING.

### GROWL_REG_DICT_EXTENSION

The filename extension for registration dictionaries.

>     #define GROWL_REG_DICT_EXTENSION XSTR(
>         "growlRegDict")

##### Discussion

The GrowlApplicationBridge in Growl.framework registers with Growl by creating a file with the extension of .(GROWL_REG_DICT_EXTENSION) and opening it in the GrowlHelperApp. This happens whether or not Growl is running; if it was stopped, it quits immediately without listening for notifications.

### GROWL_SHUTDOWN

The distributed notification name that tells Growl to shutdown.

>     #define GROWL_SHUTDOWN XSTR(
>         "GrowlShutdown")

##### Discussion

The Growl preference pane posts this notification when the "Stop Growl" button is clicked.

### GROWL_TICKET_VERSION

The version of your registration ticket.

>     #define GROWL_TICKET_VERSION XSTR(
>         "TicketVersion")

##### Discussion

Include this key in a ticket plist file that you put in your application bundle for auto-discovery. The current ticket version is 1.

© The Growl Project (Last Updated February 25, 2004)