diff --git a/FileWatcherExample/.DS_Store b/FileWatcherExample/.DS_Store new file mode 100644 index 0000000..164350f Binary files /dev/null and b/FileWatcherExample/.DS_Store differ diff --git a/FileWatcherExample/Classes/FileWatcher.h b/FileWatcherExample/Classes/FileWatcher.h new file mode 100644 index 0000000..482466f --- /dev/null +++ b/FileWatcherExample/Classes/FileWatcher.h @@ -0,0 +1,33 @@ +// +// FileWatcher.h +// GitSync +// +// Abstract: FileWatcher watches for changes on a set of files and calls fileDidChangeAtPath. +// +// Created by Peter Sugihara on 1/4/11. +// Copyright 2011 Peter Sugihara. All rights reserved. +// + +#import + +@protocol FileWatcherDelegate; +@interface FileWatcher : NSObject { +@private + NSMutableDictionary *fileModificationDates; // Keys are bookmarks being watched. + id delegate; + NSRunLoop *runLoop; + NSFileManager *fm; +} + +- (void)watchFileAtURL:(NSURL *)path; +- (void)stopWatchingFileAtURL:(NSURL *)path; + +@property (nonatomic, assign) id delegate; +@property (nonatomic, retain) NSMutableDictionary *fileModificationDates; + +@end + + +@protocol FileWatcherDelegate +- (void)fileDidChangeAtURL:(NSURL *)notification; +@end \ No newline at end of file diff --git a/FileWatcherExample/Classes/FileWatcher.m b/FileWatcherExample/Classes/FileWatcher.m new file mode 100644 index 0000000..d117438 --- /dev/null +++ b/FileWatcherExample/Classes/FileWatcher.m @@ -0,0 +1,118 @@ +// +// FileWatcher.m +// GitSync +// +// Created by Peter Sugihara on 1/4/11. +// Copyright 2011 Peter Sugihara. All rights reserved. +// + +#import "FileWatcher.h" + +@interface FileWatcher() +- (void)startWatching; +- (void)checkForUpdates; +- (NSDate *)modificationDateForURL:(NSURL *)url; +- (NSURL *)urlFromBookmark:(NSData *)bookmark; +- (NSData *)bookmarkFromURL:(NSURL *)url; + +@end + + +@implementation FileWatcher +@synthesize delegate; +@synthesize fileModificationDates; + +- (id)init { + if ((self = [super init])) { + fm = [[NSFileManager alloc] init]; + fileModificationDates = [[NSMutableDictionary alloc] init]; + [self startWatching]; + } + + return self; +} + +- (void)watchFileAtURL:(NSURL *)url { + NSData *bookmark = [self bookmarkFromURL:url]; + NSDate *modDate = [self modificationDateForURL:url]; + + [fileModificationDates setObject:modDate forKey:bookmark]; +} + +- (void)stopWatchingFileAtURL:(NSURL *)url { + for (NSURL *watchedURL in [fileModificationDates allKeys]) { + if ([watchedURL isEqual:url]) + [fileModificationDates removeObjectForKey:url]; + } +} + +- (NSDate *)modificationDateForURL:(NSURL *)URL { + NSDictionary *fileAttributes = [fm attributesOfItemAtPath:[URL path] error:NULL]; + NSDate *modDate = [fileAttributes fileModificationDate]; + return modDate; +} + +- (void)startWatching { + int latency = 3; + NSTimer *timer = [NSTimer timerWithTimeInterval:latency + target:self + selector:@selector(checkForUpdates) + userInfo:nil + repeats:YES]; + runLoop = [NSRunLoop currentRunLoop]; + [runLoop addTimer:timer forMode:NSDefaultRunLoopMode]; +} + +- (void)checkForUpdates { + for (NSData *bookmark in [fileModificationDates allKeys]) { + NSURL *watchedURL = [self urlFromBookmark:bookmark]; + NSDate *modDate = [self modificationDateForURL:watchedURL]; + // Fires YES the first time it's called after the program turns on. + // Not sure why, don't really care right now. [Sorry !]; + if ([modDate compare:[fileModificationDates objectForKey:bookmark + ]] == NSOrderedDescending) { + [fileModificationDates setObject:modDate forKey:bookmark]; // update modDate + [delegate fileDidChangeAtURL:watchedURL]; // callback + } + } +} + +- (NSData *)bookmarkFromURL:(NSURL *)url { + NSData *bookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationMinimalBookmark + includingResourceValuesForKeys:NULL + relativeToURL:NULL + error:NULL]; + return bookmark; +} + +- (NSURL *)urlFromBookmark:(NSData *)bookmark { + NSURL *url = [NSURL URLByResolvingBookmarkData:bookmark + options:NSURLBookmarkResolutionWithoutUI + relativeToURL:NULL + bookmarkDataIsStale:NO + error:NULL]; + return url; +} + +- (void)dealloc { + // Clean-up code here. + [super dealloc]; +} + +#pragma mark - +#pragma mark NSCoding + +- (id)initWithCoder:(NSCoder *)decoder { + if ((self = [self init])) { + NSDictionary *decoded = [decoder decodeObjectForKey:@"fileModificationDates"]; + [fileModificationDates setDictionary:decoded]; + } + + return self; +} + +- (void)encodeWithCoder:(NSCoder *)encoder { + [encoder encodeObject:fileModificationDates forKey:@"fileModificationDates"]; +} + +@end diff --git a/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.h b/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.h new file mode 100644 index 0000000..d87b7a7 --- /dev/null +++ b/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.h @@ -0,0 +1,20 @@ +// +// FileWatcherExampleAppDelegate.h +// FileWatcherExample +// +// Created by Peter Sugihara on 2/8/11. +// Copyright 2011 Bard College. All rights reserved. +// + +#import +#import "FileWatcher.h" + +@interface FileWatcherExampleAppDelegate : NSObject { + FileWatcher *watcher; +} + +- (void)fileDidChangeAtURL:(NSURL *)url; +- (void)watchFileAtURL:(NSURL *)url; +- (void)stopWatchingFileAtURL:(NSURL *)url; + +@end diff --git a/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m b/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m new file mode 100644 index 0000000..5cca15b --- /dev/null +++ b/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m @@ -0,0 +1,34 @@ +// +// FileWatcherExampleAppDelegate.m +// FileWatcherExample +// +// Created by Peter Sugihara on 2/8/11. +// Copyright 2011 Bard College. All rights reserved. +// + +#import "FileWatcherExampleAppDelegate.h" + +@implementation FileWatcherExampleAppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + watcher = [[FileWatcher alloc] init]; + watcher.delegate = self; + + // A test watch: + // [self watchFileAtURL:[NSURL URLWithString:@"path/to/file"]]; +} + +- (void)fileDidChangeAtURL:(NSURL *)url { + NSLog(@"i saw that, %@!", url); +} + +- (void)watchFileAtURL:(NSURL *)url { + [watcher watchFileAtURL:url]; +} + +- (void)stopWatchingFileAtURL:(NSURL *)url { + [watcher stopWatchingFileAtURL:url]; +} + + +@end diff --git a/FileWatcherExample/FileWatcherExample-Info.plist b/FileWatcherExample/FileWatcherExample-Info.plist new file mode 100644 index 0000000..e39b96a --- /dev/null +++ b/FileWatcherExample/FileWatcherExample-Info.plist @@ -0,0 +1,34 @@ + + + + + + CFBundleIdentifier + edu.pys.${PRODUCT_NAME:rfc1034identifier} + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + CFBundleVersion + 1 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + + diff --git a/FileWatcherExample/FileWatcherExample-Prefix.pch b/FileWatcherExample/FileWatcherExample-Prefix.pch new file mode 100644 index 0000000..4f20844 --- /dev/null +++ b/FileWatcherExample/FileWatcherExample-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'FileWatcherExample' target in the 'FileWatcherExample' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/FileWatcherExample/FileWatcherExample-main.m b/FileWatcherExample/FileWatcherExample-main.m new file mode 100644 index 0000000..b6e041e --- /dev/null +++ b/FileWatcherExample/FileWatcherExample-main.m @@ -0,0 +1,13 @@ +// +// FileWatcherExample-main.m +// FileWatcherExample +// +// Created by Peter Sugihara on 2/8/11. +// Copyright 2011 Bard College. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) { + return NSApplicationMain(argc, (const char **) argv); +} diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/petersugihara.mode1v3 b/FileWatcherExample/FileWatcherExample.xcodeproj/petersugihara.mode1v3 new file mode 100644 index 0000000..416eac9 --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/petersugihara.mode1v3 @@ -0,0 +1,1365 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + A1644A931301A7C9006C481C + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + A10C68F013019CC400B13716 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 445}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 463}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 326 295 788 504 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + FileWatcher.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + FileWatcher.m + _historyCapacity + 0 + bookmark + A1644A901301A7C9006C481C + history + + A1644A8F1301A7C9006C481C + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {580, 277}} + RubberWindowFrame + 326 295 788 504 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 277pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 282}, {580, 181}} + RubberWindowFrame + 326 295 788 504 0 0 1440 878 + + Module + XCDetailModule + Proportion + 181pt + + + Proportion + 580pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + A1644A911301A7C9006C481C + 1CE0B1FE06471DED0097A5F4 + A1644A921301A7C9006C481C + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + A1644A941301A7C9006C481C + /Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample.xcodeproj + + WindowString + 326 295 788 504 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 347 276 500 500 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 347 276 500 500 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + A1644A941301A7C9006C481C + A1644A951301A7C9006C481C + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 347 276 500 500 0 0 1440 878 + WindowToolGUID + A1644A941301A7C9006C481C + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 250}} + RubberWindowFrame + 516 632 650 250 0 0 1680 1027 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 650 41 650 250 0 0 1280 1002 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/petersugihara.pbxuser b/FileWatcherExample/FileWatcherExample.xcodeproj/petersugihara.pbxuser new file mode 100644 index 0000000..40654e7 --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/petersugihara.pbxuser @@ -0,0 +1,131 @@ +// !$*UTF8*$! +{ + A10C68F213019CC400B13716 /* Project object */ = { + activeBuildConfigurationName = Debug; + activeExecutable = A1644A871301A7C2006C481C /* FileWatcherExample */; + activeTarget = A10C68FE13019CC400B13716 /* FileWatcherExample */; + addToTargets = ( + A10C68FE13019CC400B13716 /* FileWatcherExample */, + ); + codeSenseManager = A1644A971301A7C9006C481C /* Code sense */; + executables = ( + A1644A871301A7C2006C481C /* FileWatcherExample */, + ); + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 341, + 20, + 48.16259765625, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 318875586; + PBXWorkspaceStateSaveDate = 318875586; + }; + perUserProjectItems = { + A1644A8F1301A7C9006C481C /* PBXTextBookmark */ = A1644A8F1301A7C9006C481C /* PBXTextBookmark */; + A1644A901301A7C9006C481C /* PBXTextBookmark */ = A1644A901301A7C9006C481C /* PBXTextBookmark */; + }; + sourceControlManager = A1644A961301A7C9006C481C /* Source Control */; + userBuildSettings = { + }; + }; + A10C68FE13019CC400B13716 /* FileWatcherExample */ = { + activeExec = 0; + executables = ( + A1644A871301A7C2006C481C /* FileWatcherExample */, + ); + }; + A10C691913019CC500B13716 /* FileWatcherExampleTests */ = { + activeExec = 0; + }; + A10C693413019D6700B13716 /* FileWatcher.m */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.objc; + name = FileWatcher.m; + path = "/Users/petersugihara/Documents/Code/Flags/Client/Flags (OS X)/FileWatcher.m"; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {519, 1651}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 380}"; + }; + }; + A1644A871301A7C2006C481C /* FileWatcherExample */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 0; + configStateDict = { + }; + customDataFormattersEnabled = 1; + dataTipCustomDataFormattersEnabled = 1; + dataTipShowTypeColumn = 1; + dataTipSortType = 0; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = FileWatcherExample; + showTypeColumn = 0; + sourceDirectories = ( + ); + }; + A1644A8F1301A7C9006C481C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A10C693413019D6700B13716 /* FileWatcher.m */; + name = "FileWatcher.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 380; + vrLoc = 0; + }; + A1644A901301A7C9006C481C /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = A10C693413019D6700B13716 /* FileWatcher.m */; + name = "FileWatcher.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 380; + vrLoc = 0; + }; + A1644A961301A7C9006C481C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + A1644A971301A7C9006C481C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; +} diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/project.pbxproj b/FileWatcherExample/FileWatcherExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000..6bbcba4 --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/project.pbxproj @@ -0,0 +1,446 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A10C690313019CC400B13716 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A10C690213019CC400B13716 /* Cocoa.framework */; }; + A10C690813019CC400B13716 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A10C690613019CC400B13716 /* InfoPlist.strings */; }; + A10C690A13019CC400B13716 /* FileWatcherExample-main.m in Sources */ = {isa = PBXBuildFile; fileRef = A10C690913019CC400B13716 /* FileWatcherExample-main.m */; }; + A10C690D13019CC500B13716 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = A10C690B13019CC500B13716 /* MainMenu.xib */; }; + A10C691013019CC500B13716 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A10C690E13019CC500B13716 /* Credits.rtf */; }; + A10C691313019CC500B13716 /* FileWatcherExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A10C691213019CC500B13716 /* FileWatcherExampleAppDelegate.m */; }; + A10C691B13019CC500B13716 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A10C690213019CC400B13716 /* Cocoa.framework */; }; + A10C691F13019CC500B13716 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A10C691E13019CC500B13716 /* InfoPlist.strings */; }; + A1644A9B1301A7F0006C481C /* FileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = A1644A9A1301A7F0006C481C /* FileWatcher.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A10C690213019CC400B13716 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + A10C690413019CC400B13716 /* FileWatcherExample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FileWatcherExample-Info.plist"; sourceTree = ""; }; + A10C690513019CC400B13716 /* FileWatcherExample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FileWatcherExample-Prefix.pch"; sourceTree = ""; }; + A10C690713019CC400B13716 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A10C690913019CC400B13716 /* FileWatcherExample-main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "FileWatcherExample-main.m"; sourceTree = ""; }; + A10C690C13019CC500B13716 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; + A10C690F13019CC500B13716 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; + A10C691113019CC500B13716 /* FileWatcherExampleAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileWatcherExampleAppDelegate.h; sourceTree = ""; }; + A10C691213019CC500B13716 /* FileWatcherExampleAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FileWatcherExampleAppDelegate.m; sourceTree = ""; }; + A10C691C13019CC500B13716 /* FileWatcherExampleTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FileWatcherExampleTests-Info.plist"; sourceTree = ""; }; + A10C691D13019CC500B13716 /* FileWatcherExampleTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FileWatcherExampleTests-Prefix.pch"; sourceTree = ""; }; + A10C691E13019CC500B13716 /* InfoPlist.strings */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = en.lproj/FileWatcherExampleTests/InfoPlist.strings; sourceTree = ""; }; + A10C693B1301A64800B13716 /* FileWatcherExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FileWatcherExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A10C693D1301A64800B13716 /* FileWatcherExampleTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FileWatcherExampleTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; + A1644A991301A7F0006C481C /* FileWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileWatcher.h; sourceTree = ""; }; + A1644A9A1301A7F0006C481C /* FileWatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FileWatcher.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A10C68FC13019CC400B13716 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A10C690313019CC400B13716 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A10C691613019CC500B13716 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A10C691B13019CC500B13716 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A10C68F013019CC400B13716 = { + isa = PBXGroup; + children = ( + A10C68F713019CC400B13716 /* Classes */, + A10C68F813019CC400B13716 /* Other Sources */, + A10C68F913019CC400B13716 /* Resources */, + A10C68FA13019CC400B13716 /* Frameworks */, + A10C690013019CC400B13716 /* Products */, + ); + sourceTree = ""; + }; + A10C68F713019CC400B13716 /* Classes */ = { + isa = PBXGroup; + children = ( + A1644A991301A7F0006C481C /* FileWatcher.h */, + A1644A9A1301A7F0006C481C /* FileWatcher.m */, + A10C691113019CC500B13716 /* FileWatcherExampleAppDelegate.h */, + A10C691213019CC500B13716 /* FileWatcherExampleAppDelegate.m */, + ); + path = Classes; + sourceTree = ""; + }; + A10C68F813019CC400B13716 /* Other Sources */ = { + isa = PBXGroup; + children = ( + A10C690513019CC400B13716 /* FileWatcherExample-Prefix.pch */, + A10C690913019CC400B13716 /* FileWatcherExample-main.m */, + A10C691D13019CC500B13716 /* FileWatcherExampleTests-Prefix.pch */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + A10C68F913019CC400B13716 /* Resources */ = { + isa = PBXGroup; + children = ( + A10C690413019CC400B13716 /* FileWatcherExample-Info.plist */, + A10C690613019CC400B13716 /* InfoPlist.strings */, + A10C690B13019CC500B13716 /* MainMenu.xib */, + A10C690E13019CC500B13716 /* Credits.rtf */, + A10C691C13019CC500B13716 /* FileWatcherExampleTests-Info.plist */, + A10C691E13019CC500B13716 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + A10C68FA13019CC400B13716 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A10C690213019CC400B13716 /* Cocoa.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A10C690013019CC400B13716 /* Products */ = { + isa = PBXGroup; + children = ( + A10C693B1301A64800B13716 /* FileWatcherExample.app */, + A10C693D1301A64800B13716 /* FileWatcherExampleTests.octest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A10C68FE13019CC400B13716 /* FileWatcherExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = A10C692813019CC500B13716 /* Build configuration list for PBXNativeTarget "FileWatcherExample" */; + buildPhases = ( + A10C68FB13019CC400B13716 /* Sources */, + A10C68FC13019CC400B13716 /* Frameworks */, + A10C68FD13019CC400B13716 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FileWatcherExample; + productName = FileWatcherExample; + productReference = A10C693B1301A64800B13716 /* FileWatcherExample.app */; + productType = "com.apple.product-type.application"; + }; + A10C691913019CC500B13716 /* FileWatcherExampleTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A10C692B13019CC500B13716 /* Build configuration list for PBXNativeTarget "FileWatcherExampleTests" */; + buildPhases = ( + A10C691513019CC500B13716 /* Sources */, + A10C691613019CC500B13716 /* Frameworks */, + A10C691713019CC500B13716 /* Resources */, + A10C691813019CC500B13716 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FileWatcherExampleTests; + productName = FileWatcherExampleTests; + productReference = A10C693D1301A64800B13716 /* FileWatcherExampleTests.octest */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A10C68F213019CC400B13716 /* Project object */ = { + isa = PBXProject; + attributes = { + ORGANIZATIONNAME = "Bard College"; + }; + buildConfigurationList = A10C68F513019CC400B13716 /* Build configuration list for PBXProject "FileWatcherExample" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A10C68F013019CC400B13716; + productRefGroup = A10C690013019CC400B13716 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A10C68FE13019CC400B13716 /* FileWatcherExample */, + A10C691913019CC500B13716 /* FileWatcherExampleTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A10C68FD13019CC400B13716 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A10C690813019CC400B13716 /* InfoPlist.strings in Resources */, + A10C690D13019CC500B13716 /* MainMenu.xib in Resources */, + A10C691013019CC500B13716 /* Credits.rtf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A10C691713019CC500B13716 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A10C691F13019CC500B13716 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + A10C691813019CC500B13716 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A10C68FB13019CC400B13716 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A10C690A13019CC400B13716 /* FileWatcherExample-main.m in Sources */, + A10C691313019CC500B13716 /* FileWatcherExampleAppDelegate.m in Sources */, + A1644A9B1301A7F0006C481C /* FileWatcher.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A10C691513019CC500B13716 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + A10C690613019CC400B13716 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A10C690713019CC400B13716 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + A10C690B13019CC500B13716 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + A10C690C13019CC500B13716 /* en */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + A10C690E13019CC500B13716 /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + A10C690F13019CC500B13716 /* en */, + ); + name = Credits.rtf; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A10C692413019CC500B13716 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = DEBUG; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.6; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = macosx; + }; + name = Debug; + }; + A10C692513019CC500B13716 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.6; + PREBINDING = NO; + SDKROOT = macosx; + }; + name = Release; + }; + A10C692613019CC500B13716 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + A10C692713019CC500B13716 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + A10C692913019CC500B13716 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "FileWatcherExample-Prefix.pch"; + INFOPLIST_FILE = "FileWatcherExample-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + A10C692A13019CC500B13716 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "FileWatcherExample-Prefix.pch"; + INFOPLIST_FILE = "FileWatcherExample-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + A10C692C13019CC500B13716 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "FileWatcherExampleTests-Prefix.pch"; + INFOPLIST_FILE = "FileWatcherExampleTests-Info.plist"; + INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; + MACOSX_DEPLOYMENT_TARGET = 10.6; + OTHER_LDFLAGS = ( + "-framework", + SenTestingKit, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = octest; + }; + name = Debug; + }; + A10C692D13019CC500B13716 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "FileWatcherExampleTests-Prefix.pch"; + INFOPLIST_FILE = "FileWatcherExampleTests-Info.plist"; + INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; + MACOSX_DEPLOYMENT_TARGET = 10.6; + OTHER_LDFLAGS = ( + "-framework", + SenTestingKit, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = octest; + }; + name = Release; + }; + A10C692E13019CC500B13716 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + PRODUCT_NAME = FileWatcherExampleTests; + }; + name = Debug; + }; + A10C692F13019CC500B13716 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + PRODUCT_NAME = FileWatcherExampleTests; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A10C68F513019CC400B13716 /* Build configuration list for PBXProject "FileWatcherExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A10C692413019CC500B13716 /* Debug */, + A10C692513019CC500B13716 /* Release */, + A10C692613019CC500B13716 /* Debug */, + A10C692713019CC500B13716 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A10C692813019CC500B13716 /* Build configuration list for PBXNativeTarget "FileWatcherExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A10C692913019CC500B13716 /* Debug */, + A10C692A13019CC500B13716 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A10C692B13019CC500B13716 /* Build configuration list for PBXNativeTarget "FileWatcherExampleTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A10C692C13019CC500B13716 /* Debug */, + A10C692D13019CC500B13716 /* Release */, + A10C692E13019CC500B13716 /* Debug */, + A10C692F13019CC500B13716 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A10C68F213019CC400B13716 /* Project object */; +} diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/FileWatcherExample/FileWatcherExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b80b7be --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/project.xcworkspace/xcuserdata/petersugihara.xcuserdatad/WorkspaceState.xcuserstate b/FileWatcherExample/FileWatcherExample.xcodeproj/project.xcworkspace/xcuserdata/petersugihara.xcuserdatad/WorkspaceState.xcuserstate new file mode 100644 index 0000000..6b4d24f --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/project.xcworkspace/xcuserdata/petersugihara.xcuserdatad/WorkspaceState.xcuserstate @@ -0,0 +1,3071 @@ + + + + + $archiver + NSKeyedArchiver + $objects + + $null + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 2 + + + CF$UID + 3 + + + NS.objects + + + CF$UID + 4 + + + CF$UID + 160 + + + + A7C1F183-8CCA-4646-B0BD-A370F87DEB79 + IDEWorkspaceDocument + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 5 + + + CF$UID + 6 + + + CF$UID + 7 + + + CF$UID + 8 + + + CF$UID + 9 + + + CF$UID + 10 + + + NS.objects + + + CF$UID + 11 + + + CF$UID + 12 + + + CF$UID + 14 + + + CF$UID + 15 + + + CF$UID + 2 + + + CF$UID + 8 + + + + IDEWindowFrame + IDEOrderedWorkspaceTabControllers + IDEWindowToolbarIsVisible + IDEWorkspaceTabController_77F383D0-4314-447C-9126-A7403A31CE4F + IDEWorkspaceWindowControllerUniqueIdentifier + IDEActiveWorkspaceTabController + {{20, 4}, {1400, 874}} + + $class + + CF$UID + 13 + + NS.objects + + + CF$UID + 8 + + + + + $classes + + NSArray + NSObject + + $classname + NSArray + + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 16 + + + CF$UID + 17 + + + CF$UID + 18 + + + CF$UID + 19 + + + CF$UID + 20 + + + CF$UID + 21 + + + CF$UID + 22 + + + CF$UID + 23 + + + CF$UID + 24 + + + NS.objects + + + CF$UID + 25 + + + CF$UID + 14 + + + CF$UID + 106 + + + CF$UID + 105 + + + CF$UID + 14 + + + CF$UID + 113 + + + CF$UID + 150 + + + CF$UID + 14 + + + CF$UID + 159 + + + + IDEEditorArea + IDEShowNavigator + IDEWorkspaceTabControllerUtilityAreaSplitView + AssistantSplitOrientationIsVertical + SingleFileSplitOrientationIsVertical + IDENavigatorArea + IDEWorkspaceTabControllerDesignAreaSplitView + IDEShowUtilities + IDETabLabel + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 26 + + + CF$UID + 27 + + + CF$UID + 28 + + + CF$UID + 29 + + + CF$UID + 30 + + + CF$UID + 31 + + + CF$UID + 32 + + + CF$UID + 33 + + + NS.objects + + + CF$UID + 34 + + + CF$UID + 47 + + + CF$UID + 14 + + + CF$UID + 42 + + + CF$UID + 49 + + + CF$UID + 93 + + + CF$UID + 104 + + + CF$UID + 105 + + + + IDEEDitorArea_DebugArea + LayoutTree + IDEShowEditor + EditorMode + IDEEditorMode_Standard + DebuggerSplitView + DefaultPersistentRepresentations + ShowDebuggerArea + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 35 + + + CF$UID + 36 + + + CF$UID + 37 + + + CF$UID + 38 + + + NS.objects + + + CF$UID + 39 + + + CF$UID + 40 + + + CF$UID + 39 + + + CF$UID + 44 + + + + LayoutFocusMode + console + LayoutMode + variables + 1 + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 41 + + + NS.objects + + + CF$UID + 42 + + + + ConsoleFilterMode + 0 + + $classes + + NSMutableDictionary + NSDictionary + NSObject + + $classname + NSMutableDictionary + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 45 + + + NS.objects + + + CF$UID + 46 + + + + DBGVariablesViewFilterMode + 2 + + $class + + CF$UID + 48 + + NS.data + + YnBsaXN0MDDUAQIDBAUGOjtYJHZlcnNpb25YJG9iamVjdHNZJGFy + Y2hpdmVyVCR0b3ASAAGGoKoHCBEbICQrLjI2VSRudWxs1AkKCwwN + Dg8QXxAYcHJpbWFyeUVkaXRvckNvbnRleHROb2RlXxAXZ2VuaXVz + RWRpdG9yQ29udGV4dE5vZGVWJGNsYXNzXxAScm9vdExheW91dFRy + ZWVOb2RlgAKAAIAJgAfVEhMUCxUWEBgZGltvcmllbnRhdGlvblZw + YXJlbnRbY29udGVudFR5cGVYY2hpbGRyZW4QAYAHEACABYAD0gsc + HR5aTlMub2JqZWN0c4AGoR+ABNUSExQLFRgNFhkOgAKABYAA0iUm + JyhaJGNsYXNzbmFtZVgkY2xhc3Nlc18QJ0lERVdvcmtzcGFjZVRh + YkNvbnRyb2xsZXJMYXlvdXRUcmVlTm9kZaIpKl8QJ0lERVdvcmtz + cGFjZVRhYkNvbnRyb2xsZXJMYXlvdXRUcmVlTm9kZVhOU09iamVj + dNIlJiwtV05TQXJyYXmiLCrVEhMUCxUYDhgZMYAAgAWACNILHB00 + gAahDYAC0iUmNzhfECNJREVXb3Jrc3BhY2VUYWJDb250cm9sbGVy + TGF5b3V0VHJlZaI5Kl8QI0lERVdvcmtzcGFjZVRhYkNvbnRyb2xs + ZXJMYXlvdXRUcmVlXxAPTlNLZXllZEFyY2hpdmVy0Tw9VHJvb3SA + AQAIABEAGgAjAC0AMgA3AEIASABRAGwAhgCNAKIApACmAKgAqgC1 + AMEAyADUAN0A3wDhAOMA5QDnAOwA9wD5APsA/QEIAQoBDAEOARMB + HgEnAVEBVAF+AYcBjAGUAZcBogGkAaYBqAGtAa8BsQGzAbgB3gHh + AgcCGQIcAiEAAAAAAAACAQAAAAAAAAA+AAAAAAAAAAAAAAAAAAAC + Iw== + + + + $classes + + NSMutableData + NSData + NSObject + + $classname + NSMutableData + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 50 + + + NS.objects + + + CF$UID + 51 + + + + EditorLayout_PersistentRepresentation + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 52 + + + CF$UID + 53 + + + CF$UID + 54 + + + NS.objects + + + CF$UID + 55 + + + CF$UID + 42 + + + CF$UID + 91 + + + + EditorLayout_StateSavingStateDictionaries + EditorLayout_Selected + EditorLayout_Geometry + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 56 + + + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 57 + + + CF$UID + 58 + + + CF$UID + 59 + + + CF$UID + 60 + + + CF$UID + 61 + + + CF$UID + 62 + + + CF$UID + 63 + + + NS.objects + + + CF$UID + 64 + + + CF$UID + 65 + + + CF$UID + 76 + + + CF$UID + 85 + + + CF$UID + 68 + + + CF$UID + 86 + + + CF$UID + 87 + + + + FileDataType + ArchivableRepresentation + EditorState + NavigableItemName + DocumentNavigableItemName + DocumentExtensionIdentifier + DocumentURL + public.objective-c-source + + $class + + CF$UID + 75 + + DocumentLocation + + CF$UID + 71 + + DomainIdentifier + + CF$UID + 66 + + IdentifierPath + + CF$UID + 67 + + IndexOfDocumentIdentifier + + CF$UID + 42 + + + Xcode.IDENavigableItemDomain.WorkspaceStructure + + $class + + CF$UID + 13 + + NS.objects + + + CF$UID + 68 + + + CF$UID + 69 + + + CF$UID + 70 + + + + FileWatcherExampleAppDelegate.m + Classes + FileWatcherExample + + $class + + CF$UID + 74 + + documentURL + + CF$UID + 72 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m + + + $classes + + NSMutableString + NSString + NSObject + + $classname + NSMutableString + + + $classes + + DVTDocumentLocation + NSObject + + $classname + DVTDocumentLocation + + + $classes + + IDENavigableItemArchivableRepresentation + NSObject + + $classname + IDENavigableItemArchivableRepresentation + + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 77 + + + CF$UID + 78 + + + CF$UID + 79 + + + CF$UID + 80 + + + NS.objects + + + CF$UID + 81 + + + CF$UID + 82 + + + CF$UID + 14 + + + CF$UID + 83 + + + + PrimaryDocumentTimestamp + PrimaryDocumentVisibleCharacterRange + MessageBubblesVisible + PrimaryDocumentSelectedCharacterRange + 318875541.90142202 + {0, 742} + {485, 0} + + $classes + + NSDictionary + NSObject + + $classname + NSDictionary + + -applicationDidFinishLaunching: + Xcode.IDEKit.EditorDocument.SourceCode + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 88 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m + + $classes + + NSURL + NSObject + + $classname + NSURL + + + $classes + + NSMutableArray + NSArray + NSObject + + $classname + NSMutableArray + + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 92 + + + + {{0, 0}, {931, 798}} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 94 + + + NS.objects + + + CF$UID + 95 + + + + DVTSplitViewItems + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 96 + + + CF$UID + 101 + + + + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 99 + + + CF$UID + 100 + + + + DVTIdentifier + DVTViewMagnitude + IDEEditor + 798 + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 102 + + + CF$UID + 103 + + + + IDEDebuggerArea + 384 + + $class + + CF$UID + 43 + + NS.keys + + NS.objects + + + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 94 + + + NS.objects + + + CF$UID + 107 + + + + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 108 + + + CF$UID + 111 + + + + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 109 + + + CF$UID + 110 + + + + + 587 + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 109 + + + CF$UID + 112 + + + + 211 + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 114 + + + CF$UID + 115 + + + CF$UID + 116 + + + NS.objects + + + CF$UID + 117 + + + CF$UID + 114 + + + CF$UID + 133 + + + + Xcode.IDEKit.Navigator.Structure + SelectedNavigator + Xcode.IDEKit.Navigator.Issues + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 118 + + + CF$UID + 119 + + + CF$UID + 120 + + + CF$UID + 121 + + + CF$UID + 122 + + + CF$UID + 123 + + + NS.objects + + + CF$UID + 105 + + + CF$UID + 124 + + + CF$UID + 105 + + + CF$UID + 105 + + + CF$UID + 125 + + + CF$UID + 126 + + + + IDEUnsavedDocumentFilteringEnabled + IDEVisibleRect + IDERecentDocumentFilteringEnabled + IDESCMStatusFilteringEnabled + IDESelectedObjects + IDEExpandedItemsSet + {{0, 0}, {208, 754}} + + $class + + CF$UID + 13 + + NS.objects + + + + $class + + CF$UID + 132 + + NS.objects + + + CF$UID + 127 + + + CF$UID + 129 + + + CF$UID + 130 + + + + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 128 + + + CF$UID + 69 + + + + FileWatcherExample + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 128 + + + + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 128 + + + CF$UID + 131 + + + + Other Sources + + $classes + + NSSet + NSObject + + $classname + NSSet + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 134 + + + CF$UID + 135 + + + CF$UID + 136 + + + CF$UID + 137 + + + CF$UID + 138 + + + CF$UID + 139 + + + CF$UID + 140 + + + CF$UID + 141 + + + CF$UID + 142 + + + NS.objects + + + CF$UID + 105 + + + CF$UID + 143 + + + CF$UID + 144 + + + CF$UID + 146 + + + CF$UID + 147 + + + CF$UID + 105 + + + CF$UID + 148 + + + CF$UID + 105 + + + CF$UID + 149 + + + + IDEErrorFilteringEnabled + IDEVisibleRect + IDECollapsedFiles + IDEExpandedIssues + IDESelectedNavigables + IDEShowsByType + IDECollapsedTypes + IDERecentFilteringEnabled + IDECollapsedGroups + {{0, 0}, {208, 732}} + + $class + + CF$UID + 145 + + NS.objects + + + + $classes + + NSMutableSet + NSSet + NSObject + + $classname + NSMutableSet + + + $class + + CF$UID + 145 + + NS.objects + + + + $class + + CF$UID + 90 + + NS.objects + + + + $class + + CF$UID + 145 + + NS.objects + + + + $class + + CF$UID + 145 + + NS.objects + + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 94 + + + NS.objects + + + CF$UID + 151 + + + + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 152 + + + CF$UID + 154 + + + CF$UID + 156 + + + + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 21 + + + CF$UID + 153 + + + + 209 + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 16 + + + CF$UID + 155 + + + + 931 + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 97 + + + CF$UID + 98 + + + NS.objects + + + CF$UID + 157 + + + CF$UID + 158 + + + + IDEUtilitiesArea + 260 + FileWatcherExampleAppDelegate.m + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 161 + + + CF$UID + 162 + + + CF$UID + 163 + + + CF$UID + 164 + + + CF$UID + 165 + + + CF$UID + 166 + + + CF$UID + 167 + + + CF$UID + 168 + + + CF$UID + 169 + + + CF$UID + 170 + + + NS.objects + + + CF$UID + 105 + + + CF$UID + 171 + + + CF$UID + 42 + + + CF$UID + 246 + + + CF$UID + 249 + + + CF$UID + 254 + + + CF$UID + 283 + + + CF$UID + 284 + + + CF$UID + 105 + + + CF$UID + 105 + + + + BreakpointsActivated + DefaultEditorStatesForURLs + DebuggingWindowBehavior + ActiveScheme + ActiveRunDestination + LastCompletedPersistentSchemeBasedActivityReport + DocumentWindows + RecentEditorDocumentURLs + AppFocusInMiniDebugging + MiniDebuggingConsole + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 172 + + + CF$UID + 173 + + + NS.objects + + + CF$UID + 174 + + + CF$UID + 219 + + + + Xcode.IDEKit.EditorDocument.SourceCode + Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 175 + + + CF$UID + 177 + + + CF$UID + 179 + + + CF$UID + 181 + + + CF$UID + 183 + + + CF$UID + 185 + + + CF$UID + 187 + + + NS.objects + + + CF$UID + 189 + + + CF$UID + 197 + + + CF$UID + 201 + + + CF$UID + 204 + + + CF$UID + 208 + + + CF$UID + 212 + + + CF$UID + 216 + + + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 176 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample-Prefix.pch + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 178 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/../../Flags/Client/Flags%20(OS%20X)/FileWatcher.m + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 180 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample-main.m + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 182 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/../../Flags/Client/Flags%20(OS%20X)/FileWatcher.h + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 184 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.h + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 186 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 188 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/Flags/Client/Flags%20(OS%20X)/FileWatcher.m + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 190 + + + CF$UID + 191 + + + CF$UID + 192 + + + CF$UID + 193 + + + NS.objects + + + CF$UID + 194 + + + CF$UID + 195 + + + CF$UID + 14 + + + CF$UID + 196 + + + + PrimaryDocumentTimestamp + PrimaryDocumentVisibleCharacterRange + MessageBubblesVisible + PrimaryDocumentSelectedCharacterRange + 318872899.64108098 + {0, 167} + {0, 0} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 190 + + + CF$UID + 191 + + + CF$UID + 192 + + + CF$UID + 193 + + + NS.objects + + + CF$UID + 198 + + + CF$UID + 199 + + + CF$UID + 14 + + + CF$UID + 200 + + + + 318875146.98386502 + {1169, 1289} + {1363, 0} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 190 + + + CF$UID + 191 + + + CF$UID + 192 + + + CF$UID + 193 + + + NS.objects + + + CF$UID + 202 + + + CF$UID + 203 + + + CF$UID + 14 + + + CF$UID + 196 + + + + 318872900.90382898 + {0, 279} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 190 + + + CF$UID + 191 + + + CF$UID + 192 + + + CF$UID + 193 + + + NS.objects + + + CF$UID + 205 + + + CF$UID + 206 + + + CF$UID + 14 + + + CF$UID + 207 + + + + 318875092.96404701 + {0, 762} + {830, 0} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 190 + + + CF$UID + 191 + + + CF$UID + 192 + + + CF$UID + 193 + + + NS.objects + + + CF$UID + 209 + + + CF$UID + 210 + + + CF$UID + 14 + + + CF$UID + 211 + + + + 318875192.23145401 + {0, 469} + {367, 0} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 77 + + + CF$UID + 78 + + + CF$UID + 79 + + + CF$UID + 80 + + + NS.objects + + + CF$UID + 213 + + + CF$UID + 214 + + + CF$UID + 14 + + + CF$UID + 215 + + + + 318875541.90076798 + {0, 742} + {485, 0} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 190 + + + CF$UID + 191 + + + CF$UID + 192 + + + CF$UID + 193 + + + NS.objects + + + CF$UID + 217 + + + CF$UID + 218 + + + CF$UID + 14 + + + CF$UID + 196 + + + + 318872968.14472401 + {0, 1650} + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 220 + + + NS.objects + + + CF$UID + 222 + + + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 221 + + + + $class + + CF$UID + 73 + + NS.string + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample.xcodeproj/ + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 223 + + + CF$UID + 224 + + + CF$UID + 225 + + + NS.objects + + + CF$UID + 226 + + + CF$UID + 234 + + + CF$UID + 236 + + + + Xcode3ProjectEditorSelectedDocumentLocations + Xcode3ProjectEditorPreviousProjectEditorClass + Xcode3ProjectEditor.sourceList.splitview + + $class + + CF$UID + 13 + + NS.objects + + + CF$UID + 227 + + + + + $class + + CF$UID + 235 + + documentURL + + CF$UID + 228 + + selection + + CF$UID + 230 + + timestamp + + CF$UID + 229 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample.xcodeproj/ + 318872791.88398701 + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 231 + + + CF$UID + 232 + + + NS.objects + + + CF$UID + 233 + + + CF$UID + 234 + + + + Project + Editor + FileWatcherExample + Xcode3ProjectInfoEditor + + $classes + + Xcode3ProjectDocumentLocation + DVTDocumentLocation + NSObject + + $classname + Xcode3ProjectDocumentLocation + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 237 + + + NS.objects + + + CF$UID + 238 + + + + DVTSplitViewItems + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 239 + + + CF$UID + 244 + + + + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 240 + + + CF$UID + 241 + + + NS.objects + + + CF$UID + 242 + + + CF$UID + 243 + + + + DVTIdentifier + DVTViewMagnitude + + 162 + + $class + + CF$UID + 84 + + NS.keys + + + CF$UID + 240 + + + CF$UID + 241 + + + NS.objects + + + CF$UID + 242 + + + CF$UID + 245 + + + + 1029 + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 247 + + + NS.objects + + + CF$UID + 248 + + + + IDENameString + FileWatcherExample + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 250 + + + CF$UID + 251 + + + NS.objects + + + CF$UID + 252 + + + CF$UID + 253 + + + + IDEDeviceLocation + IDEDeviceArchitecture + dvtdevice-local-computer:localhost + i386 + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 255 + + + CF$UID + 256 + + + CF$UID + 257 + + + NS.objects + + + CF$UID + 258 + + + CF$UID + 282 + + + CF$UID + 233 + + + + IDEActivityReportCompletionSummaryStringSegments + IDEActivityReportOptions + IDEActivityReportTitle + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 259 + + + CF$UID + 266 + + + CF$UID + 269 + + + CF$UID + 273 + + + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 260 + + + CF$UID + 261 + + + CF$UID + 262 + + + NS.objects + + + CF$UID + 263 + + + CF$UID + 264 + + + CF$UID + 265 + + + + IDEActivityReportStringSegmentPriority + IDEActivityReportStringSegmentBackSeparator + IDEActivityReportStringSegmentStringValue + 2 + + Build + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 260 + + + CF$UID + 261 + + + CF$UID + 262 + + + NS.objects + + + CF$UID + 267 + + + CF$UID + 268 + + + CF$UID + 233 + + + + 4 + : + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 260 + + + CF$UID + 261 + + + CF$UID + 262 + + + NS.objects + + + CF$UID + 270 + + + CF$UID + 271 + + + CF$UID + 272 + + + + 1 + | + + $class + + CF$UID + 48 + + NS.data + + YnBsaXN0MDDUAQIDBAUGOzxYJHZlcnNpb25YJG9iamVjdHNZJGFy + Y2hpdmVyVCR0b3ASAAGGoK0HCA8QGhscJCUrMTQ3VSRudWxs0wkK + CwwNDlxOU0F0dHJpYnV0ZXNWJGNsYXNzWE5TU3RyaW5ngAOADIAC + WVN1Y2NlZWRlZNMKERITFBdXTlMua2V5c1pOUy5vYmplY3RzgAui + FRaABIAFohgZgAaACVZOU0ZvbnRXTlNDb2xvctQKHR4fICEiI1ZO + U05hbWVWTlNTaXplWE5TZkZsYWdzgAiAByNAJgAAAAAAABENEF8Q + EUx1Y2lkYUdyYW5kZS1Cb2xk0iYnKClaJGNsYXNzbmFtZVgkY2xh + c3Nlc1ZOU0ZvbnSiKCpYTlNPYmplY3TTCiwtLi8wXE5TQ29sb3JT + cGFjZVdOU1doaXRlgAoQA0IwANImJzIzV05TQ29sb3KiMirSJic1 + NlxOU0RpY3Rpb25hcnmiNSrSJic4OV8QEk5TQXR0cmlidXRlZFN0 + cmluZ6I6Kl8QEk5TQXR0cmlidXRlZFN0cmluZ18QD05TS2V5ZWRB + cmNoaXZlctE9PlRyb290gAEACAARABoAIwAtADIANwBFAEsAUgBf + AGYAbwBxAHMAdQB/AIYAjgCZAJsAngCgAKIApQCnAKkAsAC4AMEA + yADPANgA2gDcAOUA6AD8AQEBDAEVARwBHwEoAS8BPAFEAUYBSAFL + AVABWAFbAWABbQFwAXUBigGNAaIBtAG3AbwAAAAAAAACAQAAAAAA + AAA/AAAAAAAAAAAAAAAAAAABvg== + + + + $class + + CF$UID + 43 + + NS.keys + + + CF$UID + 260 + + + CF$UID + 274 + + + CF$UID + 275 + + + CF$UID + 262 + + + CF$UID + 276 + + + CF$UID + 277 + + + NS.objects + + + CF$UID + 278 + + + CF$UID + 39 + + + CF$UID + 279 + + + CF$UID + 281 + + + CF$UID + 39 + + + CF$UID + 39 + + + + IDEActivityReportStringSegmentType + IDEActivityReportStringSegmentDate + IDEActivityReportStringSegmentDateStyle + IDEActivityReportStringSegmentTimeStyle + 3 + + $class + + CF$UID + 280 + + NS.time + 318875225.664388 + + + $classes + + NSDate + NSObject + + $classname + NSDate + + Today at 11:27 AM + 106 + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 2 + + + + + $class + + CF$UID + 90 + + NS.objects + + + CF$UID + 285 + + + CF$UID + 287 + + + CF$UID + 289 + + + CF$UID + 291 + + + CF$UID + 293 + + + CF$UID + 295 + + + CF$UID + 297 + + + + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 286 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 288 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/FileWatcherExampleAppDelegate.h + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 290 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/../../Flags/Client/Flags%20(OS%20X)/FileWatcher.m + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 292 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/Classes/../../Flags/Client/Flags%20(OS%20X)/FileWatcher.h + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 294 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample-main.m + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 296 + + + file://localhost/Users/petersugihara/Documents/Code/FileWatcherExample/FileWatcherExample-Prefix.pch + + $class + + CF$UID + 89 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 228 + + + + $top + + State + + CF$UID + 1 + + + $version + 100000 + + diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/FileWatcherExample.xcscheme b/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/FileWatcherExample.xcscheme new file mode 100644 index 0000000..a26ead9 --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/FileWatcherExample.xcscheme @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/FileWatcherExampleTests.xcscheme b/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/FileWatcherExampleTests.xcscheme new file mode 100644 index 0000000..36baa89 --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/FileWatcherExampleTests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/xcschememanagement.plist b/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..95d8c9b --- /dev/null +++ b/FileWatcherExample/FileWatcherExample.xcodeproj/xcuserdata/petersugihara.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + FileWatcherExample.xcscheme + + orderHint + 0 + + FileWatcherExampleTests.xcscheme + + orderHint + 1 + + + SuppressBuildableAutocreation + + A10C68FE13019CC400B13716 + + primary + + + A10C691913019CC500B13716 + + primary + + + + + diff --git a/FileWatcherExample/FileWatcherExampleTests-Info.plist b/FileWatcherExample/FileWatcherExampleTests-Info.plist new file mode 100644 index 0000000..c16c2bb --- /dev/null +++ b/FileWatcherExample/FileWatcherExampleTests-Info.plist @@ -0,0 +1,24 @@ + + + + + + CFBundleIdentifier + edu.pys.${PRODUCT_NAME:rfc1034identifier} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + CFBundleDevelopmentRegion + en + CFBundlePackageType + BNDL + CFBundleSignature + ???? + + + diff --git a/FileWatcherExample/FileWatcherExampleTests-Prefix.pch b/FileWatcherExample/FileWatcherExampleTests-Prefix.pch new file mode 100644 index 0000000..d0a435e --- /dev/null +++ b/FileWatcherExample/FileWatcherExampleTests-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'FileWatcherExampleTests' target in the 'FileWatcherExampleTests' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/FileWatcherExample/en.lproj/.DS_Store b/FileWatcherExample/en.lproj/.DS_Store new file mode 100644 index 0000000..ab152df Binary files /dev/null and b/FileWatcherExample/en.lproj/.DS_Store differ diff --git a/FileWatcherExample/en.lproj/Credits.rtf b/FileWatcherExample/en.lproj/Credits.rtf new file mode 100644 index 0000000..46576ef --- /dev/null +++ b/FileWatcherExample/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/FileWatcherExample/en.lproj/FileWatcherExampleTests/InfoPlist.strings b/FileWatcherExample/en.lproj/FileWatcherExampleTests/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/FileWatcherExample/en.lproj/FileWatcherExampleTests/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/FileWatcherExample/en.lproj/InfoPlist.strings b/FileWatcherExample/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/FileWatcherExample/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/FileWatcherExample/en.lproj/MainMenu.xib b/FileWatcherExample/en.lproj/MainMenu.xib new file mode 100644 index 0000000..b4c0f08 --- /dev/null +++ b/FileWatcherExample/en.lproj/MainMenu.xib @@ -0,0 +1,4119 @@ + + + + 1060 + 10A324 + 719 + 1015 + 418.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 719 + + + YES + + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + FileWatcherExample + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + FileWatcherExample + + YES + + + About FileWatcherExample + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide FileWatcherExample + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit FileWatcherExample + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As… + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + Print… + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Paste and Match Style + V + 1572864 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + Show Spelling and Grammar + : + 1048576 + 2147483647 + + + + + + Check Document Now + ; + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + Correct Spelling Automatically + + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Show Substitutions + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Dashes + + 2147483647 + + + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + Text Replacement + + 2147483647 + + + + + + + + + Transformations + + 2147483647 + + + submenuAction: + + Transformations + + YES + + + Make Upper Case + + 2147483647 + + + + + + Make Lower Case + + 2147483647 + + + + + + Capitalize + + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Writing Direction + + 2147483647 + + + submenuAction: + + Writing Direction + + YES + + + YES + Paragraph + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + YES + Selection + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + YES + + + FileWatcherExample Help + ? + 1048576 + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + 15 + 2 + {{335, 390}, {480, 360}} + 1954021376 + FileWatcherExample + NSWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + {480, 360} + + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + FileWatcherExampleAppDelegate + + + NSFontManager + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + addFontTrait: + + + + 421 + + + + addFontTrait: + + + + 422 + + + + modifyFont: + + + + 423 + + + + orderFrontFontPanel: + + + + 424 + + + + modifyFont: + + + + 425 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + terminate: + + + + 449 + + + + toggleAutomaticSpellingCorrection: + + + + 456 + + + + orderFrontSubstitutionsPanel: + + + + 458 + + + + toggleAutomaticDashSubstitution: + + + + 461 + + + + toggleAutomaticTextReplacement: + + + + 463 + + + + uppercaseWord: + + + + 464 + + + + capitalizeWord: + + + + 467 + + + + lowercaseWord: + + + + 468 + + + + pasteAsPlainText: + + + + 486 + + + + performFindPanelAction: + + + + 487 + + + + performFindPanelAction: + + + + 488 + + + + performFindPanelAction: + + + + 489 + + + + showHelp: + + + + 493 + + + + delegate + + + + 495 + + + + alignCenter: + + + + 518 + + + + pasteRuler: + + + + 519 + + + + toggleRuler: + + + + 520 + + + + alignRight: + + + + 521 + + + + copyRuler: + + + + 522 + + + + alignJustified: + + + + 523 + + + + alignLeft: + + + + 524 + + + + makeBaseWritingDirectionNatural: + + + + 525 + + + + makeBaseWritingDirectionLeftToRight: + + + + 526 + + + + makeBaseWritingDirectionRightToLeft: + + + + 527 + + + + makeTextWritingDirectionNatural: + + + + 528 + + + + makeTextWritingDirectionLeftToRight: + + + + 529 + + + + makeTextWritingDirectionRightToLeft: + + + + 530 + + + + window + + + + 532 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 78 + + + + + 72 + + + + + 82 + + + + + 124 + + + YES + + + + + + 77 + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 74 + + + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + + + 375 + + + YES + + + + + + 376 + + + YES + + + + + + + 377 + + + YES + + + + + + 388 + + + YES + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + YES + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + YES + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + + + 450 + + + YES + + + + + + 451 + + + YES + + + + + + + + 452 + + + + + 453 + + + + + 454 + + + + + 457 + + + + + 459 + + + + + 460 + + + + + 462 + + + + + 465 + + + + + 466 + + + + + 485 + + + + + 490 + + + YES + + + + + + 491 + + + YES + + + + + + 492 + + + + + 494 + + + + + 496 + + + YES + + + + + + 497 + + + YES + + + + + + + + + + + + + + + 498 + + + + + 499 + + + + + 500 + + + + + 501 + + + + + 502 + + + + + 503 + + + YES + + + + + + 504 + + + + + 505 + + + + + 506 + + + + + 507 + + + + + 508 + + + YES + + + + + + + + + + + + + + 509 + + + + + 510 + + + + + 511 + + + + + 512 + + + + + 513 + + + + + 514 + + + + + 515 + + + + + 516 + + + + + 517 + + + + + + + YES + + YES + -3.IBPluginDependency + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 125.editorWindowContentRectSynchronizationRect + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 195.IBPluginDependency + 195.ImportedFromIB2 + 196.IBPluginDependency + 196.ImportedFromIB2 + 197.IBPluginDependency + 197.ImportedFromIB2 + 198.IBPluginDependency + 198.ImportedFromIB2 + 199.IBPluginDependency + 199.ImportedFromIB2 + 200.IBEditorWindowLastContentRect + 200.IBPluginDependency + 200.ImportedFromIB2 + 200.editorWindowContentRectSynchronizationRect + 201.IBPluginDependency + 201.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 203.IBPluginDependency + 203.ImportedFromIB2 + 204.IBPluginDependency + 204.ImportedFromIB2 + 205.IBEditorWindowLastContentRect + 205.IBPluginDependency + 205.ImportedFromIB2 + 205.editorWindowContentRectSynchronizationRect + 206.IBPluginDependency + 206.ImportedFromIB2 + 207.IBPluginDependency + 207.ImportedFromIB2 + 208.IBPluginDependency + 208.ImportedFromIB2 + 209.IBPluginDependency + 209.ImportedFromIB2 + 210.IBPluginDependency + 210.ImportedFromIB2 + 211.IBPluginDependency + 211.ImportedFromIB2 + 212.IBPluginDependency + 212.ImportedFromIB2 + 212.editorWindowContentRectSynchronizationRect + 213.IBPluginDependency + 213.ImportedFromIB2 + 214.IBPluginDependency + 214.ImportedFromIB2 + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 217.IBPluginDependency + 217.ImportedFromIB2 + 218.IBPluginDependency + 218.ImportedFromIB2 + 219.IBPluginDependency + 219.ImportedFromIB2 + 220.IBEditorWindowLastContentRect + 220.IBPluginDependency + 220.ImportedFromIB2 + 220.editorWindowContentRectSynchronizationRect + 221.IBPluginDependency + 221.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBEditorWindowLastContentRect + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 295.IBPluginDependency + 296.IBEditorWindowLastContentRect + 296.IBPluginDependency + 296.editorWindowContentRectSynchronizationRect + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 346.ImportedFromIB2 + 348.IBPluginDependency + 348.ImportedFromIB2 + 349.IBEditorWindowLastContentRect + 349.IBPluginDependency + 349.ImportedFromIB2 + 349.editorWindowContentRectSynchronizationRect + 350.IBPluginDependency + 350.ImportedFromIB2 + 351.IBPluginDependency + 351.ImportedFromIB2 + 354.IBPluginDependency + 354.ImportedFromIB2 + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.maxSize + 372.IBPluginDependency + 375.IBPluginDependency + 376.IBEditorWindowLastContentRect + 376.IBPluginDependency + 377.IBPluginDependency + 388.IBEditorWindowLastContentRect + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 393.IBPluginDependency + 394.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 412.IBPluginDependency + 413.IBPluginDependency + 414.IBPluginDependency + 415.IBPluginDependency + 416.IBPluginDependency + 417.IBPluginDependency + 418.IBPluginDependency + 419.IBPluginDependency + 450.IBPluginDependency + 451.IBEditorWindowLastContentRect + 451.IBPluginDependency + 452.IBPluginDependency + 453.IBPluginDependency + 454.IBPluginDependency + 457.IBPluginDependency + 459.IBPluginDependency + 460.IBPluginDependency + 462.IBPluginDependency + 465.IBPluginDependency + 466.IBPluginDependency + 485.IBPluginDependency + 490.IBPluginDependency + 491.IBEditorWindowLastContentRect + 491.IBPluginDependency + 492.IBPluginDependency + 496.IBPluginDependency + 497.IBEditorWindowLastContentRect + 497.IBPluginDependency + 498.IBPluginDependency + 499.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 500.IBPluginDependency + 501.IBPluginDependency + 502.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBEditorWindowLastContentRect + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 511.IBPluginDependency + 512.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBEditorWindowLastContentRect + 81.IBPluginDependency + 81.ImportedFromIB2 + 81.editorWindowContentRectSynchronizationRect + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{522, 812}, {146, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + 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 + + {{753, 187}, {275, 113}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {275, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{547, 180}, {254, 283}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{187, 434}, {243, 243}} + 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 + + {{608, 612}, {167, 43}} + 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 + + {{753, 217}, {238, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {241, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{654, 239}, {194, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + {{380, 836}, {512, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + {{604, 269}, {231, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + {{475, 832}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{746, 287}, {220, 133}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {215, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{380, 496}, {480, 360}} + com.apple.InterfaceBuilder.CocoaPlugin + {{380, 496}, {480, 360}} + + {{33, 99}, {480, 360}} + {3.40282e+38, 3.40282e+38} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{591, 420}, {83, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{523, 2}, {178, 283}} + 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 + 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 + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{753, 197}, {170, 63}} + 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 + {{725, 289}, {246, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{674, 260}, {204, 183}} + 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 + {{878, 180}, {164, 173}} + 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 + + {{286, 129}, {275, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + 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 + + {{452, 109}, {196, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 474}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 532 + + + + YES + + FileWatcherExampleAppDelegate + NSObject + + window + NSWindow + + + IBProjectSource + FileWatcherExampleAppDelegate.h + + + + + YES + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSBrowser + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSBrowser.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSDocument + NSObject + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + id + id + id + id + id + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocument.h + + + + NSDocument + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentScripting.h + + + + NSDocumentController + NSObject + + YES + + YES + clearRecentDocuments: + newDocument: + openDocument: + saveAllDocuments: + + + YES + id + id + id + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentController.h + + + + NSFontManager + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.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 + + + + NSMovieView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMovieView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTableView + NSControl + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../FileWatcherExample.xcodeproj + 3 + + diff --git a/README b/README new file mode 100644 index 0000000..58af665 --- /dev/null +++ b/README @@ -0,0 +1,12 @@ +FileWatcher is a simple class to watch for changes on files in OSX. FileWatcher will see changes and keep track of file locations even if the user moves the files in the finder. All the magic happened in FileWatcher.m. + +To run the test app see the example in the applicationDidFinishLaunching method of ./FileWatcherExample/Classes/FileWatcherExampleAppDelegate.m + + +This is free under the MIT license, so do whatever with it (Dropbox clones anyone?). + +-Peter Sugihara + +References: +- http://developer.apple.com/library/mac/#featuredarticles/FileSystemEvents/index.html +- http://www.cocoabuilder.com/archive/cocoa/284420-how-do-get-file-reference-o-relying-on-the-path.html \ No newline at end of file