diff --git a/Cartfile b/Cartfile new file mode 100644 index 0000000..0e0dd90 --- /dev/null +++ b/Cartfile @@ -0,0 +1,2 @@ +github "abbeycode/UnrarKit" +github "abbeycode/UnzipKit" diff --git a/Frameworks/Growl.framework/Growl b/Frameworks/Growl.framework/Growl deleted file mode 120000 index 85956e2..0000000 --- a/Frameworks/Growl.framework/Growl +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Growl \ No newline at end of file diff --git a/Frameworks/Growl.framework/Headers b/Frameworks/Growl.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Frameworks/Growl.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Frameworks/Growl.framework/Resources b/Frameworks/Growl.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Frameworks/Growl.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Frameworks/Growl.framework/Versions/A/Growl b/Frameworks/Growl.framework/Versions/A/Growl deleted file mode 100755 index 55db324..0000000 Binary files a/Frameworks/Growl.framework/Versions/A/Growl and /dev/null differ diff --git a/Frameworks/Growl.framework/Versions/A/Headers/Growl.h b/Frameworks/Growl.framework/Versions/A/Headers/Growl.h deleted file mode 100644 index 72dfcdf..0000000 --- a/Frameworks/Growl.framework/Versions/A/Headers/Growl.h +++ /dev/null @@ -1,6 +0,0 @@ -#include - -#ifdef __OBJC__ -# include -#endif -#include diff --git a/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h b/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h deleted file mode 100644 index d4adefd..0000000 --- a/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h +++ /dev/null @@ -1,780 +0,0 @@ -// -// GrowlApplicationBridge-Carbon.h -// Growl -// -// Created by Mac-arena the Bored Zo on Wed Jun 18 2004. -// Based on GrowlApplicationBridge.h by Evan Schoenberg. -// This source code is in the public domain. You may freely link it into any -// program. -// - -#ifndef _GROWLAPPLICATIONBRIDGE_CARBON_H_ -#define _GROWLAPPLICATIONBRIDGE_CARBON_H_ - -#include -#include - -#ifndef GROWL_EXPORT -#define GROWL_EXPORT __attribute__((visibility("default"))) DEPRECATED_ATTRIBUTE -#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 - * to Growl (such as your application's name and what notifications it may - * post) and to provide information to your application (such as that Growl - * is listening for notifications or that a notification has been clicked). - * - * You can set the Growldelegate with Growl_SetDelegate and find out the - * current delegate with Growl_GetDelegate. See struct Growl_Delegate for more - * information about the delegate. - */ - -__BEGIN_DECLS - -/*! @struct Growl_Delegate - * @abstract Delegate to supply GrowlApplicationBridge with information and respond to events. - * @discussion The Growl delegate provides your interface to - * GrowlApplicationBridge. When GrowlApplicationBridge needs information about - * your application, it looks for it in the delegate; when Growl or the user - * does something that you might be interested in, GrowlApplicationBridge - * looks for a callback in the delegate and calls it if present - * (meaning, if it is not NULL). - * XXX on all of that - * @field size The size of the delegate structure. - * @field applicationName The name of your application. - * @field registrationDictionary A dictionary describing your application and the notifications it can send out. - * @field applicationIconData Your application's icon. - * @field growlInstallationWindowTitle The title of the installation window. - * @field growlInstallationInformation Text to display in the installation window. - * @field growlUpdateWindowTitle The title of the update window. - * @field growlUpdateInformation Text to display in the update window. - * @field referenceCount A count of owners of the delegate. - * @field retain Called when GrowlApplicationBridge receives this delegate. - * @field release Called when GrowlApplicationBridge no longer needs this delegate. - * @field growlIsReady Called when GrowlHelperApp is listening for notifications. - * @field growlNotificationWasClicked Called when a Growl notification is clicked. - * @field growlNotificationTimedOut Called when a Growl notification timed out. - */ -struct Growl_Delegate { - /* @discussion This should be sizeof(struct Growl_Delegate). - */ - size_t size; - - /*All of these attributes are optional. - *Optional attributes can be NULL; required attributes that - * are NULL cause setting the Growl delegate to fail. - *XXX - move optional/required status into the discussion for each field - */ - - /* This name is used both internally and in the Growl preferences. - * - * 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. - * - * This can be NULL if it is provided elsewhere, namely in an - * auto-discoverable plist file in your app bundle - * (XXX refer to more information on that) or in registrationDictionary. - */ - CFStringRef applicationName; - - /* - * Must contain at least these keys: - * GROWL_NOTIFICATIONS_ALL (CFArray): - * Contains the names of all notifications your application may post. - * - * Can also contain these keys: - * GROWL_NOTIFICATIONS_DEFAULT (CFArray): - * Names of notifications that should be enabled by default. - * If omitted, GROWL_NOTIFICATIONS_ALL will be used. - * GROWL_APP_NAME (CFString): - * Same as the applicationName member of this structure. - * If both are present, the applicationName member shall prevail. - * If this key is present, you may omit applicationName (set it to NULL). - * GROWL_APP_ICON (CFData): - * Same as the iconData member of this structure. - * If both are present, the iconData member shall prevail. - * If this key is present, you may omit iconData (set it to NULL). - * - * If you change the contents of this dictionary after setting the delegate, - * be sure to call Growl_Reregister. - * - * This can be NULL if you have an auto-discoverable plist file in your app - * bundle. (XXX refer to more information on that) - */ - CFDictionaryRef registrationDictionary; - - /* The 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. - * - * If this is not supplied, Growl will look up your application's icon by - * its application name. - */ - CFDataRef applicationIconData; - - /* Installer display attributes - * - * These four attributes are used by the Growl installer, if this framework - * supports it. - * For any of these being NULL, a localised default will be - * supplied. - */ - - /* If this is NULL, Growl will use a default, - * localized title. - * - * Only used if you're using Growl-WithInstaller.framework. Otherwise, - * this member is ignored. - */ - CFStringRef growlInstallationWindowTitle; - /* This information may be as long or short as desired (the - * window will be sized to fit it). If Growl is not installed, it will - * be displayed to the user as an explanation of what Growl is and what - * it can do in your application. - * It should probably note that no download is required to install. - * - * If this is NULL, Growl will use a default, localized - * explanation. - * - * Only used if you're using Growl-WithInstaller.framework. Otherwise, - * this member is ignored. - */ - CFStringRef growlInstallationInformation; - /* If this is NULL, Growl will use a default, - * localized title. - * - * Only used if you're using Growl-WithInstaller.framework. Otherwise, - * this member is ignored. - */ - CFStringRef growlUpdateWindowTitle; - /* This information may be as long or short as desired (the - * window will be sized to fit it). If an older version of Growl is - * installed, it will be displayed to the user as an explanation that an - * updated version of Growl is included in your application and - * no download is required. - * - * If this is NULL, Growl will use a default, localized - * explanation. - * - * Only used if you're using Growl-WithInstaller.framework. Otherwise, - * this member is ignored. - */ - CFStringRef growlUpdateInformation; - - /* This member is provided for use by your retain and release - * callbacks (see below). - * - * GrowlApplicationBridge never directly uses this member. Instead, it - * calls your retain callback (if non-NULL) and your release - * callback (if non-NULL). - */ - unsigned referenceCount; - - //Functions. Currently all of these are optional (any of them can be NULL). - - /* When you call Growl_SetDelegate(newDelegate), it will call - * oldDelegate->release(oldDelegate), and then it will call - * newDelegate->retain(newDelegate), and the return value from retain - * is what will be set as the delegate. - * (This means that this member works like CFRetain and -[NSObject retain].) - * This member is optional (it can be NULL). - * For a delegate allocated with malloc, this member would be - * NULL. - * @result A delegate to which GrowlApplicationBridge holds a reference. - */ - void *(*retain)(void *); - /* When you call Growl_SetDelegate(newDelegate), it will call - * oldDelegate->release(oldDelegate), and then it will call - * newDelegate->retain(newDelegate), and the return value from retain - * is what will be set as the delegate. - * (This means that this member works like CFRelease and - * -[NSObject release].) - * This member is optional (it can be NULL). - * For a delegate allocated with malloc, this member might be - * free(3). - */ - void (*release)(void *); - - /* 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. - */ - void (*growlIsReady)(void); - - /* Informs the delegate that a Growl notification was clicked. It is only - * sent for notifications sent with a non-NULL clickContext, - * so if you want to receive a message when a notification is clicked, - * clickContext must not be NULL when calling - * Growl_PostNotification or - * Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext. - */ - void (*growlNotificationWasClicked)(CFPropertyListRef clickContext); - - /* Informs the delegate that a Growl notification timed out. It is only - * sent for notifications sent with a non-NULL clickContext, - * so if you want to receive a message when a notification is clicked, - * clickContext must not be NULL when calling - * Growl_PostNotification or - * Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext. - */ - void (*growlNotificationTimedOut)(CFPropertyListRef clickContext); -}; - -/*! @struct Growl_Notification - * @abstract Structure describing a Growl notification. - * @discussion XXX - * @field size The size of the notification structure. - * @field name Identifies the notification. - * @field title Short synopsis of the notification. - * @field description Additional text. - * @field iconData An icon for the notification. - * @field priority An indicator of the notification's importance. - * @field reserved Bits reserved for future usage. - * @field isSticky Requests that a notification stay on-screen until dismissed explicitly. - * @field clickContext An identifier to be passed to your click callback when a notification is clicked. - * @field clickCallback A callback to call when the notification is clicked. - */ -struct Growl_Notification { - /* This should be sizeof(struct Growl_Notification). - */ - size_t size; - - /* The notification name distinguishes one type of - * notification from another. The name should be human-readable, as it - * will be displayed in the Growl preference pane. - * - * The name is used in the GROWL_NOTIFICATIONS_ALL and - * GROWL_NOTIFICATIONS_DEFAULT arrays in the registration dictionary, and - * in this member of the Growl_Notification structure. - */ - CFStringRef name; - - /* A notification's title describes the notification briefly. - * It should be easy to read quickly by the user. - */ - CFStringRef title; - - /* The description supplements the title with more - * information. It is usually longer and sometimes involves a list of - * subjects. For example, for a 'Download complete' notification, the - * description might have one filename per line. GrowlMail in Growl 0.6 - * uses a description of '%d new mail(s)' (formatted with the number of - * messages). - */ - CFStringRef description; - - /* The notification icon usually indicates either what - * happened (it may have the same icon as e.g. a toolbar item that - * started the process that led to the notification), or what it happened - * to (e.g. a document icon). - * - * The icon data is optional, so it can be NULL. In that - * case, the application icon is used alone. Not all displays support - * icons. - * - * The 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 form - * ats. - */ - CFDataRef iconData; - - /* Priority is new in Growl 0.6, and is represented as a - * signed integer from -2 to +2. 0 is Normal priority, -2 is Very Low - * priority, and +2 is Very High priority. - * - * Not all displays support priority. If you do not wish to assign a - * priority to your notification, assign 0. - */ - signed int priority; - - /* These bits are not used in Growl 0.6. Set them to 0. - */ - unsigned reserved: 31; - - /* When the sticky bit is clear, in most displays, - * notifications disappear after a certain amount of time. Sticky - * notifications, however, remain on-screen until the user dismisses them - * explicitly, usually by clicking them. - * - * Sticky notifications were introduced in Growl 0.6. Most notifications - * should not be sticky. Not all displays support sticky notifications, - * and the user may choose in Growl's preference pane to force the - * notification to be sticky or non-sticky, in which case the sticky bit - * in the notification will be ignored. - */ - unsigned isSticky: 1; - - /* If this is not NULL, and your click callback - * is not NULL either, this will be passed to the callback - * when your notification is clicked by the user. - * - * Click feedback was introduced in Growl 0.6, and it is optional. Not - * all displays support click feedback. - */ - CFPropertyListRef clickContext; - - /* If this is not NULL, it will be called instead - * of the Growl delegate's click callback when clickContext is - * non-NULL and the notification is clicked on by the user. - * - * Click feedback was introduced in Growl 0.6, and it is optional. Not - * all displays support click feedback. - * - * The per-notification click callback is not yet supported as of Growl - * 0.7. - */ - void (*clickCallback)(CFPropertyListRef clickContext); - - CFStringRef identifier; -}; - -#pragma mark - -#pragma mark Easy initialisers - -/*! @defined InitGrowlDelegate - * @abstract Callable macro. Initializes a Growl delegate structure to defaults. - * @discussion Call with a pointer to a struct Growl_Delegate. All of the - * members of the structure will be set to 0 or NULL, except for - * size (which will be set to sizeof(struct Growl_Delegate)) and - * referenceCount (which will be set to 1). - */ -#define InitGrowlDelegate(delegate) \ - do { \ - if (delegate) { \ - (delegate)->size = sizeof(struct Growl_Delegate); \ - (delegate)->applicationName = NULL; \ - (delegate)->registrationDictionary = NULL; \ - (delegate)->applicationIconData = NULL; \ - (delegate)->growlInstallationWindowTitle = NULL; \ - (delegate)->growlInstallationInformation = NULL; \ - (delegate)->growlUpdateWindowTitle = NULL; \ - (delegate)->growlUpdateInformation = NULL; \ - (delegate)->referenceCount = 1U; \ - (delegate)->retain = NULL; \ - (delegate)->release = NULL; \ - (delegate)->growlIsReady = NULL; \ - (delegate)->growlNotificationWasClicked = NULL; \ - (delegate)->growlNotificationTimedOut = NULL; \ - } \ - } while(0) - -/*! @defined InitGrowlNotification - * @abstract Callable macro. Initializes a Growl notification structure to defaults. - * @discussion Call with a pointer to a struct Growl_Notification. All of - * the members of the structure will be set to 0 or NULL, except - * for size (which will be set to - * sizeof(struct Growl_Notification)). - */ -#define InitGrowlNotification(notification) \ - do { \ - if (notification) { \ - (notification)->size = sizeof(struct Growl_Notification); \ - (notification)->name = NULL; \ - (notification)->title = NULL; \ - (notification)->description = NULL; \ - (notification)->iconData = NULL; \ - (notification)->priority = 0; \ - (notification)->reserved = 0U; \ - (notification)->isSticky = false; \ - (notification)->clickContext = NULL; \ - (notification)->clickCallback = NULL; \ - (notification)->identifier = NULL; \ - } \ - } while(0) - -#pragma mark - -#pragma mark Public API - -// @functiongroup Managing the Growl delegate - -/*! @function Growl_SetDelegate - * @abstract Replaces the current Growl delegate with a new one, or removes - * the Growl delegate. - * @param newDelegate - * @result Returns false and does nothing else if a pointer that was passed in - * is unsatisfactory (because it is non-NULL, but at least one - * required member of it is NULL). Otherwise, sets or unsets the - * delegate and returns true. - * @discussion When newDelegate is non-NULL, sets - * the delegate to newDelegate. When it is NULL, - * the current delegate will be unset, and no delegate will be in place. - * - * It is legal for newDelegate to be the current delegate; - * nothing will happen, and Growl_SetDelegate will return true. It is also - * legal for it to be NULL, as described above; again, it will - * return true. - * - * If there was a delegate in place before the call, Growl_SetDelegate will - * call the old delegate's release member if it was non-NULL. If - * newDelegate is non-NULL, Growl_SetDelegate will - * call newDelegate->retain, and set the delegate to its return - * value. - * - * If you are using Growl-WithInstaller.framework, and an older version of - * Growl is installed on the user's system, the user will automatically be - * prompted to update. - * - * GrowlApplicationBridge currently does not copy this structure, nor does it - * retain any of the CF objects in the structure (it regards the structure as - * a container that retains the objects when they are added and releases them - * when they are removed or the structure is destroyed). Also, - * GrowlApplicationBridge currently does not modify any member of the - * structure, except possibly the referenceCount by calling the retain and - * release members. - */ -GROWL_EXPORT Boolean Growl_SetDelegate(struct Growl_Delegate *newDelegate); - -/*! @function Growl_GetDelegate - * @abstract Returns the current Growl delegate, if any. - * @result The current Growl delegate. - * @discussion Returns the last pointer passed into Growl_SetDelegate, or - * NULL if no such call has been made. - * - * This function follows standard Core Foundation reference-counting rules. - * Because it is a Get function, not a Copy function, it will not retain the - * delegate on your behalf. You are responsible for retaining and releasing - * the delegate as needed. - */ -GROWL_EXPORT struct Growl_Delegate *Growl_GetDelegate(void); - -#pragma mark - - -// @functiongroup Posting Growl notifications - -/*! @function Growl_PostNotification - * @abstract Posts a Growl notification. - * @param notification The notification to post. - * @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 - * NULL (or 0 or false 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 function 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. - */ -GROWL_EXPORT void Growl_PostNotification(const struct Growl_Notification *notification); - -/*! @function Growl_PostNotificationWithDictionary -* @abstract Notifies using a userInfo dictionary suitable for passing to -* CFDistributedNotificationCenter. -* @param userInfo The dictionary to notify with. -* @discussion Before Growl 0.6, your application would have posted -* notifications using CFDistributedNotificationCenter by creating a userInfo -* dictionary with the notification data. This had the advantage of allowing -* you to add other data to the dictionary for programs besides Growl that -* might be listening. -* -* This function allows you to use such dictionaries without being restricted -* to using CFDistributedNotificationCenter. The keys for this dictionary - * can be found in GrowlDefines.h. -*/ -GROWL_EXPORT void Growl_PostNotificationWithDictionary(CFDictionaryRef userInfo); - -/*! @function Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext - * @abstract Posts a Growl notification using parameter values. - * @param title The title of the notification. - * @param description The description of the notification. - * @param notificationName The name of the notification as listed in the - * registration dictionary. - * @param iconData Data representing a notification icon. Can be NULL. - * @param priority The priority of the notification (-2 to +2, with -2 - * being Very Low and +2 being Very High). - * @param isSticky If true, requests that this notification wait for a - * response from the user. - * @param clickContext An object to pass to the clickCallback, if any. Can - * be NULL, in which case the clickCallback is not called. - * @discussion Creates a temporary Growl_Notification, fills it out with the - * supplied information, and calls Growl_PostNotification on it. - * See struct Growl_Notification and Growl_PostNotification for more - * information. - * - * 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. - */ -GROWL_EXPORT void Growl_NotifyWithTitleDescriptionNameIconPriorityStickyClickContext( - /*inhale*/ - CFStringRef title, - CFStringRef description, - CFStringRef notificationName, - CFDataRef iconData, - signed int priority, - Boolean isSticky, - CFPropertyListRef clickContext); - -#pragma mark - - -// @functiongroup Registering - -/*! @function Growl_RegisterWithDictionary - * @abstract Register your application with Growl without setting a delegate. - * @discussion When you call this function with a dictionary, - * GrowlApplicationBridge registers your application using that dictionary. - * If you pass NULL, GrowlApplicationBridge will ask the delegate - * (if there is one) for a dictionary, and if that doesn't work, it will look - * in your application's bundle for an auto-discoverable plist. - * (XXX refer to more information on that) - * - * If you pass a dictionary to this function, it must include the - * GROWL_APP_NAME key, unless a delegate is set. - * - * This function is mainly an alternative to the delegate system introduced - * with Growl 0.6. Without a delegate, you cannot receive callbacks such as - * growlIsReady (since they are sent to the delegate). You can, - * however, set a delegate after registering without one. - * - * This function was introduced in Growl.framework 0.7. - * @result false if registration failed (e.g. if Growl isn't installed). - */ -GROWL_EXPORT Boolean Growl_RegisterWithDictionary(CFDictionaryRef regDict); - -/*! @function Growl_Reregister - * @abstract Updates your registration with Growl. - * @discussion If your application changes the contents of the - * GROWL_NOTIFICATIONS_ALL key in the registrationDictionary member of the - * Growl delegate, or if it changes the value of that member, or if it - * changes the contents of its auto-discoverable plist, call this function - * to have Growl update its registration information for your application. - * - * Otherwise, this function does not normally need to be called. If you're - * using a delegate, your application will be registered when you set the - * delegate if both the delegate and its registrationDictionary member are - * non-NULL. - * - * This function is now implemented using - * Growl_RegisterWithDictionary. - */ -GROWL_EXPORT void Growl_Reregister(void); - -#pragma mark - - -/*! @function Growl_SetWillRegisterWhenGrowlIsReady - * @abstract Tells GrowlApplicationBridge to register with Growl when Growl - * launches (or not). - * @discussion When Growl has started listening for notifications, it posts a - * GROWL_IS_READY notification on the Distributed Notification - * Center. GrowlApplicationBridge listens for this notification, using it to - * perform various tasks (such as calling your delegate's - * growlIsReady callback, if it has one). If this function is - * called with true, one of those tasks will be to reregister - * with Growl (in the manner of Growl_Reregister). - * - * This attribute is automatically set back to false - * (the default) after every GROWL_IS_READY notification. - * @param flag true if you want GrowlApplicationBridge to register with - * Growl when next it is ready; false if not. - */ -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. - */ -GROWL_EXPORT Boolean Growl_WillRegisterWhenGrowlIsReady(void); - -#pragma mark - - -// @functiongroup Obtaining registration dictionaries - -/*! @function Growl_CopyRegistrationDictionaryFromDelegate - * @abstract Asks the delegate for a registration dictionary. - * @discussion If no delegate is set, or if the delegate's - * registrationDictionary member is NULL, this - * function returns NULL. - * - * 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_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys - * to try to fill in missing keys. - * - * This function was introduced in Growl.framework 0.7. - * @result A registration dictionary. - */ -GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromDelegate(void); - -/*! @function Growl_CopyRegistrationDictionaryFromBundle - * @abstract Looks in a bundle for a registration dictionary. - * @discussion This function looks in a bundle for an auto-discoverable - * registration dictionary file using CFBundleCopyResourceURL. - * If it finds one, it loads the file using CFPropertyList and - * returns the result. - * - * If you pass NULL as the bundle, the main bundle is examined. - * - * 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_CreateRegistrationDictionaryByFillingInDictionaryRestrictedToKeys - * to try to fill in missing keys. - * - * This function was introduced in Growl.framework 0.7. - * @result A registration dictionary. - */ -GROWL_EXPORT CFDictionaryRef Growl_CopyRegistrationDictionaryFromBundle(CFBundleRef bundle); - -/*! @function Growl_CreateBestRegistrationDictionary - * @abstract Obtains a registration dictionary, filled out to the best of - * GrowlApplicationBridge's knowledge. - * @discussion This function creates a registration dictionary as best - * GrowlApplicationBridge knows how. - * - * First, GrowlApplicationBridge examines the Growl delegate (if there is - * one) and gets the registration dictionary from that. If no such dictionary - * was obtained, GrowlApplicationBridge looks in your application's main - * bundle for an auto-discoverable registration dictionary file. If that - * doesn't exist either, this function returns NULL. - * - * Second, GrowlApplicationBridge calls - * Growl_CreateRegistrationDictionaryByFillingInDictionary with - * whatever dictionary was obtained. The result of that function is the - * result of this function. - * - * GrowlApplicationBridge uses this function when you call - * Growl_SetDelegate, or when you call - * Growl_RegisterWithDictionary with NULL. - * - * This function was introduced in Growl.framework 0.7. - * @result A registration dictionary. - */ -GROWL_EXPORT CFDictionaryRef Growl_CreateBestRegistrationDictionary(void); - -#pragma mark - - -// @functiongroup Filling in registration dictionaries - -/*! @function Growl_CreateRegistrationDictionaryByFillingInDictionary - * @abstract Tries to fill in missing keys in a registration dictionary. - * @param regDict The dictionary to fill in. - * @result The dictionary with the keys filled in. - * @discussion This function examines the passed-in dictionary for missing keys, - * and tries to work out correct values for them. As of 0.7, it uses: - * - * Key Value - * --- ----- - * GROWL_APP_NAME CFBundleExecutableName - * GROWL_APP_ICON The icon of the application. - * GROWL_APP_LOCATION The location of the application. - * GROWL_NOTIFICATIONS_DEFAULT GROWL_NOTIFICATIONS_ALL - * - * Keys are only filled in if missing; if a key is present in the dictionary, - * its value will not be changed. - * - * This function was introduced in Growl.framework 0.7. - */ -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. - * @param keys The keys to fill in. If NULL, any missing keys are filled in. - * @result The dictionary with the keys filled in. - * @discussion This function examines the passed-in dictionary for missing keys, - * and tries to work out correct values for them. As of 0.7, it uses: - * - * Key Value - * --- ----- - * GROWL_APP_NAME CFBundleExecutableName - * GROWL_APP_ICON The icon of the application. - * GROWL_APP_LOCATION The location of the application. - * GROWL_NOTIFICATIONS_DEFAULT GROWL_NOTIFICATIONS_ALL - * - * Only those keys that are listed in keys will be filled in. - * Other missing keys are ignored. Also, keys are only filled in if missing; - * if a key is present in the dictionary, its value will not be changed. - * - * This function was introduced in Growl.framework 0.7. - */ -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 - - -// @functiongroup Querying Growl's status - -/*! @function Growl_IsInstalled - * @abstract Determines whether the Growl prefpane and its helper app are - * installed. - * @result Returns true if Growl is installed, false otherwise. - */ -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. - */ -GROWL_EXPORT Boolean Growl_IsRunning(void); - -#pragma mark - - -// @functiongroup Launching Growl - -/*! @typedef GrowlLaunchCallback - * @abstract Callback to notify you that Growl is running. - * @param context The context pointer passed to Growl_LaunchIfInstalled. - * @discussion Growl_LaunchIfInstalled calls this callback function if Growl - * was already running or if it launched Growl successfully. - */ -typedef void (*GrowlLaunchCallback)(void *context); - -/*! @function Growl_LaunchIfInstalled - * @abstract Launches GrowlHelperApp if it is not already running. - * @param callback A callback function which will be called if Growl was successfully - * launched or was already running. Can be NULL. - * @param context The context pointer to pass to the callback. Can be NULL. - * @result Returns true if Growl was successfully launched or was already - * running; returns false and does not call the callback otherwise. - * @discussion Returns true and calls the callback (if the callback is not - * NULL) if the Growl helper app began launching or was already - * running. Returns false and performs no other action if Growl could not be - * launched (e.g. because the Growl preference pane is not properly installed). - * - * If Growl_CreateBestRegistrationDictionary returns - * non-NULL, this function will register with Growl atomically. - * - * The callback should take a single argument; this is to allow applications - * to have context-relevant information passed back. It is perfectly - * acceptable for context to be NULL. The callback itself can be - * NULL if you don't want one. - */ -GROWL_EXPORT Boolean Growl_LaunchIfInstalled(GrowlLaunchCallback callback, void *context); - -#pragma mark - -#pragma mark Constants - -/*! @defined GROWL_PREFPANE_BUNDLE_IDENTIFIER - * @abstract The CFBundleIdentifier of the Growl preference pane bundle. - * @discussion GrowlApplicationBridge uses this to determine whether Growl is - * currently installed, by searching for the Growl preference pane. Your - * application probably does not need to use this macro itself. - */ -#ifndef GROWL_PREFPANE_BUNDLE_IDENTIFIER -#define GROWL_PREFPANE_BUNDLE_IDENTIFIER CFSTR("com.growl.prefpanel") -#endif - -__END_DECLS - -#endif /* _GROWLAPPLICATIONBRIDGE_CARBON_H_ */ diff --git a/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h b/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h deleted file mode 100644 index 1e39f8d..0000000 --- a/Frameworks/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h +++ /dev/null @@ -1,575 +0,0 @@ -// -// GrowlApplicationBridge.h -// Growl -// -// Created by Evan Schoenberg on Wed Jun 16 2004. -// Copyright 2004-2006 The Growl Project. All rights reserved. -// - -/*! - * @header GrowlApplicationBridge.h - * @abstract Defines the GrowlApplicationBridge class. - * @discussion This header defines the GrowlApplicationBridge class as well as - * the GROWL_PREFPANE_BUNDLE_IDENTIFIER constant. - */ - -#ifndef __GrowlApplicationBridge_h__ -#define __GrowlApplicationBridge_h__ - -#import -#import -#import "GrowlDefines.h" - -//Forward declarations -@protocol GrowlApplicationBridgeDelegate; - -//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" - -//------------------------------------------------------------------------------ -#pragma mark - - -/*! - * @class GrowlApplicationBridge - * @abstract A class used to interface with Growl. - * @discussion This class provides a means to interface with Growl. - * - * Currently it provides a way to detect if Growl is installed and launch the - * GrowlHelperApp if it's not already running. - */ -@interface GrowlApplicationBridge : NSObject { - -} - -/*! - * @method isGrowlInstalled - * @abstract Detects whether Growl is installed. - * @discussion Determines if the Growl prefpane and its helper app are installed. - * @result Returns YES if Growl is installed, NO otherwise. - */ -+ (BOOL) isGrowlInstalled; - -/*! - * @method isGrowlRunning - * @abstract Detects whether GrowlHelperApp is currently running. - * @discussion Cycles through the process list to find whether GrowlHelperApp is running and returns its findings. - * @result Returns YES if GrowlHelperApp is running, NO otherwise. - */ -+ (BOOL) isGrowlRunning; - -#pragma mark - - -/*! - * @method setGrowlDelegate: - * @abstract Set the object which will be responsible for providing and receiving Growl information. - * @discussion This must be called before using GrowlApplicationBridge. - * - * The methods in the GrowlApplicationBridgeDelegate protocol are required - * and return the basic information needed to register with Growl. - * - * The methods in the GrowlApplicationBridgeDelegate_InformalProtocol - * informal protocol are individually optional. They provide a greater - * degree of interaction between the application and growl such as informing - * the application when one of its Growl notifications is clicked by the user. - * - * The methods in the GrowlApplicationBridgeDelegate_Installation_InformalProtocol - * informal protocol are individually optional and are only applicable when - * using the Growl-WithInstaller.framework which allows for automated Growl - * installation. - * - * When this method is called, data will be collected from inDelegate, Growl - * will be launched if it is not already running, and the application will be - * registered with Growl. - * - * If using the Growl-WithInstaller framework, if Growl is already installed - * but this copy of the framework has an updated version of Growl, the user - * will be prompted to update automatically. - * - * @param inDelegate The delegate for the GrowlApplicationBridge. It must conform to the GrowlApplicationBridgeDelegate protocol. - */ -+ (void) setGrowlDelegate:(NSObject *)inDelegate; - -/*! - * @method growlDelegate - * @abstract Return the object responsible for providing and receiving Growl information. - * @discussion See setGrowlDelegate: for details. - * @result The Growl delegate. - */ -+ (NSObject *) growlDelegate; - -#pragma mark - - -/*! - * @method notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext: - * @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). - */ -+ (void) notifyWithTitle:(NSString *)title - description:(NSString *)description - notificationName:(NSString *)notifName - iconData:(NSData *)iconData - priority:(signed int)priority - isSticky:(BOOL)isSticky - clickContext:(id)clickContext; - -/*! - * @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. - * @param userInfo The dictionary to notify with. - * @discussion Before Growl 0.6, your application would have posted - * notifications using NSDistributedNotificationCenter by - * creating a userInfo dictionary with the notification data. This had the - * advantage of allowing you to add other data to the dictionary for programs - * besides Growl that might be listening. - * - * This method allows you to use such dictionaries without being restricted - * to using NSDistributedNotificationCenter. The keys for this dictionary - * can be found in GrowlDefines.h. - */ -+ (void) notifyWithDictionary:(NSDictionary *)userInfo; - -#pragma mark - - -/*! @method registerWithDictionary: - * @abstract Register your application with Growl without setting a delegate. - * @discussion When you call this method with a dictionary, - * GrowlApplicationBridge registers your application using that dictionary. - * If you pass nil, GrowlApplicationBridge will ask the delegate - * (if there is one) for a dictionary, and if that doesn't work, it will look - * in your application's bundle for an auto-discoverable plist. - * (XXX refer to more information on that) - * - * If you pass a dictionary to this method, it must include the - * GROWL_APP_NAME key, unless a delegate is set. - * - * This method is mainly an alternative to the delegate system introduced - * with Growl 0.6. Without a delegate, you cannot receive callbacks such as - * -growlIsReady (since they are sent to the delegate). You can, - * however, set a delegate after registering without one. - * - * This method was introduced in Growl.framework 0.7. - */ -+ (BOOL) registerWithDictionary:(NSDictionary *)regDict; - -/*! @method reregisterGrowlNotifications - * @abstract Reregister the notifications for this application. - * @discussion This method does not normally need to be called. If your - * application changes what notifications it is registering with Growl, call - * this method to have the Growl delegate's - * -registrationDictionaryForGrowl method called again and the - * Growl registration information updated. - * - * This method is now implemented using -registerWithDictionary:. - */ -+ (void) reregisterGrowlNotifications; - -#pragma mark - - -/*! @method setWillRegisterWhenGrowlIsReady: - * @abstract Tells GrowlApplicationBridge to register with Growl when Growl - * launches (or not). - * @discussion When Growl has started listening for notifications, it posts a - * GROWL_IS_READY notification on the Distributed Notification - * Center. GrowlApplicationBridge listens for this notification, using it to - * perform various tasks (such as calling your delegate's - * -growlIsReady method, if it has one). If this method is - * called with YES, one of those tasks will be to reregister - * with Growl (in the manner of -reregisterGrowlNotifications). - * - * This attribute is automatically set back to NO (the default) - * after every GROWL_IS_READY notification. - * @param flag YES if you want GrowlApplicationBridge to register with - * Growl when next it is ready; NO if not. - */ -+ (void) setWillRegisterWhenGrowlIsReady:(BOOL)flag; -/*! @method willRegisterWhenGrowlIsReady - * @abstract Reports whether GrowlApplicationBridge will register with Growl - * when Growl next launches. - * @result YES if GrowlApplicationBridge will register with Growl - * when next it posts GROWL_IS_READY; NO if not. - */ -+ (BOOL) willRegisterWhenGrowlIsReady; - -#pragma mark - - -/*! @method registrationDictionaryFromDelegate - * @abstract Asks the delegate for a registration dictionary. - * @discussion If no delegate is set, or if the delegate's - * -registrationDictionaryForGrowl method returns - * nil, this method returns nil. - * - * This method 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 +[GrowlApplicationBridge - * registrationDictionaryByFillingInDictionary:] or - * +[GrowlApplicationBridge - * registrationDictionaryByFillingInDictionary:restrictToKeys:] to try - * to fill in missing keys. - * - * This method was introduced in Growl.framework 0.7. - * @result A registration dictionary. - */ -+ (NSDictionary *) registrationDictionaryFromDelegate; - -/*! @method registrationDictionaryFromBundle: - * @abstract Looks in a bundle for a registration dictionary. - * @discussion This method looks in a bundle for an auto-discoverable - * registration dictionary file using -[NSBundle - * pathForResource:ofType:]. If it finds one, it loads the file using - * +[NSDictionary dictionaryWithContentsOfFile:] and returns the - * result. - * - * If you pass nil as the bundle, the main bundle is examined. - * - * This method 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 +[GrowlApplicationBridge - * registrationDictionaryByFillingInDictionary:] or - * +[GrowlApplicationBridge - * registrationDictionaryByFillingInDictionary:restrictToKeys:] to try - * to fill in missing keys. - * - * This method was introduced in Growl.framework 0.7. - * @result A registration dictionary. - */ -+ (NSDictionary *) registrationDictionaryFromBundle:(NSBundle *)bundle; - -/*! @method bestRegistrationDictionary - * @abstract Obtains a registration dictionary, filled out to the best of - * GrowlApplicationBridge's knowledge. - * @discussion This method creates a registration dictionary as best - * GrowlApplicationBridge knows how. - * - * First, GrowlApplicationBridge contacts the Growl delegate (if there is - * one) and gets the registration dictionary from that. If no such dictionary - * was obtained, GrowlApplicationBridge looks in your application's main - * bundle for an auto-discoverable registration dictionary file. If that - * doesn't exist either, this method returns nil. - * - * Second, GrowlApplicationBridge calls - * +registrationDictionaryByFillingInDictionary: with whatever - * dictionary was obtained. The result of that method is the result of this - * method. - * - * GrowlApplicationBridge uses this method when you call - * +setGrowlDelegate:, or when you call - * +registerWithDictionary: with nil. - * - * This method was introduced in Growl.framework 0.7. - * @result A registration dictionary. - */ -+ (NSDictionary *) bestRegistrationDictionary; - -#pragma mark - - -/*! @method registrationDictionaryByFillingInDictionary: - * @abstract Tries to fill in missing keys in a registration dictionary. - * @discussion This method examines the passed-in dictionary for missing keys, - * and tries to work out correct values for them. As of 0.7, it uses: - * - * Key Value - * --- ----- - * GROWL_APP_NAME CFBundleExecutableName - * GROWL_APP_ICON The icon of the application. - * GROWL_APP_LOCATION The location of the application. - * GROWL_NOTIFICATIONS_DEFAULT GROWL_NOTIFICATIONS_ALL - * - * Keys are only filled in if missing; if a key is present in the dictionary, - * its value will not be changed. - * - * This method was introduced in Growl.framework 0.7. - * @param regDict The dictionary to fill in. - * @result The dictionary with the keys filled in. This is an autoreleased - * copy of regDict. - */ -+ (NSDictionary *) registrationDictionaryByFillingInDictionary:(NSDictionary *)regDict; -/*! @method registrationDictionaryByFillingInDictionary:restrictToKeys: - * @abstract Tries to fill in missing keys in a registration dictionary. - * @discussion This method examines the passed-in dictionary for missing keys, - * and tries to work out correct values for them. As of 0.7, it uses: - * - * Key Value - * --- ----- - * GROWL_APP_NAME CFBundleExecutableName - * GROWL_APP_ICON The icon of the application. - * GROWL_APP_LOCATION The location of the application. - * GROWL_NOTIFICATIONS_DEFAULT GROWL_NOTIFICATIONS_ALL - * - * Only those keys that are listed in keys will be filled in. - * Other missing keys are ignored. Also, keys are only filled in if missing; - * if a key is present in the dictionary, its value will not be changed. - * - * This method was introduced in Growl.framework 0.7. - * @param regDict The dictionary to fill in. - * @param keys The keys to fill in. If nil, any missing keys are filled in. - * @result The dictionary with the keys filled in. This is an autoreleased - * copy of regDict. - */ -+ (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 - -//------------------------------------------------------------------------------ -#pragma mark - - -/*! - * @protocol GrowlApplicationBridgeDelegate - * @abstract Required protocol for the Growl delegate. - * @discussion The methods in this protocol are required and are called - * automatically as needed by GrowlApplicationBridge. See - * +[GrowlApplicationBridge setGrowlDelegate:]. - * See also GrowlApplicationBridgeDelegate_InformalProtocol. - */ - -@protocol GrowlApplicationBridgeDelegate - -// -registrationDictionaryForGrowl has moved to the informal protocol as of 0.7. - -@end - -//------------------------------------------------------------------------------ -#pragma mark - - -/*! - * @category NSObject(GrowlApplicationBridgeDelegate_InformalProtocol) - * @abstract Methods which may be optionally implemented by the GrowlDelegate. - * @discussion The methods in this informal protocol will only be called if implemented by the delegate. - */ -@interface NSObject (GrowlApplicationBridgeDelegate_InformalProtocol) - -/*! - * @method registrationDictionaryForGrowl - * @abstract Return the dictionary used to register this application with Growl. - * @discussion The returned dictionary gives Growl the complete list of - * notifications this application will ever send, and it also specifies which - * notifications should be enabled by default. Each is specified by an array - * of NSString objects. - * - * For most applications, these two arrays can be the same (if all sent - * notifications should be displayed by default). - * - * The NSString objects of these arrays will correspond to the - * notificationName: parameter passed in - * +[GrowlApplicationBridge - * notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:] calls. - * - * 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) - * - * @result The NSDictionary to use for registration. - */ -- (NSDictionary *) registrationDictionaryForGrowl; - -/*! - * @method applicationNameForGrowl - * @abstract Return the name of this application which will be used for Growl bookkeeping. - * @discussion This name is used both internally and in the Growl preferences. - * - * 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. - * - * You do not need to implement this method if you are providing the - * application name elsewhere, meaning in an auto-discoverable plist file in - * your app bundle (XXX refer to more information on that) or in the result - * of -registrationDictionaryForGrowl. - * - * @result The name of the application using Growl. - */ -- (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. - * @discussion The delegate may optionally return an NSData - * 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; - -/*! - * @method growlIsReady - * @abstract Informs the delegate that Growl has launched. - * @discussion Informs the delegate that Growl (specifically, the - * GrowlHelperApp) was launched successfully. The application can take actions - * with the knowledge that Growl is installed and functional. - */ -- (void) growlIsReady; - -/*! - * @method growlNotificationWasClicked: - * @abstract Informs the delegate that a Growl notification was clicked. - * @discussion Informs the delegate that a Growl notification was clicked. It - * is only sent for notifications sent with a non-nil - * clickContext, so if you want to receive a message when a notification is - * clicked, clickContext must not be nil when calling - * +[GrowlApplicationBridge notifyWithTitle: description:notificationName:iconData:priority:isSticky:clickContext:]. - * @param clickContext The clickContext passed when displaying the notification originally via +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:]. - */ -- (void) growlNotificationWasClicked:(id)clickContext; - -/*! - * @method growlNotificationTimedOut: - * @abstract Informs the delegate that a Growl notification timed out. - * @discussion Informs the delegate that a Growl notification timed out. It - * is only sent for notifications sent with a non-nil - * clickContext, so if you want to receive a message when a notification is - * clicked, clickContext must not be nil when calling - * +[GrowlApplicationBridge notifyWithTitle: description:notificationName:iconData:priority:isSticky:clickContext:]. - * @param clickContext The clickContext passed when displaying the notification originally via +[GrowlApplicationBridge notifyWithTitle:description:notificationName:iconData:priority:isSticky:clickContext:]. - */ -- (void) growlNotificationTimedOut:(id)clickContext; - -@end - -#pragma mark - -/*! - * @category NSObject(GrowlApplicationBridgeDelegate_Installation_InformalProtocol) - * @abstract Methods which may be optionally implemented by the Growl delegate when used with Growl-WithInstaller.framework. - * @discussion The methods in this informal protocol will only be called if - * implemented by the delegate. They allow greater control of the information - * presented to the user when installing or upgrading Growl from within your - * application when using Growl-WithInstaller.framework. - */ -@interface NSObject (GrowlApplicationBridgeDelegate_Installation_InformalProtocol) - -/*! - * @method growlInstallationWindowTitle - * @abstract Return the title of the installation window. - * @discussion If not implemented, Growl will use a default, localized title. - * @result An NSString object to use as the title. - */ -- (NSString *)growlInstallationWindowTitle; - -/*! - * @method growlUpdateWindowTitle - * @abstract Return the title of the upgrade window. - * @discussion If not implemented, Growl will use a default, localized title. - * @result An NSString object to use as the title. - */ -- (NSString *)growlUpdateWindowTitle; - -/*! - * @method growlInstallationInformation - * @abstract Return the information to display when installing. - * @discussion This information may be as long or short as desired (the window - * will be sized to fit it). It will be displayed to the user as an - * explanation of what Growl is and what it can do in your application. It - * should probably note that no download is required to install. - * - * If this is not implemented, Growl will use a default, localized explanation. - * @result An NSAttributedString object to display. - */ -- (NSAttributedString *)growlInstallationInformation; - -/*! - * @method growlUpdateInformation - * @abstract Return the information to display when upgrading. - * @discussion This information may be as long or short as desired (the window - * will be sized to fit it). It will be displayed to the user as an - * explanation that an updated version of Growl is included in your - * application and no download is required. - * - * If this is not implemented, Growl will use a default, localized explanation. - * @result An NSAttributedString object to display. - */ -- (NSAttributedString *)growlUpdateInformation; - -@end - -//private -@interface GrowlApplicationBridge (GrowlInstallationPrompt_private) -+ (void) _userChoseNotToInstallGrowl; -@end - -#endif /* __GrowlApplicationBridge_h__ */ diff --git a/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h b/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h deleted file mode 100644 index 2b971cf..0000000 --- a/Frameworks/Growl.framework/Versions/A/Headers/GrowlDefines.h +++ /dev/null @@ -1,348 +0,0 @@ -// -// GrowlDefines.h -// - -#ifndef _GROWLDEFINES_H -#define _GROWLDEFINES_H - -#ifdef __OBJC__ -#define XSTR(x) (@x) -#define STRING_TYPE NSString * -#else -#define XSTR CFSTR -#define STRING_TYPE CFStringRef -#endif - -/*! @header GrowlDefines.h - * @abstract Defines all the notification keys. - * @discussion Defines all the keys used for registration with Growl and for - * Growl notifications. - * - * Most applications should use the functions or methods of Growl.framework - * instead of posting notifications such as those described here. - * @updated 2004-01-25 - */ - -// UserInfo Keys for Registration -#pragma mark UserInfo Keys for Registration - -/*! @group Registration userInfo keys */ -/* @abstract Keys for the userInfo dictionary of a GROWL_APP_REGISTRATION distributed notification. - * @discussion The values of these keys describe the application and the - * notifications it may post. - * - * Your application must register with Growl before it can post Growl - * notifications (and have them not be ignored). However, as of Growl 0.6, - * posting GROWL_APP_REGISTRATION notifications directly is no longer the - * preferred way to register your application. Your application should instead - * use Growl.framework's delegate system. - * See +[GrowlApplicationBridge setGrowlDelegate:] or Growl_SetDelegate for - * more information. - */ - -/*! @defined GROWL_APP_NAME - * @abstract The name of your application. - * @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. - */ -#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 - * 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. - */ -#define GROWL_APP_ICON XSTR("ApplicationIcon") -/*! @defined GROWL_NOTIFICATIONS_DEFAULT - * @abstract The array of notifications to turn on by default. - * @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. - */ -#define GROWL_NOTIFICATIONS_DEFAULT XSTR("DefaultNotifications") -/*! @defined GROWL_NOTIFICATIONS_ALL - * @abstract The array of all notifications your application can send. - * @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. - */ -#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 - * application bundle for auto-discovery. The current ticket version is 1. - */ -#define GROWL_TICKET_VERSION XSTR("TicketVersion") -// UserInfo Keys for Notifications -#pragma mark UserInfo Keys for Notifications - -/*! @group Notification userInfo keys */ -/* @abstract Keys for the userInfo dictionary of a GROWL_NOTIFICATION distributed notification. - * @discussion The values of these keys describe the content of a Growl - * notification. - * - * Not all of these keys are supported by all displays. Only the name, title, - * and description of a notification are universal. Most of the built-in - * displays do support all of these keys, and most other visual displays - * probably will also. But, as of 0.6, the Log, MailMe, and Speech displays - * support only textual data. - */ - -/*! @defined GROWL_NOTIFICATION_NAME - * @abstract The name of the notification. - * @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. - * @discussion The title of the notification. Should be very brief. - * The title usually says what happened, e.g. "Download complete". - */ -#define GROWL_NOTIFICATION_TITLE XSTR("NotificationTitle") -/*! @defined GROWL_NOTIFICATION_DESCRIPTION - * @abstract The description to display in the notification. - * @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". - */ -#define GROWL_NOTIFICATION_DESCRIPTION XSTR("NotificationDescription") -/*! @defined GROWL_NOTIFICATION_ICON - * @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. - */ -#define GROWL_NOTIFICATION_ICON XSTR("NotificationIcon") -/*! @defined GROWL_NOTIFICATION_APP_ICON - * @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. - */ -#define GROWL_NOTIFICATION_APP_ICON XSTR("NotificationAppIcon") -/*! @defined GROWL_NOTIFICATION_PRIORITY - * @discussion The priority of the notification as an integer number from - * -2 to +2 (+2 being highest). - * - * Optional. Not supported by all display plugins. - */ -#define GROWL_NOTIFICATION_PRIORITY XSTR("NotificationPriority") -/*! @defined GROWL_NOTIFICATION_STICKY - * @discussion A Boolean number controlling whether the notification is sticky. - * - * Optional. Not supported by all display plugins. - */ -#define GROWL_NOTIFICATION_STICKY XSTR("NotificationSticky") -/*! @defined GROWL_NOTIFICATION_CLICK_CONTEXT - * @abstract Identifies which notification was clicked. - * @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. - */ -#define GROWL_NOTIFICATION_CLICK_CONTEXT XSTR("NotificationClickContext") - -/*! @defined GROWL_DISPLAY_PLUGIN - * @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. - */ -#define GROWL_DISPLAY_PLUGIN XSTR("NotificationDisplayPlugin") - -/*! @defined GROWL_NOTIFICATION_IDENTIFIER - * @abstract 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") - -/*! @defined GROWL_APP_PID - * @abstract 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") - -/*! @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 - -/*! @group Notification names */ -/* @abstract Names of distributed notifications used by Growl. - * @discussion These are notifications used by applications (directly or - * indirectly) to interact with Growl, and by Growl for interaction between - * its components. - * - * Most of these should no longer be used in Growl 0.6 and later, in favor of - * Growl.framework's GrowlApplicationBridge APIs. - */ - -/*! @defined GROWL_APP_REGISTRATION - * @abstract The distributed notification for registering your application. - * @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. - */ -#define GROWL_APP_REGISTRATION XSTR("GrowlApplicationRegistrationNotification") -/*! @defined GROWL_APP_REGISTRATION_CONF - * @abstract The distributed notification for confirming registration. - * @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. - */ -#define GROWL_APP_REGISTRATION_CONF XSTR("GrowlApplicationRegistrationConfirmationNotification") -/*! @defined GROWL_NOTIFICATION - * @abstract The distributed notification for Growl notifications. - * @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. - */ -#define GROWL_NOTIFICATION XSTR("GrowlNotification") -/*! @defined GROWL_SHUTDOWN -* @abstract The distributed notification name that tells Growl to shutdown. -* @discussion The Growl preference pane posts this notification when the -* "Stop Growl" button is clicked. -*/ -#define GROWL_SHUTDOWN XSTR("GrowlShutdown") -/*! @defined GROWL_PING - * @abstract A distributed notification to check whether Growl is running. - * @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. - */ -#define GROWL_PING XSTR("Honey, Mind Taking Out The Trash") -/*! @defined GROWL_PONG - * @abstract The distributed notification sent in reply to GROWL_PING. - * @discussion GrowlHelperApp posts this in reply to GROWL_PING. - */ -#define GROWL_PONG XSTR("What Do You Want From Me, Woman") -/*! @defined GROWL_IS_READY - * @abstract The distributed notification sent when Growl starts up. - * @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. - */ -#define GROWL_IS_READY XSTR("Lend Me Some Sugar; I Am Your Neighbor!") -/*! @defined GROWL_NOTIFICATION_CLICKED - * @abstract The distributed notification sent when a supported notification is clicked. - * @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. - */ -#define GROWL_NOTIFICATION_CLICKED XSTR("GrowlClicked!") -#define GROWL_NOTIFICATION_TIMED_OUT XSTR("GrowlTimedOut!") - -/*! @group Other symbols */ -/* Symbols which don't fit into any of the other categories. */ - -/*! @defined GROWL_KEY_CLICKED_CONTEXT - * @abstract Used internally as the key for the clickedContext passed over DNC. - * @discussion This key is used in GROWL_NOTIFICATION_CLICKED, and contains the - * click context that was supplied in the original notification. - */ -#define GROWL_KEY_CLICKED_CONTEXT XSTR("ClickedContext") -/*! @defined GROWL_REG_DICT_EXTENSION - * @abstract The filename extension for registration dictionaries. - * @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. - */ -#define GROWL_REG_DICT_EXTENSION XSTR("growlRegDict") - - -#define GROWL_POSITION_PREFERENCE_KEY @"GrowlSelectedPosition" - -#endif //ndef _GROWLDEFINES_H diff --git a/Frameworks/Growl.framework/Versions/A/Resources/Info.plist b/Frameworks/Growl.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 82b32db..0000000 --- a/Frameworks/Growl.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - Growl - CFBundleIdentifier - com.growl.growlframework - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.2 - CFBundleSignature - GRRR - CFBundleVersion - 1.2 - NSPrincipalClass - GrowlApplicationBridge - - diff --git a/Frameworks/Growl.framework/Versions/Current b/Frameworks/Growl.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Frameworks/Growl.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Headers b/Frameworks/UnrarKit.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/Frameworks/UnrarKit.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Modules b/Frameworks/UnrarKit.framework/Modules deleted file mode 120000 index 5736f31..0000000 --- a/Frameworks/UnrarKit.framework/Modules +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Modules \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Resources b/Frameworks/UnrarKit.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/Frameworks/UnrarKit.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/UnrarKit b/Frameworks/UnrarKit.framework/UnrarKit deleted file mode 120000 index 361e5ac..0000000 --- a/Frameworks/UnrarKit.framework/UnrarKit +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/UnrarKit \ No newline at end of file diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/URKArchive.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/URKArchive.h deleted file mode 100644 index 367862d..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Headers/URKArchive.h +++ /dev/null @@ -1,526 +0,0 @@ -// -// URKArchive.h -// UnrarKit -// -// - -#import -#import -#import - -RarosHppIgnore -#import -#pragma clang diagnostic pop - -DllHppIgnore -#import -#pragma clang diagnostic pop - -@class URKFileInfo; - -/** - * Defines the various error codes that the listing and extraction methods return. - * These are returned in NSError's [code]([NSError code]) field. - */ -typedef NS_ENUM(NSInteger, URKErrorCode) { - - /** - * The last file of the archive has been read - */ - URKErrorCodeEndOfArchive = ERAR_END_ARCHIVE, - - /** - * The library ran out of memory while reading the archive - */ - URKErrorCodeNoMemory = ERAR_NO_MEMORY, - - /** - * The header's CRC doesn't match the decompressed data's CRC - */ - URKErrorCodeBadData = ERAR_BAD_DATA, - - /** - * The archive is not a valid RAR file - */ - URKErrorCodeBadArchive = ERAR_BAD_ARCHIVE, - - /** - * The archive is an unsupported RAR format or version - */ - URKErrorCodeUnknownFormat = ERAR_UNKNOWN_FORMAT, - - /** - * Failed to open a reference to the file - */ - URKErrorCodeOpen = ERAR_EOPEN, - - /** - * Failed to create the target directory for extraction - */ - URKErrorCodeCreate = ERAR_ECREATE, - - /** - * Failed to close the archive - */ - URKErrorCodeClose = ERAR_ECLOSE, - - /** - * Failed to read the archive - */ - URKErrorCodeRead = ERAR_EREAD, - - /** - * Failed to write a file to disk - */ - URKErrorCodeWrite = ERAR_EWRITE, - - /** - * The archive header's comments are larger than the buffer size - */ - URKErrorCodeSmall = ERAR_SMALL_BUF, - - /** - * The cause of the error is unspecified - */ - URKErrorCodeUnknown = ERAR_UNKNOWN, - - /** - * A password was not given for a password-protected archive - */ - URKErrorCodeMissingPassword = ERAR_MISSING_PASSWORD, - - /** - * No data was returned from the archive - */ - URKErrorCodeArchiveNotFound = 101, - - /** - * User cancelled the operation - */ - URKErrorCodeUserCancelled = 102, - - /** - * Error converting string to UTF-8 - */ - URKErrorCodeStringConversion = 103, -}; - -typedef NSString *const URKProgressInfoKey; - - -/** - * Defines the keys passed in `-[NSProgress userInfo]` for certain methods - */ -static URKProgressInfoKey _Nonnull - /** - * For `extractFilesTo:overwrite:error:`, this key contains an instance of URKFileInfo with the file currently being extracted - */ - URKProgressInfoKeyFileInfoExtracting = @"URKProgressInfoKeyFileInfoExtracting"; - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *URKErrorDomain; - -/** - * An Objective-C/Cocoa wrapper around the unrar library - */ -@interface URKArchive : NSObject -// Minimum of iOS 9, macOS 10.11 SDKs -#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED > 90000) || (defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED > 101100) - -#endif - - -/** - * The URL of the archive - */ -@property(nullable, weak, atomic, readonly) NSURL *fileURL; - -/** - * The filename of the archive - */ -@property(nullable, weak, atomic, readonly) NSString *filename; - -/** - * The password of the archive - */ -@property(nullable, nonatomic, strong) NSString *password; - -/** - * The total uncompressed size (in bytes) of all files in the archive. Returns nil on errors - */ -@property(nullable, atomic, readonly) NSNumber *uncompressedSize; - -/** - * The total compressed size (in bytes) of the archive. Returns nil on errors - */ -@property(nullable, atomic, readonly) NSNumber *compressedSize; - -/** - * True if the file is one volume of a multi-part archive - */ -@property(atomic, readonly) BOOL hasMultipleVolumes; - -/** - * Can be used for progress reporting, but it's not necessary. You can also use - * implicit progress reporting. If you don't use it, one will still be created, - * which will become a child progress of whichever one is the current NSProgress - * instance. - * - * To use this, assign it before beginning an operation that reports progress. Once - * the method you're calling has a reference to it, it will nil it out. Please check - * for nil before assigning it to avoid concurrency conflicts. - */ -@property(nullable, strong) NSProgress *progress; - -/** - * When performing operations on a RAR archive, the contents of compressed files are checked - * against the record of what they were when the archive was created. If there's a mismatch, - * either the metadata (header) or archive contents have become corrupted. You can defeat this check by - * setting this property to YES, though there may be security implications to turning the - * warnings off, as it may indicate a maliciously crafted archive intended to exploit a vulnerability. - * - * It's recommended to leave the decision of how to treat archives with mismatched CRCs to the user - */ -@property (assign) BOOL ignoreCRCMismatches; - - -/** - * **DEPRECATED:** Creates and returns an archive at the given path - * - * @param filePath A path to the archive file - */ -+ (nullable instancetype)rarArchiveAtPath:(NSString *)filePath __deprecated_msg("Use -initWithPath:error: instead"); - -/** - * **DEPRECATED:** Creates and returns an archive at the given URL - * - * @param fileURL The URL of the archive file - */ -+ (nullable instancetype)rarArchiveAtURL:(NSURL *)fileURL __deprecated_msg("Use -initWithURL:error: instead"); - -/** - * **DEPRECATED:** Creates and returns an archive at the given path, with a given password - * - * @param filePath A path to the archive file - * @param password The passowrd of the given archive - */ -+ (nullable instancetype)rarArchiveAtPath:(NSString *)filePath password:(NSString *)password __deprecated_msg("Use -initWithPath:password:error: instead"); - -/** - * **DEPRECATED:** Creates and returns an archive at the given URL, with a given password - * - * @param fileURL The URL of the archive file - * @param password The passowrd of the given archive - */ -+ (nullable instancetype)rarArchiveAtURL:(NSURL *)fileURL password:(NSString *)password __deprecated_msg("Use -initWithURL:password:error: instead"); - - -/** - * Do not use the default initializer - */ -- (instancetype)init NS_UNAVAILABLE; - -/** - * Creates and returns an archive at the given path - * - * @param filePath A path to the archive file - * @param error Contains any error during initialization - * - * @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the path - */ -- (nullable instancetype)initWithPath:(NSString *)filePath error:(NSError **)error; - -/** - * Creates and returns an archive at the given URL - * - * @param fileURL The URL of the archive file - * @param error Contains any error during initialization - * - * @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the URL - */ -- (nullable instancetype)initWithURL:(NSURL *)fileURL error:(NSError **)error; - -/** - * Creates and returns an archive at the given path, with a given password - * - * @param filePath A path to the archive file - * @param password The passowrd of the given archive - * @param error Contains any error during initialization - * - * @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the path - */ -- (nullable instancetype)initWithPath:(NSString *)filePath password:(NSString *)password error:(NSError **)error; - -/** - * Creates and returns an archive at the given URL, with a given password - * - * @param fileURL The URL of the archive file - * @param password The passowrd of the given archive - * @param error Contains any error during initialization - * - * @return Returns an initialized URKArchive, unless there's a problem creating a bookmark to the URL - */ -- (nullable instancetype)initWithURL:(NSURL *)fileURL password:(NSString *)password error:(NSError **)error; - - -/** - * Determines whether a file is a RAR archive by reading the signature - * - * @param filePath Path to the file being checked - * - * @return YES if the file exists and contains a signature indicating it is a RAR archive - */ -+ (BOOL)pathIsARAR:(NSString *)filePath; - -/** - * Determines whether a file is a RAR archive by reading the signature - * - * @param fileURL URL of the file being checked - * - * @return YES if the file exists and contains a signature indicating it is a RAR archive - */ -+ (BOOL)urlIsARAR:(NSURL *)fileURL; - -/** - * Lists the names of the files in the archive - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return Returns a list of NSString containing the paths within the archive's contents, or nil if an error was encountered - */ -- (nullable NSArray *)listFilenames:(NSError **)error; - -/** - * Lists the various attributes of each file in the archive - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return Returns a list of URKFileInfo objects, which contain metadata about the archive's files, or nil if an error was encountered - */ -- (nullable NSArray *)listFileInfo:(NSError **)error; - -/** - * Iterates the header of the archive, calling the block with each archived file's info. - * - * WARNING: There is no filtering of duplicate header entries. If a file is listed twice, `action` - * will be called twice with that file's path - * - * @param action The action to perform using the data. Must be non-nil - * - * - *fileInfo* The metadata of the file within the archive - * - *stop* Set to YES to stop reading the archive - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return Returns NO if an error was encountered - */ -- (BOOL) iterateFileInfo:(void(^)(URKFileInfo *fileInfo, BOOL *stop))action - error:(NSError **)error; - -/** - * Lists the URLs of volumes in a single- or multi-volume archive - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return Returns the list of URLs of all volumes of the archive - */ -- (nullable NSArray *)listVolumeURLs:(NSError **)error; - -/** - * Writes all files in the archive to the given path. Supports NSProgress for progress reporting, which also - * allows cancellation in the middle of extraction. Use the progress property (as explained in the README) to - * retrieve more detailed information, such as the current file being extracted, number of files extracted, - * and the URKFileInfo instance being extracted - * - * @param filePath The destination path of the unarchived files - * @param overwrite YES to overwrite files in the destination directory, NO otherwise - * @param error Contains an NSError object when there was an error reading the archive - * - * @return YES on successful extraction, NO if an error was encountered - */ -- (BOOL)extractFilesTo:(NSString *)filePath - overwrite:(BOOL)overwrite - error:(NSError **)error; - -/** - * **DEPRECATED:** Writes all files in the archive to the given path - * - * @param filePath The destination path of the unarchived files - * @param overwrite YES to overwrite files in the destination directory, NO otherwise - * @param progressBlock Called every so often to report the progress of the extraction - * - * - *currentFile* The info about the file that's being extracted - * - *percentArchiveDecompressed* The percentage of the archive that has been decompressed - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return YES on successful extraction, NO if an error was encountered - */ -- (BOOL)extractFilesTo:(NSString *)filePath - overwrite:(BOOL)overwrite - progress:(nullable void (^)(URKFileInfo *currentFile, CGFloat percentArchiveDecompressed))progressBlock - error:(NSError **)error __deprecated_msg("Use -extractFilesTo:overwrite:error: instead, and if using the progress block, replace with NSProgress as described in the README"); - -/** - * Unarchive a single file from the archive into memory. Supports NSProgress for progress reporting, which also - * allows cancellation in the middle of extraction - * - * @param fileInfo The info of the file within the archive to be expanded. Only the filename property is used - * @param error Contains an NSError object when there was an error reading the archive - * - * @return An NSData object containing the bytes of the file, or nil if an error was encountered - */ -- (nullable NSData *)extractData:(URKFileInfo *)fileInfo - error:(NSError **)error; - -/** - * **DEPRECATED:** Unarchive a single file from the archive into memory - * - * @param fileInfo The info of the file within the archive to be expanded. Only the filename property is used - * @param progressBlock Called every so often to report the progress of the extraction - * - * - *percentDecompressed* The percentage of the archive that has been decompressed - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return An NSData object containing the bytes of the file, or nil if an error was encountered - */ -- (nullable NSData *)extractData:(URKFileInfo *)fileInfo - progress:(nullable void (^)(CGFloat percentDecompressed))progressBlock - error:(NSError **)error __deprecated_msg("Use -extractData:error: instead, and if using the progress block, replace with NSProgress as described in the README"); - -/** - * Unarchive a single file from the archive into memory. Supports NSProgress for progress reporting, which also - * allows cancellation in the middle of extraction - * - * @param filePath The path of the file within the archive to be expanded - * - * - *percentDecompressed* The percentage of the file that has been decompressed - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return An NSData object containing the bytes of the file, or nil if an error was encountered - */ -- (nullable NSData *)extractDataFromFile:(NSString *)filePath - error:(NSError **)error; - -/** - * **DEPRECATED:** Unarchive a single file from the archive into memory - * - * @param filePath The path of the file within the archive to be expanded - * @param progressBlock Called every so often to report the progress of the extraction - * - * - *percentDecompressed* The percentage of the file that has been decompressed - * - * @param error Contains an NSError object when there was an error reading the archive - * - * @return An NSData object containing the bytes of the file, or nil if an error was encountered - */ -- (nullable NSData *)extractDataFromFile:(NSString *)filePath - progress:(nullable void (^)(CGFloat percentDecompressed))progressBlock - error:(NSError **)error __deprecated_msg("Use -extractDataFromFile:error: instead, and if using the progress block, replace with NSProgress as described in the README"); - -/** - * Loops through each file in the archive in alphabetical order, allowing you to perform an - * action using its info. Supports NSProgress for progress reporting, which also allows - * cancellation of the operation in the middle - * - * @param action The action to perform using the data - * - * - *fileInfo* The metadata of the file within the archive - * - *stop* Set to YES to stop reading the archive - * - * @param error Contains an error if any was returned - * - * @return YES if no errors were encountered, NO otherwise - */ -- (BOOL)performOnFilesInArchive:(void(^)(URKFileInfo *fileInfo, BOOL *stop))action - error:(NSError **)error; - -/** - * Extracts each file in the archive into memory, allowing you to perform an action - * on it (not sorted). Supports NSProgress for progress reporting, which also allows - * cancellation of the operation in the middle - * - * @param action The action to perform using the data - * - * - *fileInfo* The metadata of the file within the archive - * - *fileData* The full data of the file in the archive - * - *stop* Set to YES to stop reading the archive - * - * @param error Contains an error if any was returned - * - * @return YES if no errors were encountered, NO otherwise - */ -- (BOOL)performOnDataInArchive:(void(^)(URKFileInfo *fileInfo, NSData *fileData, BOOL *stop))action - error:(NSError **)error; - -/** - * Unarchive a single file from the archive into memory. Supports NSProgress for progress reporting, which also - * allows cancellation in the middle of extraction - * - * @param filePath The path of the file within the archive to be expanded - * @param error Contains an NSError object when there was an error reading the archive - * @param action The block to run for each chunk of data, each of size <= bufferSize - * - * - *dataChunk* The data read from the archived file. Read bytes and length to write the data - * - *percentDecompressed* The percentage of the file that has been decompressed - * - * @return YES if all data was read successfully, NO if an error was encountered - */ -- (BOOL)extractBufferedDataFromFile:(NSString *)filePath - error:(NSError **)error - action:(void(^)(NSData *dataChunk, CGFloat percentDecompressed))action; - -/** - * YES if archive protected with a password, NO otherwise - */ -- (BOOL)isPasswordProtected; - -/** - * Tests whether the provided password unlocks the archive - * - * @return YES if correct password or archive is not password protected, NO if password is wrong - */ -- (BOOL)validatePassword; - -/** - Iterate through the archive, checking for any errors, including CRC mismatches between - the archived file and its header - - @return YES if the data is all correct, false if any check failed (_even if ignoreCRCMismatches is YES_) - */ -- (BOOL)checkDataIntegrity; - -/** - Iterate through the archive, checking for any errors, including CRC mismatches between - the archived file and its header. If any file's CRC doesn't match, run the given block - to allow the API consumer to decide whether to ignore mismatches. NOTE: This may be a - security risk. The block is intended to prompt the user, which is why it's forced onto - the main thread, rather than making a design-time decision - - @param ignoreCRCMismatches This block, called on the main thread, allows a consuming API to - prompt the user whether or not he'd like to ignore CRC mismatches. - This block is called the first time a CRC mismatch is detected, if - at all. It won't be called if all CRCs match. If this returns YES, - then all further CRC mismatches will be ignored for the - archive instance - - @return YES if the data is all correct and/or the block returns YES; returns false if - any check failed and the given block also returns NO - */ -- (BOOL)checkDataIntegrityIgnoringCRCMismatches:(BOOL(^)(void))ignoreCRCMismatches; - -/** - Check a particular file, to determine if its data matches the CRC - checksum stored at the time it written - - @param filePath The file in the archive to check - - @return YES if the data is correct, false if any check failed - */ -- (BOOL)checkDataIntegrityOfFile:(NSString *)filePath; - -@end -NS_ASSUME_NONNULL_END diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/URKFileInfo.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/URKFileInfo.h deleted file mode 100644 index 8cd29fb..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Headers/URKFileInfo.h +++ /dev/null @@ -1,158 +0,0 @@ -// -// URKFileInfo.h -// UnrarKit -// - -#import -#import - -RarosHppIgnore -#import -#pragma clang diagnostic pop - -DllHppIgnore -#import -#pragma clang diagnostic pop - -/* See http://www.forensicswiki.org/wiki/RAR and - http://www.rarlab.com/technote.htm#filehead for - more information about the RAR File Header spec */ - -/** - * Defines the packing methods that can be used on a file in an archive - */ -typedef NS_ENUM(NSUInteger, URKCompressionMethod) { - - /** - * No compression is used - */ - URKCompressionMethodStorage = 0x30, - - /** - * Fastest compression - */ - URKCompressionMethodFastest = 0x31, - - /** - * Fast compression - */ - URKCompressionMethodFast = 0x32, - - /** - * Normal compression - */ - URKCompressionMethodNormal = 0x33, - - /** - * Good compression - */ - URKCompressionMethodGood = 0x34, - - /** - * Best compression - */ - URKCompressionMethodBest = 0x35, -}; - -/** - * Defines the various operating systems that can be used when archiving - */ -typedef NS_ENUM(NSUInteger, URKHostOS) { - - /** - * MS-DOS - */ - URKHostOSMSDOS = 0, - - /** - * OS/2 - */ - URKHostOSOS2 = 1, - - /** - * Windows - */ - URKHostOSWindows = 2, - - /** - * Unix - */ - URKHostOSUnix = 3, - - /** - * Mac OS - */ - URKHostOSMacOS = 4, - - /** - * BeOS - */ - URKHostOSBeOS = 5, -}; - -/** - * A wrapper around a RAR archive's file header, defining the various fields - * it contains - */ -@interface URKFileInfo : NSObject - -/** - * The name of the file's archive - */ -@property (readonly, strong) NSString *archiveName; - -/** - * The name of the file - */ -@property (readonly, strong) NSString *filename; - -/** - * The timestamp of the file - */ -@property (readonly, strong) NSDate *timestamp; - -/** - * The CRC checksum of the file - */ -@property (readonly, assign) NSUInteger CRC; - -/** - * Size of the uncompressed file - */ -@property (readonly, assign) long long uncompressedSize; - -/** - * Size of the compressed file - */ -@property (readonly, assign) long long compressedSize; - -/** - * YES if the file will be continued of the next volume - */ -@property (readonly) BOOL isEncryptedWithPassword; - -/** - * YES if the file is a directory - */ -@property (readonly) BOOL isDirectory; - -/** - * The type of compression - */ -@property (readonly, assign) URKCompressionMethod compressionMethod; - -/** - * The OS of the file - */ -@property (readonly, assign) URKHostOS hostOS; - -/** - * Returns a URKFileInfo instance for the given extended header data - * - * @param fileHeader The header data for a RAR file - * - * @return an instance of URKFileInfo - */ -+ (instancetype) fileInfo:(struct RARHeaderDataEx *)fileHeader; - -@end diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKit.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKit.h deleted file mode 100644 index d2e390e..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKit.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// UnrarKit.h -// UnrarKit -// -// Created by Dov Frankel on 1/9/2015. -// Copyright (c) 2015 Abbey Code. All rights reserved. -// - -#import - -//! Project version number for UnrarKit. -FOUNDATION_EXPORT double UnrarKitVersionNumber; - -//! Project version string for UnrarKit. -FOUNDATION_EXPORT const unsigned char UnrarKitVersionString[]; - - -#import -#import diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKitMacros.h b/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKitMacros.h deleted file mode 100644 index 38e466f..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Headers/UnrarKitMacros.h +++ /dev/null @@ -1,126 +0,0 @@ -// -// UnrarKitMacros.h -// UnrarKit -// -// Created by Dov Frankel on 8/8/17. -// Copyright © 2017 Abbey Code. All rights reserved. -// - -#ifndef UnrarKitMacros_h -#define UnrarKitMacros_h - -//#import "Availability.h" -//#import "AvailabilityInternal.h" - -#define _stringify(a) #a - -#define RarHppIgnore \ -_Pragma( _stringify( clang diagnostic push ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wcast-align" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wextra-semi" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wold-style-cast" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wpadded" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wreserved-id-macro" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wshorten-64-to-32" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wcast-qual" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wundef" ) ) \ - -#define DllHppIgnore \ -_Pragma( _stringify( clang diagnostic push ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wreserved-id-macro" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wstrict-prototypes" ) ) \ - -#define RarosHppIgnore \ -_Pragma( _stringify( clang diagnostic push ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wreserved-id-macro" ) ) \ - - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundef" -#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments" - - -// iOS 10, macOS 10.12, tvOS 10.0, watchOS 3.0 -#define UNIFIED_LOGGING_SUPPORTED \ -__IPHONE_OS_VERSION_MIN_REQUIRED >= 100000 \ -|| __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200 \ -|| __TV_OS_VERSION_MIN_REQUIRED >= 100000 \ -|| __WATCH_OS_VERSION_MIN_REQUIRED >= 30000 - -#if TARGET_OS_IPHONE -#define SDK_10_13_MAJOR 11 -#define SDK_10_13_MINOR 0 -#else -#define SDK_10_13_MAJOR 10 -#define SDK_10_13_MINOR 13 -#endif - -#if UNIFIED_LOGGING_SUPPORTED -#import -#import - -// Called from +[UnrarKit initialize] and +[URKArchiveTestCase setUp] -extern os_log_t unrarkit_log; // Declared in URKArchive.mm -extern BOOL unrarkitIsAtLeast10_13SDK; // Declared in URKArchive.m -#define URKLogInit() \ - unrarkit_log = os_log_create("com.abbey-code.UnrarKit", "General"); \ - \ - NSOperatingSystemVersion minVersion; \ - minVersion.majorVersion = SDK_10_13_MAJOR; \ - minVersion.minorVersion = SDK_10_13_MINOR; \ - minVersion.patchVersion = 0; \ - unrarkitIsAtLeast10_13SDK = [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:minVersion]; \ - URKLogDebug("Is >= 10.13 (or iOS 11): %@", unrarkitIsAtLeast10_13SDK ? @"YES" : @"NO"); - -#define URKLog(format, ...) os_log(unrarkit_log, format, ##__VA_ARGS__); -#define URKLogInfo(format, ...) os_log_info(unrarkit_log, format, ##__VA_ARGS__); -#define URKLogDebug(format, ...) os_log_debug(unrarkit_log, format, ##__VA_ARGS__); - - -#define URKLogError(format, ...) \ - if (unrarkitIsAtLeast10_13SDK) os_log_error(unrarkit_log, format, ##__VA_ARGS__); \ - else os_log_with_type(unrarkit_log, OS_LOG_TYPE_ERROR, format, ##__VA_ARGS__); - -#define URKLogFault(format, ...) \ - if (unrarkitIsAtLeast10_13SDK) os_log_fault(unrarkit_log, format, ##__VA_ARGS__); \ - else os_log_with_type(unrarkit_log, OS_LOG_TYPE_FAULT, format, ##__VA_ARGS__); - - -#define URKCreateActivity(name) \ -os_activity_t activity = os_activity_create(name, OS_ACTIVITY_CURRENT, OS_ACTIVITY_FLAG_DEFAULT); \ -os_activity_scope(activity); - - -#else // Fall back to regular NSLog - -// No-op, as nothing needs to be initialized -#define URKLogInit() (void)0 - - -// Only used below -#define _removeLogFormatTokens(format) [[@format \ - stringByReplacingOccurrencesOfString:@"{public}" withString:@""] \ - stringByReplacingOccurrencesOfString:@"{iec-bytes}" withString:@""] -#define _nsLogWithoutWarnings(format, ...) \ -_Pragma( _stringify( clang diagnostic push ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wformat-nonliteral" ) ) \ -_Pragma( _stringify( clang diagnostic ignored "-Wformat-security" ) ) \ -NSLog(_removeLogFormatTokens(format), ##__VA_ARGS__); \ -_Pragma( _stringify( clang diagnostic pop ) ) - -// All levels do the same thing -#define URKLog(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__); -#define URKLogInfo(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__); -#define URKLogDebug(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__); -#define URKLogError(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__); -#define URKLogFault(format, ...) _nsLogWithoutWarnings(format, ##__VA_ARGS__); - -// No-op, as no equivalent to Activities exists -#define URKCreateActivity(name) (void)0 - - -#pragma clang diagnostic pop - -#endif // UNIFIED_LOGGING_SUPPORTED - -#endif /* UnrarKitMacros_h */ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/dll.hpp b/Frameworks/UnrarKit.framework/Versions/A/Headers/dll.hpp deleted file mode 100644 index c785ff1..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Headers/dll.hpp +++ /dev/null @@ -1,189 +0,0 @@ -#ifndef _UNRAR_DLL_ -#define _UNRAR_DLL_ - -#pragma pack(push, 1) - -#define ERAR_SUCCESS 0 -#define ERAR_END_ARCHIVE 10 -#define ERAR_NO_MEMORY 11 -#define ERAR_BAD_DATA 12 -#define ERAR_BAD_ARCHIVE 13 -#define ERAR_UNKNOWN_FORMAT 14 -#define ERAR_EOPEN 15 -#define ERAR_ECREATE 16 -#define ERAR_ECLOSE 17 -#define ERAR_EREAD 18 -#define ERAR_EWRITE 19 -#define ERAR_SMALL_BUF 20 -#define ERAR_UNKNOWN 21 -#define ERAR_MISSING_PASSWORD 22 -#define ERAR_EREFERENCE 23 -#define ERAR_BAD_PASSWORD 24 - -#define RAR_OM_LIST 0 -#define RAR_OM_EXTRACT 1 -#define RAR_OM_LIST_INCSPLIT 2 - -#define RAR_SKIP 0 -#define RAR_TEST 1 -#define RAR_EXTRACT 2 - -#define RAR_VOL_ASK 0 -#define RAR_VOL_NOTIFY 1 - -#define RAR_DLL_VERSION 8 - -#define RAR_HASH_NONE 0 -#define RAR_HASH_CRC32 1 -#define RAR_HASH_BLAKE2 2 - - -#ifdef _UNIX -#define CALLBACK -#define PASCAL -#define LONG long -#define HANDLE void * -#define LPARAM long -#define UINT unsigned int -#endif - -#define RHDF_SPLITBEFORE 0x01 -#define RHDF_SPLITAFTER 0x02 -#define RHDF_ENCRYPTED 0x04 -#define RHDF_SOLID 0x10 -#define RHDF_DIRECTORY 0x20 - - -struct RARHeaderData -{ - char ArcName[260]; - char FileName[260]; - unsigned int Flags; - unsigned int PackSize; - unsigned int UnpSize; - unsigned int HostOS; - unsigned int FileCRC; - unsigned int FileTime; - unsigned int UnpVer; - unsigned int Method; - unsigned int FileAttr; - char *CmtBuf; - unsigned int CmtBufSize; - unsigned int CmtSize; - unsigned int CmtState; -}; - - -struct RARHeaderDataEx -{ - char ArcName[1024]; - wchar_t ArcNameW[1024]; - char FileName[1024]; - wchar_t FileNameW[1024]; - unsigned int Flags; - unsigned int PackSize; - unsigned int PackSizeHigh; - unsigned int UnpSize; - unsigned int UnpSizeHigh; - unsigned int HostOS; - unsigned int FileCRC; - unsigned int FileTime; - unsigned int UnpVer; - unsigned int Method; - unsigned int FileAttr; - char *CmtBuf; - unsigned int CmtBufSize; - unsigned int CmtSize; - unsigned int CmtState; - unsigned int DictSize; - unsigned int HashType; - char Hash[32]; - unsigned int RedirType; - wchar_t *RedirName; - unsigned int RedirNameSize; - unsigned int DirTarget; - unsigned int MtimeLow; - unsigned int MtimeHigh; - unsigned int CtimeLow; - unsigned int CtimeHigh; - unsigned int AtimeLow; - unsigned int AtimeHigh; - unsigned int Reserved[988]; -}; - - -struct RAROpenArchiveData -{ - char *ArcName; - unsigned int OpenMode; - unsigned int OpenResult; - char *CmtBuf; - unsigned int CmtBufSize; - unsigned int CmtSize; - unsigned int CmtState; -}; - -typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2); - -#define ROADF_VOLUME 0x0001 -#define ROADF_COMMENT 0x0002 -#define ROADF_LOCK 0x0004 -#define ROADF_SOLID 0x0008 -#define ROADF_NEWNUMBERING 0x0010 -#define ROADF_SIGNED 0x0020 -#define ROADF_RECOVERY 0x0040 -#define ROADF_ENCHEADERS 0x0080 -#define ROADF_FIRSTVOLUME 0x0100 - -#define ROADOF_KEEPBROKEN 0x0001 - -struct RAROpenArchiveDataEx -{ - char *ArcName; - wchar_t *ArcNameW; - unsigned int OpenMode; - unsigned int OpenResult; - char *CmtBuf; - unsigned int CmtBufSize; - unsigned int CmtSize; - unsigned int CmtState; - unsigned int Flags; - UNRARCALLBACK Callback; - LPARAM UserData; - unsigned int OpFlags; - wchar_t *CmtBufW; - unsigned int Reserved[25]; -}; - -enum UNRARCALLBACK_MESSAGES { - UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD,UCM_CHANGEVOLUMEW, - UCM_NEEDPASSWORDW -}; - -typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode); -typedef int (PASCAL *PROCESSDATAPROC)(unsigned char *Addr,int Size); - -#ifdef __cplusplus -extern "C" { -#endif - -HANDLE PASCAL RAROpenArchive(struct RAROpenArchiveData *ArchiveData); -HANDLE PASCAL RAROpenArchiveEx(struct RAROpenArchiveDataEx *ArchiveData); -int PASCAL RARCloseArchive(HANDLE hArcData); -int PASCAL RARReadHeader(HANDLE hArcData,struct RARHeaderData *HeaderData); -int PASCAL RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *HeaderData); -int PASCAL RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName); -int PASCAL RARProcessFileW(HANDLE hArcData,int Operation,wchar_t *DestPath,wchar_t *DestName); -void PASCAL RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData); -void PASCAL RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc); -void PASCAL RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc); -void PASCAL RARSetPassword(HANDLE hArcData,char *Password); -int PASCAL RARGetDllVersion(); - -#ifdef __cplusplus -} -#endif - -#pragma pack(pop) - -#endif diff --git a/Frameworks/UnrarKit.framework/Versions/A/Headers/raros.hpp b/Frameworks/UnrarKit.framework/Versions/A/Headers/raros.hpp deleted file mode 100644 index 4f4f2ae..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Headers/raros.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _RAR_RAROS_ -#define _RAR_RAROS_ - -#ifdef __EMX__ - #define _EMX -#endif - -#ifdef __DJGPP__ - #define _DJGPP - #define _EMX -#endif - -#if defined(__WIN32__) || defined(_WIN32) - #define _WIN_ALL // Defined for all Windows platforms, 32 and 64 bit, mobile and desktop. - #ifdef _M_X64 - #define _WIN_64 - #else - #define _WIN_32 - #endif -#endif - -#if defined(ANDROID) || defined(__ANDROID__) - #define _UNIX - #define _ANDROID -#endif - -#ifdef __APPLE__ - #define _UNIX - #define _APPLE -#endif - -#if !defined(_EMX) && !defined(_WIN_ALL) && !defined(_BEOS) && !defined(_APPLE) - #define _UNIX -#endif - -#endif diff --git a/Frameworks/UnrarKit.framework/Versions/A/Modules/module.modulemap b/Frameworks/UnrarKit.framework/Versions/A/Modules/module.modulemap deleted file mode 100644 index ba14d5a..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module UnrarKit { - umbrella header "UnrarKit.h" - - export * - module * { export * } -} diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/Info.plist b/Frameworks/UnrarKit.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index ebdac96..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - BuildMachineOSBuild - 20E241 - CFBundleDevelopmentRegion - English - CFBundleExecutable - UnrarKit - CFBundleIdentifier - com.abbey-code.UnrarKit - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - UnrarKit - CFBundlePackageType - FMWK - CFBundleShortVersionString - 2.10-beta8 - CFBundleSignature - ???? - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 2.10-beta8 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 12E262 - DTPlatformName - macosx - DTPlatformVersion - 11.3 - DTSDKBuild - 20E214 - DTSDKName - macosx11.3 - DTXcode - 1250 - DTXcodeBuild - 12E262 - LSMinimumSystemVersion - 10.15 - - diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Info.plist b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Info.plist deleted file mode 100644 index b5109d5..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - BuildMachineOSBuild - 20E241 - CFBundleDevelopmentRegion - English - CFBundleIdentifier - com.abbey-code.UnrarKitResources - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - UnrarKitResources - CFBundlePackageType - BNDL - CFBundleShortVersionString - 2.10-beta8 - CFBundleSignature - ???? - CFBundleSupportedPlatforms - - MacOSX - - CFBundleVersion - 2.10-beta8 - DTCompiler - com.apple.compilers.llvm.clang.1_0 - DTPlatformBuild - 12E262 - DTPlatformName - macosx - DTPlatformVersion - 11.3 - DTSDKBuild - 20E214 - DTSDKName - macosx11.3 - DTXcode - 1250 - DTXcodeBuild - 12E262 - LSMinimumSystemVersion - 10.15 - NSHumanReadableCopyright - Copyright © 2017 Abbey Code. All rights reserved. - - diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings deleted file mode 100644 index df1e671..0000000 Binary files a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings and /dev/null differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory deleted file mode 100644 index 208906e..0000000 Binary files a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory and /dev/null differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements deleted file mode 100644 index dbf9d61..0000000 Binary files a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements and /dev/null differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 deleted file mode 100644 index 775f472..0000000 Binary files a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 and /dev/null differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources deleted file mode 100644 index a17cf82..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources +++ /dev/null @@ -1,139 +0,0 @@ - - - - - files - - Resources/en.lproj/UnrarKit.strings - - hash - - 4aNLooY8/Q8rOLSmctvEV9DwGAI= - - optional - - - - files2 - - Resources/en.lproj/UnrarKit.strings - - hash - - 4aNLooY8/Q8rOLSmctvEV9DwGAI= - - hash2 - - VkPIaVIWGPyRA1tTE53onpl4aTmx0CNs/3U2d7cG4kc= - - optional - - - - rules - - ^Resources/ - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^Resources/ - - weight - 20 - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature b/Frameworks/UnrarKit.framework/Versions/A/Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature deleted file mode 100644 index e69de29..0000000 diff --git a/Frameworks/UnrarKit.framework/Versions/A/UnrarKit b/Frameworks/UnrarKit.framework/Versions/A/UnrarKit deleted file mode 100755 index f76ca07..0000000 Binary files a/Frameworks/UnrarKit.framework/Versions/A/UnrarKit and /dev/null differ diff --git a/Frameworks/UnrarKit.framework/Versions/A/_CodeSignature/CodeResources b/Frameworks/UnrarKit.framework/Versions/A/_CodeSignature/CodeResources deleted file mode 100644 index 022d982..0000000 --- a/Frameworks/UnrarKit.framework/Versions/A/_CodeSignature/CodeResources +++ /dev/null @@ -1,261 +0,0 @@ - - - - - files - - Resources/Info.plist - - kP+2hGbc5UbBLTWCykQCQHNGqVg= - - Resources/UnrarKitResources.bundle/Contents/Info.plist - - Opiy+QsoZ4Z9HnQ5FuuqJVeKu4Y= - - Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings - - hash - - 4aNLooY8/Q8rOLSmctvEV9DwGAI= - - optional - - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory - - X/1CdbBv5ljMRaLAqxX97GriBBA= - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements - - OnX22wWFKRSOFN1+obRynMCeyXM= - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 - - utnQg7dzZjbLL250eedIQZhLplQ= - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources - - 3xyPKEjTSKm1dE8pKU5KJxlzgQ8= - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature - - 2jmj7l5rSw0yVb/vlWAYkK/YBwk= - - - files2 - - Headers/URKArchive.h - - hash2 - - rox3zCtp5PtT6aCGBTc1urWEeCJWSVnbsKHdY1SV5aU= - - - Headers/URKFileInfo.h - - hash2 - - DErdK++0JLNG/lSf5ria/P7Ptb1joLcY5+JS+EbbQjM= - - - Headers/UnrarKit.h - - hash2 - - Im9W8u5nUegygTw75tBTuhRUIB8SXdaLaaU2SknY53Q= - - - Headers/UnrarKitMacros.h - - hash2 - - vKAewkQ+cR0c+94ld4BCAoOzicn0ulUtzKSJizjVs0w= - - - Headers/dll.hpp - - hash2 - - dkoTdXvns0VAnQEd3UOvIVqVdI1jeZe4CoRH+HSR2gk= - - - Headers/raros.hpp - - hash2 - - TbRkm1cPRL7UDN/I1f7b7t8nm+p8qh5fsrogXk9ufDI= - - - Modules/module.modulemap - - hash2 - - QFhnMeeSvaRbXgjqqZukQbhw6sra4mMmeaWDBLZ3bNs= - - - Resources/Info.plist - - hash2 - - oFI2EUT3wJtNxFjndO2DAV5kvegT3oIk+Rh7oLoiur8= - - - Resources/UnrarKitResources.bundle/Contents/Info.plist - - hash2 - - Xh55AZikgaMdZGZTYMHyoo7wFxKFVTt+idYrxVuqbWc= - - - Resources/UnrarKitResources.bundle/Contents/Resources/en.lproj/UnrarKit.strings - - hash2 - - VkPIaVIWGPyRA1tTE53onpl4aTmx0CNs/3U2d7cG4kc= - - optional - - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeDirectory - - hash2 - - uWJS1b2WPBEsDL3c0Hq2WiDig0Du9nZnYqmyYD59dyg= - - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements - - hash2 - - mHkgkE6rZQ51eIwFSqCwUk5qgL/HGqMt+NI3phdD+YY= - - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeRequirements-1 - - hash2 - - xnfMwM29lyD/os6DQ6LuOXHUv8CmFE4Y8ks2mr2ILh0= - - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeResources - - hash2 - - dYGyaLe+INkvAnQFRHNAbgDP4a0iweQD6U2S6rEO0UA= - - - Resources/UnrarKitResources.bundle/Contents/_CodeSignature/CodeSignature - - hash2 - - 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= - - - - rules - - ^Resources/ - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^Resources/ - - weight - 20 - - ^Resources/.*\.lproj/ - - optional - - weight - 1000 - - ^Resources/.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Resources/Base\.lproj/ - - weight - 1010 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/Frameworks/UnrarKit.framework/Versions/Current b/Frameworks/UnrarKit.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/Frameworks/UnrarKit.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/Growl Registration Ticket.growlRegDict b/Growl Registration Ticket.growlRegDict deleted file mode 100644 index b7efa69..0000000 --- a/Growl Registration Ticket.growlRegDict +++ /dev/null @@ -1,16 +0,0 @@ - - - - - TicketVersion - 1 - AllNotifications - - QuietUnrarExtractionComplete - - DefaultNotifications - - QuietUnrarExtractionComplete - - - diff --git a/QuietUnrar.xcodeproj/project.pbxproj b/QuietUnrar.xcodeproj/project.pbxproj index fd41be6..72f3147 100644 --- a/QuietUnrar.xcodeproj/project.pbxproj +++ b/QuietUnrar.xcodeproj/project.pbxproj @@ -13,12 +13,13 @@ D488BC6810AF437B00B3451C /* libunrar.so in Frameworks */ = {isa = PBXBuildFile; fileRef = D488BC6710AF437B00B3451C /* libunrar.so */; }; D488BCC110AF49C700B3451C /* libunrar.so in CopyFiles */ = {isa = PBXBuildFile; fileRef = D488BC6710AF437B00B3451C /* libunrar.so */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; D488BE5510B05F3800B3451C /* PasswordView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D488BE5410B05F3800B3451C /* PasswordView.xib */; }; - D488BFCC10B1FD4500B3451C /* Growl Registration Ticket.growlRegDict in Resources */ = {isa = PBXBuildFile; fileRef = D488BFCB10B1FD4500B3451C /* Growl Registration Ticket.growlRegDict */; }; D4A49691105435BE00BE38AE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; D4A49692105435C100BE38AE /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; D4A96E2110545E9A0091ECB4 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D4A96E2010545E9A0091ECB4 /* Carbon.framework */; }; - E2A3B839265C00AA00A6C0A3 /* UnrarKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */; }; - E2A3B83A265C00AA00A6C0A3 /* UnrarKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E2A3B83D265EA8B900A6C0A3 /* UnrarKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2A3B83B265EA8B800A6C0A3 /* UnrarKit.framework */; }; + E2A3B83E265EA8B900A6C0A3 /* UnrarKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E2A3B83B265EA8B800A6C0A3 /* UnrarKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + E2A3B83F265EA8B900A6C0A3 /* UnzipKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2A3B83C265EA8B800A6C0A3 /* UnzipKit.framework */; }; + E2A3B840265EA8B900A6C0A3 /* UnzipKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E2A3B83C265EA8B800A6C0A3 /* UnzipKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -38,8 +39,9 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - E2A3B83A265C00AA00A6C0A3 /* UnrarKit.framework in CopyFiles */, + E2A3B83E265EA8B900A6C0A3 /* UnrarKit.framework in CopyFiles */, D488BCC110AF49C700B3451C /* libunrar.so in CopyFiles */, + E2A3B840265EA8B900A6C0A3 /* UnzipKit.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -57,10 +59,7 @@ 8D1107310486CEB800E47090 /* QuietUnrar-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "QuietUnrar-Info.plist"; sourceTree = ""; }; 8D1107320486CEB800E47090 /* QuietUnrar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QuietUnrar.app; sourceTree = BUILT_PRODUCTS_DIR; }; D488BC6710AF437B00B3451C /* libunrar.so */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libunrar.so; path = libunrar/libunrar.so; sourceTree = ""; }; - D488BDB610B0160300B3451C /* PasswordDialog.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PasswordDialog.xib; sourceTree = ""; }; D488BE5410B05F3800B3451C /* PasswordView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PasswordView.xib; sourceTree = ""; }; - D488BFAF10B1F97F00B3451C /* Growl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Growl.framework; path = Frameworks/Growl.framework; sourceTree = ""; }; - D488BFCB10B1FD4500B3451C /* Growl Registration Ticket.growlRegDict */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "Growl Registration Ticket.growlRegDict"; sourceTree = ""; }; D4A495741054177300BE38AE /* arccmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arccmt.cpp; path = libunrar/arccmt.cpp; sourceTree = ""; }; D4A495751054177300BE38AE /* archive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = archive.cpp; path = libunrar/archive.cpp; sourceTree = ""; }; D4A495761054177300BE38AE /* archive.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = archive.hpp; path = libunrar/archive.hpp; sourceTree = ""; }; @@ -170,7 +169,8 @@ D4A96E2010545E9A0091ECB4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; E296811D24BE4BCD00974229 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; E296811E24BE4BCD00974229 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; - E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnrarKit.framework; path = Frameworks/UnrarKit.framework; sourceTree = ""; }; + E2A3B83B265EA8B800A6C0A3 /* UnrarKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnrarKit.framework; path = Carthage/Build/Mac/UnrarKit.framework; sourceTree = ""; }; + E2A3B83C265EA8B800A6C0A3 /* UnzipKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UnzipKit.framework; path = Carthage/Build/Mac/UnzipKit.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -180,8 +180,9 @@ files = ( D488BC6810AF437B00B3451C /* libunrar.so in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - E2A3B839265C00AA00A6C0A3 /* UnrarKit.framework in Frameworks */, + E2A3B83D265EA8B900A6C0A3 /* UnrarKit.framework in Frameworks */, D4A96E2110545E9A0091ECB4 /* Carbon.framework in Frameworks */, + E2A3B83F265EA8B900A6C0A3 /* UnzipKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -253,8 +254,6 @@ 8D1107310486CEB800E47090 /* QuietUnrar-Info.plist */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, - D488BDB610B0160300B3451C /* PasswordDialog.xib */, - D488BFCB10B1FD4500B3451C /* Growl Registration Ticket.growlRegDict */, ); name = Resources; sourceTree = ""; @@ -262,11 +261,11 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( - E2A3B838265C00AA00A6C0A3 /* UnrarKit.framework */, + E2A3B83B265EA8B800A6C0A3 /* UnrarKit.framework */, + E2A3B83C265EA8B800A6C0A3 /* UnzipKit.framework */, D488BC6710AF437B00B3451C /* libunrar.so */, 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - D488BFAF10B1F97F00B3451C /* Growl.framework */, ); name = Frameworks; sourceTree = ""; @@ -413,6 +412,7 @@ D4A4965210541D2600BE38AE /* CopyFiles */, D4A49697105435C700BE38AE /* Resources */, D488BC8210AF470700B3451C /* ShellScript */, + E2A3B841265EA8E800A6C0A3 /* ShellScript */, ); buildRules = ( ); @@ -459,7 +459,6 @@ D4A49692105435C100BE38AE /* MainMenu.xib in Resources */, D4A49691105435BE00BE38AE /* InfoPlist.strings in Resources */, D488BE5510B05F3800B3451C /* PasswordView.xib in Resources */, - D488BFCC10B1FD4500B3451C /* Growl Registration Ticket.growlRegDict in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -479,6 +478,25 @@ shellPath = /bin/sh; shellScript = "#export NEWLIBPATH=\"@loader_path/../Frameworks\"\n#export PROJECT_PATH=\"/Users/rob/Programming/Projects - Mine/QuietUnrar\"\n#\n#mkdir \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks\"\n#cp -f \"$PROJECT_PATH/libunrar/libunrar.so\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/libunrar.so\"\n\ninstall_name_tool -change libunrar.so @loader_path/../Frameworks/libunrar.so \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\"\n"; }; + E2A3B841265EA8E800A6C0A3 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/Mac/UnrarKit.framework", + "$(SRCROOT)/Carthage/Build/Mac/UnzipKit.framework", + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n/usr/local/bin/carthage copy-frameworks\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -533,6 +551,7 @@ "$(inherited)", "\"$(SRCROOT)/Frameworks\"", "$(PROJECT_DIR)/Frameworks", + "$(PROJECT_DIR)/Carthage/Build/Mac", ); GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; @@ -566,6 +585,7 @@ "$(inherited)", "\"$(SRCROOT)/Frameworks\"", "$(PROJECT_DIR)/Frameworks", + "$(PROJECT_DIR)/Carthage/Build/Mac", ); GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; diff --git a/QuietUnrarAppDelegate.m b/QuietUnrarAppDelegate.m index 75d4366..f0db67e 100644 --- a/QuietUnrarAppDelegate.m +++ b/QuietUnrarAppDelegate.m @@ -7,7 +7,6 @@ // #import -//#import #import #import "QuietUnrarAppDelegate.h" #import "libunrar/dll.hpp" @@ -112,6 +111,7 @@ int callbackFunction(UINT message, LPARAM userData, LPARAM parameterOne, LPARAM } // Call one at a time for each file selected when app is run +// This is seemingly never called, even when only selecting a single file. - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename { //NSLog(@"openFile: %@", filename); @@ -128,16 +128,7 @@ int callbackFunction(UINT message, LPARAM userData, LPARAM parameterOne, LPARAM for (NSString * filename in arrayOfFilenames) { BOOL extracted = [self extractRarWith:filename]; if (extracted) { - //[GrowlApplicationBridge setGrowlDelegate:@""]; - -// [GrowlApplicationBridge -// notifyWithTitle:@"QuietUnrar: Extraction Complete" -// description:[NSString stringWithFormat:@"The archive %@ was successfully extracted", filename] -// notificationName:@"QuietUnrarExtractionComplete" -// iconData:nil -// priority:0 -// isSticky:NO -// clickContext:nil]; + // post notification based on user preference } } }