From 1b9549f175476648d3e18f94b7e10580d25570c7 Mon Sep 17 00:00:00 2001 From: GRMrGecko Date: Mon, 28 Dec 2015 11:52:44 -0600 Subject: [PATCH] Changed the way multi upload works to where plugins can take control and added themes for multi uploads. Fixed issue in the http plugin where if the plugin is unable to talk to the page to determine it's encoding, it will assume that it's a plist format. Now the http plugin checks if it's JSON on every request. --- Classes/CocoaShare/MGMAddons.h | 2 +- Classes/CocoaShare/MGMAddons.m | 2 +- Classes/CocoaShare/MGMAutoUpdateField.h | 2 +- Classes/CocoaShare/MGMAutoUpdateField.m | 2 +- Classes/CocoaShare/MGMController.h | 13 +- Classes/CocoaShare/MGMController.m | 143 +- Classes/CocoaShare/MGMLocalized.h | 2 +- Classes/CocoaShare/MGMLocalized.m | 2 +- Classes/CocoaShare/MGMMenuItem.h | 2 +- Classes/CocoaShare/MGMMenuItem.m | 2 +- Classes/CocoaShare/MGMPathSubscriber.h | 13 +- Classes/CocoaShare/MGMPlugInProtocol.h | 16 + .../CocoaShare/Preferences/MGMAccountPane.h | 2 +- .../CocoaShare/Preferences/MGMAccountPane.m | 2 +- .../Preferences/MGMAutoUploadPane.h | 2 +- .../Preferences/MGMAutoUploadPane.m | 2 +- .../CocoaShare/Preferences/MGMEventsPane.h | 2 +- .../CocoaShare/Preferences/MGMEventsPane.m | 2 +- .../CocoaShare/Preferences/MGMGeneralPane.h | 4 +- .../CocoaShare/Preferences/MGMGeneralPane.m | 13 +- Classes/HTTP/MGMHTTPPlugIn.h | 4 +- Classes/HTTP/MGMHTTPPlugIn.m | 5 +- CocoaShare.xcodeproj/project.pbxproj | 4 + Resources/CocoaShare/Info.plist | 2 +- .../Black Background/file.html | 1 + .../Black Background/footer.html | 1 + .../Black Background/header.html | 6 + .../Black Background/image.html | 1 + .../White Background/file.html | 1 + .../White Background/footer.html | 1 + .../White Background/header.html | 6 + .../White Background/image.html | 1 + .../Preferences/English.lproj/GeneralPane.xib | 1164 +++++++++++------ index.php | 2 +- 34 files changed, 947 insertions(+), 482 deletions(-) create mode 100644 Resources/CocoaShare/Multi Upload Themes/Black Background/file.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/Black Background/footer.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/Black Background/header.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/Black Background/image.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/White Background/file.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/White Background/footer.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/White Background/header.html create mode 100644 Resources/CocoaShare/Multi Upload Themes/White Background/image.html diff --git a/Classes/CocoaShare/MGMAddons.h b/Classes/CocoaShare/MGMAddons.h index 0e65e76..0dccc98 100644 --- a/Classes/CocoaShare/MGMAddons.h +++ b/Classes/CocoaShare/MGMAddons.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/22/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/MGMAddons.m b/Classes/CocoaShare/MGMAddons.m index f335125..68e9502 100644 --- a/Classes/CocoaShare/MGMAddons.m +++ b/Classes/CocoaShare/MGMAddons.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/22/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMAddons.h" diff --git a/Classes/CocoaShare/MGMAutoUpdateField.h b/Classes/CocoaShare/MGMAutoUpdateField.h index 5410173..97c3975 100644 --- a/Classes/CocoaShare/MGMAutoUpdateField.h +++ b/Classes/CocoaShare/MGMAutoUpdateField.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/17/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/MGMAutoUpdateField.m b/Classes/CocoaShare/MGMAutoUpdateField.m index 4a39995..198ed6e 100644 --- a/Classes/CocoaShare/MGMAutoUpdateField.m +++ b/Classes/CocoaShare/MGMAutoUpdateField.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/17/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMAutoUpdateField.h" diff --git a/Classes/CocoaShare/MGMController.h b/Classes/CocoaShare/MGMController.h index 00a0fe4..18af576 100644 --- a/Classes/CocoaShare/MGMController.h +++ b/Classes/CocoaShare/MGMController.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import @@ -67,6 +67,10 @@ extern NSString * const MGMFFilter; id currentPlugIn; int currentPlugInIndex; + + NSMutableArray *MUThemes; + int currentMUThemeIndex; + NSLock *uploadLock; NSMutableArray *multiUploadLinks; NSMutableArray *uploads; @@ -85,6 +89,12 @@ extern NSString * const MGMFFilter; - (id)currentPlugIn; - (int)currentPlugInIndex; +- (void)loadMUThemes; +- (NSArray *)MUThemes; +- (void)setCurrentMUTheme:(NSString *)theMUTheme; +- (int)currentMUThemeIndex; +- (NSString *)currentMUTheme; + - (void)setFrontProcess:(ProcessSerialNumber *)theProcess; - (void)becomeFront:(NSWindow *)theWindow; - (void)resignFront; @@ -126,4 +136,5 @@ extern NSString * const MGMFFilter; - (void)processNextUpload; - (void)upload:(NSString *)thePath receivedError:(NSError *)theError; - (void)uploadFinished:(NSString *)thePath url:(NSURL *)theURL; +- (void)multiUploadPageCreated:(NSURL *)theURL; @end \ No newline at end of file diff --git a/Classes/CocoaShare/MGMController.m b/Classes/CocoaShare/MGMController.m index 829f8dd..85acdb4 100644 --- a/Classes/CocoaShare/MGMController.m +++ b/Classes/CocoaShare/MGMController.m @@ -3,12 +3,13 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMController.h" #import "MGMPathSubscriber.h" #import "MGMLoginItems.h" +#import "MGMAddons.h" #import "MGMMenuItem.h" #import "RegexKitLite.h" #import @@ -51,6 +52,9 @@ NSString * const MGMFFilter = @"filter"; NSString * const MGMPluginFolder = @"PlugIns"; NSString * const MGMCurrentPlugIn = @"MGMCurrentPlugIn"; +NSString * const MGMMUThemesFolder = @"Multi Upload Themes"; +NSString * const MGMCurrentMUTheme = @"MGMCurrentMUTheme"; + NSString * const MGMKCType = @"application password"; NSString * const MGMKCName = @"CocoaShare"; @@ -166,6 +170,7 @@ static MGMController *MGMSharedController; uploadLock = [NSLock new]; uploads = [NSMutableArray new]; + [self loadMUThemes]; [self loadPlugIns]; } - (void)dealloc { @@ -276,6 +281,50 @@ static MGMController *MGMSharedController; return currentPlugInIndex; } + +- (void)loadMUThemes { + NSFileManager *manager = [NSFileManager defaultManager]; + [MUThemes release]; + MUThemes = [NSMutableArray new]; + + NSArray *checkPaths = [NSArray arrayWithObjects:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:MGMMUThemesFolder], [[MGMUser applicationSupportPath] stringByAppendingPathComponent:MGMMUThemesFolder], nil]; + for (int i=0; i<[checkPaths count]; i++) { + NSArray *MUThemesFolder = [manager contentsOfDirectoryAtPath:[checkPaths objectAtIndex:i]]; + for (int p=0; p<[MUThemesFolder count]; p++) { + NSString *path = [[[checkPaths objectAtIndex:i] stringByAppendingPathComponent:[MUThemesFolder objectAtIndex:p]] stringByResolvingSymlinksInPath]; + [MUThemes addObject:path]; + } + } + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *currentMUThemePath = [defaults objectForKey:MGMCurrentMUTheme]; + BOOL foundCurrentMUTheme = NO; + for (int i=0; i<[MUThemes count]; i++) { + if ([[MUThemes objectAtIndex:i] isEqual:currentMUThemePath]) { + currentMUThemeIndex = i; + foundCurrentMUTheme = YES; + break; + } + } + if (!foundCurrentMUTheme && [MUThemes count]>0) + [self setCurrentMUTheme:[MUThemes objectAtIndex:0]]; +} +- (NSArray *)MUThemes { + return MUThemes; +} +- (void)setCurrentMUTheme:(NSString *)theMUTheme { + int MUThemeIndex = [MUThemes indexOfObject:theMUTheme]; + if (MUThemeIndex>=0) { + currentMUThemeIndex = MUThemeIndex; + [[NSUserDefaults standardUserDefaults] setObject:theMUTheme forKey:MGMCurrentMUTheme]; + } +} +- (int)currentMUThemeIndex { + return currentMUThemeIndex; +} +- (NSString *)currentMUTheme { + return [MUThemes objectAtIndex:currentMUThemeIndex]; +} + - (void)setFrontProcess:(ProcessSerialNumber *)theProcess { frontProcess = *theProcess; /*CFStringRef name; @@ -710,11 +759,13 @@ static MGMController *MGMSharedController; [self addPathToUploads:thePath isAutomatic:isAutomatic multiUpload:0]; } -//No multi uploads = 0 -//First upload = 1 -//Inbetween upload = 2 -//Last upload = 3 -//HTML = 4 +/* + 0 - Not a upload queue with multiple uploads. + 1 - First upload in the queue. + 2 - An upload in the queue. + 3 - Last upload in the queue. + 4 - The multi upload page. + */ - (void)addPathToUploads:(NSString *)thePath isAutomatic:(BOOL)isAutomatic multiUpload:(int)multiUploadState { [uploadLock lock]; if ([self uploadForPath:thePath]==nil) { @@ -742,7 +793,7 @@ static MGMController *MGMSharedController; [alert runModal]; [uploads removeAllObjects]; return; - } else if (![currentPlugIn respondsToSelector:@selector(sendFileAtPath:withName:)]) { + } else if (![currentPlugIn respondsToSelector:@selector(sendFileAtPath:withName:)] && ![currentPlugIn respondsToSelector:@selector(sendFileAtPath:withName:multiUpload:)]) { NSAlert *alert = [[NSAlert new] autorelease]; [alert setMessageText:[@"Upload Error" localized]]; [alert setInformativeText:[@"The current PlugIn doesn't support uploading." localized]]; @@ -752,7 +803,8 @@ static MGMController *MGMSharedController; } NSFileManager *manager = [NSFileManager defaultManager]; NSDictionary *upload = [uploads objectAtIndex:0]; - if ([[upload objectForKey:MGMUMultiUpload] intValue]==1) { + int multiUpload = [[upload objectForKey:MGMUMultiUpload] intValue]; + if (multiUpload==1) { [multiUploadLinks release]; multiUploadLinks = [NSMutableArray new]; } @@ -769,7 +821,11 @@ static MGMController *MGMSharedController; NSString *name = [[upload objectForKey:MGMUPath] lastPathComponent]; if ((uploadNameType==0 && [[upload objectForKey:MGMUAutomatic] boolValue]) || uploadNameType==1) name = [randomizedName stringByAppendingPathExtension:[name pathExtension]]; - [currentPlugIn sendFileAtPath:[upload objectForKey:MGMUPath] withName:name]; + if ([currentPlugIn respondsToSelector:@selector(sendFileAtPath:withName:multiUpload:)]) { + [currentPlugIn sendFileAtPath:[upload objectForKey:MGMUPath] withName:name multiUpload:multiUpload]; + } else { + [currentPlugIn sendFileAtPath:[upload objectForKey:MGMUPath] withName:name]; + } } else { NSString *osxMode = [[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"]; if ([osxMode isEqualTo:@"Dark"]) { @@ -799,38 +855,54 @@ static MGMController *MGMSharedController; - (void)uploadFinished:(NSString *)thePath url:(NSURL *)theURL { NSDictionary *upload = [self uploadForPath:thePath]; if (upload!=nil) { + int multiUpload = [[upload objectForKey:MGMUMultiUpload] intValue]; [self processEvent:([[upload objectForKey:MGMUAutomatic] boolValue] ? MGMEUploadedAutomatic : MGMEUploaded) path:[upload objectForKey:MGMUPath] url:theURL]; - NSPasteboard *pboard = [NSPasteboard generalPasteboard]; - [pboard declareTypes:[NSArray arrayWithObjects:MGMNSStringPboardType, MGMNSPasteboardTypeString, nil] owner:nil]; - [pboard setString:[theURL absoluteString] forType:MGMNSStringPboardType]; - [pboard setString:[theURL absoluteString] forType:MGMNSPasteboardTypeString]; + //No need to bother the clip board when there will end up being a multi upload url. + if (multiUpload==0 || multiUpload==4) { + NSPasteboard *pboard = [NSPasteboard generalPasteboard]; + [pboard declareTypes:[NSArray arrayWithObjects:MGMNSStringPboardType, MGMNSPasteboardTypeString, nil] owner:nil]; + [pboard setString:[theURL absoluteString] forType:MGMNSStringPboardType]; + [pboard setString:[theURL absoluteString] forType:MGMNSPasteboardTypeString]; + } [self addURLToHistory:theURL]; - int multiUpload = [[upload objectForKey:MGMUMultiUpload] intValue]; if (multiUpload>=1 && multiUpload!=4) { [multiUploadLinks addObject:theURL]; } if (multiUpload==3) { - NSString *randomizedName = [[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] MD5]; - NSString *htmlPath = [NSString stringWithFormat:@"/tmp/%@.htm", randomizedName]; - [[NSFileManager defaultManager] createFileAtPath:htmlPath contents:nil attributes:nil]; - NSFileHandle *multiUploadHtml = [NSFileHandle fileHandleForWritingAtPath:htmlPath]; - [multiUploadHtml writeData:[@"\n" - "\n" - "Multiple Upload Links\n" dataUsingEncoding:NSUTF8StringEncoding]]; - for (int i=0; i<[multiUploadLinks count]; i++) { - NSURL *link = [multiUploadLinks objectAtIndex:i]; - NSString *linkString = [link absoluteString]; - NSArray *imageExtensions = [NSArray arrayWithObjects:@"jpg", @"jpeg", @"png", @"bmp", @"gif", nil]; - if ([imageExtensions containsObject:[[link pathExtension] lowercaseString]]) { - [multiUploadHtml writeData:[[NSString stringWithFormat:@"
\n", linkString, linkString] dataUsingEncoding:NSUTF8StringEncoding]]; - } else { - [multiUploadHtml writeData:[[NSString stringWithFormat:@"%@
\n", linkString, linkString] dataUsingEncoding:NSUTF8StringEncoding]]; + if ([currentPlugIn respondsToSelector:@selector(createMultiUploadPage)]) { + [currentPlugIn createMultiUploadPage]; + } else { + NSString *randomizedName = [[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] MD5]; + NSString *htmlPath = [NSString stringWithFormat:@"/tmp/CocoaShare_%@.htm", randomizedName]; + + NSString *imageHTML = [NSString stringWithContentsOfFile:[[self currentMUTheme] stringByAppendingPathComponent:@"image.html"] encoding:NSUTF8StringEncoding error:nil]; + if (imageHTML==nil) { + [uploadLock lock]; + [uploads removeObject:upload]; + [self processNextUpload]; + [uploadLock unlock]; + return; } + NSString *fileHTML = [NSString stringWithContentsOfFile:[[self currentMUTheme] stringByAppendingPathComponent:@"file.html"] encoding:NSUTF8StringEncoding error:nil]; + + [[NSFileManager defaultManager] createFileAtPath:htmlPath contents:nil attributes:nil]; + NSFileHandle *multiUploadHtml = [NSFileHandle fileHandleForWritingAtPath:htmlPath]; + [multiUploadHtml writeData:[NSData dataWithContentsOfFile:[[self currentMUTheme] stringByAppendingPathComponent:@"header.html"]]]; + NSArray *imageExtensions = [NSArray arrayWithObjects:@"jpg", @"jpeg", @"png", @"bmp", @"gif", nil]; + for (int i=0; i<[multiUploadLinks count]; i++) { + NSURL *link = [multiUploadLinks objectAtIndex:i]; + NSString *linkString = [link absoluteString]; + if ([imageExtensions containsObject:[[link pathExtension] lowercaseString]]) { + [multiUploadHtml writeData:[[imageHTML replace:@"{url}" with:linkString] dataUsingEncoding:NSUTF8StringEncoding]]; + } else { + [multiUploadHtml writeData:[[fileHTML replace:@"{url}" with:linkString] dataUsingEncoding:NSUTF8StringEncoding]]; + } + } + [multiUploadHtml writeData:[NSData dataWithContentsOfFile:[[self currentMUTheme] stringByAppendingPathComponent:@"footer.html"]]]; + [multiUploadHtml closeFile]; + [self addPathToUploads:htmlPath isAutomatic:YES multiUpload:4]; } - [multiUploadHtml writeData:[@"" dataUsingEncoding:NSUTF8StringEncoding]]; - [multiUploadHtml closeFile]; - [self addPathToUploads:htmlPath isAutomatic:YES multiUpload:4]; } if (multiUpload==4) { [[NSFileManager defaultManager] removeItemAtPath:[upload objectForKey:MGMUPath]]; @@ -842,4 +914,11 @@ static MGMController *MGMSharedController; [uploadLock unlock]; } } +- (void)multiUploadPageCreated:(NSURL *)theURL { + NSPasteboard *pboard = [NSPasteboard generalPasteboard]; + [pboard declareTypes:[NSArray arrayWithObjects:MGMNSStringPboardType, MGMNSPasteboardTypeString, nil] owner:nil]; + [pboard setString:[theURL absoluteString] forType:MGMNSStringPboardType]; + [pboard setString:[theURL absoluteString] forType:MGMNSPasteboardTypeString]; + [self addURLToHistory:theURL]; +} @end \ No newline at end of file diff --git a/Classes/CocoaShare/MGMLocalized.h b/Classes/CocoaShare/MGMLocalized.h index 0d79de1..057e228 100644 --- a/Classes/CocoaShare/MGMLocalized.h +++ b/Classes/CocoaShare/MGMLocalized.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 2/2/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/MGMLocalized.m b/Classes/CocoaShare/MGMLocalized.m index 3a1d6a2..815a27f 100644 --- a/Classes/CocoaShare/MGMLocalized.m +++ b/Classes/CocoaShare/MGMLocalized.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 2/2/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMLocalized.h" diff --git a/Classes/CocoaShare/MGMMenuItem.h b/Classes/CocoaShare/MGMMenuItem.h index c309c2e..8eb6bb2 100644 --- a/Classes/CocoaShare/MGMMenuItem.h +++ b/Classes/CocoaShare/MGMMenuItem.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/16/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/MGMMenuItem.m b/Classes/CocoaShare/MGMMenuItem.m index 9693c00..eeb2632 100644 --- a/Classes/CocoaShare/MGMMenuItem.m +++ b/Classes/CocoaShare/MGMMenuItem.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/16/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMMenuItem.h" diff --git a/Classes/CocoaShare/MGMPathSubscriber.h b/Classes/CocoaShare/MGMPathSubscriber.h index 2b04fcd..a2d0e17 100644 --- a/Classes/CocoaShare/MGMPathSubscriber.h +++ b/Classes/CocoaShare/MGMPathSubscriber.h @@ -3,7 +3,18 @@ // Conmote // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2013 Mr. Gecko's Media (James Coleman). http://mrgeckosmedia.com/ +// +// Permission to use, copy, modify, and/or distribute this software for any purpose +// with or without fee is hereby granted, provided that the above copyright notice +// and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, +// OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS +// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // #import diff --git a/Classes/CocoaShare/MGMPlugInProtocol.h b/Classes/CocoaShare/MGMPlugInProtocol.h index 8cfa7f6..826cc65 100644 --- a/Classes/CocoaShare/MGMPlugInProtocol.h +++ b/Classes/CocoaShare/MGMPlugInProtocol.h @@ -16,4 +16,20 @@ - (NSArray *)allowedExtensions; - (void)setCurrentPlugIn:(BOOL)isCurrent; - (void)sendFileAtPath:(NSString *)thePath withName:(NSString *)theName; +- (void)sendFileAtPath:(NSString *)thePath withName:(NSString *)theName multiUpload:(int)multiUploadState; +/* + This is to receive the state for multiple uploads. You can use ether this method or the one without the multi upload state. + 0 - Not a upload queue with multiple uploads. + 1 - First upload in the queue. + 2 - An upload in the queue. + 3 - Last upload in the queue. + 4 - The multi upload page. + */ +- (void)createMultiUploadPage; +/* + If the plugin is responsible for creating the multi upload page, use this method to be called instead of having CocoaShare itself create a page. + If you have this method, you must ether: + 1. Tell CocoaShare to upload the page to go through the usual file sending with [self addPathToUploads:filePath isAutomatic:YES multiUpload:4]; + 2. Call multiUploadPageCreated: with the URL of the multi upload page. + */ @end \ No newline at end of file diff --git a/Classes/CocoaShare/Preferences/MGMAccountPane.h b/Classes/CocoaShare/Preferences/MGMAccountPane.h index 64b4ce1..0e7b1b3 100644 --- a/Classes/CocoaShare/Preferences/MGMAccountPane.h +++ b/Classes/CocoaShare/Preferences/MGMAccountPane.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/Preferences/MGMAccountPane.m b/Classes/CocoaShare/Preferences/MGMAccountPane.m index ad5563d..31c3b51 100644 --- a/Classes/CocoaShare/Preferences/MGMAccountPane.m +++ b/Classes/CocoaShare/Preferences/MGMAccountPane.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMAccountPane.h" diff --git a/Classes/CocoaShare/Preferences/MGMAutoUploadPane.h b/Classes/CocoaShare/Preferences/MGMAutoUploadPane.h index 2299a25..bb4ed8d 100644 --- a/Classes/CocoaShare/Preferences/MGMAutoUploadPane.h +++ b/Classes/CocoaShare/Preferences/MGMAutoUploadPane.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/Preferences/MGMAutoUploadPane.m b/Classes/CocoaShare/Preferences/MGMAutoUploadPane.m index a4a5864..f7467a3 100644 --- a/Classes/CocoaShare/Preferences/MGMAutoUploadPane.m +++ b/Classes/CocoaShare/Preferences/MGMAutoUploadPane.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMAutoUploadPane.h" diff --git a/Classes/CocoaShare/Preferences/MGMEventsPane.h b/Classes/CocoaShare/Preferences/MGMEventsPane.h index 8f8c64c..6c08097 100644 --- a/Classes/CocoaShare/Preferences/MGMEventsPane.h +++ b/Classes/CocoaShare/Preferences/MGMEventsPane.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import diff --git a/Classes/CocoaShare/Preferences/MGMEventsPane.m b/Classes/CocoaShare/Preferences/MGMEventsPane.m index a033729..4528b7f 100644 --- a/Classes/CocoaShare/Preferences/MGMEventsPane.m +++ b/Classes/CocoaShare/Preferences/MGMEventsPane.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMEventsPane.h" diff --git a/Classes/CocoaShare/Preferences/MGMGeneralPane.h b/Classes/CocoaShare/Preferences/MGMGeneralPane.h index 888b280..73a8008 100644 --- a/Classes/CocoaShare/Preferences/MGMGeneralPane.h +++ b/Classes/CocoaShare/Preferences/MGMGeneralPane.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import @@ -17,6 +17,7 @@ IBOutlet NSTextField *historyCountField; IBOutlet NSButton *growlErrors; IBOutlet NSTextField *uploadLimit; + IBOutlet NSPopUpButton *MUThemesButton; } - (id)initWithPreferences:(MGMPreferences *)thePreferences; + (void)setUpToolbarItem:(NSToolbarItem *)theItem; @@ -29,4 +30,5 @@ - (IBAction)changeHistoryCount:(id)sender; - (IBAction)changeGrowlErrors:(id)sender; - (IBAction)changeUploadLimit:(id)sender; +- (IBAction)changeMUTheme:(id)sender; @end \ No newline at end of file diff --git a/Classes/CocoaShare/Preferences/MGMGeneralPane.m b/Classes/CocoaShare/Preferences/MGMGeneralPane.m index 18d0627..200ac53 100644 --- a/Classes/CocoaShare/Preferences/MGMGeneralPane.m +++ b/Classes/CocoaShare/Preferences/MGMGeneralPane.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/15/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMGeneralPane.h" @@ -22,6 +22,13 @@ [historyCountField setIntValue:[preferences integerForKey:MGMHistoryCount]]; [growlErrors setState:([preferences boolForKey:MGMGrowlErrors] ? NSOnState : NSOffState)]; [uploadLimit setIntValue:[preferences integerForKey:MGMUploadLimit]]; + + [MUThemesButton removeAllItems]; + NSArray *MUThemes = [[MGMController sharedController] MUThemes]; + for (int i=0; i<[MUThemes count]; i++) { + [MUThemesButton addItemWithTitle:[[MUThemes objectAtIndex:i] lastPathComponent]]; + } + [MUThemesButton selectItemAtIndex:[[MGMController sharedController] currentMUThemeIndex]]; } } return self; @@ -82,4 +89,8 @@ - (IBAction)changeUploadLimit:(id)sender { [preferences setInteger:[uploadLimit intValue] forKey:MGMUploadLimit]; } +- (IBAction)changeMUTheme:(id)sender { + MGMController *controller = [MGMController sharedController]; + [controller setCurrentMUTheme:[[controller MUThemes] objectAtIndex:[MUThemesButton indexOfSelectedItem]]]; +} @end \ No newline at end of file diff --git a/Classes/HTTP/MGMHTTPPlugIn.h b/Classes/HTTP/MGMHTTPPlugIn.h index 814e6ee..9e6420e 100644 --- a/Classes/HTTP/MGMHTTPPlugIn.h +++ b/Classes/HTTP/MGMHTTPPlugIn.h @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/18/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import @@ -16,8 +16,6 @@ IBOutlet NSButton *loginButton; BOOL userLoggingIn; int loginTries; - - BOOL isJSON; } - (void)releaseView; diff --git a/Classes/HTTP/MGMHTTPPlugIn.m b/Classes/HTTP/MGMHTTPPlugIn.m index 10caf06..4e19af9 100644 --- a/Classes/HTTP/MGMHTTPPlugIn.m +++ b/Classes/HTTP/MGMHTTPPlugIn.m @@ -3,7 +3,7 @@ // CocoaShare // // Created by Mr. Gecko on 1/18/11. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // #import "MGMHTTPPlugIn.h" @@ -107,7 +107,7 @@ const BOOL MGMHTTPResponseInvisible = YES; [self unlockLogin]; } - (void)checkDidFinish:(MGMURLBasicHandler *)theHandler { - isJSON = [[[theHandler response] MIMEType] isEqual:@"application/json"]; + BOOL isJSON = [[[theHandler response] MIMEType] isEqual:@"application/json"]; NSString *error = nil; NSDictionary *response = nil; if (isJSON) { @@ -214,6 +214,7 @@ const BOOL MGMHTTPResponseInvisible = YES; [[MGMController sharedController] upload:[theHandler object] receivedError:theError]; } - (void)uploadDidFinish:(MGMURLBasicHandler *)theHandler { + BOOL isJSON = [[[theHandler response] MIMEType] isEqual:@"application/json"]; NSString *error = nil; NSDictionary *response = nil; if (isJSON) { diff --git a/CocoaShare.xcodeproj/project.pbxproj b/CocoaShare.xcodeproj/project.pbxproj index a99a8e2..76ac8ea 100644 --- a/CocoaShare.xcodeproj/project.pbxproj +++ b/CocoaShare.xcodeproj/project.pbxproj @@ -46,6 +46,7 @@ 2A2F97A212F05C720069B37E /* FTP.bundle in PlugIns */ = {isa = PBXBuildFile; fileRef = 2A0C8C9412EF844F00A75AB7 /* FTP.bundle */; }; 2A2F995412F094F10069B37E /* SFTP.bundle in PlugIns */ = {isa = PBXBuildFile; fileRef = 2A2F994512F094710069B37E /* SFTP.bundle */; }; 2A2F996E12F095DA0069B37E /* MGMSFTPPlugIn.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A2F996D12F095DA0069B37E /* MGMSFTPPlugIn.m */; }; + 2A3954E71C3194A700DE02CC /* Multi Upload Themes in Resources */ = {isa = PBXBuildFile; fileRef = 2A3954E61C3194A700DE02CC /* Multi Upload Themes */; }; 2A48832E12E52E84001618B5 /* RegexKitLite.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A48832D12E52E84001618B5 /* RegexKitLite.m */; }; 2A48833512E52EAA001618B5 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A48833412E52EAA001618B5 /* libicucore.dylib */; }; 2A48835612E53232001618B5 /* MGMAutoUpdateField.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A48835512E53232001618B5 /* MGMAutoUpdateField.m */; }; @@ -269,6 +270,7 @@ 2A2F996912F0957E0069B37E /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/SFTPAccountPane.xib; sourceTree = ""; }; 2A2F996C12F095DA0069B37E /* MGMSFTPPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSFTPPlugIn.h; sourceTree = ""; }; 2A2F996D12F095DA0069B37E /* MGMSFTPPlugIn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSFTPPlugIn.m; sourceTree = ""; wrapsLines = 1; }; + 2A3954E61C3194A700DE02CC /* Multi Upload Themes */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "Multi Upload Themes"; sourceTree = ""; }; 2A48832C12E52E84001618B5 /* RegexKitLite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegexKitLite.h; sourceTree = ""; }; 2A48832D12E52E84001618B5 /* RegexKitLite.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegexKitLite.m; sourceTree = ""; }; 2A48833412E52EAA001618B5 /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = usr/lib/libicucore.dylib; sourceTree = SDKROOT; }; @@ -821,6 +823,7 @@ 2AEF118512F52A7D00F495BE /* CocoaShareIcon.png */, 2A52DDC612E3AC26000FC8CD /* menuicon.png */, 2A52DDC712E3AC26000FC8CD /* menuicondrag.png */, + 2A3954E61C3194A700DE02CC /* Multi Upload Themes */, 2A52DF5712E3D041000FC8CD /* menuiconselected.png */, 2A52DDC812E3AC26000FC8CD /* menuiconupload.png */, 2A4FA61012F9F8DE009F5B3A /* Localizable.strings */, @@ -1105,6 +1108,7 @@ 2AEAB4EF12E2B2F600552BAA /* GeneralPane.xib in Resources */, 2AEAB4F112E2B2FB00552BAA /* AccountPane.xib in Resources */, 2AEAB4F312E2B2FF00552BAA /* AutoUploadPane.xib in Resources */, + 2A3954E71C3194A700DE02CC /* Multi Upload Themes in Resources */, 2AEAB4F512E2B30500552BAA /* EventsPane.xib in Resources */, 2AEAB53712E2B68300552BAA /* dsa_pub.pem in Resources */, 2A52DDC512E3AC17000FC8CD /* CocoaShare.icns in Resources */, diff --git a/Resources/CocoaShare/Info.plist b/Resources/CocoaShare/Info.plist index bfde99e..8cf0e42 100644 --- a/Resources/CocoaShare/Info.plist +++ b/Resources/CocoaShare/Info.plist @@ -54,7 +54,7 @@ MGMGRTimeZone CST NSHumanReadableCopyright - Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ + Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ NSMainNibFile MainMenu NSPrincipalClass diff --git a/Resources/CocoaShare/Multi Upload Themes/Black Background/file.html b/Resources/CocoaShare/Multi Upload Themes/Black Background/file.html new file mode 100644 index 0000000..3962578 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/Black Background/file.html @@ -0,0 +1 @@ +{url}
diff --git a/Resources/CocoaShare/Multi Upload Themes/Black Background/footer.html b/Resources/CocoaShare/Multi Upload Themes/Black Background/footer.html new file mode 100644 index 0000000..8634a86 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/Black Background/footer.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/CocoaShare/Multi Upload Themes/Black Background/header.html b/Resources/CocoaShare/Multi Upload Themes/Black Background/header.html new file mode 100644 index 0000000..691a8c6 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/Black Background/header.html @@ -0,0 +1,6 @@ + + +Multiple Upload Links diff --git a/Resources/CocoaShare/Multi Upload Themes/Black Background/image.html b/Resources/CocoaShare/Multi Upload Themes/Black Background/image.html new file mode 100644 index 0000000..2b88bf8 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/Black Background/image.html @@ -0,0 +1 @@ +
diff --git a/Resources/CocoaShare/Multi Upload Themes/White Background/file.html b/Resources/CocoaShare/Multi Upload Themes/White Background/file.html new file mode 100644 index 0000000..3962578 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/White Background/file.html @@ -0,0 +1 @@ +{url}
diff --git a/Resources/CocoaShare/Multi Upload Themes/White Background/footer.html b/Resources/CocoaShare/Multi Upload Themes/White Background/footer.html new file mode 100644 index 0000000..8634a86 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/White Background/footer.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/CocoaShare/Multi Upload Themes/White Background/header.html b/Resources/CocoaShare/Multi Upload Themes/White Background/header.html new file mode 100644 index 0000000..df5608f --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/White Background/header.html @@ -0,0 +1,6 @@ + + +Multiple Upload Links diff --git a/Resources/CocoaShare/Multi Upload Themes/White Background/image.html b/Resources/CocoaShare/Multi Upload Themes/White Background/image.html new file mode 100644 index 0000000..2b88bf8 --- /dev/null +++ b/Resources/CocoaShare/Multi Upload Themes/White Background/image.html @@ -0,0 +1 @@ +
diff --git a/Resources/CocoaShare/Preferences/English.lproj/GeneralPane.xib b/Resources/CocoaShare/Preferences/English.lproj/GeneralPane.xib index 3f1ff7e..604bc7d 100644 --- a/Resources/CocoaShare/Preferences/English.lproj/GeneralPane.xib +++ b/Resources/CocoaShare/Preferences/English.lproj/GeneralPane.xib @@ -1,38 +1,33 @@ - + - 1050 - 10J567 - 1294 - 1038.35 - 462.00 + 1040 + 14F1021 + 6249 + 1348.17 + 758.70 com.apple.InterfaceBuilder.CocoaPlugin - 1294 + 6249 - - YES - NSTextFieldCell + + NSButton + NSButtonCell + NSCustomObject NSCustomView NSMatrix - NSCustomObject - NSButton + NSMenu + NSMenuItem + NSPopUpButton + NSPopUpButtonCell NSTextField - NSButtonCell - - - YES + NSTextFieldCell + + com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - - - YES + + + MGMGeneralPane @@ -45,56 +40,145 @@ 268 - - YES - + + 268 - {{230, 23}, {60, 17}} + {{154, 13}, {162, 26}} - + _NS:9 YES - - 68288064 + + 71303232 + 2048 + + YES + 13 + 1301 + + _NS:9 + + 109199360 + 129 + + .HelveticaNeueDeskInterface-Regular + 13 + 16 + + + + 400 + 75 + + + Theme + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{17, 20}, {133, 17}} + + + _NS:526 + {251, 750} + YES + + 68157504 272630784 - seconds. + Multi Upload Theme: - LucidaGrande + YES 13 1044 - + _NS:526 + 6 System controlColor 3 - MC42NjY2NjY2ODY1AA + MC42NjY2NjY2NjY3AA - + 6 System - controlTextColor + labelColor 3 MAA + NO + 1 + + + + 268 + {{230, 45}, {60, 17}} + + + + YES + + 68157504 + 272630784 + seconds. + + + + + 6 + System + controlTextColor + + + + NO + 1 268 - {{179, 20}, {46, 22}} + {{179, 42}, {46, 22}} YES - -1804468671 + -1804599231 272630784 @@ -116,17 +200,19 @@ + NO + 1 268 - {{17, 23}, {157, 17}} + {{17, 45}, {157, 17}} YES - 68288064 + 68157504 272630784 Auto upload limit within @@ -134,22 +220,24 @@ + NO + 1 268 - {{260, 46}, {18, 18}} + {{260, 68}, {18, 18}} YES - 67239424 + 67108864 0 - 1215582719 + 1215582464 2 NSImage @@ -163,17 +251,18 @@ 200 25 + NO 268 - {{17, 48}, {240, 17}} + {{17, 70}, {240, 17}} YES - 68288064 + 68157504 272630784 Display growl notifications for errors: @@ -181,17 +270,19 @@ + NO + 1 268 - {{109, 73}, {122, 17}} + {{109, 95}, {122, 17}} YES - 68288064 + 68157504 272630784 uploads in history. @@ -199,17 +290,19 @@ + NO + 1 268 - {{58, 70}, {46, 22}} + {{58, 92}, {46, 22}} YES - -1804468671 + -1804599231 272630784 @@ -218,17 +311,19 @@ + NO + 1 268 - {{17, 73}, {36, 17}} + {{17, 95}, {36, 17}} YES - 68288064 + 68157504 272630784 Keep @@ -236,27 +331,29 @@ + NO + 1 268 - {{20, 100}, {293, 38}} + {{20, 122}, {293, 38}} YES + NO 2 1 - - YES + - -2080244224 + -2080374784 0 Random for automatic upload only. 1 - 1211912703 + 1211912448 0 NSRadioButton @@ -267,20 +364,18 @@ 25 - 67239424 + 67108864 0 Random for automatic and manual upload. - 1211912703 + 1211912448 0 549453824 {18, 18} - - YES - - YES + + @@ -363,8 +458,8 @@ AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - + + 3 MCAwAA @@ -374,25 +469,23 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA 400 75 - + {293, 18} {4, 2} 1151868928 NSActionCell - 67239424 + 67108864 0 Radio - 1211912703 + 1211912448 0 549453824 {18, 18} - - YES - - YES + + @@ -417,14 +510,67 @@ AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA +AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAxIAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMSExp +bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAA +AAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAA +AhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA +A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAA +BDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 +bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA +AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA +b6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA +ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYx +OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 +LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl +c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA +AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM +CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 +cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 +AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQET +ARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp +AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML +AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+ +BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI +BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghu +CIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz +CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e +DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx +EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTw +FRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg +GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3D +HeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLd +IwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx +KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C +Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT +NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn +PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPA +RANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi +TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSP +VNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J +XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT +Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw +cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzh +fUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp +iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK +lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH +obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h +rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8Ibyb +vRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2 +y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 +2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb +6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn ++3f8B/yY/Sn9uv5L/tz/bf//A - - + + @@ -439,13 +585,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 - {{17, 143}, {130, 17}} + {{17, 165}, {130, 17}} YES - 68288064 + 68157504 272630784 Uploaded File Name @@ -453,22 +599,24 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + NO + 1 268 - {{110, 167}, {18, 18}} + {{110, 189}, {18, 18}} YES - 67239424 + 67108864 0 - 1215582719 + 1215582464 2 @@ -477,17 +625,18 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 200 25 + NO 268 - {{17, 168}, {90, 17}} + {{17, 190}, {90, 17}} YES - 68288064 + 68157504 272630784 Start at login: @@ -495,17 +644,19 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + NO + 1 268 - {{17, 234}, {55, 17}} + {{17, 256}, {55, 17}} YES - 68288064 + 68157504 272630784 Display: @@ -513,27 +664,29 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + NO + 1 268 - {{77, 193}, {145, 58}} + {{77, 215}, {145, 58}} YES + NO 3 1 - - YES + - -2080244224 + -2080374784 0 Dock 1 - 1211912703 + 1211912448 0 @@ -542,20 +695,18 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 25 - 67239424 + 67108864 0 Dock and Menu Bar - 1211912703 + 1211912448 0 549453824 {18, 18} - - YES - - YES + + @@ -638,8 +789,8 @@ AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - + + @@ -647,36 +798,34 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA 75 - 67239424 + 67108864 0 Menu Bar - 1211912703 + 1211912448 0 400 75 - + {145, 18} {4, 2} 1151868928 NSActionCell - 67239424 + 67108864 0 Radio - 1211912703 + 1211912448 0 549453824 {18, 18} - - YES - - YES + + @@ -701,14 +850,67 @@ AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA +AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAxIAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMSExp +bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAA +AAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAA +AhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA +A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAA +BDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 +bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA +AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA +b6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA +ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYx +OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 +LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl +c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA +AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM +CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 +cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 +AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQET +ARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp +AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML +AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+ +BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI +BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghu +CIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz +CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e +DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx +EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTw +FRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg +GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3D +HeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLd +IwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx +KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C +Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT +NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn +PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPA +RANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi +TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSP +VNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J +XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT +Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw +cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzh +fUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp +iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK +lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH +obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h +rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8Ibyb +vRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2 +y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 +2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb +6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn ++3f8B/yY/Sn9uv5L/tz/bf//A - - + + @@ -720,17 +922,16 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - {333, 271} + + {333, 293} NSView - + - - YES + view @@ -835,13 +1036,28 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 58 - + + + changeMUTheme: + + + + 67 + + + + MUThemesButton + + + + 68 + + - - YES + 0 - + @@ -866,8 +1082,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 1 - - YES + @@ -882,19 +1097,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - + + + 3 - - YES + - + @@ -910,10 +1126,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 8 - - YES + - + @@ -934,10 +1149,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 16 - - YES + - + @@ -948,10 +1162,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 18 - - YES + - + @@ -962,10 +1175,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 24 - - YES + - + @@ -976,12 +1188,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 26 - - YES + - + @@ -1002,10 +1213,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 32 - - YES + - + @@ -1016,10 +1226,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 34 - - YES + - + @@ -1030,10 +1239,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 36 - - YES + - + @@ -1044,10 +1252,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 40 - - YES + - + @@ -1058,10 +1265,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 42 - - YES + - + @@ -1072,10 +1278,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 46 - - YES + - + @@ -1086,10 +1291,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 52 - - YES + - + @@ -1100,10 +1304,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 55 - - YES + - + @@ -1111,302 +1314,413 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - YES - - YES - 1.IBEditorWindowLastContentRect - 1.IBPluginDependency - 1.WindowOrigin - 1.editorWindowContentRectSynchronizationRect - 16.IBPluginDependency - 16.IBViewBoundsToFrameTransform - 17.IBPluginDependency - 18.IBPluginDependency - 18.IBViewBoundsToFrameTransform - 19.IBPluginDependency - 24.IBPluginDependency - 25.IBPluginDependency - 26.IBPluginDependency - 26.IBViewBoundsToFrameTransform - 27.IBPluginDependency - 28.IBPluginDependency - 29.IBPluginDependency - 3.IBPluginDependency - 3.IBViewBoundsToFrameTransform - 32.IBPluginDependency - 33.IBPluginDependency - 34.CustomClassName - 34.IBPluginDependency - 35.IBPluginDependency - 36.IBPluginDependency - 36.IBViewBoundsToFrameTransform - 37.IBPluginDependency - 4.IBPluginDependency - 40.IBPluginDependency - 41.IBPluginDependency - 42.IBPluginDependency - 42.IBViewBoundsToFrameTransform - 43.IBPluginDependency - 46.IBPluginDependency - 47.IBPluginDependency - 5.IBPluginDependency - 52.CustomClassName - 52.IBPluginDependency - 53.IBPluginDependency - 55.IBPluginDependency - 56.IBPluginDependency - 6.IBPluginDependency - 8.IBPluginDependency - 9.IBPluginDependency - - - YES - {{226, 193}, {333, 243}} - com.apple.InterfaceBuilder.CocoaPlugin - {628, 654} - {{217, 442}, {480, 272}} - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAw1QAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC7gAAwxsAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBoAAAwmAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCmgAAw10AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - MGMAutoUpdateField - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABC5gAAwiwAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDg4AAwhAAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - MGMAutoUpdateField - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - + + 59 + + + + + + + + 60 + + + + + 61 + + + + + + + + 62 + + + + + + + + 63 + + + + + + + + 64 + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {673.5, 494.5} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + MGMAutoUpdateField + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + MGMAutoUpdateField + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + - - YES - - - + - 58 + 68 - - YES + MGMAutoUpdateField NSTextField IBProjectSource - ./Classes/MGMAutoUpdateField.h + ../Classes/CocoaShare/MGMAutoUpdateField.h MGMGeneralPane MGMPreferencesPane - - YES - - YES - changeDisplay: - changeGrowlErrors: - changeHistoryCount: - changeStartup: - changeUploadLimit: - changeUploadName: + + id + id + id + id + id + id + id + + + + changeDisplay: + id - - YES - id - id - id - id - id - id + + changeGrowlErrors: + id - - - YES - - YES - changeDisplay: - changeGrowlErrors: - changeHistoryCount: - changeStartup: - changeUploadLimit: - changeUploadName: + + changeHistoryCount: + id - - YES - - changeDisplay: - id - - - changeGrowlErrors: - id - - - changeHistoryCount: - id - - - changeStartup: - id - - - changeUploadLimit: - id - - - changeUploadName: - id - + + changeMUTheme: + id - - - YES - - YES - display - growlErrors - historyCountField - startup - uploadLimit - uploadName - view + + changeStartup: + id - - YES - NSMatrix - NSButton - NSTextField - NSButton - NSTextField - NSMatrix - NSView + + changeUploadLimit: + id - - - YES - - YES - display - growlErrors - historyCountField - startup - uploadLimit - uploadName - view + + changeUploadName: + id - - YES - - display - NSMatrix - - - growlErrors - NSButton - - - historyCountField - NSTextField - - - startup - NSButton - - - uploadLimit - NSTextField - - - uploadName - NSMatrix - - - view - NSView - + + + NSPopUpButton + NSMatrix + NSButton + NSTextField + NSButton + NSTextField + NSMatrix + NSView + + + + MUThemesButton + NSPopUpButton - + + display + NSMatrix + + + growlErrors + NSButton + + + historyCountField + NSTextField + + + startup + NSButton + + + uploadLimit + NSTextField + + + uploadName + NSMatrix + + + view + NSView + + IBProjectSource - ./Classes/MGMGeneralPane.h + ../Classes/CocoaShare/Preferences/MGMGeneralPane.h + + MGMGeneralPane + + id + id + id + id + id + id + id + + + + changeDisplay: + id + + + changeGrowlErrors: + id + + + changeHistoryCount: + id + + + changeMUTheme: + id + + + changeStartup: + id + + + changeUploadLimit: + id + + + changeUploadName: + id + + + + IBProjectSource + ../Classes/CocoaShare/Preferences/MGMGeneralPane.m + + + + MGMPreferencesPane NSObject - IBProjectSource - ./Classes/MGMPreferencesPane.h + IBFrameworkSource + MGMUsers.framework/Headers/MGMPreferencesPane.h - + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSView + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + 0 IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - + NO com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES 3 - - NSSwitch - {15, 15} - + + {12, 12} + {10, 2} + {15, 15} + diff --git a/index.php b/index.php index 1060951..6bae8e7 100644 --- a/index.php +++ b/index.php @@ -4,7 +4,7 @@ // CocoaShare // // Created by Mr. Gecko on 4/14/10. -// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// Copyright (c) 2015 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // class shortID {