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]; + 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]; - 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]]; + 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/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/MGMGeneralPane.h + ../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 {