diff --git a/ThirdParty/Frameworks/Growl.framework/Versions/A/Growl b/ThirdParty/Frameworks/Growl.framework/Versions/A/Growl index a0572a332..9ac3653fa 100755 Binary files a/ThirdParty/Frameworks/Growl.framework/Versions/A/Growl and b/ThirdParty/Frameworks/Growl.framework/Versions/A/Growl differ diff --git a/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h b/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h index fb705097f..e35663f63 100644 --- a/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h +++ b/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h @@ -14,6 +14,10 @@ #include #include +#ifndef GROWL_EXPORT +#define GROWL_EXPORT __attribute__((visibility("default"))) +#endif + /*! @header GrowlApplicationBridge-Carbon.h * @abstract Declares an API that Carbon applications can use to interact with Growl. * @discussion GrowlApplicationBridge uses a delegate to provide information //XXX @@ -323,6 +327,8 @@ struct Growl_Notification { * 0.7. */ void (*clickCallback)(CFPropertyListRef clickContext); + + CFStringRef identifier; }; #pragma mark - @@ -374,6 +380,8 @@ struct Growl_Notification { (notification)->reserved = 0U; \ (notification)->isSticky = false; \ (notification)->clickContext = NULL; \ + (notification)->clickCallback = NULL; \ + (notification)->identifier = NULL; \ } \ } while(0) @@ -417,7 +425,7 @@ struct Growl_Notification { * structure, except possibly the referenceCount by calling the retain and * release members. */ -Boolean Growl_SetDelegate(struct Growl_Delegate *newDelegate); +GROWL_EXPORT Boolean Growl_SetDelegate(struct Growl_Delegate *newDelegate); /*! @function Growl_GetDelegate * @abstract Returns the current Growl delegate, if any. @@ -430,7 +438,7 @@ Boolean Growl_SetDelegate(struct Growl_Delegate *newDelegate); * delegate on your behalf. You are responsible for retaining and releasing * the delegate as needed. */ -struct Growl_Delegate *Growl_GetDelegate(void); +GROWL_EXPORT struct Growl_Delegate *Growl_GetDelegate(void); #pragma mark - @@ -452,7 +460,7 @@ struct Growl_Delegate *Growl_GetDelegate(void); * If the user does choose to install Growl, the requested notification will * be displayed once Growl is installed and running. */ -void Growl_PostNotification(const struct Growl_Notification *notification); +GROWL_EXPORT void Growl_PostNotification(const struct Growl_Notification *notification); /*! @function Growl_PostNotificationWithDictionary * @abstract Notifies using a userInfo dictionary suitable for passing to @@ -468,7 +476,7 @@ void Growl_PostNotification(const struct Growl_Notification *notification); * to using CFDistributedNotificationCenter. The keys for this dictionary * can be found in GrowlDefines.h. */ -void Growl_PostNotificationWithDictionary(CFDictionaryRef userInfo); +GROWL_EXPORT void Growl_PostNotificationWithDictionary(CFDictionaryRef userInfo); /*! @function Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext * @abstract Posts a Growl notification using parameter values. @@ -491,7 +499,7 @@ void Growl_PostNotificationWithDictionary(CFDictionaryRef userInfo); * The icon data can be in any format supported by NSImage. As of Mac OS X * 10.3, this includes the .icns, TIFF, JPEG, GIF, PNG, PDF, and PICT formats. */ -void Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext( +GROWL_EXPORT void Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext( /*inhale*/ CFStringRef title, CFStringRef description, @@ -525,7 +533,7 @@ void Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext( * This function was introduced in Growl.framework 0.7. * @result false if registration failed (e.g. if Growl isn't installed). */ -Boolean Growl_RegisterWithDictionary(CFDictionaryRef regDict); +GROWL_EXPORT Boolean Growl_RegisterWithDictionary(CFDictionaryRef regDict); /*! @function Growl_Reregister * @abstract Updates your registration with Growl. @@ -543,7 +551,7 @@ Boolean Growl_RegisterWithDictionary(CFDictionaryRef regDict); * This function is now implemented using * Growl_RegisterWithDictionary. */ -void Growl_Reregister(void); +GROWL_EXPORT void Growl_Reregister(void); #pragma mark - @@ -563,14 +571,14 @@ void Growl_Reregister(void); * @param flag true if you want GrowlApplicationBridge to register with * Growl when next it is ready; false if not. */ -void Growl_SetWillRegisterWhenGrowlIsReady(Boolean flag); +GROWL_EXPORT void Growl_SetWillRegisterWhenGrowlIsReady(Boolean flag); /*! @function Growl_WillRegisterWhenGrowlIsReady * @abstract Reports whether GrowlApplicationBridge will register with Growl * when Growl next launches. * @result true if GrowlApplicationBridge will register with * Growl when next it posts GROWL_IS_READY; false if not. */ -Boolean Growl_WillRegisterWhenGrowlIsReady(void); +GROWL_EXPORT Boolean Growl_WillRegisterWhenGrowlIsReady(void); #pragma mark - @@ -585,14 +593,14 @@ Boolean Growl_WillRegisterWhenGrowlIsReady(void); * This function does not attempt to clean up the dictionary in any way - for * example, if it is missing the GROWL_APP_NAME key, the result * will be missing it too. Use - * Growl_CreateRegistrationDictionaryByFillingInDictionary: or + * Growl_CreateRegistrationDictionaryByFillingInDictionary or * Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys * to try to fill in missing keys. * * This function was introduced in Growl.framework 0.7. * @result A registration dictionary. */ -CFDictionaryRef Growl_CopyRegistrationDictionaryFromDelegate(void); +GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromDelegate(void); /*! @function Growl_CopyRegistrationDictionaryFromBundle * @abstract Looks in a bundle for a registration dictionary. @@ -613,7 +621,7 @@ CFDictionaryRef Growl_CopyRegistrationDictionaryFromDelegate(void); * This function was introduced in Growl.framework 0.7. * @result A registration dictionary. */ -CFDictionaryRef Growl_CopyRegistrationDictionaryFromBundle(CFBundleRef bundle); +GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromBundle(CFBundleRef bundle); /*! @function Growl_CreateBestRegistrationDictionary * @abstract Obtains a registration dictionary, filled out to the best of @@ -639,7 +647,7 @@ CFDictionaryRef Growl_CopyRegistrationDictionaryFromBundle(CFBundleRef bundle); * This function was introduced in Growl.framework 0.7. * @result A registration dictionary. */ -CFDictionaryRef Growl_CreateBestRegistrationDictionary(void); +GROWL_EXPORT CFDictionaryRef Growl_CreateBestRegistrationDictionary(void); #pragma mark - @@ -664,7 +672,7 @@ CFDictionaryRef Growl_CreateBestRegistrationDictionary(void); * * This function was introduced in Growl.framework 0.7. */ -CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionary(CFDictionaryRef regDict); +GROWL_EXPORT CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionary(CFDictionaryRef regDict); /*! @function Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys * @abstract Tries to fill in missing keys in a registration dictionary. * @param regDict The dictionary to fill in. @@ -686,7 +694,21 @@ CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionary(CFDictio * * This function was introduced in Growl.framework 0.7. */ -CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys(CFDictionaryRef regDict, CFSetRef keys); +GROWL_EXPORT CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys(CFDictionaryRef regDict, CFSetRef keys); + +/*! @brief Tries to fill in missing keys in a notification dictionary. + * @param notifDict The dictionary to fill in. + * @return The dictionary with the keys filled in. This will be a separate instance from \a notifDict. + * @discussion This function examines the \a notifDict for missing keys, and + * tries to get them from the last known registration dictionary. As of 1.1, + * the keys that it will look for are: + * + * \li GROWL_APP_NAME + * \li GROWL_APP_ICON + * + * @since Growl.framework 1.1 + */ +GROWL_EXPORT CFDictionaryRef Growl_CreateNotificationDictionaryByFillingInDictionary(CFDictionaryRef notifDict); #pragma mark - @@ -697,14 +719,14 @@ CFDictionaryRef Growl_CreateRegistrationDictionaryByFillingInDictionaryRestricte * installed. * @result Returns true if Growl is installed, false otherwise. */ -Boolean Growl_IsInstalled(void); +GROWL_EXPORT Boolean Growl_IsInstalled(void); /*! @function Growl_IsRunning * @abstract Cycles through the process list to find whether GrowlHelperApp * is running. * @result Returns true if Growl is running, false otherwise. */ -Boolean Growl_IsRunning(void); +GROWL_EXPORT Boolean Growl_IsRunning(void); #pragma mark - @@ -738,7 +760,7 @@ typedef void (*GrowlLaunchCallback)(void *context); * acceptable for context to be NULL. The callback itself can be * NULL if you don't want one. */ -Boolean Growl_LaunchIfInstalled(GrowlLaunchCallback callback, void *context); +GROWL_EXPORT Boolean Growl_LaunchIfInstalled(GrowlLaunchCallback callback, void *context); #pragma mark - #pragma mark Constants diff --git a/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h b/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h index 7ac315af3..4341f3fbd 100644 --- a/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h +++ b/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h @@ -3,7 +3,7 @@ // Growl // // Created by Evan Schoenberg on Wed Jun 16 2004. -// Copyright 2004-2005 The Growl Project. All rights reserved. +// Copyright 2004-2006 The Growl Project. All rights reserved. // /*! @@ -17,23 +17,12 @@ #define __GrowlApplicationBridge_h__ #import +#import #import "GrowlDefines.h" //Forward declarations @protocol GrowlApplicationBridgeDelegate; -/*! - * @defined GROWL_PREFPANE_BUNDLE_IDENTIFIER - * @discussion The bundle identifier for the Growl prefpane. - */ -#define GROWL_PREFPANE_BUNDLE_IDENTIFIER @"com.growl.prefpanel" - -/*! - * @defined GROWL_PREFPANE_NAME - * @discussion The file name of the Growl prefpane. - */ -#define GROWL_PREFPANE_NAME @"Growl.prefPane" - //Internal notification when the user chooses not to install (to avoid continuing to cache notifications awaiting installation) #define GROWL_USER_CHOSE_NOT_TO_INSTALL_NOTIFICATION @"User chose not to install" @@ -176,6 +165,40 @@ clickContext:(id)clickContext identifier:(NSString *)identifier; +/*! + * @method notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:identifier: + * @abstract Send a Growl notification. + * @discussion This is the preferred means for sending a Growl notification. + * The notification name and at least one of the title and description are + * required (all three are preferred). All other parameters may be + * nil (or 0 or NO as appropriate) to accept default values. + * + * If using the Growl-WithInstaller framework, if Growl is not installed the + * user will be prompted to install Growl. If the user cancels, this method + * will have no effect until the next application session, at which time when + * it is called the user will be prompted again. The user is also given the + * option to not be prompted again. If the user does choose to install Growl, + * the requested notification will be displayed once Growl is installed and + * running. + * + * @param title The title of the notification displayed to the user. + * @param description The full description of the notification displayed to the user. + * @param notifName The internal name of the notification. Should be human-readable, as it will be displayed in the Growl preference pane. + * @param iconData NSData object to show with the notification as its icon. If nil, the application's icon will be used instead. + * @param priority The priority of the notification. The default value is 0; positive values are higher priority and negative values are lower priority. Not all Growl displays support priority. + * @param isSticky If YES, the notification will remain on screen until clicked. Not all Growl displays support sticky notifications. + * @param clickContext A context passed back to the Growl delegate if it implements -(void)growlNotificationWasClicked: and the notification is clicked. Not all display plugins support clicking. The clickContext must be plist-encodable (completely of NSString, NSArray, NSNumber, NSDictionary, and NSData types). + * @param identifier An identifier for this notification. Notifications with equal identifiers are coalesced. + */ ++ (void) notifyWithTitle:(NSString *)title + description:(NSString *)description + notificationName:(NSString *)notifName + iconData:(NSData *)iconData + priority:(signed int)priority + isSticky:(BOOL)isSticky + clickContext:(id)clickContext + identifier:(NSString *)identifier; + /*! @method notifyWithDictionary: * @abstract Notifies using a userInfo dictionary suitable for passing to * NSDistributedNotificationCenter. @@ -371,6 +394,21 @@ */ + (NSDictionary *) registrationDictionaryByFillingInDictionary:(NSDictionary *)regDict restrictToKeys:(NSSet *)keys; +/*! @brief Tries to fill in missing keys in a notification dictionary. + * @param notifDict The dictionary to fill in. + * @return The dictionary with the keys filled in. This will be a separate instance from \a notifDict. + * @discussion This function examines the \a notifDict for missing keys, and + * tries to get them from the last known registration dictionary. As of 1.1, + * the keys that it will look for are: + * + * \li GROWL_APP_NAME + * \li GROWL_APP_ICON + * + * @since Growl.framework 1.1 + */ ++ (NSDictionary *) notificationDictionaryByFillingInDictionary:(NSDictionary *)regDict; + ++ (NSDictionary *) frameworkInfoDictionary; @end //------------------------------------------------------------------------------ @@ -417,10 +455,13 @@ * +[GrowlApplicationBridge * notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:] calls. * - * The dictionary should have 2 key object pairs: + * The dictionary should have the required key object pairs: * key: GROWL_NOTIFICATIONS_ALL object: NSArray of NSString objects * key: GROWL_NOTIFICATIONS_DEFAULT object: NSArray of NSString objects * + * The dictionary may have the following key object pairs: + * key: GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES object: NSDictionary of key: notification name object: human-readable notification name + * * You do not need to implement this method if you have an auto-discoverable * plist file in your app bundle. (XXX refer to more information on that) * @@ -447,6 +488,18 @@ */ - (NSString *) applicationNameForGrowl; +/*! + * @method applicationIconForGrowl + * @abstract Return the NSImage to treat as the application icon. + * @discussion The delegate may optionally return an NSImage + * object to use as the application icon. If this method is not implemented, + * {{{-applicationIconDataForGrowl}}} is tried. If that method is not + * implemented, the application's own icon is used. Neither method is + * generally needed. + * @result The NSImage to treat as the application icon. + */ +- (NSImage *) applicationIconForGrowl; + /*! * @method applicationIconDataForGrowl * @abstract Return the NSData to treat as the application icon. @@ -454,6 +507,7 @@ * object to use as the application icon; if this is not implemented, the * application's own icon is used. This is not generally needed. * @result The NSData to treat as the application icon. + * @deprecated In version 1.1, in favor of {{{-applicationIconForGrowl}}}. */ - (NSData *) applicationIconDataForGrowl; @@ -461,9 +515,8 @@ * @method growlIsReady * @abstract Informs the delegate that Growl has launched. * @discussion Informs the delegate that Growl (specifically, the - * GrowlHelperApp) was launched successfully or was already running. The - * application can take actions with the knowledge that Growl is installed and - * functional. + * GrowlHelperApp) was launched successfully. The application can take actions + * with the knowledge that Growl is installed and functional. */ - (void) growlIsReady; diff --git a/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h b/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h index 6ff6ee3d2..2b971cfe5 100644 --- a/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h +++ b/ThirdParty/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h @@ -7,10 +7,10 @@ #ifdef __OBJC__ #define XSTR(x) (@x) -#define STRING NSString * +#define STRING_TYPE NSString * #else #define XSTR CFSTR -#define STRING CFStringRef +#define STRING_TYPE CFStringRef #endif /*! @header GrowlDefines.h @@ -48,6 +48,14 @@ * "SurfWriter Lite" are not. */ #define GROWL_APP_NAME XSTR("ApplicationName") +/*! @defined GROWL_APP_ID + * @abstract The bundle identifier of your application. + * @discussion The bundle identifier of your application. This key should + * be unique for your application while there may be several applications + * with the same GROWL_APP_NAME. + * This key is optional. + */ +#define GROWL_APP_ID XSTR("ApplicationId") /*! @defined GROWL_APP_ICON * @abstract The image data for your application's icon. * @discussion Image data representing your application's icon. This may be @@ -74,6 +82,26 @@ * notification names. */ #define GROWL_NOTIFICATIONS_ALL XSTR("AllNotifications") +/*! @defined GROWL_NOTIFICATIONS_HUMAN_READABLE_DESCRIPTIONS + * @abstract A dictionary of human-readable names for your notifications. + * @discussion By default, the Growl UI will display notifications by the names given in GROWL_NOTIFICATIONS_ALL + * which correspond to the GROWL_NOTIFICATION_NAME. This dictionary specifies the human-readable name to display. + * The keys of the dictionary are GROWL_NOTIFICATION_NAME strings; the objects are the human-readable versions. + * For any GROWL_NOTIFICATION_NAME not specific in this dictionary, the GROWL_NOTIFICATION_NAME will be displayed. + * + * This key is optional. + */ +#define GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES XSTR("HumanReadableNames") +/*! @defined GROWL_NOTIFICATIONS_DESCRIPTIONS +* @abstract A dictionary of descriptions of _when_ each notification occurs +* @discussion This is an NSDictionary whose keys are GROWL_NOTIFICATION_NAME strings and whose objects are +* descriptions of _when_ each notification occurs, such as "You received a new mail message" or +* "A file finished downloading". +* +* This key is optional. +*/ +#define GROWL_NOTIFICATIONS_DESCRIPTIONS XSTR("NotificationDescriptions") + /*! @defined GROWL_TICKET_VERSION * @abstract The version of your registration ticket. * @discussion Include this key in a ticket plist file that you put in your @@ -97,9 +125,10 @@ /*! @defined GROWL_NOTIFICATION_NAME * @abstract The name of the notification. - * @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. */ + * @discussion The name of the notification. Note that if you do not define + * GROWL_NOTIFICATIONS_HUMAN_READABLE_NAMES when registering your ticket originally this name + * will the one displayed within the Growl preference pane and should be human-readable. + */ #define GROWL_NOTIFICATION_NAME XSTR("NotificationName") /*! @defined GROWL_NOTIFICATION_TITLE * @abstract The title to display in the notification. @@ -186,6 +215,15 @@ */ #define GROWL_APP_PID XSTR("ApplicationPID") +/*! @defined GROWL_NOTIFICATION_PROGRESS +* @abstract If this key is set, it should contain a double value wrapped +* in a NSNumber which describes some sort of progress (from 0.0 to 100.0). +* If this is key is not set, no progress bar is shown. +* +* Optional. Not supported by all display plugins. +*/ +#define GROWL_NOTIFICATION_PROGRESS XSTR("NotificationProgress") + // Notifications #pragma mark Notifications @@ -304,4 +342,7 @@ */ #define GROWL_REG_DICT_EXTENSION XSTR("growlRegDict") + +#define GROWL_POSITION_PREFERENCE_KEY @"GrowlSelectedPosition" + #endif //ndef _GROWLDEFINES_H diff --git a/ThirdParty/Frameworks/Growl.framework/Versions/A/Resources/Info.plist b/ThirdParty/Frameworks/Growl.framework/Versions/A/Resources/Info.plist index 6530bd21e..ab7194d2d 100644 --- a/ThirdParty/Frameworks/Growl.framework/Versions/A/Resources/Info.plist +++ b/ThirdParty/Frameworks/Growl.framework/Versions/A/Resources/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion @@ -13,11 +13,11 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.7.6 + 1.1.2 CFBundleSignature GRRR CFBundleVersion - 0.7.6 + 1.1.2 NSPrincipalClass GrowlApplicationBridge