From: Zygo Blaxell Date: Mon, 9 Dec 2013 03:44:41 +0000 (-0500) Subject: From http://www.jwz.org/xscreensaver/xscreensaver-5.24.tar.gz X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=commitdiff_plain;h=019de959b265701cd0c3fccbb61f2b69f06bf9ee From jwz.org/xscreensaver/xscreensaver-5.24.tar.gz -rw-r--r-- 1 zblaxell zblaxell 8710788 Dec 7 22:19 xscreensaver-5.24.tar.gz c8450e134d997d11bb567198304f5d199ebaa023 xscreensaver-5.24.tar.gz --- diff --git a/Makefile.in b/Makefile.in index ccbe5f8b..aa233b8a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -82,7 +82,7 @@ tar:: cd $$d ; done ; \ echo creating tar file $$ADIR$$NAME.tar.gz... ; \ export COPYFILE_DISABLE=true ; \ - GZIP="-9v" $(TAR) -vchzf $$ADIR$$NAME.tar.gz \ + GZIP="-9v" $(TAR) -vczf $$ADIR$$NAME.tar.gz \ `echo $(TARFILES) $$FILES | sed "s|^|$$NAME/|g; s| | $$NAME/|g" ` ; \ rm $$NAME @@ -94,14 +94,9 @@ tar:: # out options we don't use. Odds are good that this will fail with any version # of autoconf other than the ones I've tried (2.12 and 2.13.) # -# NOTE: we now require autoconf 2.63 or earlier, because later versions have -# the "Expanded-Before-Required" change and I can't make any sense of it. -# If someone wants to send me a patch to make configure.in work with 2.64 -# or later, feel free. Personally, I can't be bothered. -# configure:: - autoconf263 - autoheader263 + autoconf + autoheader @TMP=configure.$$$$ ; \ echo "munging configure's --help message..." ; \ ( perl -e ' \ diff --git a/OSX/InvertedSlider.h b/OSX/InvertedSlider.h index 986e8edd..22209020 100644 --- a/OSX/InvertedSlider.h +++ b/OSX/InvertedSlider.h @@ -1,16 +1,16 @@ /* xscreensaver, Copyright (c) 2006-2013 Jamie Zawinski -* -* Permission to use, copy, modify, distribute, and sell this software and its -* documentation for any purpose is hereby granted without fee, provided that -* the above copyright notice appear in all copies and that both that -* copyright notice and this permission notice appear in supporting -* documentation. No representations are made about the suitability of this -* software for any purpose. It is provided "as is" without express or -* implied warranty. -* -* This is a subclass of NSSlider that is flipped horizontally: -* the high value is on the left and the low value is on the right. -*/ + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * This is a subclass of NSSlider that is flipped horizontally: + * the high value is on the left and the low value is on the right. + */ #ifdef USE_IPHONE # import diff --git a/OSX/InvertedSlider.m b/OSX/InvertedSlider.m index 605d6e2d..642a3e4f 100644 --- a/OSX/InvertedSlider.m +++ b/OSX/InvertedSlider.m @@ -1,16 +1,16 @@ /* xscreensaver, Copyright (c) 2006-2013 Jamie Zawinski -* -* Permission to use, copy, modify, distribute, and sell this software and its -* documentation for any purpose is hereby granted without fee, provided that -* the above copyright notice appear in all copies and that both that -* copyright notice and this permission notice appear in supporting -* documentation. No representations are made about the suitability of this -* software for any purpose. It is provided "as is" without express or -* implied warranty. -* -* This is a subclass of NSSlider that is flipped horizontally: -* the high value is on the left and the low value is on the right. -*/ + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * This is a subclass of NSSlider that is flipped horizontally: + * the high value is on the left and the low value is on the right. + */ #import "InvertedSlider.h" diff --git a/OSX/Makefile b/OSX/Makefile index 545f45ee..a4dff53c 100644 --- a/OSX/Makefile +++ b/OSX/Makefile @@ -7,6 +7,8 @@ CERT = 'Jamie Zawinski' CERT = 'iPhone Developer: Jamie Zawinski (Y5M82TL69N)' THUMBDIR = $(HOME)/www/xscreensaver/screenshots/ PKGID = org.jwz.xscreensaver +SETFILE = /Applications/Xcode.app/Contents/Developer/Tools/SetFile +SETICON = /usr/local/bin/seticon default: release all: debug release @@ -19,8 +21,9 @@ distclean: -rm -f config.status config.cache config.log \ *.bak *.rej TAGS *~ "#"* -rm -rf autom4te*.cache - -rm -rf build + -rm -rf build Sparkle.framework +distdepend:: Sparkle.framework distdepend:: update_plist_version debug: distdepend @@ -33,10 +36,13 @@ release:: check_versions release:: update_thumbs release:: sign +Sparkle.framework: + unzip ../archive/Sparkle.framework-2013-12-04.zip + sign: @for f in build/Release/*.app/Contents/*/*.saver \ build/Release/*.{saver,app} ; do \ - codesign -vfs $(CERT) $$f ; \ + codesign --deep -vfs $(CERT) $$f ; \ done check_versions: @@ -72,9 +78,9 @@ ios-function-table.m:: echo_tarfiles: @echo `find . \ \( \( -name '.??*' -o -name build -o -name CVS -o -name '*~*' \ - -o -name 'jwz.*' \) \ + -o -name 'jwz.*' -o -name 'Screen Savers' \) \ -prune \) \ - -o -type f -print \ + -o \( -type f -o -type l \) -print \ | sed 's@^\./@@' \ | sort` @@ -83,7 +89,7 @@ update_plist_version: SRC=../utils/version.h ; \ V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ]*\).*/\1/p' $$SRC` ; \ T=/tmp/xs.$$$$ ; \ - for S in XScreenSaver.plist SaverRunner.plist iSaverRunner.plist ; do \ + for S in *.plist ; do \ /bin/echo -n "Updating version number in $$S to \"$$V\"... " ; \ KEYS="CFBundleVersion|CFBundleShortVersionString|CFBundleLongVersionString|CFBundleGetInfoString|NSHumanReadableCopyright" ; \ perl -0777 -pne \ @@ -99,6 +105,32 @@ update_plist_version: rm $$T +updates.xml:: + ./updates.pl xscreensaver ../README ../archive ~/www/xscreensaver + @$(MAKE) test_sig + +test_sig:: + @ \ + U=../version.h ; \ + V=`sed -n 's/[^0-9]*\([0-9]\.[0-9][^. ;]*\).*/\1/p' < $$U` ; \ + V=`echo $$V | sed 's/\.//g'` ; \ + ZIP="../archive/DaliClock-$$V.dmg" ; \ + SIG=`sed -n 's/^.*dsaSignature="\(.*\)".*/\1/p' updates.xml` ; \ + PUB="sparkle_dsa_pub.pem" ; \ + NN="t.$$$$" ; \ + SIGB=/tmp/$$NN.sig ; \ + HASH=/tmp/$$NN.hash ; \ + rm -f "$$SIGB" "$$HASH" ; \ + echo "$$SIG " | base64 -D > "$$SIGB" ; \ + set -e ; \ + for OPENSSL in /usr/bin/openssl /opt/local/bin/openssl ; do \ + $$OPENSSL dgst -sha1 -binary < "$$ZIP" > "$$HASH" ; \ + /bin/echo -n "$$OPENSSL `$$OPENSSL version`: " ; \ + $$OPENSSL dgst -dss1 -verify "$$PUB" -signature "$$SIGB" "$$HASH" ; \ + done ; \ + rm -f "$$SIGB" "$$HASH" ; \ + + build/Release/installer.pkg: installer.rtf installer.xml installer.sh installer.png ../utils/version.h @\ set -e ; \ @@ -171,8 +203,8 @@ dmg:: distdepend check_versions build/Release/installer.pkg if [ "$$ff" = "$$r" ]; then ok=no ; fi ; \ done ; \ if [ "$$ok" = yes ]; then \ - echo + cp -pr "$$f" "$$DST/" ; \ - cp -pr "$$f" "$$DST/" ; \ + echo + cp -pR "$$f" "$$DST/" ; \ + cp -pR "$$f" "$$DST/" ; \ else \ echo skipping "$$f" ; \ fi ; \ @@ -183,12 +215,13 @@ dmg:: distdepend check_versions build/Release/installer.pkg cp -p bindist-DS_Store "$$STAGE/.DS_Store" ; \ cp -p bindist.webloc "$$STAGE/Get the iPhone:iPad Version.webloc" ; \ cp -p XScreenSaverDMG.icns "$$STAGE/.VolumeIcon.icns" ; \ - /Developer/Tools/SetFile -a C "$$STAGE" ; \ - /Developer/Tools/SetFile -a E "$$STAGE"/*.{rtf,pkg,webloc} ; \ - seticon -d ../../xdaliclock/OSX/daliclockSaver.icns "$$DST/DaliClock.saver";\ - seticon -d XScreenSaverFolder.icns "$$DST" ; \ - seticon -d XScreenSaverWebloc.icns "$$STAGE"/*.webloc ; \ - seticon -d XScreenSaverPkg.icns "$$STAGE"/*.pkg ; \ + ${SETFILE} -a C "$$STAGE" ; \ + ${SETFILE} -a E "$$STAGE"/*.{rtf,pkg,webloc} ; \ + $(SETICON) -d ../../xdaliclock/OSX/daliclockSaver.icns \ + "$$DST/DaliClock.saver" ; \ + $(SETICON) -d XScreenSaverFolder.icns "$$DST" ; \ + $(SETICON) -d XScreenSaverWebloc.icns "$$STAGE"/*.webloc ; \ + $(SETICON) -d XScreenSaverPkg.icns "$$STAGE"/*.pkg ; \ hdiutil makehybrid -quiet -ov -hfs -hfs-volume-name "$$VOLNAME" \ -hfs-openfolder "$$STAGE" "$$STAGE" -o "$$TMPDMG" ; \ rm -rf "$$STAGE" ; \ diff --git a/OSX/PrefsReader.h b/OSX/PrefsReader.h index 06963740..492d4eaf 100644 --- a/OSX/PrefsReader.h +++ b/OSX/PrefsReader.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2006-2012 Jamie Zawinski +/* xscreensaver, Copyright (c) 2006-2013 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -30,9 +30,14 @@ @interface PrefsReader : NSObject { NSString *saver_name; + + NSUserDefaults *userDefaults; // this is actually a 'ScreenSaverDefaults' NSUserDefaultsController *userDefaultsController; - NSUserDefaults *userDefaults; // this is actually a 'ScreenSaverDefaults' - NSDictionary *defaultOptions; // Hardcoded defaults before any changes. + + NSUserDefaults *globalDefaults; // for prefs shared by all xscreensavers. + NSUserDefaultsController *globalDefaultsController; + + NSDictionary *defaultOptions; // Hardcoded defaults before any changes. } - (id) initWithName: (NSString *) name @@ -40,6 +45,7 @@ defaults: (const char * const *) defs; - (NSUserDefaultsController *) userDefaultsController; +- (NSUserDefaultsController *) globalDefaultsController; - (NSDictionary *) defaultOptions; - (char *) getStringResource: (const char *) name; diff --git a/OSX/PrefsReader.m b/OSX/PrefsReader.m index 4f42fa90..cf1698ec 100644 --- a/OSX/PrefsReader.m +++ b/OSX/PrefsReader.m @@ -21,8 +21,163 @@ #endif #import "PrefsReader.h" +#import "Updater.h" #import "screenhackI.h" +#ifndef USE_IPHONE + + +/* GlobalDefaults is an NSUserDefaults implementation that writes into + the preferences key we provide, instead of whatever the default would + be for this app. We do this by invoking the Core Foundation preferences + routines directly, while presenting the same API as NSUserDefaults. + + We need this so that global prefs will go into the file + Library/Preferences/org.jwz.xscreensaver.updater.plist instead of into + Library/Preferences/ByHost/org.jwz.xscreensaver.Maze.XXXXX.plist + with the per-saver prefs. + + The ScreenSaverDefaults class *almost* does this, but it always writes + into the ByHost subdirectory, which means it's not readable by an app + that tries to access it with a plain old +standardUserDefaults. + */ +@interface GlobalDefaults : NSUserDefaults +{ + NSString *domain; + NSDictionary *defaults; +} +@end + +@implementation GlobalDefaults +- (id) initWithDomain:(NSString *)_domain +{ + self = [super init]; + domain = [_domain retain]; + return self; +} + +- (void) dealloc +{ + [domain release]; + [defaults release]; + [super dealloc]; +} + +- (void)registerDefaults:(NSDictionary *)dict +{ + defaults = [dict retain]; +} + +- (id)objectForKey:(NSString *)key +{ + NSObject *obj = (NSObject *) + CFPreferencesCopyAppValue ((CFStringRef) key, (CFStringRef) domain); + if (!obj && defaults) + obj = [defaults objectForKey:key]; + return obj; +} + +- (void)setObject:(id)value forKey:(NSString *)key +{ + if (value && defaults) { + // If the value is the default, then remove it instead. + NSObject *def = [defaults objectForKey:key]; + if (def && [def isEqual:value]) + value = NULL; + } + CFPreferencesSetAppValue ((CFStringRef) key, + (CFPropertyListRef) value, + (CFStringRef) domain); +} + + +- (BOOL)synchronize +{ + return CFPreferencesAppSynchronize ((CFStringRef) domain); +} + + +// Make sure these all call our objectForKey. +// Might not be necessary, but safe. + +- (NSString *)stringForKey:(NSString *)key +{ + return [[self objectForKey:key] stringValue]; +} + +- (NSArray *)arrayForKey:(NSString *)key +{ + return (NSArray *) [self objectForKey:key]; +} + +- (NSDictionary *)dictionaryForKey:(NSString *)key +{ + return (NSDictionary *) [self objectForKey:key]; +} + +- (NSData *)dataForKey:(NSString *)key +{ + return (NSData *) [self objectForKey:key]; +} + +- (NSArray *)stringArrayForKey:(NSString *)key +{ + return (NSArray *) [self objectForKey:key]; +} + +- (NSInteger)integerForKey:(NSString *)key +{ + return [[self objectForKey:key] integerValue]; +} + +- (float)floatForKey:(NSString *)key +{ + return [[self objectForKey:key] floatValue]; +} + +- (double)doubleForKey:(NSString *)key +{ + return [[self objectForKey:key] doubleValue]; +} + +- (BOOL)boolForKey:(NSString *)key +{ + return [[self objectForKey:key] integerValue]; +} + +// Make sure these all call our setObject. +// Might not be necessary, but safe. + +- (void)removeObjectForKey:(NSString *)key +{ + [self setObject:NULL forKey:key]; +} + +- (void)setInteger:(NSInteger)value forKey:(NSString *)key +{ + [self setObject:[NSNumber numberWithInteger:value] forKey:key]; +} + +- (void)setFloat:(float)value forKey:(NSString *)key +{ + [self setObject:[NSNumber numberWithFloat:value] forKey:key]; +} + +- (void)setDouble:(double)value forKey:(NSString *)key +{ + [self setObject:[NSNumber numberWithDouble:value] forKey:key]; +} + +- (void)setBool:(BOOL)value forKey:(NSString *)key +{ + [self setObject:[NSNumber numberWithBool:value] forKey:key]; +} +@end + + +#endif // !USE_IPHONE + + @implementation PrefsReader /* Normally we read resources by looking up "KEY" in the database @@ -31,7 +186,7 @@ instead, so transform keys to "SAVERNAME.KEY". NOTE: This is duplicated in XScreenSaverConfigSheet.m, cause I suck. -*/ + */ - (NSString *) makeKey:(NSString *)key { # ifdef USE_IPHONE @@ -113,6 +268,7 @@ // Store the contents of 'defaults' into the real preferences database. NSDictionary *defsdict = [self defaultsToDict:defs]; [userDefaults registerDefaults:defsdict]; + [globalDefaults registerDefaults:UPDATER_DEFAULTS]; // Save a copy of the default options, since iOS doesn't have // [userDefaultsController initialValues]. @@ -129,8 +285,12 @@ userDefaultsController = [[NSUserDefaultsController alloc] initWithDefaults:userDefaults initialValues:defsdict]; + globalDefaultsController = + [[NSUserDefaultsController alloc] initWithDefaults:globalDefaults + initialValues:defsdict]; # else // USE_IPHONE - userDefaultsController = userDefaults; + userDefaultsController = userDefaults; + globalDefaultsController = userDefaults; # endif // USE_IPHONE NSDictionary *optsdict = [NSMutableDictionary dictionaryWithCapacity:20]; @@ -187,12 +347,20 @@ #if 0 // Dump the entire resource database. + NSLog(@"userDefaults:"); NSDictionary *d = [userDefaults dictionaryRepresentation]; for (NSObject *key in [[d allKeys] sortedArrayUsingSelector:@selector(compare:)]) { NSObject *val = [d objectForKey:key]; NSLog (@"%@ = %@", key, val); } + NSLog(@"globalDefaults:"); + d = [globalDefaults dictionaryRepresentation]; + for (NSObject *key in [[d allKeys] + sortedArrayUsingSelector:@selector(compare:)]) { + NSObject *val = [d objectForKey:key]; + NSLog (@"%@ = %@", key, val); + } #endif } @@ -203,29 +371,41 @@ return userDefaultsController; } +- (NSUserDefaultsController *) globalDefaultsController +{ + NSAssert(globalDefaultsController, @"globalDefaultsController uninitialized"); + return globalDefaultsController; +} + - (NSDictionary *) defaultOptions { - NSAssert(defaultOptions, @"userDefaultsController uninitialized"); + NSAssert(defaultOptions, @"defaultOptions uninitialized"); return defaultOptions; } - (NSObject *) getObjectResource: (const char *) name { - while (1) { - NSString *key = [self makeCKey:name]; - NSObject *obj = [userDefaults objectForKey:key]; - if (obj) - return obj; - - // If key is "foo.bar.baz", check "foo.bar.baz", "bar.baz", and "baz". - // - const char *dot = strchr (name, '.'); - if (dot && dot[1]) - name = dot + 1; - else - return nil; + // First look in userDefaults, then in globalDefaults. + for (int globalp = 0; globalp <= 1; globalp++) { + const char *name2 = name; + while (1) { + NSString *key = [self makeCKey:name2]; + NSObject *obj = [(globalp ? globalDefaults : userDefaults) + objectForKey:key]; + if (obj) + return obj; + + // If key is "foo.bar.baz", check "foo.bar.baz", "bar.baz", and "baz". + // + const char *dot = strchr (name2, '.'); + if (dot && dot[1]) + name2 = dot + 1; + else + break; + } } + return NULL; } @@ -362,8 +542,11 @@ # ifndef USE_IPHONE userDefaults = [ScreenSaverDefaults defaultsForModuleWithName:name]; + globalDefaults = [[[GlobalDefaults alloc] initWithDomain:@UPDATER_DOMAIN] + retain]; # else // USE_IPHONE userDefaults = [NSUserDefaults standardUserDefaults]; + globalDefaults = userDefaults; # endif // USE_IPHONE // Convert "org.jwz.xscreensaver.NAME" to just "NAME". @@ -381,6 +564,7 @@ { [saver_name release]; [userDefaultsController release]; + [globalDefaultsController release]; [super dealloc]; } diff --git a/OSX/SaverRunner.m b/OSX/SaverRunner.m index 3b770b5a..4481bfce 100644 --- a/OSX/SaverRunner.m +++ b/OSX/SaverRunner.m @@ -1103,6 +1103,8 @@ FAIL: [NSString stringWithFormat:@"XScreenSaverWindow%d", i]]; [win setFrameUsingName:[win frameAutosaveName]]; [a addObject: win]; + // This prevents clicks from being seen by savers. + // [win setMovableByWindowBackground:YES]; } # else // USE_IPHONE @@ -1213,7 +1215,7 @@ FAIL: #ifndef USE_IPHONE /* When the window closes, exit (even if prefs still open.) -*/ + */ - (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) n { return YES; diff --git a/OSX/SaverRunner.plist b/OSX/SaverRunner.plist index 0bfad148..17374270 100644 --- a/OSX/SaverRunner.plist +++ b/OSX/SaverRunner.plist @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleGetInfoString - 5.23 + 5.24 CFBundleIconFile SaverRunner CFBundleIdentifier @@ -15,21 +15,21 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleLongVersionString - 5.23 + 5.24 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString - 5.23 + 5.24 CFBundleSignature ???? CFBundleVersion - 5.23 + 5.24 LSMinimumSystemVersion - 10.4 + ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright - 5.23 + 5.24 NSMainNibFile SaverRunner NSPrincipalClass diff --git a/OSX/Sparkle.framework/Headers b/OSX/Sparkle.framework/Headers new file mode 120000 index 00000000..a177d2a6 --- /dev/null +++ b/OSX/Sparkle.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/OSX/Sparkle.framework/Resources b/OSX/Sparkle.framework/Resources new file mode 120000 index 00000000..953ee36f --- /dev/null +++ b/OSX/Sparkle.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/OSX/Sparkle.framework/Sparkle b/OSX/Sparkle.framework/Sparkle new file mode 120000 index 00000000..b2c52731 --- /dev/null +++ b/OSX/Sparkle.framework/Sparkle @@ -0,0 +1 @@ +Versions/Current/Sparkle \ No newline at end of file diff --git a/OSX/Sparkle.framework/Versions/A/Headers/SUAppcast.h b/OSX/Sparkle.framework/Versions/A/Headers/SUAppcast.h new file mode 100755 index 00000000..5a60d2fd --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Headers/SUAppcast.h @@ -0,0 +1,36 @@ +// +// SUAppcast.h +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#ifndef SUAPPCAST_H +#define SUAPPCAST_H + +@class SUAppcastItem; +@interface SUAppcast : NSObject +{ +@private + NSArray *items; + NSString *userAgentString; + id delegate; + NSString *downloadFilename; + NSURLDownload *download; +} + +- (void)fetchAppcastFromURL:(NSURL *)url; +- (void)setDelegate:delegate; +- (void)setUserAgentString:(NSString *)userAgentString; + +- (NSArray *)items; + +@end + +@interface NSObject (SUAppcastDelegate) +- (void)appcastDidFinishLoading:(SUAppcast *)appcast; +- (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error; +@end + +#endif diff --git a/OSX/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h b/OSX/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h new file mode 100755 index 00000000..d6f9c64f --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h @@ -0,0 +1,60 @@ +// +// SUAppcastItem.h +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#ifndef SUAPPCASTITEM_H +#define SUAPPCASTITEM_H + +@interface SUAppcastItem : NSObject +{ +@private + NSString *title; + NSDate *date; + NSString *itemDescription; + + NSURL *releaseNotesURL; + + NSString *DSASignature; + NSString *minimumSystemVersion; + NSString *maximumSystemVersion; + + NSURL *fileURL; + NSString *versionString; + NSString *displayVersionString; + + NSDictionary *deltaUpdates; + + NSDictionary *propertiesDictionary; + + NSURL *infoURL; // UK 2007-08-31 +} + +// Initializes with data from a dictionary provided by the RSS class. +- initWithDictionary:(NSDictionary *)dict; +- initWithDictionary:(NSDictionary *)dict failureReason:(NSString**)error; + +- (NSString *)title; +- (NSString *)versionString; +- (NSString *)displayVersionString; +- (NSDate *)date; +- (NSString *)itemDescription; +- (NSURL *)releaseNotesURL; +- (NSURL *)fileURL; +- (NSString *)DSASignature; +- (NSString *)minimumSystemVersion; +- (NSString *)maximumSystemVersion; +- (NSDictionary *)deltaUpdates; +- (BOOL)isDeltaUpdate; + +// Returns the dictionary provided in initWithDictionary; this might be useful later for extensions. +- (NSDictionary *)propertiesDictionary; + +- (NSURL *)infoURL; // UK 2007-08-31 + +@end + +#endif diff --git a/OSX/Sparkle.framework/Versions/A/Headers/SUUpdater.h b/OSX/Sparkle.framework/Versions/A/Headers/SUUpdater.h new file mode 100755 index 00000000..cd795667 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Headers/SUUpdater.h @@ -0,0 +1,161 @@ +// +// SUUpdater.h +// Sparkle +// +// Created by Andy Matuschak on 1/4/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#ifndef SUUPDATER_H +#define SUUPDATER_H + +#import "SUVersionComparisonProtocol.h" +#import "SUVersionDisplayProtocol.h" + +@class SUUpdateDriver, SUAppcastItem, SUHost, SUAppcast; + +@interface SUUpdater : NSObject +{ +@private + NSTimer *checkTimer; + SUUpdateDriver *driver; + + NSString *customUserAgentString; + SUHost *host; + IBOutlet id delegate; +} + ++ (SUUpdater *)sharedUpdater; ++ (SUUpdater *)updaterForBundle:(NSBundle *)bundle; +- (id)initForBundle:(NSBundle *)bundle; + +- (NSBundle *)hostBundle; + +- (void)setDelegate:(id)delegate; +- (id)delegate; + +- (void)setAutomaticallyChecksForUpdates:(BOOL)automaticallyChecks; +- (BOOL)automaticallyChecksForUpdates; + +- (void)setUpdateCheckInterval:(NSTimeInterval)interval; +- (NSTimeInterval)updateCheckInterval; + +- (void)setFeedURL:(NSURL *)feedURL; +- (NSURL *)feedURL; // *** MUST BE CALLED ON MAIN THREAD *** + +- (void)setUserAgentString:(NSString *)userAgent; +- (NSString *)userAgentString; + +- (void)setSendsSystemProfile:(BOOL)sendsSystemProfile; +- (BOOL)sendsSystemProfile; + +- (void)setAutomaticallyDownloadsUpdates:(BOOL)automaticallyDownloadsUpdates; +- (BOOL)automaticallyDownloadsUpdates; + +// This IBAction is meant for a main menu item. Hook up any menu item to this action, +// and Sparkle will check for updates and report back its findings verbosely. +- (IBAction)checkForUpdates:(id)sender; + +// This kicks off an update meant to be programmatically initiated. That is, it will display no UI unless it actually finds an update, +// in which case it proceeds as usual. If the fully automated updating is turned on, however, this will invoke that behavior, and if an +// update is found, it will be downloaded and prepped for installation. +- (void)checkForUpdatesInBackground; + +// Date of last update check. Returns nil if no check has been performed. +- (NSDate*)lastUpdateCheckDate; + +// This begins a "probing" check for updates which will not actually offer to update to that version. The delegate methods, though, +// (up to updater:didFindValidUpdate: and updaterDidNotFindUpdate:), are called, so you can use that information in your UI. +- (void)checkForUpdateInformation; + +// Call this to appropriately schedule or cancel the update checking timer according to the preferences for time interval and automatic checks. This call does not change the date of the next check, but only the internal NSTimer. +- (void)resetUpdateCycle; + +- (BOOL)updateInProgress; + +@end + + +// ----------------------------------------------------------------------------- +// SUUpdater Delegate: +// ----------------------------------------------------------------------------- + +@interface NSObject (SUUpdaterDelegateInformalProtocol) + +// Use this to keep Sparkle from popping up e.g. while your setup assistant is showing: +- (BOOL)updaterMayCheckForUpdates:(SUUpdater *)bundle; + +// This method allows you to add extra parameters to the appcast URL, potentially based on whether or not Sparkle will also be sending along the system profile. This method should return an array of dictionaries with keys: "key", "value", "displayKey", "displayValue", the latter two being specifically for display to the user. +- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile; + +// Override this to dynamically specify the entire URL. +- (NSString*)feedURLStringForUpdater:(SUUpdater*)updater; + +// Use this to override the default behavior for Sparkle prompting the user about automatic update checks. +- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates:(SUUpdater *)bundle; + +// Implement this if you want to do some special handling with the appcast once it finishes loading. +- (void)updater:(SUUpdater *)updater didFinishLoadingAppcast:(SUAppcast *)appcast; + +// If you're using special logic or extensions in your appcast, implement this to use your own logic for finding +// a valid update, if any, in the given appcast. +- (SUAppcastItem *)bestValidUpdateInAppcast:(SUAppcast *)appcast forUpdater:(SUUpdater *)bundle; + +// Sent when a valid update is found by the update driver. +- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)update; + +// Sent when a valid update is not found. +- (void)updaterDidNotFindUpdate:(SUUpdater *)update; + +// Sent immediately before installing the specified update. +- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update; + +// Return YES to delay the relaunch until you do some processing; invoke the given NSInvocation to continue. +// This is not called if the user didn't relaunch on the previous update, in that case it will immediately +// restart. +- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)update untilInvoking:(NSInvocation *)invocation; + +// Some apps *can not* be relaunched in certain circumstances. They can use this method +// to prevent a relaunch "hard": +- (BOOL)updaterShouldRelaunchApplication:(SUUpdater *)updater; + +// Called immediately before relaunching. +- (void)updaterWillRelaunchApplication:(SUUpdater *)updater; + +// This method allows you to provide a custom version comparator. +// If you don't implement this method or return nil, the standard version comparator will be used. +- (id )versionComparatorForUpdater:(SUUpdater *)updater; + +// This method allows you to provide a custom version comparator. +// If you don't implement this method or return nil, the standard version displayer will be used. +- (id )versionDisplayerForUpdater:(SUUpdater *)updater; + +// Returns the path which is used to relaunch the client after the update is installed. By default, the path of the host bundle. +- (NSString *)pathToRelaunchForUpdater:(SUUpdater *)updater; + +// Called before and after, respectively, an updater shows a modal alert window, to give the host +// the opportunity to hide attached windows etc. that may get in the way: +-(void) updaterWillShowModalAlert:(SUUpdater *)updater; +-(void) updaterDidShowModalAlert:(SUUpdater *)updater; + +@end + + +// ----------------------------------------------------------------------------- +// Constants: +// ----------------------------------------------------------------------------- + +// Define some minimum intervals to avoid DOS-like checking attacks. These are in seconds. +#if defined(DEBUG) && DEBUG && 0 +#define SU_MIN_CHECK_INTERVAL 60 +#else +#define SU_MIN_CHECK_INTERVAL 60*60 +#endif + +#if defined(DEBUG) && DEBUG && 0 +#define SU_DEFAULT_CHECK_INTERVAL 60 +#else +#define SU_DEFAULT_CHECK_INTERVAL 60*60*24 +#endif + +#endif diff --git a/OSX/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h b/OSX/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h new file mode 100755 index 00000000..6c65ea45 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h @@ -0,0 +1,29 @@ +// +// SUVersionComparisonProtocol.h +// Sparkle +// +// Created by Andy Matuschak on 12/21/07. +// Copyright 2007 Andy Matuschak. All rights reserved. +// + +#ifndef SUVERSIONCOMPARISONPROTOCOL_H +#define SUVERSIONCOMPARISONPROTOCOL_H + +#import + +/*! + @protocol + @abstract Implement this protocol to provide version comparison facilities for Sparkle. +*/ +@protocol SUVersionComparison + +/*! + @method + @abstract An abstract method to compare two version strings. + @discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent. +*/ +- (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; // *** MAY BE CALLED ON NON-MAIN THREAD! + +@end + +#endif diff --git a/OSX/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h b/OSX/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h new file mode 100755 index 00000000..368b9c9f --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h @@ -0,0 +1,27 @@ +// +// SUVersionDisplayProtocol.h +// EyeTV +// +// Created by Uli Kusterer on 08.12.09. +// Copyright 2009 Elgato Systems GmbH. All rights reserved. +// + +#import + + +/*! + @protocol + @abstract Implement this protocol to apply special formatting to the two + version numbers. +*/ +@protocol SUVersionDisplay + +/*! + @method + @abstract An abstract method to format two version strings. + @discussion You get both so you can display important distinguishing + information, but leave out unnecessary/confusing parts. +*/ +-(void) formatVersion: (NSString**)inOutVersionA andVersion: (NSString**)inOutVersionB; + +@end diff --git a/OSX/Sparkle.framework/Versions/A/Headers/Sparkle.h b/OSX/Sparkle.framework/Versions/A/Headers/Sparkle.h new file mode 100755 index 00000000..08dd5777 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Headers/Sparkle.h @@ -0,0 +1,21 @@ +// +// Sparkle.h +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07) +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#ifndef SPARKLE_H +#define SPARKLE_H + +// This list should include the shared headers. It doesn't matter if some of them aren't shared (unless +// there are name-space collisions) so we can list all of them to start with: + +#import + +#import +#import +#import + +#endif diff --git a/OSX/Sparkle.framework/Versions/A/Resources/Info.plist b/OSX/Sparkle.framework/Versions/A/Resources/Info.plist new file mode 100644 index 00000000..1e79abe6 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,40 @@ + + + + + BuildMachineOSBuild + 13A603 + CFBundleDevelopmentRegion + en + CFBundleExecutable + Sparkle + CFBundleIdentifier + org.andymatuschak.Sparkle + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Sparkle + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.5 Beta (git) + CFBundleSignature + ???? + CFBundleVersion + 1.5 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A3005 + DTPlatformVersion + GM + DTSDKBuild + 13A595 + DTSDKName + macosx10.9 + DTXcode + 0502 + DTXcodeBuild + 5A3005 + + diff --git a/OSX/Sparkle.framework/Versions/A/Resources/License.txt b/OSX/Sparkle.framework/Versions/A/Resources/License.txt new file mode 100755 index 00000000..08364c63 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/License.txt @@ -0,0 +1,38 @@ +Copyright (c) 2006 Andy Matuschak + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +================= +EXTERNAL LICENSES +================= + +License for bspatch.c and bsdiff.c, from bsdiff 4.3 (: +/*- + * Copyright 2003-2005 Colin Percival + * All rights reserved + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted providing that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist b/OSX/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist new file mode 100755 index 00000000..63644f08 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist @@ -0,0 +1,182 @@ + + + + + ADP2,1 + Developer Transition Kit + iMac1,1 + iMac G3 (Rev A-D) + iMac4,1 + iMac (Core Duo) + iMac4,2 + iMac for Education (17-inch, Core Duo) + iMac5,1 + iMac (Core 2 Duo, 17 or 20 inch, SuperDrive) + iMac5,2 + iMac (Core 2 Duo, 17 inch, Combo Drive) + iMac6,1 + iMac (Core 2 Duo, 24 inch, SuperDrive) + iMac8,1 + iMac (April 2008) + MacBook1,1 + MacBook (Core Duo) + MacBook2,1 + MacBook (Core 2 Duo) + MacBook4,1 + MacBook (Core 2 Duo Feb 2008) + MacBookAir1,1 + MacBook Air (January 2008) + MacBookAir2,1 + MacBook Air (June 2009) + MacBookAir3,1 + MacBook Air (October 2010) + MacBookPro1,1 + MacBook Pro Core Duo (15-inch) + MacBookPro1,2 + MacBook Pro Core Duo (17-inch) + MacBookPro2,1 + MacBook Pro Core 2 Duo (17-inch) + MacBookPro2,2 + MacBook Pro Core 2 Duo (15-inch) + MacBookPro3,1 + MacBook Pro Core 2 Duo (15-inch LED, Core 2 Duo) + MacBookPro3,2 + MacBook Pro Core 2 Duo (17-inch HD, Core 2 Duo) + MacBookPro4,1 + MacBook Pro (Core 2 Duo Feb 2008) + Macmini1,1 + Mac Mini (Core Solo/Duo) + MacPro1,1 + Mac Pro (four-core) + MacPro2,1 + Mac Pro (eight-core) + MacPro3,1 + Mac Pro (January 2008 4- or 8- core "Harpertown") + MacPro4,1 + Mac Pro (March 2009) + MacPro5,1 + Mac Pro (August 2010) + PowerBook1,1 + PowerBook G3 + PowerBook2,1 + iBook G3 + PowerBook2,2 + iBook G3 (FireWire) + PowerBook2,3 + iBook G3 + PowerBook2,4 + iBook G3 + PowerBook3,1 + PowerBook G3 (FireWire) + PowerBook3,2 + PowerBook G4 + PowerBook3,3 + PowerBook G4 (Gigabit Ethernet) + PowerBook3,4 + PowerBook G4 (DVI) + PowerBook3,5 + PowerBook G4 (1GHz / 867MHz) + PowerBook4,1 + iBook G3 (Dual USB, Late 2001) + PowerBook4,2 + iBook G3 (16MB VRAM) + PowerBook4,3 + iBook G3 Opaque 16MB VRAM, 32MB VRAM, Early 2003) + PowerBook5,1 + PowerBook G4 (17 inch) + PowerBook5,2 + PowerBook G4 (15 inch FW 800) + PowerBook5,3 + PowerBook G4 (17-inch 1.33GHz) + PowerBook5,4 + PowerBook G4 (15 inch 1.5/1.33GHz) + PowerBook5,5 + PowerBook G4 (17-inch 1.5GHz) + PowerBook5,6 + PowerBook G4 (15 inch 1.67GHz/1.5GHz) + PowerBook5,7 + PowerBook G4 (17-inch 1.67GHz) + PowerBook5,8 + PowerBook G4 (Double layer SD, 15 inch) + PowerBook5,9 + PowerBook G4 (Double layer SD, 17 inch) + PowerBook6,1 + PowerBook G4 (12 inch) + PowerBook6,2 + PowerBook G4 (12 inch, DVI) + PowerBook6,3 + iBook G4 + PowerBook6,4 + PowerBook G4 (12 inch 1.33GHz) + PowerBook6,5 + iBook G4 (Early-Late 2004) + PowerBook6,7 + iBook G4 (Mid 2005) + PowerBook6,8 + PowerBook G4 (12 inch 1.5GHz) + PowerMac1,1 + Power Macintosh G3 (Blue & White) + PowerMac1,2 + Power Macintosh G4 (PCI Graphics) + PowerMac10,1 + Mac Mini G4 + PowerMac10,2 + Mac Mini (Late 2005) + PowerMac11,2 + Power Macintosh G5 (Late 2005) + PowerMac12,1 + iMac G5 (iSight) + PowerMac2,1 + iMac G3 (Slot-loading CD-ROM) + PowerMac2,2 + iMac G3 (Summer 2000) + PowerMac3,1 + Power Macintosh G4 (AGP Graphics) + PowerMac3,2 + Power Macintosh G4 (AGP Graphics) + PowerMac3,3 + Power Macintosh G4 (Gigabit Ethernet) + PowerMac3,4 + Power Macintosh G4 (Digital Audio) + PowerMac3,5 + Power Macintosh G4 (Quick Silver) + PowerMac3,6 + Power Macintosh G4 (Mirrored Drive Door) + PowerMac4,1 + iMac G3 (Early/Summer 2001) + PowerMac4,2 + iMac G4 (Flat Panel) + PowerMac4,4 + eMac + PowerMac4,5 + iMac G4 (17-inch Flat Panel) + PowerMac5,1 + Power Macintosh G4 Cube + PowerMac6,1 + iMac G4 (USB 2.0) + PowerMac6,3 + iMac G4 (20-inch Flat Panel) + PowerMac6,4 + eMac (USB 2.0, 2005) + PowerMac7,2 + Power Macintosh G5 + PowerMac7,3 + Power Macintosh G5 + PowerMac8,1 + iMac G5 + PowerMac8,2 + iMac G5 (Ambient Light Sensor) + PowerMac9,1 + Power Macintosh G5 (Late 2005) + RackMac1,1 + Xserve G4 + RackMac1,2 + Xserve G4 (slot-loading, cluster node) + RackMac3,1 + Xserve G5 + Xserve1,1 + Xserve (Intel Xeon) + Xserve2,1 + Xserve (January 2008 quad-core) + + diff --git a/OSX/Sparkle.framework/Versions/A/Resources/SUStatus.nib b/OSX/Sparkle.framework/Versions/A/Resources/SUStatus.nib new file mode 100644 index 00000000..356987eb Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/SUStatus.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..2d1b77b9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUPasswordPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUPasswordPrompt.nib new file mode 100644 index 00000000..09c833c8 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUPasswordPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..b8925e77 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..006d6aa4 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings new file mode 100644 index 00000000..858a71fa Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..335264f9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..fe70bf25 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..9dcd9442 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings new file mode 100644 index 00000000..9bbb9968 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..211e7185 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUPasswordPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUPasswordPrompt.nib new file mode 100644 index 00000000..1873d439 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUPasswordPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..42395b25 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..58af8327 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings new file mode 100644 index 00000000..bcf691da Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..19970aa4 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..69fccfcb Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..c59bf3c4 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings new file mode 100644 index 00000000..664946d4 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..512c1c53 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUPasswordPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUPasswordPrompt.nib new file mode 100644 index 00000000..6cd02b21 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUPasswordPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..e856f9da Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..4f0c0a3d Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings new file mode 100644 index 00000000..f9c15d88 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..8d657a76 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..d28a4f8f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..f927ba69 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings new file mode 100644 index 00000000..8e4ab943 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Info.plist b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Info.plist new file mode 100644 index 00000000..692e02e4 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Info.plist @@ -0,0 +1,50 @@ + + + + + BuildMachineOSBuild + 13A603 + CFBundleDevelopmentRegion + English + CFBundleExecutable + finish_installation + CFBundleIconFile + Sparkle + CFBundleIdentifier + org.andymatuschak.sparkle.finish-installation + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A3005 + DTPlatformVersion + GM + DTSDKBuild + 13A595 + DTSDKName + macosx10.9 + DTXcode + 0502 + DTXcodeBuild + 5A3005 + LSBackgroundOnly + 1 + LSMinimumSystemVersion + 10.4 + LSUIElement + 1 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation new file mode 100755 index 00000000..5e032fa1 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/MacOS/finish_installation differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/PkgInfo b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/PkgInfo new file mode 100644 index 00000000..bd04210f --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? \ No newline at end of file diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/SUStatus.nib b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/SUStatus.nib new file mode 100644 index 00000000..356987eb Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/SUStatus.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/Sparkle.icns b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/Sparkle.icns new file mode 100755 index 00000000..8e56d45c Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/Sparkle.icns differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ar.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ar.lproj/Sparkle.strings new file mode 100644 index 00000000..858a71fa Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ar.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/cs.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/cs.lproj/Sparkle.strings new file mode 100644 index 00000000..9bbb9968 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/cs.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/da.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/da.lproj/Sparkle.strings new file mode 100644 index 00000000..bcf691da Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/da.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/de.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/de.lproj/Sparkle.strings new file mode 100644 index 00000000..664946d4 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/de.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/en.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/en.lproj/Sparkle.strings new file mode 100644 index 00000000..f9c15d88 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/en.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/es.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/es.lproj/Sparkle.strings new file mode 100644 index 00000000..8e4ab943 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/es.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/fr.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/fr.lproj/Sparkle.strings new file mode 100644 index 00000000..236f807a Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/fr.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/is.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/is.lproj/Sparkle.strings new file mode 100644 index 00000000..665e273e Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/is.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/it.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/it.lproj/Sparkle.strings new file mode 100644 index 00000000..4ccd7aff Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/it.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ja.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ja.lproj/Sparkle.strings new file mode 100644 index 00000000..b21ea044 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ja.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/nl.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/nl.lproj/Sparkle.strings new file mode 100644 index 00000000..023c473b Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/nl.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pl.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pl.lproj/Sparkle.strings new file mode 100644 index 00000000..9a0bc8b9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pl.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pt_BR.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pt_BR.lproj/Sparkle.strings new file mode 100644 index 00000000..7a11a9eb Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pt_BR.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pt_PT.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pt_PT.lproj/Sparkle.strings new file mode 100644 index 00000000..497cd830 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/pt_PT.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ro.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ro.lproj/Sparkle.strings new file mode 100644 index 00000000..e90bdf59 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ro.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ru.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ru.lproj/Sparkle.strings new file mode 100644 index 00000000..7afef95f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/ru.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/sl.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/sl.lproj/Sparkle.strings new file mode 100644 index 00000000..7ec0bc27 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/sl.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/sv.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/sv.lproj/Sparkle.strings new file mode 100644 index 00000000..16c3fb84 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/sv.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/th.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/th.lproj/Sparkle.strings new file mode 100644 index 00000000..0468c97f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/th.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/tr.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/tr.lproj/Sparkle.strings new file mode 100644 index 00000000..cabc2116 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/tr.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/uk.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/uk.lproj/Sparkle.strings new file mode 100644 index 00000000..6f0e4db9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/uk.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/zh_CN.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/zh_CN.lproj/Sparkle.strings new file mode 100644 index 00000000..b741758f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/zh_CN.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/zh_TW.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/zh_TW.lproj/Sparkle.strings new file mode 100644 index 00000000..c1f7e85e Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/finish_installation.app/Contents/Resources/zh_TW.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..59b199b7 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..a084b193 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..808db821 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings new file mode 100644 index 00000000..236f807a Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/fr_CA.lproj b/OSX/Sparkle.framework/Versions/A/Resources/fr_CA.lproj new file mode 120000 index 00000000..f9834a39 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/fr_CA.lproj @@ -0,0 +1 @@ +fr.lproj \ No newline at end of file diff --git a/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..89825fbe Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..2172c0da Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..9a4cca0a Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings new file mode 100644 index 00000000..665e273e Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..c3d7a421 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..7cc884b0 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..285596b9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings new file mode 100644 index 00000000..4ccd7aff Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..61d2a29c Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..ee41cad3 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..ebd5759b Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings new file mode 100644 index 00000000..b21ea044 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..e7a8d469 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..89f887e4 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..5da11e05 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..35a8de21 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..eec88ff1 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..ab2c86fc Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings new file mode 100644 index 00000000..023c473b Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..0646f3f2 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..1b4d495f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..8ea95e89 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings new file mode 100644 index 00000000..9a0bc8b9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt.lproj b/OSX/Sparkle.framework/Versions/A/Resources/pt.lproj new file mode 120000 index 00000000..3c1c9f6d --- /dev/null +++ b/OSX/Sparkle.framework/Versions/A/Resources/pt.lproj @@ -0,0 +1 @@ +pt_BR.lproj \ No newline at end of file diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..e8a824aa Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUPasswordPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUPasswordPrompt.nib new file mode 100644 index 00000000..22f50aa0 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUPasswordPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..03500fa9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..dc92de65 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings new file mode 100644 index 00000000..7a11a9eb Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..c3603d55 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..2d371c43 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..7b6d719d Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings new file mode 100644 index 00000000..497cd830 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..d669654e Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..6a75e5e8 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..2e5802c1 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings new file mode 100644 index 00000000..e90bdf59 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..8022f52b Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..9466dc3b Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..3b26a5b0 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings new file mode 100644 index 00000000..7afef95f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..3afea8d8 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..15e760dc Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..e7d67a2b Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..60cfe746 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..c3bd6983 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..1ff5bc35 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings new file mode 100644 index 00000000..7ec0bc27 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..8df1ba06 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..9ab32882 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..0337c2a2 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings new file mode 100644 index 00000000..16c3fb84 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..e1377a4e Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUPasswordPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUPasswordPrompt.nib new file mode 100644 index 00000000..646d64e3 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUPasswordPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..239b8f7d Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..143ff910 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings new file mode 100644 index 00000000..0468c97f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..263e74ab Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..ca40c577 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..22a8f467 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings new file mode 100644 index 00000000..cabc2116 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..83dbcbf3 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..939e0cb5 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..8e2bf730 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings new file mode 100644 index 00000000..6f0e4db9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..65cc3d22 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..a453dfc1 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..9f85d65c Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings new file mode 100644 index 00000000..b741758f Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib new file mode 100644 index 00000000..c4b9e9b9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib new file mode 100644 index 00000000..6e98d7e9 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib new file mode 100644 index 00000000..935b007d Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings new file mode 100644 index 00000000..c1f7e85e Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings differ diff --git a/OSX/Sparkle.framework/Versions/A/Sparkle b/OSX/Sparkle.framework/Versions/A/Sparkle new file mode 100755 index 00000000..64eefd02 Binary files /dev/null and b/OSX/Sparkle.framework/Versions/A/Sparkle differ diff --git a/OSX/Sparkle.framework/Versions/Current b/OSX/Sparkle.framework/Versions/Current new file mode 120000 index 00000000..8c7e5a66 --- /dev/null +++ b/OSX/Sparkle.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/OSX/Updater.h b/OSX/Updater.h new file mode 100644 index 00000000..05246f06 --- /dev/null +++ b/OSX/Updater.h @@ -0,0 +1,35 @@ +/* xscreensaver, Copyright (c) 2013 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +#ifndef USE_IPHONE +#import +@interface XScreenSaverUpdater : NSObject +@end +#endif // !USE_IPHONE + +#define UPDATER_DOMAIN "org.jwz.xscreensaver.updater" + +// Strings must match Sparkle/SUConstants.m +#define SUSUEnableAutomaticChecksKey "SUEnableAutomaticChecks" +#define SUSUEnableAutomaticChecksDef YES +#define SUAutomaticallyUpdateKey "SUAutomaticallyUpdate" +#define SUAutomaticallyUpdateDef NO +#define SUSendProfileInfoKey "SUSendProfileInfo" +#define SUSendProfileInfoDef YES +#define SUScheduledCheckIntervalKey "SUScheduledCheckInterval" +#define SUScheduledCheckIntervalDef 604800 + +#define UPDATER_DEFAULTS @{ \ + @SUSUEnableAutomaticChecksKey: @SUSUEnableAutomaticChecksDef, \ + @SUAutomaticallyUpdateKey: @SUAutomaticallyUpdateDef, \ + @SUSendProfileInfoKey: @SUSendProfileInfoDef, \ + @SUScheduledCheckIntervalKey: @SUScheduledCheckIntervalDef \ +} diff --git a/OSX/Updater.m b/OSX/Updater.m new file mode 100644 index 00000000..94a3afae --- /dev/null +++ b/OSX/Updater.m @@ -0,0 +1,56 @@ +/* xscreensaver, Copyright (c) 2013 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * XScreenSaverUpdater.app -- downloads and installs XScreenSaver updates + * via Sparkle.framework. + * + * Created: 7-Dec-2013 + * + * NOTE: This does not work with Sparkle 1.5b6 -- it requires the "HEAD" + * version 4-Dec-2013 or later. + */ + +#import "Updater.h" +#import "Sparkle/SUUpdater.h" + +@implementation XScreenSaverUpdater : NSObject + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +{ + SUUpdater *updater = [SUUpdater updaterForBundle: + [NSBundle bundleForClass:[self class]]]; + NSUserDefaults *defs = [NSUserDefaults standardUserDefaults]; + [defs registerDefaults:UPDATER_DEFAULTS]; + + // Launch the updater thread. + [updater checkForUpdatesInBackground]; + + // Now we need to wait for the Sparkle thread to finish before we can + // exit, so just poll waiting for it. + [NSTimer scheduledTimerWithTimeInterval:1 + target:self + selector:@selector(exitWhenDone:) + userInfo:updater + repeats:YES]; +} + +- (void) exitWhenDone:(NSTimer *)timer +{ + SUUpdater *updater = [timer userInfo]; + if (![updater updateInProgress]) + [[NSApplication sharedApplication] terminate:self]; +} + +- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app +{ + return YES; +} + +@end diff --git a/OSX/Updater.plist b/OSX/Updater.plist new file mode 100644 index 00000000..9ac2e0e9 --- /dev/null +++ b/OSX/Updater.plist @@ -0,0 +1,48 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleGetInfoString + 5.24 + CFBundleIconFile + SaverRunner + CFBundleIdentifier + $(BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + 5.24 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 5.24 + CFBundleSignature + ???? + CFBundleVersion + 5.24 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + LSUIElement + + NSHumanReadableCopyright + 5.24 + NSMainNibFile + Updater + NSPrincipalClass + NSApplication + SUEnableSystemProfiling + + SUFeedURL + http://www.jwz.org/xscreensaver/updates.xml + SUPublicDSAKeyFile + sparkle_dsa_pub.pem + SUScheduledCheckInterval + 604800 + + diff --git a/OSX/Updater.xib b/OSX/Updater.xib new file mode 100644 index 00000000..03ebff78 --- /dev/null +++ b/OSX/Updater.xib @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index 021fe2e0..790a6ba2 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.23 + 5.24 CFBundleSignature ???? CFBundleVersion - 5.23 + 5.24 LSMinimumSystemVersion 10.4 NSMainNibFile diff --git a/OSX/XScreenSaverConfigSheet.h b/OSX/XScreenSaverConfigSheet.h index 055d3a83..b2fd4899 100644 --- a/OSX/XScreenSaverConfigSheet.h +++ b/OSX/XScreenSaverConfigSheet.h @@ -53,6 +53,7 @@ { NSString *saver_name; NSUserDefaultsController *userDefaultsController; + NSUserDefaultsController *globalDefaultsController; NSDictionary *defaultOptions; const XrmOptionDescRec *opts; id xml_root, xml_parsing; @@ -72,6 +73,7 @@ - (id)initWithXML: (NSData *) xml_data options: (const XrmOptionDescRec *) opts controller: (NSUserDefaultsController *) prefs + globalController: (NSUserDefaultsController *) globalPrefs defaults: (NSDictionary *) defs; @end diff --git a/OSX/XScreenSaverConfigSheet.m b/OSX/XScreenSaverConfigSheet.m index 7220d2c2..46b73dee 100644 --- a/OSX/XScreenSaverConfigSheet.m +++ b/OSX/XScreenSaverConfigSheet.m @@ -24,6 +24,7 @@ */ #import "XScreenSaverConfigSheet.h" +#import "Updater.h" #import "jwxyz.h" #import "InvertedSlider.h" @@ -447,7 +448,7 @@ static void layout_group (NSView *group, BOOL horiz_p); instead, so transform keys to "SAVERNAME.KEY". NOTE: This is duplicated in PrefsReader.m, cause I suck. -*/ + */ - (NSString *) makeKey:(NSString *)key { # ifdef USE_IPHONE @@ -524,6 +525,22 @@ static void layout_group (NSView *group, BOOL horiz_p); } +- (NSUserDefaultsController *)controllerForKey:(NSString *)key +{ + static NSDictionary *a = 0; + if (! a) { + a = UPDATER_DEFAULTS; + [a retain]; + } + if ([a objectForKey:key]) + // These preferences are global to all xscreensavers. + return globalDefaultsController; + else + // All other preferences are per-saver. + return userDefaultsController; +} + + #ifdef USE_IPHONE // Called when a slider is bonked. @@ -539,10 +556,11 @@ static void layout_group (NSView *group, BOOL horiz_p); ? [(InvertedSlider *) sender transformedValue] : [sender value]); - if (v == (int) v) - [userDefaultsController setInteger:v forKey:pref_key]; - else - [userDefaultsController setDouble:v forKey:pref_key]; + [[self controllerForKey:pref_key] + setObject:((v == (int) v) + ? [NSNumber numberWithInt:(int) v] + : [NSNumber numberWithDouble: v]) + forKey:pref_key]; } // Called when a checkbox/switch is bonked. @@ -553,7 +571,7 @@ static void layout_group (NSView *group, BOOL horiz_p); [active_text_field resignFirstResponder]; NSString *pref_key = [pref_keys objectAtIndex: [sender tag]]; NSString *v = ([sender isOn] ? @"true" : @"false"); - [userDefaultsController setObject:v forKey:pref_key]; + [[self controllerForKey:pref_key] setObject:v forKey:pref_key]; } # ifdef USE_PICKER_VIEW @@ -575,7 +593,7 @@ static void layout_group (NSView *group, BOOL horiz_p); //NSString *label = [a objectAtIndex:0]; NSString *pref_key = [a objectAtIndex:1]; NSObject *pref_val = [a objectAtIndex:2]; - [userDefaultsController setObject:pref_val forKey:pref_key]; + [[self controllerForKey:pref_key] setObject:pref_val forKey:pref_key]; } # else // !USE_PICKER_VIEW @@ -589,7 +607,7 @@ static void layout_group (NSView *group, BOOL horiz_p); NSArray *item = [[sender items] objectAtIndex: [sender index]]; NSString *pref_key = [item objectAtIndex:1]; NSObject *pref_val = [item objectAtIndex:2]; - [userDefaultsController setObject:pref_val forKey:pref_key]; + [[self controllerForKey:pref_key] setObject:pref_val forKey:pref_key]; } - (BOOL)textFieldShouldBeginEditing:(UITextField *)tf @@ -602,7 +620,7 @@ static void layout_group (NSView *group, BOOL horiz_p); { NSString *pref_key = [pref_keys objectAtIndex: [tf tag]]; NSString *txt = [tf text]; - [userDefaultsController setObject:txt forKey:pref_key]; + [[self controllerForKey:pref_key] setObject:txt forKey:pref_key]; } - (BOOL)textFieldShouldReturn:(UITextField *)tf @@ -621,15 +639,18 @@ static void layout_group (NSView *group, BOOL horiz_p); - (void) okAction:(NSObject *)arg { - [userDefaultsController commitEditing]; - [userDefaultsController save:self]; + [userDefaultsController commitEditing]; + [globalDefaultsController commitEditing]; + [userDefaultsController save:self]; + [globalDefaultsController save:self]; [NSApp endSheet:self returnCode:NSOKButton]; [self close]; } - (void) cancelAction:(NSObject *)arg { - [userDefaultsController revert:self]; + [userDefaultsController revert:self]; + [globalDefaultsController revert:self]; [NSApp endSheet:self returnCode:NSCancelButton]; [self close]; } @@ -639,12 +660,13 @@ static void layout_group (NSView *group, BOOL horiz_p); - (void) resetAction:(NSObject *)arg { # ifndef USE_IPHONE - [userDefaultsController revertToInitialValues:self]; + [userDefaultsController revertToInitialValues:self]; + [globalDefaultsController revertToInitialValues:self]; # else // USE_IPHONE for (NSString *key in defaultOptions) { NSObject *val = [defaultOptions objectForKey:key]; - [userDefaultsController setObject:val forKey:key]; + [[self controllerForKey:key] setObject:val forKey:key]; } for (UIControl *ctl in pref_ctls) { @@ -662,6 +684,7 @@ static void layout_group (NSView *group, BOOL horiz_p); - (void) bindResource:(NSObject *)control key:(NSString *)pref_key reload:(BOOL)reload_p { + NSUserDefaultsController *prefs = [self controllerForKey:pref_key]; # ifndef USE_IPHONE NSString *bindto = ([control isKindOfClass:[NSPopUpButton class]] ? @"selectedObject" @@ -669,12 +692,12 @@ static void layout_group (NSView *group, BOOL horiz_p); ? @"selectedIndex" : @"value")); [control bind:bindto - toObject:userDefaultsController + toObject:prefs withKeyPath:[@"values." stringByAppendingString: pref_key] options:nil]; # else // USE_IPHONE SEL sel; - NSObject *val = [userDefaultsController objectForKey:pref_key]; + NSObject *val = [prefs objectForKey:pref_key]; NSString *sval = 0; double dval = 0; @@ -739,7 +762,7 @@ static void layout_group (NSView *group, BOOL horiz_p); # endif // USE_IPHONE # if 0 - NSObject *def = [[userDefaultsController defaults] objectForKey:pref_key]; + NSObject *def = [[prefs defaults] objectForKey:pref_key]; NSString *s = [NSString stringWithFormat:@"bind: \"%@\"", pref_key]; s = [s stringByPaddingToLength:18 withString:@" " startingAtIndex:0]; s = [NSString stringWithFormat:@"%@ = \"%@\"", s, def]; @@ -1071,12 +1094,10 @@ hreffify (NSText *nstext) */ - (NSString *) parseXScreenSaverTag:(NSXMLNode *)node { - NSMutableDictionary *dict = - [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"", @"name", - @"", @"_label", - @"", @"gl", - nil]; + NSMutableDictionary *dict = [@{ @"name": @"", + @"_label": @"", + @"gl": @"" } + mutableCopy]; [self parseAttrs:dict node:node]; NSString *name = [dict objectForKey:@"name"]; NSString *label = [dict objectForKey:@"_label"]; @@ -1121,13 +1142,11 @@ hreffify (NSText *nstext) */ - (void) makeCheckbox:(NSXMLNode *)node on:(NSView *)parent { - NSMutableDictionary *dict = - [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"", @"id", - @"", @"_label", - @"", @"arg-set", - @"", @"arg-unset", - nil]; + NSMutableDictionary *dict = [@{ @"id": @"", + @"_label": @"", + @"arg-set": @"", + @"arg-unset": @"" } + mutableCopy]; [self parseAttrs:dict node:node]; NSString *label = [dict objectForKey:@"_label"]; NSString *arg_set = [dict objectForKey:@"arg-set"]; @@ -1187,22 +1206,20 @@ hreffify (NSText *nstext) /* Creates the number selection control described by the given XML node. If "type=slider", it's an NSSlider. If "type=spinbutton", it's a text field with up/down arrows next to it. -*/ + */ - (void) makeNumberSelector:(NSXMLNode *)node on:(NSView *)parent { - NSMutableDictionary *dict = - [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"", @"id", - @"", @"_label", - @"", @"_low-label", - @"", @"_high-label", - @"", @"type", - @"", @"arg", - @"", @"low", - @"", @"high", - @"", @"default", - @"", @"convert", - nil]; + NSMutableDictionary *dict = [@{ @"id": @"", + @"_label": @"", + @"_low-label": @"", + @"_high-label": @"", + @"type": @"", + @"arg": @"", + @"low": @"", + @"high": @"", + @"default": @"", + @"convert": @"" } + mutableCopy]; [self parseAttrs:dict node:node]; NSString *label = [dict objectForKey:@"_label"]; NSString *low_label = [dict objectForKey:@"_low-label"]; @@ -1474,7 +1491,7 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj) /* Creates the popup menu described by the given XML node (and its children). -*/ + */ - (void) makeOptionMenu:(NSXMLNode *)node on:(NSView *)parent { NSArray *children = [node children]; @@ -1487,10 +1504,7 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj) // get the "id" attribute off the node2 = [[NSXMLElement alloc] initWithName:@"select"]; - [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"textMode", @"id", - nil]]; + [node2 setAttributesAsDictionary:@{ @"id": @"textMode" }]; NSXMLNode *node3 = [[NSXMLElement alloc] initWithName:@"option"]; [node3 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"date", @"id", - @"-text-mode date", @"arg-set", - @"Display the date and time", @"_label", - nil]]; + @{ @"id": @"date", + @"arg-set": @"-text-mode date", + @"_label": @"Display the date and time" }]; [node3 setParent: node2]; //[node3 release]; node3 = [[NSXMLElement alloc] initWithName:@"option"]; [node3 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"text", @"id", - @"-text-mode literal", @"arg-set", - @"Display static text", @"_label", - nil]]; + @{ @"id": @"text", + @"arg-set": @"-text-mode literal", + @"_label": @"Display static text" }]; [node3 setParent: node2]; //[node3 release]; node3 = [[NSXMLElement alloc] initWithName:@"option"]; [node3 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"url", @"id", - @"Display the contents of a URL", @"_label", - nil]]; + @{ @"id": @"url", + @"_label": @"Display the contents of a URL" }]; [node3 setParent: node2]; //[node3 release]; @@ -2143,13 +2142,12 @@ find_text_field_of_button (NSButton *button) // node2 = [[NSXMLElement alloc] initWithName:@"string"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"textLiteral", @"id", - @"-text-literal %", @"arg", + @{ @"id": @"textLiteral", + @"arg": @"-text-literal %", # ifdef USE_IPHONE - @"Text to display", @"_label", + @"_label": @"Text to display" # endif - nil]]; + }]; [self makeTextField:node2 on:rgroup # ifndef USE_IPHONE withLabel:NO @@ -2166,17 +2164,15 @@ find_text_field_of_button (NSButton *button) toObject:[matrix cellAtRow:1 column:0] withKeyPath:@"value" options:nil]; -*/ + */ # ifndef USE_IPHONE // node2 = [[NSXMLElement alloc] initWithName:@"string"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"textFile", @"id", - @"-text-file %", @"arg", - nil]]; + @{ @"id": @"textFile", + @"arg": @"-text-file %" }]; [self makeFileSelector:node2 on:rgroup dirsOnly:NO withLabel:NO editable:NO]; # endif // !USE_IPHONE @@ -2186,13 +2182,12 @@ find_text_field_of_button (NSButton *button) // node2 = [[NSXMLElement alloc] initWithName:@"string"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"textURL", @"id", - @"-text-url %", @"arg", + @{ @"id": @"textURL", + @"arg": @"-text-url %", # ifdef USE_IPHONE - @"URL to display", @"_label", + @"_label": @"URL to display", # endif - nil]]; + }]; [self makeTextField:node2 on:rgroup # ifndef USE_IPHONE withLabel:NO @@ -2208,10 +2203,9 @@ find_text_field_of_button (NSButton *button) // node2 = [[NSXMLElement alloc] initWithName:@"string"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"textProgram", @"id", - @"-text-program %", @"arg", - nil]]; + @{ @"id": @"textProgram", + @"arg": @"-text-program %", + }]; [self makeTextField:node2 on:rgroup withLabel:NO horizontal:NO]; } @@ -2299,29 +2293,26 @@ find_text_field_of_button (NSButton *button) node2 = [[NSXMLElement alloc] initWithName:@"boolean"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"grabDesktopImages", @"id", - @ SCREENS, @"_label", - @"-no-grab-desktop", @"arg-unset", - nil]]; + @{ @"id": @"grabDesktopImages", + @"_label": @ SCREENS, + @"arg-unset": @"-no-grab-desktop", + }]; [self makeCheckbox:node2 on:parent]; node2 = [[NSXMLElement alloc] initWithName:@"boolean"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"chooseRandomImages", @"id", - @ PHOTOS, @"_label", - @"-choose-random-images", @"arg-set", - nil]]; + @{ @"id": @"chooseRandomImages", + @"_label": @ PHOTOS, + @"arg-set": @"-choose-random-images", + }]; [self makeCheckbox:node2 on:parent]; node2 = [[NSXMLElement alloc] initWithName:@"string"]; [node2 setAttributesAsDictionary: - [NSDictionary dictionaryWithObjectsAndKeys: - @"imageDirectory", @"id", - @"Images from:", @"_label", - @"-image-directory %", @"arg", - nil]]; + @{ @"id": @"imageDirectory", + @"_label": @"Images from:", + @"arg": @"-image-directory %", + }]; [self makeFileSelector:node2 on:parent dirsOnly:YES withLabel:YES editable:YES]; @@ -2345,6 +2336,106 @@ find_text_field_of_button (NSButton *button) } +- (void) makeUpdaterControlBox:(NSXMLNode *)node on:(NSView *)parent +{ +# ifndef USE_IPHONE + /* + [x] Check for Updates [ Monthly ] + +
+ + +
+ */ + + //
+ + NSRect rect; + rect.size.width = rect.size.height = 1; + rect.origin.x = rect.origin.y = 0; + NSView *group = [[NSView alloc] initWithFrame:rect]; + + NSXMLElement *node2; + + // + + node2 = [[NSXMLElement alloc] initWithName:@"boolean"]; + [node2 setAttributesAsDictionary: + @{ @"id": @SUSUEnableAutomaticChecksKey, + @"_label": @"Automatically check for updates", + @"arg-unset": @"-no-" SUSUEnableAutomaticChecksKey, + }]; + [self makeCheckbox:node2 on:group]; + + // +
- - - - - + <_description> This screen saver was removed from the XScreenSaver distribution as of diff --git a/hacks/config/antinspect.xml b/hacks/config/antinspect.xml index 3558d653..dcc8f852 100644 --- a/hacks/config/antinspect.xml +++ b/hacks/config/antinspect.xml @@ -13,6 +13,8 @@ + + <_description> Draws a trio of ants moving their spheres around a circle. diff --git a/hacks/config/antmaze.xml b/hacks/config/antmaze.xml index feadfe32..465ac4f7 100644 --- a/hacks/config/antmaze.xml +++ b/hacks/config/antmaze.xml @@ -11,6 +11,8 @@ + + <_description> Draws a few views of a few ants walking around in a simple maze. diff --git a/hacks/config/antspotlight.xml b/hacks/config/antspotlight.xml index 368d24a1..5037aecf 100644 --- a/hacks/config/antspotlight.xml +++ b/hacks/config/antspotlight.xml @@ -13,6 +13,8 @@ + + <_description> Draws an ant (with a headlight) who walks around on top of a loaded image. diff --git a/hacks/config/apollonian.xml b/hacks/config/apollonian.xml index a563fcd5..47187521 100644 --- a/hacks/config/apollonian.xml +++ b/hacks/config/apollonian.xml @@ -26,6 +26,8 @@ + + <_description> Draws an Apollonian gasket: a fractal packing of circles with smaller circles, demonstrating Descartes's theorem. diff --git a/hacks/config/apple2.xml b/hacks/config/apple2.xml index 46e06553..e0966aec 100644 --- a/hacks/config/apple2.xml +++ b/hacks/config/apple2.xml @@ -4,15 +4,15 @@ - -
+ + @@ -22,10 +22,9 @@ + -
-
- - diff --git a/hacks/config/atlantis.xml b/hacks/config/atlantis.xml index fffa06af..4c25de31 100644 --- a/hacks/config/atlantis.xml +++ b/hacks/config/atlantis.xml @@ -38,6 +38,8 @@
+ + <_description> A 3D animation of a number of sharks, dolphins, and whales. diff --git a/hacks/config/attraction.xml b/hacks/config/attraction.xml index c4646eef..fc64c82e 100644 --- a/hacks/config/attraction.xml +++ b/hacks/config/attraction.xml @@ -71,6 +71,8 @@ + + <_description> Points attract each other up to a certain distance, and then begin to diff --git a/hacks/config/atunnel.xml b/hacks/config/atunnel.xml index 7e1e2826..dedf88c4 100644 --- a/hacks/config/atunnel.xml +++ b/hacks/config/atunnel.xml @@ -14,6 +14,8 @@ + + <_description> Zooming through a textured tunnel. diff --git a/hacks/config/barcode.xml b/hacks/config/barcode.xml index 13564ce6..ccdebd56 100644 --- a/hacks/config/barcode.xml +++ b/hacks/config/barcode.xml @@ -18,6 +18,8 @@ + + <_description> Draws a random sequence of colorful barcodes scrolling across your screen. CONSUME! diff --git a/hacks/config/blaster.xml b/hacks/config/blaster.xml index c03c135c..97692bf3 100644 --- a/hacks/config/blaster.xml +++ b/hacks/config/blaster.xml @@ -50,6 +50,8 @@ + + <_description> Draws a simulation of flying space-combat robots (cleverly disguised as colored circles) doing battle in front of a moving star field. diff --git a/hacks/config/blinkbox.xml b/hacks/config/blinkbox.xml index e04da27d..6a91ea0e 100644 --- a/hacks/config/blinkbox.xml +++ b/hacks/config/blinkbox.xml @@ -22,6 +22,8 @@ + + <_description> A motion-blurred ball bounces inside a box whose tiles only become visible upon impact. diff --git a/hacks/config/blitspin.xml b/hacks/config/blitspin.xml index 00cfaccc..022515ff 100644 --- a/hacks/config/blitspin.xml +++ b/hacks/config/blitspin.xml @@ -4,25 +4,31 @@ - - - - - - - - - - - +
+ + + + + + + + + + + + + +
+ + <_description> diff --git a/hacks/config/blocktube.xml b/hacks/config/blocktube.xml index 9a9743c8..3e583906 100644 --- a/hacks/config/blocktube.xml +++ b/hacks/config/blocktube.xml @@ -21,6 +21,8 @@ + + <_description> Draws a swirling, falling tunnel of reflective slabs. They fade from hue to hue. diff --git a/hacks/config/boing.xml b/hacks/config/boing.xml index 1d877aa7..4ab8fab9 100644 --- a/hacks/config/boing.xml +++ b/hacks/config/boing.xml @@ -30,6 +30,8 @@ + + <_description> This bouncing ball is a clone of the first graphics demo for the Amiga diff --git a/hacks/config/bouboule.xml b/hacks/config/bouboule.xml index 237646a3..8e283dd1 100644 --- a/hacks/config/bouboule.xml +++ b/hacks/config/bouboule.xml @@ -21,6 +21,8 @@ + + <_description> This draws what looks like a spinning, deforming balloon with varying-sized spots painted on its invisible surface. diff --git a/hacks/config/bouncingcow.xml b/hacks/config/bouncingcow.xml index 1bb9f97b..be8baa6e 100644 --- a/hacks/config/bouncingcow.xml +++ b/hacks/config/bouncingcow.xml @@ -20,6 +20,8 @@ + + <_description> A Cow. A Trampoline. Together, they fight crime. diff --git a/hacks/config/boxed.xml b/hacks/config/boxed.xml index e00c974b..594afc4b 100644 --- a/hacks/config/boxed.xml +++ b/hacks/config/boxed.xml @@ -46,6 +46,8 @@ + + <_description> Draws a box full of 3D bouncing balls that explode. diff --git a/hacks/config/boxfit.xml b/hacks/config/boxfit.xml index a7d35bf9..55cae0d0 100644 --- a/hacks/config/boxfit.xml +++ b/hacks/config/boxfit.xml @@ -4,45 +4,53 @@ - - -
- - - -
-
- - - + + + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+
+ + + + + + + +
-
- - - -
- - - - - - + <_description> Packs the screen with growing squares or circles, colored according to diff --git a/hacks/config/braid.xml b/hacks/config/braid.xml index f9cfa54d..6c154c42 100644 --- a/hacks/config/braid.xml +++ b/hacks/config/braid.xml @@ -27,6 +27,8 @@ + + <_description> Draws random color-cycling inter-braided concentric circles. diff --git a/hacks/config/bsod.xml b/hacks/config/bsod.xml index ac2e600c..76fb69ff 100644 --- a/hacks/config/bsod.xml +++ b/hacks/config/bsod.xml @@ -17,32 +17,38 @@ + + + - - - + + + + - + + + @@ -50,7 +56,12 @@ - +
+ + + + +
- - - - +
+ + + + + + + + + + + + + + + +
+ <_description> Simulates two dimensional incompressible inviscid fluid flow. diff --git a/hacks/config/extrusion.xml b/hacks/config/extrusion.xml index 48d42368..52880c1f 100644 --- a/hacks/config/extrusion.xml +++ b/hacks/config/extrusion.xml @@ -32,6 +32,8 @@ + + <_description> Draws various rotating extruded shapes that twist around, lengthen, and turn inside out. diff --git a/hacks/config/fadeplot.xml b/hacks/config/fadeplot.xml index 368224fd..1a0ded93 100644 --- a/hacks/config/fadeplot.xml +++ b/hacks/config/fadeplot.xml @@ -23,6 +23,8 @@ + + <_description> Draws what looks like a waving ribbon following a sinusoidal path. diff --git a/hacks/config/fiberlamp.xml b/hacks/config/fiberlamp.xml index 9357730f..6c4293f0 100644 --- a/hacks/config/fiberlamp.xml +++ b/hacks/config/fiberlamp.xml @@ -19,6 +19,8 @@ + + <_description> Draws a groovy rotating fiber optic lamp. diff --git a/hacks/config/fireworkx.xml b/hacks/config/fireworkx.xml index d8bfd441..55af1fbe 100644 --- a/hacks/config/fireworkx.xml +++ b/hacks/config/fireworkx.xml @@ -17,6 +17,8 @@ + + <_description> Exploding fireworks. See also the "Eruption", "XFlame" and "Pyro" screen savers. diff --git a/hacks/config/flag.xml b/hacks/config/flag.xml index 93155fb2..c2120caf 100644 --- a/hacks/config/flag.xml +++ b/hacks/config/flag.xml @@ -23,6 +23,8 @@ + + <_description> This screen saver was removed from the XScreenSaver distribution as of version 5.08. diff --git a/hacks/config/flame.xml b/hacks/config/flame.xml index 8fce71c2..5fc5670e 100644 --- a/hacks/config/flame.xml +++ b/hacks/config/flame.xml @@ -27,6 +27,8 @@ + + <_description> Iterative fractals. diff --git a/hacks/config/flipflop.xml b/hacks/config/flipflop.xml index 3a7828fe..d96481f6 100644 --- a/hacks/config/flipflop.xml +++ b/hacks/config/flipflop.xml @@ -40,6 +40,8 @@ + + <_description> Draws a grid of 3D colored tiles that change positions with each other. diff --git a/hacks/config/flipscreen3d.xml b/hacks/config/flipscreen3d.xml index 662f8ff2..8b3cf62f 100644 --- a/hacks/config/flipscreen3d.xml +++ b/hacks/config/flipscreen3d.xml @@ -15,6 +15,8 @@ + + <_description> Spins and deforms an image. diff --git a/hacks/config/fliptext.xml b/hacks/config/fliptext.xml index 7079e6aa..c07872c1 100644 --- a/hacks/config/fliptext.xml +++ b/hacks/config/fliptext.xml @@ -43,6 +43,8 @@ + + <_description> Draws successive pages of text. The lines flip in and out in a soothing 3D pattern. diff --git a/hacks/config/flow.xml b/hacks/config/flow.xml index 76d1bf4c..126068eb 100644 --- a/hacks/config/flow.xml +++ b/hacks/config/flow.xml @@ -43,6 +43,8 @@ + + <_description> Strange attractors formed of flows in a 3D differential equation phase space. Features the popular attractors described by Lorentz, diff --git a/hacks/config/fluidballs.xml b/hacks/config/fluidballs.xml index 10b342f2..e0e5e25c 100644 --- a/hacks/config/fluidballs.xml +++ b/hacks/config/fluidballs.xml @@ -34,9 +34,13 @@ - - - +
+ + + +
+ + <_description> Models the physics of bouncing balls, or of particles in a gas or diff --git a/hacks/config/flurry.xml b/hacks/config/flurry.xml index 0c689c16..2719d66c 100644 --- a/hacks/config/flurry.xml +++ b/hacks/config/flurry.xml @@ -17,6 +17,8 @@