From 56324c2b7d72397409072fcc6f7dceaa7b9fb584 Mon Sep 17 00:00:00 2001 From: Akiva Leffert Date: Wed, 21 Dec 2011 17:47:46 -0500 Subject: [PATCH] Add quick open by making background UI element daemon. --- Julep-UIElement/ADLUIElementDelegate.h | 16 + Julep-UIElement/ADLUIElementDelegate.m | 68 ++ Julep-UIElement/ADLUIElementServer.h | 34 + Julep-UIElement/ADLUIElementServer.m | 42 ++ Julep-UIElement/Julep-UIElement-Info.plist | 36 + Julep-UIElement/Julep-UIElement-Prefix.pch | 7 + .../en.lproj/ADLLUIElementMain.xib | 119 +++ Julep-UIElement/en.lproj/Credits.rtf | 29 + Julep-UIElement/en.lproj/InfoPlist.strings | 2 + Julep-UIElement/main.m | 14 + README | 3 + Shared/ADLList.h | 1 + Shared/ADLList.m | 1 + Shared/ADLModelAccess.h | 13 +- Shared/ADLModelAccess.m | 18 + .../julep_mac.xcdatamodel/contents | 3 +- julep-mac/ADLAppDelegate.h | 9 +- julep-mac/ADLAppDelegate.m | 129 +++- julep-mac/ADLAppServer.h | 37 + julep-mac/ADLAppServer.m | 42 ++ julep-mac/ADLListsDocument.m | 2 +- julep-mac/ADLListsWindowController.m | 4 + julep-mac/ADLListsWindowController.xib | 20 +- julep-mac/ADLNewItemController.h | 25 + julep-mac/ADLNewItemController.m | 112 +++ julep-mac/ADLNewItemViewController.xib | 85 +-- julep-mac/ADLPreferencesController.h | 28 + julep-mac/ADLPreferencesController.m | 85 +++ julep-mac/Resources/ADLNewItem.xib | 699 ++++++++++++++++++ julep-mac/en.lproj/ADLPreferences.xib | 617 ++++++++++++++++ julep-mac/en.lproj/MainMenu.xib | 21 +- julep.xcodeproj/project.pbxproj | 380 +++++++++- 32 files changed, 2572 insertions(+), 129 deletions(-) create mode 100644 Julep-UIElement/ADLUIElementDelegate.h create mode 100644 Julep-UIElement/ADLUIElementDelegate.m create mode 100644 Julep-UIElement/ADLUIElementServer.h create mode 100644 Julep-UIElement/ADLUIElementServer.m create mode 100644 Julep-UIElement/Julep-UIElement-Info.plist create mode 100644 Julep-UIElement/Julep-UIElement-Prefix.pch create mode 100644 Julep-UIElement/en.lproj/ADLLUIElementMain.xib create mode 100644 Julep-UIElement/en.lproj/Credits.rtf create mode 100644 Julep-UIElement/en.lproj/InfoPlist.strings create mode 100644 Julep-UIElement/main.m create mode 100644 julep-mac/ADLAppServer.h create mode 100644 julep-mac/ADLAppServer.m create mode 100644 julep-mac/ADLNewItemController.h create mode 100644 julep-mac/ADLNewItemController.m create mode 100644 julep-mac/ADLPreferencesController.h create mode 100644 julep-mac/ADLPreferencesController.m create mode 100644 julep-mac/Resources/ADLNewItem.xib create mode 100644 julep-mac/en.lproj/ADLPreferences.xib diff --git a/Julep-UIElement/ADLUIElementDelegate.h b/Julep-UIElement/ADLUIElementDelegate.h new file mode 100644 index 0000000..d16058e --- /dev/null +++ b/Julep-UIElement/ADLUIElementDelegate.h @@ -0,0 +1,16 @@ +// +// ADLUIElementDelegate.h +// Julep-UIElement +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import + +#import "ADLNewItemController.h" +#import "ADLUIElementServer.h" + +@interface ADLUIElementDelegate : NSObject + +@end diff --git a/Julep-UIElement/ADLUIElementDelegate.m b/Julep-UIElement/ADLUIElementDelegate.m new file mode 100644 index 0000000..29daa4a --- /dev/null +++ b/Julep-UIElement/ADLUIElementDelegate.m @@ -0,0 +1,68 @@ +// +// ADLUIElementDelegate.m +// Julep-UIElement +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "ADLUIElementDelegate.h" + +#import "ADLAppServer.h" +#import "ADLNewItemController.h" + +@interface ADLUIElementDelegate () + +@property (retain, nonatomic) ADLUIElementServer* server; +@property (retain, nonatomic) ADLNewItemController* quickCreateController; + +@end + +@implementation ADLUIElementDelegate + +@synthesize quickCreateController = mQuickCreateController; +@synthesize server = mServer; + +- (void)dealloc +{ + self.quickCreateController = nil; + self.server = nil; + [super dealloc]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +{ + [[NSWorkspace sharedWorkspace] addObserver:self forKeyPath:@"runningApplications" options:NSKeyValueObservingOptionNew context:NULL]; + self.server = [[[ADLUIElementServer alloc] init] autorelease]; + self.server.delegate = self; + [self.server start]; +} + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + NSAssert([keyPath isEqual:@"runningApplications"], @"unexpected key path"); + NSArray* items = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.ognid.julep"]; + if(items.count == 0) { + [[NSApplication sharedApplication] terminate:self]; + } +} + +- (void)showQuickCreateWithListIDs:(NSArray*)listIDs named:(NSArray*)names { + if(self.quickCreateController == nil) { + self.quickCreateController = [[[ADLNewItemController alloc] init] autorelease]; + self.quickCreateController.delegate = self; + } + self.quickCreateController.listNames = names; + self.quickCreateController.listIDs = listIDs; + [self.quickCreateController showWindow:self]; +} + +- (void)addItemWithTitle:(NSString *)name toList:(NSURL *)listID { + id appServer = (id )[NSConnection rootProxyForConnectionWithRegisteredName:kADLAppServerName host:nil]; + [appServer addItemWithTitle:name toList:listID]; +} + +- (void)applicationWillResignActive:(NSNotification *)notification { + [self.quickCreateController.window orderOut:self]; +} + +@end diff --git a/Julep-UIElement/ADLUIElementServer.h b/Julep-UIElement/ADLUIElementServer.h new file mode 100644 index 0000000..77364c4 --- /dev/null +++ b/Julep-UIElement/ADLUIElementServer.h @@ -0,0 +1,34 @@ +// +// ADLUIElementServer.h +// julep +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import + +@protocol ADLUIElementServerDelegate; + +@protocol ADLUIElementServer + +- (void)showQuickCreateWithListIDs:(NSArray*)listIDs named:(NSArray*)names; + +@end + +@interface ADLUIElementServer : NSObject + +@property (assign, nonatomic) id delegate; + +- (void)start; + +@end + + +@protocol ADLUIElementServerDelegate + +- (void)showQuickCreateWithListIDs:(NSArray*)listIDs named:(NSArray*)names; + +@end + +extern NSString* kADLUIServerName; \ No newline at end of file diff --git a/Julep-UIElement/ADLUIElementServer.m b/Julep-UIElement/ADLUIElementServer.m new file mode 100644 index 0000000..b337739 --- /dev/null +++ b/Julep-UIElement/ADLUIElementServer.m @@ -0,0 +1,42 @@ +// +// ADLUIElementServer.m +// julep +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "ADLUIElementServer.h" + +NSString* kADLUIServerName = @"com.ognid.julep-ui-server"; + +@interface ADLUIElementServer () + +@property (retain, nonatomic) NSConnection* connection; + +@end + +@implementation ADLUIElementServer + +@synthesize connection = mConnection; +@synthesize delegate = mDelegate; + +- (void)dealloc { + [self.connection invalidate]; + self.connection = nil; + [super dealloc]; +} + +- (void)start { + self.connection = [[[NSConnection alloc] init] autorelease]; + self.connection.rootObject = self; + if([self.connection registerName:kADLUIServerName] == NO) { + NSLog(@"failed to start ui element server"); + }; +} + +- (void)showQuickCreateWithListIDs:(NSArray*)listIDs named:(NSArray*)names { + [self.delegate showQuickCreateWithListIDs:listIDs named:names]; +} + +@end diff --git a/Julep-UIElement/Julep-UIElement-Info.plist b/Julep-UIElement/Julep-UIElement-Info.plist new file mode 100644 index 0000000..7a134ba --- /dev/null +++ b/Julep-UIElement/Julep-UIElement-Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ognid.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + LSUIElement + + NSHumanReadableCopyright + Copyright © 2011 __MyCompanyName__. All rights reserved. + NSMainNibFile + ADLLUIElementMain + NSPrincipalClass + NSApplication + + diff --git a/Julep-UIElement/Julep-UIElement-Prefix.pch b/Julep-UIElement/Julep-UIElement-Prefix.pch new file mode 100644 index 0000000..4d738fe --- /dev/null +++ b/Julep-UIElement/Julep-UIElement-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Julep-UIElement' target in the 'Julep-UIElement' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Julep-UIElement/en.lproj/ADLLUIElementMain.xib b/Julep-UIElement/en.lproj/ADLLUIElementMain.xib new file mode 100644 index 0000000..3c0c481 --- /dev/null +++ b/Julep-UIElement/en.lproj/ADLLUIElementMain.xib @@ -0,0 +1,119 @@ + + + + 1070 + 11C74 + 1938 + 1138.23 + 567.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 1938 + + + NSCustomObject + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + ADLUIElementDelegate + + + NSFontManager + + + + + + + delegate + + + + 495 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 420 + + + + + 494 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 535 + + + + + ADLUIElementDelegate + NSObject + + IBProjectSource + ./Classes/ADLUIElementDelegate.h + + + + + 0 + IBCocoaFramework + YES + 3 + + diff --git a/Julep-UIElement/en.lproj/Credits.rtf b/Julep-UIElement/en.lproj/Credits.rtf new file mode 100644 index 0000000..46576ef --- /dev/null +++ b/Julep-UIElement/en.lproj/Credits.rtf @@ -0,0 +1,29 @@ +{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw9840\paperh8400 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs24 \cf0 Engineering: +\b0 \ + Some people\ +\ + +\b Human Interface Design: +\b0 \ + Some other people\ +\ + +\b Testing: +\b0 \ + Hopefully not nobody\ +\ + +\b Documentation: +\b0 \ + Whoever\ +\ + +\b With special thanks to: +\b0 \ + Mom\ +} diff --git a/Julep-UIElement/en.lproj/InfoPlist.strings b/Julep-UIElement/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Julep-UIElement/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Julep-UIElement/main.m b/Julep-UIElement/main.m new file mode 100644 index 0000000..aa38be2 --- /dev/null +++ b/Julep-UIElement/main.m @@ -0,0 +1,14 @@ +// +// main.m +// Julep-UIElement +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **)argv); +} diff --git a/README b/README index 5b4320f..07869b2 100644 --- a/README +++ b/README @@ -1,3 +1,6 @@ Julep is a todo list app for MacOSX optimized for me. It syncs to the calendar store. Right now it is extremely basic. + + +Credit for shortcut recorder to http://shortcutrecorder.googlecode.com \ No newline at end of file diff --git a/Shared/ADLList.h b/Shared/ADLList.h index 9022fa2..5ff6cfb 100644 --- a/Shared/ADLList.h +++ b/Shared/ADLList.h @@ -16,6 +16,7 @@ @property (nonatomic, retain) NSString * uid; @property (nonatomic, retain) NSOrderedSet *items; @property (nonatomic, retain) ADLListCollection *list; +@property (nonatomic, assign) BOOL showsCountInBadge; @end @interface ADLList (CoreDataGeneratedAccessors) diff --git a/Shared/ADLList.m b/Shared/ADLList.m index 4e1c791..51a1741 100644 --- a/Shared/ADLList.m +++ b/Shared/ADLList.m @@ -16,5 +16,6 @@ @implementation ADLList @dynamic uid; @dynamic items; @dynamic list; +@dynamic showsCountInBadge; @end diff --git a/Shared/ADLModelAccess.h b/Shared/ADLModelAccess.h index 2430373..7421678 100644 --- a/Shared/ADLModelAccess.h +++ b/Shared/ADLModelAccess.h @@ -40,13 +40,14 @@ typedef NSManagedObjectID ADLItemID; - (ADLItemID*)itemIDForURL:(NSURL*)url; - (NSUInteger)indexOfItem:(ADLItemID*)itemID inList:(ADLListID*)listID; +- (ADLListID*)listIDForURL:(NSURL*)url; - (NSString*)titleOfList:(ADLListID*)listID; - -- (BOOL)completionStatusOfItem:(ADLItemID*)itemID; +- (BOOL)showsCountInBadgeForList:(ADLListID*)listID; - (NSUInteger)indexOfItem:(ADLItemID*)itemID inList:(ADLListID*)listID; - (NSString*)titleOfItem:(ADLItemID*)itemID; +- (BOOL)completionStatusOfItem:(ADLItemID*)itemID; - (NSArray*)itemIDsForList:(ADLListID*)listID; @@ -60,11 +61,15 @@ typedef NSManagedObjectID ADLItemID; @property (retain, nonatomic) ADLListID* selectedListID; -// Actually modifies the calendar store. Be careful. Only call these from outside +// These all actually modify the calendar store. Be careful. Only call these from outside the abstraction barrier + +- (void)setTitle:(NSString*)title ofList:(ADLListID*)listID; +- (void)setShowsCountInBadge:(BOOL)showsCountInBadge forList:(ADLListID*)listID; + - (ADLItemID*)addItemWithTitle:(NSString*)title toListWithID:(ADLListID*)listID; - (ADLItemID*)addItemWithTitle:(NSString*)title toListWithID:(ADLListID*)listID atIndex:(NSUInteger)index; - (ADLItemID*)addConcreteItem:(ADLConcreteItem*)concreteItem toListWithID:(ADLListID*)listID atIndex:(NSUInteger)index; -- (void)setTitle:(NSString*)title ofList:(ADLListID*)listID; + - (void)setCompletionStatus:(BOOL)status ofItem:(NSManagedObjectID *)itemID; - (void)deleteItemWithID:(ADLItemID*)itemID; - (void)setTitle:(NSString *)title ofItem:(NSManagedObjectID *)itemID; diff --git a/Shared/ADLModelAccess.m b/Shared/ADLModelAccess.m index 3842236..a17d796 100644 --- a/Shared/ADLModelAccess.m +++ b/Shared/ADLModelAccess.m @@ -301,6 +301,12 @@ - (ADLItemID*)moveItem:(ADLItemID*)itemID toIndex:(NSUInteger)index ofList:(ADLL return finalItemID; } +- (ADLListID*)listIDForURL:(NSURL*)url { + NSPersistentStoreCoordinator* persistentStoreCoordinator = self.managedObjectContext.persistentStoreCoordinator; + NSManagedObjectID* listID = [persistentStoreCoordinator managedObjectIDForURIRepresentation:url]; + return listID; +} + - (ADLItemID*)itemIDForURL:(NSURL*)url { NSPersistentStoreCoordinator* persistentStoreCoordinator = self.managedObjectContext.persistentStoreCoordinator; NSManagedObjectID* itemID = [persistentStoreCoordinator managedObjectIDForURIRepresentation:url]; @@ -394,6 +400,11 @@ - (NSString*)titleOfList:(ADLListID*)listID { return calendar.title; } +- (BOOL)showsCountInBadgeForList:(ADLListID*)listID { + ADLList* list = (ADLList*)[self.managedObjectContext objectWithID:listID]; + return list.showsCountInBadge; +} + - (void)setTitle:(NSString*)title ofList:(ADLListID*)listID { self.undoManager.actionName = @"Title Change"; __block ADLModelAccess* owner = self; @@ -409,6 +420,13 @@ - (void)setTitle:(NSString*)title ofList:(ADLListID*)listID { NSAssert(error == nil, @"Error saving calendar title change"); } +- (void)setShowsCountInBadge:(BOOL)showsCountInBadge forList:(ADLListID*)listID { + ADLList* list = (ADLList*)[self.managedObjectContext objectWithID:listID]; + [self performMutation:^(void) { + list.showsCountInBadge = showsCountInBadge; + }]; +} + - (BOOL)completionStatusOfItem:(ADLItemID*)itemID { ADLItem* item = (ADLItem*)[self.managedObjectContext objectWithID:itemID]; CalTask* task = [[CalCalendarStore defaultCalendarStore] taskWithUID:item.uid]; diff --git a/Shared/julep.xcdatamodeld/julep_mac.xcdatamodel/contents b/Shared/julep.xcdatamodeld/julep_mac.xcdatamodel/contents index 44e9890..02d8e23 100644 --- a/Shared/julep.xcdatamodeld/julep_mac.xcdatamodel/contents +++ b/Shared/julep.xcdatamodeld/julep_mac.xcdatamodel/contents @@ -5,6 +5,7 @@ + @@ -15,7 +16,7 @@ - + \ No newline at end of file diff --git a/julep-mac/ADLAppDelegate.h b/julep-mac/ADLAppDelegate.h index 8b04c28..6ed35d8 100644 --- a/julep-mac/ADLAppDelegate.h +++ b/julep-mac/ADLAppDelegate.h @@ -8,12 +8,9 @@ #import -@class ADLListsDocument; -@class ADLListsWindowController; +#import "ADLAppServer.h" +#import "ADLPreferencesController.h" -@interface ADLAppDelegate : NSObject { - ADLListsDocument* mMainDocument; - ADLListsWindowController* mListsWindowController; -} +@interface ADLAppDelegate : NSObject @end diff --git a/julep-mac/ADLAppDelegate.m b/julep-mac/ADLAppDelegate.m index 9275082..2e1de8b 100644 --- a/julep-mac/ADLAppDelegate.m +++ b/julep-mac/ADLAppDelegate.m @@ -8,23 +8,41 @@ #import +#import +#import +#import +#import + #import "ADLAppDelegate.h" -#import "ADLColor.h" -#import "ADLListsWindowController.h" #import "ADLListsDocument.h" #import "ADLModelAccess.h" +#import "ADLPreferencesController.h" +#import "ADLUIElementServer.h" -@interface ADLAppDelegate () +#import "NSArray+ADLAdditions.h" -@property (retain, nonatomic) ADLListsWindowController* listsWindowController; +static NSString* kADLQuickCreateCode = @"kADLQuickCreateCode"; +static NSString* kADLQuickCreateFlags = @"kADLQuickCreateFlags"; +static NSString* kADLQuickCreateHotKeyIdentifier = @"kADLQuickCreateHotKeyIdentifier"; + +@interface ADLAppDelegate () - (void)openMainDocument; - (NSString*)mainDocumentName; - (NSString*)applicationName; - (NSURL*)applicationSupportSubdirectoryURL; +- (void)registerQuickCreateHotKey; +- (void)startServer; + +- (IBAction)showPreferences:(id)sender; + @property (retain, nonatomic) ADLListsDocument* mainDocument; +@property (retain, nonatomic) ADLAppServer* server; +@property (retain, nonatomic) ADLPreferencesController* preferencesController; + +- (NSRunningApplication*)UIElementChildProcess; @end @@ -34,12 +52,37 @@ - (NSURL*)applicationSupportSubdirectoryURL; @implementation ADLAppDelegate -@synthesize listsWindowController = mListsWindowController; @synthesize mainDocument = mMainDocument; +@synthesize preferencesController = mPreferencesController; +@synthesize server = mServer; + +- (void)dealloc { + self.mainDocument = nil; + self.preferencesController = nil; + self.server = nil; + [super dealloc]; +} - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { [self openMainDocument]; + [self registerQuickCreateHotKey]; + [self UIElementChildProcess]; // spawn ui element daemon + [self startServer]; +} + +- (void)startServer { + self.server = [[[ADLAppServer alloc] init] autorelease]; + self.server.delegate = self; + [self.server start]; +} + +- (NSRunningApplication*)UIElementChildProcess { + NSURL* url = [[NSBundle mainBundle] URLForResource:@"Julep-UIElement" withExtension:@"app"]; + NSError* error = nil; + NSRunningApplication* app = [[NSWorkspace sharedWorkspace] launchApplicationAtURL:url options:NSWorkspaceLaunchWithoutActivation configuration:NULL error:&error]; + NSAssert(error == nil, @"error spawning child process"); + return app; } - (NSString*)mainDocumentName { @@ -85,6 +128,7 @@ - (void)openMainDocument { [[NSDocumentController sharedDocumentController] addDocument:self.mainDocument]; [self.mainDocument makeWindowControllers]; + [self.mainDocument showWindows]; [document release]; } @@ -94,11 +138,84 @@ - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sende } - (void)applicationWillBecomeActive:(NSNotification *)notification { - [self.mainDocument showWindows]; + if([NSApplication sharedApplication].windows.count == 0) { + [self.mainDocument showWindows]; + } } - (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender { return NO; } +#pragma mark Preferences + +- (void)showPreferences:(id)sender { + if(self.preferencesController == nil) { + self.preferencesController = [[[ADLPreferencesController alloc] initWithWindow:nil] autorelease]; + self.preferencesController.modelAccess = self.mainDocument.modelAccess; + self.preferencesController.listIDs = self.mainDocument.modelAccess.listIDs; + self.preferencesController.delegate = self; + } + [self.preferencesController showWindow:sender]; +} + +- (void)saveQuickCreateKeyCombo:(KeyCombo)combo { + [[NSUserDefaults standardUserDefaults] setInteger:combo.flags forKey:kADLQuickCreateFlags]; + [[NSUserDefaults standardUserDefaults] setInteger:combo.code forKey:kADLQuickCreateCode]; +} + +- (void)showQuickCreateFromHotKey:(PTHotKey*)hotKey { + id uiServer = (ADLUIElementServer*)[NSConnection rootProxyForConnectionWithRegisteredName:kADLUIServerName host:nil]; + + ADLModelAccess* modelAccess = self.mainDocument.modelAccess; + NSArray* listIDs = modelAccess.listIDs; + NSArray* listNames = [listIDs arrayByMappingObjects:^(id object) { + ADLListID* listID = object; + return [modelAccess titleOfList:listID]; + }]; + NSArray* listURLs = [listIDs arrayByMappingObjects:^(id object) { + ADLListID* listID = object; + return listID.URIRepresentation; + }]; + + [uiServer showQuickCreateWithListIDs:listURLs named:listNames]; +} + +- (BOOL)hasQuickCreateKeyCombo { + return [[NSUserDefaults standardUserDefaults] objectForKey:kADLQuickCreateFlags] != nil; +} + +- (KeyCombo)quickCreateKeyCombo { + KeyCombo combo = SRMakeKeyCombo(ShortcutRecorderEmptyCode, ShortcutRecorderEmptyFlags); + combo.code = [[NSUserDefaults standardUserDefaults] integerForKey:kADLQuickCreateCode]; + combo.flags = [[NSUserDefaults standardUserDefaults] integerForKey:kADLQuickCreateFlags]; + return combo; +} + +- (void)registerQuickCreateHotKey { + if ([self hasQuickCreateKeyCombo]) { + KeyCombo combo = [self quickCreateKeyCombo]; + PTKeyCombo* keyCombo = [PTKeyCombo keyComboWithKeyCode:combo.code modifiers:SRCocoaToCarbonFlags(combo.flags)]; + + PTHotKey* hotKey = [[PTHotKey alloc] initWithIdentifier:kADLQuickCreateHotKeyIdentifier keyCombo:keyCombo]; + hotKey.target = self; + hotKey.action = @selector(showQuickCreateFromHotKey:); + [[PTHotKeyCenter sharedCenter] registerHotKey:hotKey]; + [hotKey release]; + } +} + +- (void)changedQuickCreateKeyComboTo:(KeyCombo)combo { + PTHotKeyCenter* hotKeyCenter = [PTHotKeyCenter sharedCenter]; + PTHotKey* hotKey = [hotKeyCenter hotKeyWithIdentifier:kADLQuickCreateHotKeyIdentifier]; + [hotKeyCenter unregisterHotKey:hotKey]; + [self saveQuickCreateKeyCombo:combo]; + [self registerQuickCreateHotKey]; +} + +- (void)addItemWithTitle:(NSString *)title toList:(NSURL *)list { + ADLListID* listID = [self.mainDocument.modelAccess listIDForURL:list]; + [self.mainDocument.modelAccess addItemWithTitle:title toListWithID:listID]; +} + @end diff --git a/julep-mac/ADLAppServer.h b/julep-mac/ADLAppServer.h new file mode 100644 index 0000000..85f46ae --- /dev/null +++ b/julep-mac/ADLAppServer.h @@ -0,0 +1,37 @@ +// +// ADLAppServer.h +// julep +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import + +#import "ADLModelAccess.h" + +@protocol ADLAppServerDelegate; + +@protocol ADLAppServer + +- (void)addItemWithTitle:(NSString*)title toList:(NSURL*)list; + +@end + + +@interface ADLAppServer : NSObject + +@property (assign, nonatomic) id delegate; + +- (void)start; + +@end + + +@protocol ADLAppServerDelegate + +- (void)addItemWithTitle:(NSString*)title toList:(NSURL *)list; + +@end + +extern NSString* kADLAppServerName; \ No newline at end of file diff --git a/julep-mac/ADLAppServer.m b/julep-mac/ADLAppServer.m new file mode 100644 index 0000000..082cfd7 --- /dev/null +++ b/julep-mac/ADLAppServer.m @@ -0,0 +1,42 @@ +// +// ADLAppServer.m +// julep +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "ADLAppServer.h" + +NSString* kADLAppServerName = @"com.ognid.julep"; + +@interface ADLAppServer () + +@property (retain, nonatomic) NSConnection* connection; + +@end + +@implementation ADLAppServer + +@synthesize connection = mConnection; +@synthesize delegate = mDelegate; + +- (void)dealloc { + [self.connection invalidate]; + self.connection = nil; + [super dealloc]; +} + +- (void)start { + self.connection = [[[NSConnection alloc] init] autorelease]; + self.connection.rootObject = self; + if([self.connection registerName:kADLAppServerName] == NO) { + NSLog(@"failed to start app server"); + }; +} + +- (void)addItemWithTitle:(NSString *)title toList:(NSURL *)list { + [self.delegate addItemWithTitle:title toList:list]; +} + +@end diff --git a/julep-mac/ADLListsDocument.m b/julep-mac/ADLListsDocument.m index ea20280..3ffd48b 100644 --- a/julep-mac/ADLListsDocument.m +++ b/julep-mac/ADLListsDocument.m @@ -28,7 +28,7 @@ - (void)dealloc { } - (void)makeWindowControllers { - ADLListsWindowController* windowController = [[ADLListsWindowController alloc] initWithWindowNibName:@"ADLListsWindowController"]; + ADLListsWindowController* windowController = [[ADLListsWindowController alloc] init]; [self addWindowController:windowController]; diff --git a/julep-mac/ADLListsWindowController.m b/julep-mac/ADLListsWindowController.m index bf3e7f8..4822970 100644 --- a/julep-mac/ADLListsWindowController.m +++ b/julep-mac/ADLListsWindowController.m @@ -31,6 +31,10 @@ - (void)dealloc { [super dealloc]; } +- (NSString*)windowNibName { + return @"ADLListsWindowController"; +} + - (void)windowDidLoad { [super windowDidLoad]; diff --git a/julep-mac/ADLListsWindowController.xib b/julep-mac/ADLListsWindowController.xib index 9eb35d0..bdb4ca4 100644 --- a/julep-mac/ADLListsWindowController.xib +++ b/julep-mac/ADLListsWindowController.xib @@ -39,7 +39,7 @@ 4367 2 {{335, 390}, {480, 360}} - 1954022400 + 1148716032 Julep NSWindow @@ -49,12 +49,10 @@ 256 {480, 360} - - {{0, 0}, {1680, 1028}} {10000000000000, 10000000000000} - YES + NO @@ -161,19 +159,7 @@ 8 - - - YES - - ADLListsWindowController - NSWindowController - - IBProjectSource - ./Classes/ADLListsWindowController.h - - - - + 0 IBCocoaFramework diff --git a/julep-mac/ADLNewItemController.h b/julep-mac/ADLNewItemController.h new file mode 100644 index 0000000..e5fdae5 --- /dev/null +++ b/julep-mac/ADLNewItemController.h @@ -0,0 +1,25 @@ +// +// ADLNewItemController.h +// julep +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import + +@protocol ADLNewItemControllerDelegate; + +@interface ADLNewItemController : NSWindowController + +@property (assign, nonatomic) id delegate; +@property (copy, nonatomic) NSArray* listNames; +@property (copy, nonatomic) NSArray* listIDs; + +@end + +@protocol ADLNewItemControllerDelegate + +- (void)addItemWithTitle:(NSString*)name toList:(NSURL*)url; + +@end \ No newline at end of file diff --git a/julep-mac/ADLNewItemController.m b/julep-mac/ADLNewItemController.m new file mode 100644 index 0000000..b805c88 --- /dev/null +++ b/julep-mac/ADLNewItemController.m @@ -0,0 +1,112 @@ +// +// ADLNewItemController.m +// julep +// +// Created by Akiva Leffert on 12/21/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "ADLNewItemController.h" + +@interface ADLNewItemController () + +@property (retain, nonatomic) IBOutlet NSButton* cancelButton; +@property (retain, nonatomic) IBOutlet NSButton* createButton; +@property (retain, nonatomic) IBOutlet NSTextField* entryField; +@property (retain, nonatomic) IBOutlet NSTableView* listTable; + +- (IBAction)cancel:(id)sender; +- (IBAction)create:(id)sender; + +@end + +@implementation ADLNewItemController + +@synthesize cancelButton = mCancelButton; +@synthesize createButton = mCreateButton; +@synthesize delegate = mDelegate; +@synthesize entryField = mEntryField; +@synthesize listTable = mListTable; +@synthesize listIDs = mListIDs; +@synthesize listNames = mListNames; + +- (void)dealloc { + self.listIDs = nil; + self.listNames = nil; + self.cancelButton = nil; + self.createButton = nil; + self.entryField = nil; + self.listTable = nil; + [super dealloc]; +} + +- (NSString*)windowNibName { + return @"ADLNewItem"; +} + +- (void)windowDidLoad { + [super windowDidLoad]; +} + +- (void)showWindow:(id)sender { + [self.listTable reloadData]; + [self.listTable selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO]; + self.entryField.stringValue = @""; + [super showWindow:sender]; + [self.window makeKeyAndOrderFront:self]; + [self.window makeFirstResponder:self.entryField]; + [[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; +} + +- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { + return self.listIDs.count; +} + +- (NSCell*)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + return tableColumn.dataCell; +} + +- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + return [self.listIDs objectAtIndex:row]; +} + +- (void)tableView:(NSTableView *)tableView willDisplayCell:(NSTextFieldCell*)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + cell.title = [self.listNames objectAtIndex:row]; +} + +- (IBAction)create:(id)sender { + NSString* title = self.entryField.stringValue; + NSURL* listID = [self.listIDs objectAtIndex: self.listTable.selectedRow]; + + if(title.length > 0) { + [self.delegate addItemWithTitle: title toList:listID]; + } + + [self.window orderOut:sender]; +} + +- (IBAction)cancel:(id)sender { + [self.window orderOut:sender]; +} + +- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector { + if(commandSelector == @selector(moveUp:)) { + NSInteger index = self.listTable.selectedRow; + if(index > 0) { + [self.listTable selectRowIndexes: [NSIndexSet indexSetWithIndex: index - 1] byExtendingSelection:NO]; + [self.listTable scrollRowToVisible:index - 1]; + } + return YES; + } + if(commandSelector == @selector(moveDown:)) { + NSInteger index = self.listTable.selectedRow; + if(index + 1 < self.listIDs.count) { + [self.listTable selectRowIndexes:[NSIndexSet indexSetWithIndex:index + 1] byExtendingSelection:NO]; + [self.listTable scrollRowToVisible:index + 1]; + } + return YES; + } + return NO; +} + +@end diff --git a/julep-mac/ADLNewItemViewController.xib b/julep-mac/ADLNewItemViewController.xib index f1df94c..4ea94af 100644 --- a/julep-mac/ADLNewItemViewController.xib +++ b/julep-mac/ADLNewItemViewController.xib @@ -47,7 +47,6 @@ 268 {{17, 135}, {79, 17}} - _NS:3944 YES @@ -87,7 +86,6 @@ 268 {{20, 52}, {31, 17}} - _NS:3944 YES @@ -107,7 +105,6 @@ 268 {{17, 94}, {37, 17}} - _NS:3944 YES @@ -127,7 +124,6 @@ 268 {{53, 46}, {312, 26}} - _NS:868 YES @@ -162,7 +158,6 @@ 268 {{56, 91}, {306, 22}} - _NS:903 YES @@ -196,7 +191,6 @@ 268 {{205, 12}, {82, 32}} - _NS:687 YES @@ -220,7 +214,6 @@ 268 {{287, 12}, {81, 32}} - _NS:687 YES @@ -241,7 +234,6 @@ {382, 172} - NSView @@ -406,6 +398,19 @@ + + 19 + + + + + + + + 20 + + + 15 @@ -432,19 +437,6 @@ - - 19 - - - - - - - - 20 - - - @@ -474,56 +466,7 @@ 27 - - - - ADLNewItemViewController - NSViewController - - id - id - - - - cancelCreation: - id - - - createItem: - id - - - - NSButton - NSButton - NSTextField - NSPopUpButton - - - - cancelButton - NSButton - - - createButton - NSButton - - - entryField - NSTextField - - - listPopup - NSPopUpButton - - - - IBProjectSource - ./Classes/ADLNewItemViewController.h - - - - + 0 IBCocoaFramework YES diff --git a/julep-mac/ADLPreferencesController.h b/julep-mac/ADLPreferencesController.h new file mode 100644 index 0000000..61e7e05 --- /dev/null +++ b/julep-mac/ADLPreferencesController.h @@ -0,0 +1,28 @@ +// +// ADLPreferencesController.h +// julep +// +// Created by Akiva Leffert on 12/18/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import +#import + +#import "ADLModelAccess.h" + +@protocol ADLPreferencesControllerDelegate; + +@interface ADLPreferencesController : NSWindowController + +@property (retain, nonatomic) ADLModelAccess* modelAccess; +@property (copy, nonatomic) NSArray* listIDs; // List IDs +@property (assign, nonatomic) id delegate; + +@end + +@protocol ADLPreferencesControllerDelegate +- (KeyCombo)quickCreateKeyCombo; +- (BOOL)hasQuickCreateKeyCombo; +- (void)changedQuickCreateKeyComboTo:(KeyCombo)combo; +@end diff --git a/julep-mac/ADLPreferencesController.m b/julep-mac/ADLPreferencesController.m new file mode 100644 index 0000000..fffd662 --- /dev/null +++ b/julep-mac/ADLPreferencesController.m @@ -0,0 +1,85 @@ +// +// ADLPreferencesController.m +// julep +// +// Created by Akiva Leffert on 12/18/11. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "ADLPreferencesController.h" + +#import "CalCalendarStore+ADLAdditions.h" + +#import + +@interface ADLPreferencesController () + +@property (retain, nonatomic) IBOutlet NSTableView* badgeCalendarsTable; +@property (retain, nonatomic) IBOutlet SRRecorderControl* quickCreateKeyComboRecorder; + +@end + +@implementation ADLPreferencesController + +@synthesize quickCreateKeyComboRecorder = mQuickCreateKeyComboRecorder; +@synthesize badgeCalendarsTable = mBadgeCalendarsTable; +@synthesize listIDs = mListIDs; +@synthesize modelAccess = mModelAccess; +@synthesize delegate = mDelegate; + +- (void)dealloc { + [self.modelAccess removeCollectionChangedListener:self]; + self.listIDs = nil; + self.modelAccess = nil; + self.badgeCalendarsTable = nil; + self.quickCreateKeyComboRecorder = nil; + [super dealloc]; +} + +- (NSString*)windowNibName { + return @"ADLPreferences"; +} + +- (void)windowDidLoad { + [super windowDidLoad]; + [self.modelAccess addCollectionChangedListener:self]; + if([self.delegate hasQuickCreateKeyCombo]) { + self.quickCreateKeyComboRecorder.keyCombo = self.delegate.quickCreateKeyCombo; + } +} + +- (void)updatedStatusOfCellInTableView:(NSTableView*)tableView { + ADLListID* listID = [self.listIDs objectAtIndex:tableView.clickedRow]; + BOOL status = [self.modelAccess showsCountInBadgeForList:listID]; + [self.modelAccess setShowsCountInBadge:!status forList:listID]; +} + +- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView { + return self.listIDs.count; +} + +- (NSCell*)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + return tableColumn.dataCell; +} + +- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + return [self.listIDs objectAtIndex:row]; +} + +- (void)tableView:(NSTableView *)tableView willDisplayCell:(NSButtonCell*)cell forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { + cell.title = [self.modelAccess titleOfList:[self.listIDs objectAtIndex:row]]; + cell.state = [self.modelAccess showsCountInBadgeForList:[self.listIDs objectAtIndex:row]]; + cell.target = self; + cell.action = @selector(updatedStatusOfCellInTableView:); +} + +- (void)changedListsIDsTo:(NSArray *)newOrder { + self.listIDs = newOrder; + [self.badgeCalendarsTable reloadData]; +} + +- (void)shortcutRecorder:(SRRecorderControl *)aRecorder keyComboDidChange:(KeyCombo)newKeyCombo { + [self.delegate changedQuickCreateKeyComboTo:newKeyCombo]; +} + +@end diff --git a/julep-mac/Resources/ADLNewItem.xib b/julep-mac/Resources/ADLNewItem.xib new file mode 100644 index 0000000..431a249 --- /dev/null +++ b/julep-mac/Resources/ADLNewItem.xib @@ -0,0 +1,699 @@ + + + + 1070 + 11C74 + 1938 + 1138.23 + 567.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 1938 + + + YES + NSTextField + NSView + NSWindowTemplate + NSCustomObject + NSScrollView + NSTableView + NSButtonCell + NSTableColumn + NSButton + NSScroller + NSTextFieldCell + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + ADLNewItemController + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{196, 240}, {345, 204}} + 1618478080 + Create Item + NSWindow + + + + + 256 + + YES + + + 268 + {{20, 162}, {305, 22}} + + + + _NS:903 + YES + + -1804468671 + 272630784 + + + LucidaGrande + 13 + 1044 + + _NS:903 + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 268 + + YES + + + 2304 + + YES + + + 256 + {303, 92} + + + + _NS:1828 + YES + + + -2147483392 + {{224, 0}, {16, 17}} + _NS:1833 + + + YES + + 299.859375 + 40 + 1000 + + 75628096 + 2048 + + + LucidaGrande + 11 + 3100 + + + 3 + MC4zMzMzMzI5ODU2AA + + + 6 + System + headerTextColor + + + + + 67239488 + 306186240 + Text + + _NS:1970 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + 113246208 + + + 4 + 15 + 0 + YES + 0 + 1 + + + {{1, 1}, {303, 92}} + + + + _NS:1826 + + + 6 + System + controlBackgroundColor + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:1845 + + _doScroller: + 0.989247311827957 + + + + -2147483392 + {{1, 78}, {303, 15}} + + + + _NS:1847 + 1 + + _doScroller: + 0.99344262295081964 + + + {{20, 60}, {305, 94}} + + + + _NS:1824 + 133682 + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{250, 12}, {81, 32}} + + + + _NS:687 + YES + + 67239424 + 134217728 + Create + + _NS:687 + + -2038284033 + 129 + + DQ + 200 + 25 + + + + + 268 + {{168, 12}, {82, 32}} + + + + _NS:687 + YES + + 67239424 + 134217728 + Cancel + + _NS:687 + + -2038284033 + 129 + + Gw + 200 + 25 + + + + {345, 204} + + + + + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + ADLNewItemWindow + YES + + + + + YES + + + window + + + + 3 + + + + entryField + + + + 21 + + + + cancelButton + + + + 23 + + + + cancel: + + + + 24 + + + + create: + + + + 25 + + + + createButton + + + + 22 + + + + listTable + + + + 20 + + + + delegate + + + + 59 + + + + dataSource + + + + 57 + + + + delegate + + + + 58 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + + + 4 + + + YES + + + + + + 5 + + + + + 18 + + + YES + + + + + + 19 + + + + + 16 + + + YES + + + + + + 17 + + + + + 6 + + + YES + + + + + + + + 10 + + + + + 8 + + + + + 7 + + + YES + + + + + + 11 + + + YES + + + + + + 15 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 10.IBPluginDependency + 11.IBPluginDependency + 15.IBPluginDependency + 16.IBPluginDependency + 17.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 8.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{357, 418}, {480, 270}} + + 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 + + + + + + YES + + + + + 59 + + + + YES + + ADLNewItemController + NSWindowController + + YES + + YES + cancel: + create: + + + YES + id + id + + + + YES + + YES + cancel: + create: + + + YES + + cancel: + id + + + create: + id + + + + + YES + + YES + cancelButton + createButton + entryField + listTable + + + YES + NSButton + NSButton + NSTextField + NSTableView + + + + YES + + YES + cancelButton + createButton + entryField + listTable + + + YES + + cancelButton + NSButton + + + createButton + NSButton + + + entryField + NSTextField + + + listTable + NSTableView + + + + + IBProjectSource + ./Classes/ADLNewItemController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/julep-mac/en.lproj/ADLPreferences.xib b/julep-mac/en.lproj/ADLPreferences.xib new file mode 100644 index 0000000..3fcfbfd --- /dev/null +++ b/julep-mac/en.lproj/ADLPreferences.xib @@ -0,0 +1,617 @@ + + + + 1070 + 11C74 + 1938 + 1138.23 + 567.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 1938 + + + YES + NSView + NSCustomObject + NSScrollView + NSWindowTemplate + NSTextField + NSTextFieldCell + NSCustomView + NSButtonCell + NSTableColumn + NSScroller + NSTableView + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + ADLPreferencesController + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{196, 240}, {480, 270}} + 1886913536 + Preferences + NSWindow + + + + + 256 + + YES + + + 268 + + YES + + + 2304 + + YES + + + 256 + {238, 133} + + + + _NS:1828 + YES + + + -2147483392 + {{224, 0}, {16, 17}} + _NS:1833 + + + YES + + 235 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + + + LucidaGrande + 11 + 3100 + + + 6 + System + headerColor + + 3 + MQA + + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 67239424 + 0 + Check + + LucidaGrande + 13 + 1044 + + _NS:1895 + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -767557632 + + + 4 + 15 + 0 + YES + 0 + 1 + + + {{1, 1}, {238, 133}} + + + + _NS:1826 + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:1845 + + _doScroller: + 0.9925373134328358 + + + + -2147483392 + {{1, 119}, {238, 15}} + + + + _NS:1847 + 1 + + _doScroller: + 0.99581589958159 + + + {{120, 20}, {240, 135}} + + + + _NS:1824 + 133682 + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{117, 163}, {94, 17}} + + + + _NS:3944 + YES + + 68288064 + 272630784 + Show in Dock: + + _NS:3944 + + + 6 + System + controlColor + + + + 6 + System + controlTextColor + + + + + + + 268 + {{117, 217}, {108, 17}} + + + + _NS:3944 + YES + + 68288064 + 272630784 + Quick Entry Key: + + _NS:3944 + + + + + + + + 268 + {{230, 211}, {157, 28}} + + + + _NS:1192 + SRRecorderControl + + + {480, 270} + + + + + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + ADLPreferences + NO + + + + + YES + + + badgeCalendarsTable + + + + 24 + + + + window + + + + 25 + + + + quickCreateKeyComboRecorder + + + + 33 + + + + dataSource + + + + 26 + + + + delegate + + + + 27 + + + + delegate + + + + 32 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + + + 3 + + + YES + + + + + + + + 4 + + + YES + + + + + + 5 + + + + + 7 + + + + + 16 + + + YES + + + + + + 17 + + + + + 18 + + + YES + + + + + + 19 + + + + + 20 + + + + + 29 + + + YES + + + + + + 31 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 16.IBPluginDependency + 17.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBPluginDependency + 20.IBPluginDependency + 29.IBPluginDependency + 3.IBPluginDependency + 31.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 7.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{357, 418}, {480, 270}} + + 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 + + + + + + YES + + + + + 33 + + + + YES + + ADLPreferencesController + NSWindowController + + YES + + YES + badgeCalendarsTable + quickCreateKeyComboRecorder + + + YES + NSTableView + SRRecorderControl + + + + YES + + YES + badgeCalendarsTable + quickCreateKeyComboRecorder + + + YES + + badgeCalendarsTable + NSTableView + + + quickCreateKeyComboRecorder + SRRecorderControl + + + + + IBProjectSource + ./Classes/ADLPreferencesController.h + + + + SRRecorderControl + NSControl + + delegate + id + + + delegate + + delegate + id + + + + IBProjectSource + ./Classes/SRRecorderControl.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/julep-mac/en.lproj/MainMenu.xib b/julep-mac/en.lproj/MainMenu.xib index 483c110..21c7556 100644 --- a/julep-mac/en.lproj/MainMenu.xib +++ b/julep-mac/en.lproj/MainMenu.xib @@ -1073,6 +1073,14 @@ 545 + + + showPreferences: + + + + 546 + @@ -1716,13 +1724,24 @@ - 545 + 548 ADLAppDelegate NSObject + + showPreferences: + id + + + showPreferences: + + showPreferences: + id + + IBProjectSource ./Classes/ADLAppDelegate.h diff --git a/julep.xcodeproj/project.pbxproj b/julep.xcodeproj/project.pbxproj index ef6c20a..7cf91b3 100644 --- a/julep.xcodeproj/project.pbxproj +++ b/julep.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 77016CF8149E82D9009FA396 /* ShortcutRecorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77509C3014993A0900AFC11C /* ShortcutRecorder.framework */; }; 7709CE27143A56B6002DB3B6 /* ADLAgnosticDocumentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7709CE25143A56B6002DB3B6 /* ADLAgnosticDocumentViewController.m */; }; 7709CE35143BAF4E002DB3B6 /* ADLListsPileViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7709CE34143BAF4D002DB3B6 /* ADLListsPileViewController.m */; }; 7721D81A1402DBF90008A02D /* ADLNSScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7721D8191402DBF90008A02D /* ADLNSScrollView.m */; }; @@ -22,6 +23,13 @@ 772C683F1427D9A900CEF932 /* ADLLinen.png in Resources */ = {isa = PBXBuildFile; fileRef = 772C683E1427D9A900CEF932 /* ADLLinen.png */; }; 772C68431427E34F00CEF932 /* ADLListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 772C68411427E34F00CEF932 /* ADLListViewController.m */; }; 772C68441427E34F00CEF932 /* ADLListViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 772C68421427E34F00CEF932 /* ADLListViewController.xib */; }; + 773E9A4B14A28013001217FE /* ADLNewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77E6FB9914A2339E000FD06E /* ADLNewItem.xib */; }; + 773E9A4C14A28022001217FE /* ADLNewItemController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E6FB9C14A233B8000FD06E /* ADLNewItemController.m */; }; + 773E9A4D14A280D5001217FE /* ADLUIElementServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E6FBC214A27826000FD06E /* ADLUIElementServer.m */; }; + 773E9A5014A291A7001217FE /* ADLAppServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 773E9A4F14A291A7001217FE /* ADLAppServer.m */; }; + 773E9A5114A29533001217FE /* ADLAppServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 773E9A4F14A291A7001217FE /* ADLAppServer.m */; }; + 77509C3E14993B1100AFC11C /* ShortcutRecorder.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 77509C3014993A0900AFC11C /* ShortcutRecorder.framework */; }; + 77509C51149E485F00AFC11C /* ADLPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77509C50149E485F00AFC11C /* ADLPreferencesController.m */; }; 77530FE614229B3200C0645F /* ADLTabSelected.png in Resources */ = {isa = PBXBuildFile; fileRef = 77530FE414229B3200C0645F /* ADLTabSelected.png */; }; 77530FE714229B3200C0645F /* ADLTabUnselected.png in Resources */ = {isa = PBXBuildFile; fileRef = 77530FE514229B3200C0645F /* ADLTabUnselected.png */; }; 77530FE914229CF700C0645F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77530FE814229CF700C0645F /* Cocoa.framework */; }; @@ -30,6 +38,7 @@ 7754A8B41448EBAE00DBE182 /* ADLList.m in Sources */ = {isa = PBXBuildFile; fileRef = 7754A8B21448EBAE00DBE182 /* ADLList.m */; }; 7754A8B81448EBAF00DBE182 /* ADLListCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7754A8B61448EBAF00DBE182 /* ADLListCollection.m */; }; 7754A8BC1448ECBB00DBE182 /* CalCalendarStore+ADLAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7754A8BA1448ECBB00DBE182 /* CalCalendarStore+ADLAdditions.m */; }; + 775D650B1497FF06000FC9EB /* ADLPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 775D65091497FF06000FC9EB /* ADLPreferences.xib */; }; 77735EBE14687E350024D99A /* ADLList+CollectionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 77735EBC14687E350024D99A /* ADLList+CollectionAdditions.m */; }; 77735EC3146A33210024D99A /* NSSet+ADLAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 77735EC1146A33200024D99A /* NSSet+ADLAdditions.m */; }; 77735ECF146B2E9A0024D99A /* ADLItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 77735ECE146B2E9A0024D99A /* ADLItemView.m */; }; @@ -57,8 +66,74 @@ 77D8839C142545B500544311 /* ADLListsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77D8839B142545B500544311 /* ADLListsWindowController.m */; }; 77D8839E14255FD900544311 /* ADLListsWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77D8839D14255FD900544311 /* ADLListsWindowController.xib */; }; 77E51ADE142FB28B005A445E /* ADLDocumentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E51ADB142FB27C005A445E /* ADLDocumentViewController.m */; }; + 77E6FBA414A24D44000FD06E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7722BF281402A431003498D8 /* Cocoa.framework */; }; + 77E6FBAA14A24D44000FD06E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 77E6FBA814A24D44000FD06E /* InfoPlist.strings */; }; + 77E6FBAC14A24D44000FD06E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E6FBAB14A24D44000FD06E /* main.m */; }; + 77E6FBB014A24D44000FD06E /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 77E6FBAE14A24D44000FD06E /* Credits.rtf */; }; + 77E6FBB314A24D44000FD06E /* ADLUIElementDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E6FBB214A24D44000FD06E /* ADLUIElementDelegate.m */; }; + 77E6FBB614A24D44000FD06E /* ADLLUIElementMain.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77E6FBB414A24D44000FD06E /* ADLLUIElementMain.xib */; }; + 77E6FBC014A257A4000FD06E /* Julep-UIElement.app in Resources */ = {isa = PBXBuildFile; fileRef = 77E6FBA214A24D44000FD06E /* Julep-UIElement.app */; }; + 77E6FBC314A27826000FD06E /* ADLUIElementServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E6FBC214A27826000FD06E /* ADLUIElementServer.m */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 77509C2F14993A0900AFC11C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 939837800DA42965007F53F3; + remoteInfo = "ShortcutRecorder.framework - with embedded ibplugin"; + }; + 77509C3114993A0900AFC11C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 939838A50DA4300F007F53F3; + remoteInfo = "ShortcutRecorder.ibplugin - for embedding in framework"; + }; + 77509C3314993A0900AFC11C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 93983B220DA43C4E007F53F3; + remoteInfo = ShortcutRecorderFramework_Tester; + }; + 77509C3514993A0900AFC11C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 342E00CF109CCBF5009AD8CA; + remoteInfo = "ShortcutRecorder.ibplugin - standalone"; + }; + 77509C3714993A0900AFC11C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 342E0104109CCC36009AD8CA; + remoteInfo = "ShortcutRecorder.framework - for embedding in ibplugin"; + }; + 77E6FBBB14A24F43000FD06E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 77225DF01401AFA80003ECDE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 77E6FBA114A24D44000FD06E; + remoteInfo = "Julep-UIElement"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 77509C3B14993B0400AFC11C /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 77509C3E14993B1100AFC11C /* ShortcutRecorder.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 7709CE24143A56B6002DB3B6 /* ADLAgnosticDocumentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADLAgnosticDocumentViewController.h; path = Shared/ADLAgnosticDocumentViewController.h; sourceTree = ""; }; 7709CE25143A56B6002DB3B6 /* ADLAgnosticDocumentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ADLAgnosticDocumentViewController.m; path = Shared/ADLAgnosticDocumentViewController.m; sourceTree = ""; }; @@ -95,16 +170,21 @@ 77262CFB14314AB800392054 /* ADLListsDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ADLListsDocument.m; path = "julep-mac/ADLListsDocument.m"; sourceTree = ""; }; 772C683B1427D45200CEF932 /* ADLColorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLColorView.h; sourceTree = ""; }; 772C683C1427D45200CEF932 /* ADLColorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLColorView.m; sourceTree = ""; }; - 772C683E1427D9A900CEF932 /* ADLLinen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ADLLinen.png; path = "julep-mac/Resources/ADLLinen.png"; sourceTree = ""; }; + 772C683E1427D9A900CEF932 /* ADLLinen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ADLLinen.png; path = Resources/ADLLinen.png; sourceTree = ""; }; 772C68401427E34F00CEF932 /* ADLListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLListViewController.h; sourceTree = ""; }; 772C68411427E34F00CEF932 /* ADLListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLListViewController.m; sourceTree = ""; }; - 772C68421427E34F00CEF932 /* ADLListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ADLListViewController.xib; path = "julep-mac/ADLListViewController.xib"; sourceTree = ""; }; + 772C68421427E34F00CEF932 /* ADLListViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ADLListViewController.xib; sourceTree = ""; }; 773BBDCB143F8CD5001BCCB6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 773BBDCE143F8CFE001BCCB6 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 773BBDCF143F8CFE001BCCB6 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 773BBDD2143F8D1C001BCCB6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 77530FE414229B3200C0645F /* ADLTabSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ADLTabSelected.png; path = "julep-mac/Resources/ADLTabSelected.png"; sourceTree = ""; }; - 77530FE514229B3200C0645F /* ADLTabUnselected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ADLTabUnselected.png; path = "julep-mac/Resources/ADLTabUnselected.png"; sourceTree = ""; }; + 773E9A4E14A291A7001217FE /* ADLAppServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADLAppServer.h; path = "julep-mac/ADLAppServer.h"; sourceTree = ""; }; + 773E9A4F14A291A7001217FE /* ADLAppServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ADLAppServer.m; path = "julep-mac/ADLAppServer.m"; sourceTree = ""; }; + 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ShortcutRecorder.xcodeproj; path = "shortcutrecorder-read-only/ShortcutRecorder.xcodeproj"; sourceTree = ""; }; + 77509C4F149E485F00AFC11C /* ADLPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLPreferencesController.h; sourceTree = ""; }; + 77509C50149E485F00AFC11C /* ADLPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLPreferencesController.m; sourceTree = ""; }; + 77530FE414229B3200C0645F /* ADLTabSelected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ADLTabSelected.png; path = Resources/ADLTabSelected.png; sourceTree = ""; }; + 77530FE514229B3200C0645F /* ADLTabUnselected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ADLTabUnselected.png; path = Resources/ADLTabUnselected.png; sourceTree = ""; }; 77530FE814229CF700C0645F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; 7754A88614489E4200DBE182 /* CalendarStore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CalendarStore.framework; path = /System/Library/Frameworks/CalendarStore.framework; sourceTree = ""; }; 7754A8AD1448EBAE00DBE182 /* ADLItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADLItem.h; path = Shared/ADLItem.h; sourceTree = ""; }; @@ -115,6 +195,7 @@ 7754A8B61448EBAF00DBE182 /* ADLListCollection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ADLListCollection.m; path = Shared/ADLListCollection.m; sourceTree = ""; }; 7754A8B91448ECBB00DBE182 /* CalCalendarStore+ADLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CalCalendarStore+ADLAdditions.h"; sourceTree = ""; }; 7754A8BA1448ECBB00DBE182 /* CalCalendarStore+ADLAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CalCalendarStore+ADLAdditions.m"; sourceTree = ""; }; + 775D650A1497FF06000FC9EB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ADLPreferences.xib; sourceTree = ""; }; 77735EBB14687E340024D99A /* ADLList+CollectionAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ADLList+CollectionAdditions.h"; path = "Shared/ADLList+CollectionAdditions.h"; sourceTree = ""; }; 77735EBC14687E350024D99A /* ADLList+CollectionAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "ADLList+CollectionAdditions.m"; path = "Shared/ADLList+CollectionAdditions.m"; sourceTree = ""; }; 77735EC0146A33200024D99A /* NSSet+ADLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSSet+ADLAdditions.h"; path = "Shared/NSSet+ADLAdditions.h"; sourceTree = ""; }; @@ -144,7 +225,7 @@ 77B986C91402C14E004A2293 /* ADLTabView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADLTabView.h; path = Shared/ADLTabView.h; sourceTree = ""; }; 77B986CA1402C56D004A2293 /* ADLNSTabViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLNSTabViewController.h; sourceTree = ""; }; 77B986CB1402C56D004A2293 /* ADLNSTabViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLNSTabViewController.m; sourceTree = ""; }; - 77B986CC1402C56D004A2293 /* ADLNSTabViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ADLNSTabViewController.xib; path = "julep-mac/ADLNSTabViewController.xib"; sourceTree = ""; }; + 77B986CC1402C56D004A2293 /* ADLNSTabViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ADLNSTabViewController.xib; sourceTree = ""; }; 77B986D01402CCFD004A2293 /* ADLNSTabView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLNSTabView.h; sourceTree = ""; }; 77B986D11402CCFD004A2293 /* ADLNSTabView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ADLNSTabView.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; 77C1EB6C1486EA2D008AC04C /* ADLConcreteItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADLConcreteItem.h; path = Shared/ADLConcreteItem.h; sourceTree = ""; }; @@ -156,14 +237,28 @@ 77CEF9461496B4BF00504287 /* ADLShadowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLShadowView.m; sourceTree = ""; }; 77D883911424361A00544311 /* ADLPileViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLPileViewController.h; sourceTree = ""; }; 77D883921424361A00544311 /* ADLPileViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLPileViewController.m; sourceTree = ""; }; - 77D883931424361B00544311 /* ADLPileViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ADLPileViewController.xib; path = "julep-mac/ADLPileViewController.xib"; sourceTree = ""; }; + 77D883931424361B00544311 /* ADLPileViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ADLPileViewController.xib; sourceTree = ""; }; 77D883971424383300544311 /* NSShadow+ADLExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSShadow+ADLExtensions.h"; sourceTree = ""; }; 77D883981424383300544311 /* NSShadow+ADLExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSShadow+ADLExtensions.m"; sourceTree = ""; }; 77D8839A142545B500544311 /* ADLListsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLListsWindowController.h; sourceTree = ""; }; 77D8839B142545B500544311 /* ADLListsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLListsWindowController.m; sourceTree = ""; }; - 77D8839D14255FD900544311 /* ADLListsWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ADLListsWindowController.xib; path = "julep-mac/ADLListsWindowController.xib"; sourceTree = ""; }; + 77D8839D14255FD900544311 /* ADLListsWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ADLListsWindowController.xib; sourceTree = ""; }; 77E51ADA142FB27C005A445E /* ADLDocumentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLDocumentViewController.h; sourceTree = ""; }; 77E51ADB142FB27C005A445E /* ADLDocumentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLDocumentViewController.m; sourceTree = ""; }; + 77E6FB9914A2339E000FD06E /* ADLNewItem.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ADLNewItem.xib; path = Resources/ADLNewItem.xib; sourceTree = ""; }; + 77E6FB9B14A233B8000FD06E /* ADLNewItemController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ADLNewItemController.h; path = "../julep-mac/ADLNewItemController.h"; sourceTree = ""; }; + 77E6FB9C14A233B8000FD06E /* ADLNewItemController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ADLNewItemController.m; path = "../julep-mac/ADLNewItemController.m"; sourceTree = ""; }; + 77E6FBA214A24D44000FD06E /* Julep-UIElement.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Julep-UIElement.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 77E6FBA714A24D44000FD06E /* Julep-UIElement-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Julep-UIElement-Info.plist"; sourceTree = ""; }; + 77E6FBA914A24D44000FD06E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 77E6FBAB14A24D44000FD06E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 77E6FBAD14A24D44000FD06E /* Julep-UIElement-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Julep-UIElement-Prefix.pch"; sourceTree = ""; }; + 77E6FBAF14A24D44000FD06E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; + 77E6FBB114A24D44000FD06E /* ADLUIElementDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ADLUIElementDelegate.h; sourceTree = ""; }; + 77E6FBB214A24D44000FD06E /* ADLUIElementDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ADLUIElementDelegate.m; sourceTree = ""; }; + 77E6FBB514A24D44000FD06E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ADLLUIElementMain.xib; sourceTree = ""; }; + 77E6FBC114A27826000FD06E /* ADLUIElementServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADLUIElementServer.h; sourceTree = ""; }; + 77E6FBC214A27826000FD06E /* ADLUIElementServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADLUIElementServer.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -171,12 +266,21 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 77016CF8149E82D9009FA396 /* ShortcutRecorder.framework in Frameworks */, 7754A88714489E4200DBE182 /* CalendarStore.framework in Frameworks */, 77530FE914229CF700C0645F /* Cocoa.framework in Frameworks */, 778897671402D33D00493E14 /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; + 77E6FB9F14A24D44000FD06E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 77E6FBA414A24D44000FD06E /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -185,23 +289,18 @@ children = ( 7722BF3A1402A431003498D8 /* ADLAppDelegate.h */, 7722BF3B1402A431003498D8 /* ADLAppDelegate.m */, + 773E9A4E14A291A7001217FE /* ADLAppServer.h */, + 773E9A4F14A291A7001217FE /* ADLAppServer.m */, 779F2423141D1B87004BB02D /* ADLNSGestureConstants.h */, + 77E6FBA514A24D44000FD06E /* Julep-UIElement */, 7770675F140830850088AB85 /* Views */, - 7745208A140585C300B993F1 /* Utilities */, - 7722BF2F1402A431003498D8 /* Supporting Files */, - 77452089140585AF00B993F1 /* Resources */, - 77B63FB9143E0D7E00739196 /* julep.xcdatamodeld */, - 7722BF3D1402A431003498D8 /* MainMenu.xib */, - 77D8839D14255FD900544311 /* ADLListsWindowController.xib */, - 77D883931424361B00544311 /* ADLPileViewController.xib */, - 77B986CC1402C56D004A2293 /* ADLNSTabViewController.xib */, - 77530FE414229B3200C0645F /* ADLTabSelected.png */, - 77530FE514229B3200C0645F /* ADLTabUnselected.png */, - 772C683E1427D9A900CEF932 /* ADLLinen.png */, - 772C68421427E34F00CEF932 /* ADLListViewController.xib */, 7798CE921487161C00FFD39E /* Foundation Additions */, 778D82891433B4300053BC49 /* Model */, 7722BF691402A62D003498D8 /* Shared */, + 7745208A140585C300B993F1 /* Utilities */, + 7722BF2F1402A431003498D8 /* Supporting Files */, + 77452089140585AF00B993F1 /* Resources */, + 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */, 77225DFC1401AFA80003ECDE /* Frameworks */, 77225DFA1401AFA80003ECDE /* Products */, ); @@ -211,6 +310,7 @@ isa = PBXGroup; children = ( 7722BF261402A431003498D8 /* Julep.app */, + 77E6FBA214A24D44000FD06E /* Julep-UIElement.app */, ); name = Products; sourceTree = ""; @@ -286,6 +386,18 @@ 77452089140585AF00B993F1 /* Resources */ = { isa = PBXGroup; children = ( + 77B63FB9143E0D7E00739196 /* julep.xcdatamodeld */, + 772C68421427E34F00CEF932 /* ADLListViewController.xib */, + 77D8839D14255FD900544311 /* ADLListsWindowController.xib */, + 77C2F91A1479616800DED2FC /* ADLNewItemViewController.xib */, + 77E6FB9914A2339E000FD06E /* ADLNewItem.xib */, + 77D883931424361B00544311 /* ADLPileViewController.xib */, + 775D65091497FF06000FC9EB /* ADLPreferences.xib */, + 77B986CC1402C56D004A2293 /* ADLNSTabViewController.xib */, + 7722BF3D1402A431003498D8 /* MainMenu.xib */, + 77530FE414229B3200C0645F /* ADLTabSelected.png */, + 77530FE514229B3200C0645F /* ADLTabUnselected.png */, + 772C683E1427D9A900CEF932 /* ADLLinen.png */, ); name = Resources; path = "julep-mac"; @@ -305,6 +417,18 @@ path = "julep-mac"; sourceTree = ""; }; + 77509C2314993A0900AFC11C /* Products */ = { + isa = PBXGroup; + children = ( + 77509C3014993A0900AFC11C /* ShortcutRecorder.framework */, + 77509C3214993A0900AFC11C /* ShortcutRecorder.ibplugin */, + 77509C3414993A0900AFC11C /* ShortcutRecorder.app */, + 77509C3614993A0900AFC11C /* ShortcutRecorder.ibplugin */, + 77509C3814993A0900AFC11C /* ShortcutRecorder.framework */, + ); + name = Products; + sourceTree = ""; + }; 77530FEA14229D0700C0645F /* Desktop */ = { isa = PBXGroup; children = ( @@ -318,6 +442,8 @@ 7770675F140830850088AB85 /* Views */ = { isa = PBXGroup; children = ( + 77509C4F149E485F00AFC11C /* ADLPreferencesController.h */, + 77509C50149E485F00AFC11C /* ADLPreferencesController.m */, 77CEF9451496B4BF00504287 /* ADLShadowView.h */, 77CEF9461496B4BF00504287 /* ADLShadowView.m */, 7798CE9D1487236B00FFD39E /* ADLItemDragRecord.h */, @@ -325,7 +451,6 @@ 777067601408308F0088AB85 /* Main View */, 77C2F9181479616800DED2FC /* ADLNewItemViewController.h */, 77C2F9191479616800DED2FC /* ADLNewItemViewController.m */, - 77C2F91A1479616800DED2FC /* ADLNewItemViewController.xib */, 7721D8181402DBF90008A02D /* ADLNSScrollView.h */, 7721D8191402DBF90008A02D /* ADLNSScrollView.m */, 7721D81C1402DDA20008A02D /* ADLNSViewManipulator.h */, @@ -398,6 +523,33 @@ name = "Foundation Additions"; sourceTree = ""; }; + 77E6FBA514A24D44000FD06E /* Julep-UIElement */ = { + isa = PBXGroup; + children = ( + 77E6FB9B14A233B8000FD06E /* ADLNewItemController.h */, + 77E6FB9C14A233B8000FD06E /* ADLNewItemController.m */, + 77E6FBC114A27826000FD06E /* ADLUIElementServer.h */, + 77E6FBC214A27826000FD06E /* ADLUIElementServer.m */, + 77E6FBB114A24D44000FD06E /* ADLUIElementDelegate.h */, + 77E6FBB214A24D44000FD06E /* ADLUIElementDelegate.m */, + 77E6FBB414A24D44000FD06E /* ADLLUIElementMain.xib */, + 77E6FBA614A24D44000FD06E /* Supporting Files */, + ); + path = "Julep-UIElement"; + sourceTree = ""; + }; + 77E6FBA614A24D44000FD06E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 77E6FBA714A24D44000FD06E /* Julep-UIElement-Info.plist */, + 77E6FBA814A24D44000FD06E /* InfoPlist.strings */, + 77E6FBAB14A24D44000FD06E /* main.m */, + 77E6FBAD14A24D44000FD06E /* Julep-UIElement-Prefix.pch */, + 77E6FBAE14A24D44000FD06E /* Credits.rtf */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -408,16 +560,35 @@ 7722BF221402A430003498D8 /* Sources */, 7722BF231402A430003498D8 /* Frameworks */, 7722BF241402A430003498D8 /* Resources */, + 77509C3B14993B0400AFC11C /* CopyFiles */, ); buildRules = ( ); dependencies = ( + 77E6FBBC14A24F43000FD06E /* PBXTargetDependency */, ); name = julep; productName = "julep-mac"; productReference = 7722BF261402A431003498D8 /* Julep.app */; productType = "com.apple.product-type.application"; }; + 77E6FBA114A24D44000FD06E /* Julep-UIElement */ = { + isa = PBXNativeTarget; + buildConfigurationList = 77E6FBB714A24D44000FD06E /* Build configuration list for PBXNativeTarget "Julep-UIElement" */; + buildPhases = ( + 77E6FB9E14A24D44000FD06E /* Sources */, + 77E6FB9F14A24D44000FD06E /* Frameworks */, + 77E6FBA014A24D44000FD06E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Julep-UIElement"; + productName = "Julep-UIElement"; + productReference = 77E6FBA214A24D44000FD06E /* Julep-UIElement.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -436,13 +607,58 @@ mainGroup = 77225DEE1401AFA80003ECDE; productRefGroup = 77225DFA1401AFA80003ECDE /* Products */; projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 77509C2314993A0900AFC11C /* Products */; + ProjectRef = 77509C2214993A0900AFC11C /* ShortcutRecorder.xcodeproj */; + }, + ); projectRoot = ""; targets = ( 7722BF251402A430003498D8 /* julep */, + 77E6FBA114A24D44000FD06E /* Julep-UIElement */, ); }; /* End PBXProject section */ +/* Begin PBXReferenceProxy section */ + 77509C3014993A0900AFC11C /* ShortcutRecorder.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = ShortcutRecorder.framework; + remoteRef = 77509C2F14993A0900AFC11C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 77509C3214993A0900AFC11C /* ShortcutRecorder.ibplugin */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = ShortcutRecorder.ibplugin; + remoteRef = 77509C3114993A0900AFC11C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 77509C3414993A0900AFC11C /* ShortcutRecorder.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = ShortcutRecorder.app; + remoteRef = 77509C3314993A0900AFC11C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 77509C3614993A0900AFC11C /* ShortcutRecorder.ibplugin */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = ShortcutRecorder.ibplugin; + remoteRef = 77509C3514993A0900AFC11C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 77509C3814993A0900AFC11C /* ShortcutRecorder.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = ShortcutRecorder.framework; + remoteRef = 77509C3714993A0900AFC11C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + /* Begin PBXResourcesBuildPhase section */ 7722BF241402A430003498D8 /* Resources */ = { isa = PBXResourcesBuildPhase; @@ -459,6 +675,19 @@ 772C683F1427D9A900CEF932 /* ADLLinen.png in Resources */, 772C68441427E34F00CEF932 /* ADLListViewController.xib in Resources */, 77C2F91C1479616800DED2FC /* ADLNewItemViewController.xib in Resources */, + 775D650B1497FF06000FC9EB /* ADLPreferences.xib in Resources */, + 77E6FBC014A257A4000FD06E /* Julep-UIElement.app in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77E6FBA014A24D44000FD06E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77E6FBAA14A24D44000FD06E /* InfoPlist.strings in Resources */, + 77E6FBB014A24D44000FD06E /* Credits.rtf in Resources */, + 77E6FBB614A24D44000FD06E /* ADLLUIElementMain.xib in Resources */, + 773E9A4B14A28013001217FE /* ADLNewItem.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -505,11 +734,34 @@ 7798CE9F1487236B00FFD39E /* ADLItemDragRecord.m in Sources */, 7791575F149693DF009E7749 /* ADLTableView.m in Sources */, 77CEF9471496B4BF00504287 /* ADLShadowView.m in Sources */, + 77509C51149E485F00AFC11C /* ADLPreferencesController.m in Sources */, + 773E9A4D14A280D5001217FE /* ADLUIElementServer.m in Sources */, + 773E9A5014A291A7001217FE /* ADLAppServer.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 77E6FB9E14A24D44000FD06E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77E6FBAC14A24D44000FD06E /* main.m in Sources */, + 77E6FBB314A24D44000FD06E /* ADLUIElementDelegate.m in Sources */, + 77E6FBC314A27826000FD06E /* ADLUIElementServer.m in Sources */, + 773E9A4C14A28022001217FE /* ADLNewItemController.m in Sources */, + 773E9A5114A29533001217FE /* ADLAppServer.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 77E6FBBC14A24F43000FD06E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 77E6FBA114A24D44000FD06E /* Julep-UIElement */; + targetProxy = 77E6FBBB14A24F43000FD06E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin PBXVariantGroup section */ 7722BF311402A431003498D8 /* InfoPlist.strings */ = { isa = PBXVariantGroup; @@ -533,7 +785,38 @@ 7722BF3E1402A431003498D8 /* en */, ); name = MainMenu.xib; - path = "julep-mac"; + sourceTree = ""; + }; + 775D65091497FF06000FC9EB /* ADLPreferences.xib */ = { + isa = PBXVariantGroup; + children = ( + 775D650A1497FF06000FC9EB /* en */, + ); + name = ADLPreferences.xib; + sourceTree = ""; + }; + 77E6FBA814A24D44000FD06E /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 77E6FBA914A24D44000FD06E /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 77E6FBAE14A24D44000FD06E /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + 77E6FBAF14A24D44000FD06E /* en */, + ); + name = Credits.rtf; + sourceTree = ""; + }; + 77E6FBB414A24D44000FD06E /* ADLLUIElementMain.xib */ = { + isa = PBXVariantGroup; + children = ( + 77E6FBB514A24D44000FD06E /* en */, + ); + name = ADLLUIElementMain.xib; sourceTree = ""; }; /* End PBXVariantGroup section */ @@ -554,6 +837,7 @@ "$(inherited)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -573,6 +857,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; @@ -642,6 +927,48 @@ }; name = Release; }; + 77E6FBB814A24D44000FD06E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Julep-UIElement/Julep-UIElement-Prefix.pch"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + INFOPLIST_FILE = "Julep-UIElement/Julep-UIElement-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 77E6FBB914A24D44000FD06E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Julep-UIElement/Julep-UIElement-Prefix.pch"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + INFOPLIST_FILE = "Julep-UIElement/Julep-UIElement-Info.plist"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -663,6 +990,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 77E6FBB714A24D44000FD06E /* Build configuration list for PBXNativeTarget "Julep-UIElement" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 77E6FBB814A24D44000FD06E /* Debug */, + 77E6FBB914A24D44000FD06E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ @@ -673,7 +1009,7 @@ ); currentVersion = 77B63FBA143E0D7E00739196 /* julep_mac.xcdatamodel */; name = julep.xcdatamodeld; - path = Shared/julep.xcdatamodeld; + path = ../Shared/julep.xcdatamodeld; sourceTree = ""; versionGroupType = wrapper.xcdatamodel; };