diff --git a/SaveHollywood.xcodeproj/project.pbxproj b/SaveHollywood.xcodeproj/project.pbxproj index 34d5abb..0c3fb87 100644 --- a/SaveHollywood.xcodeproj/project.pbxproj +++ b/SaveHollywood.xcodeproj/project.pbxproj @@ -3,10 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ + CBBA401B2E8F059300E8589A /* UniformTypeIdentifiers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBBA401A2E8F059300E8589A /* UniformTypeIdentifiers.framework */; }; F4015D19169CB3C000560296 /* SHConfigurationWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F4015D16169CB3C000560296 /* SHConfigurationWindowController.h */; }; F4015D1A169CB3C000560296 /* SHConfigurationWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F4015D17169CB3C000560296 /* SHConfigurationWindowController.m */; }; F4015D1F169CB47D00560296 /* SHUserDefaults+Constants.h in Headers */ = {isa = PBXBuildFile; fileRef = F4015D1D169CB47D00560296 /* SHUserDefaults+Constants.h */; }; @@ -42,7 +43,6 @@ F4BB43B216BD3A9B00443067 /* SHLightGrayBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = F4BB43B016BD3A9B00443067 /* SHLightGrayBackgroundView.m */; }; F4BC1E3816B4936200A580F9 /* NSArray+Shuffle.h in Headers */ = {isa = PBXBuildFile; fileRef = F4BC1E3616B4936200A580F9 /* NSArray+Shuffle.h */; }; F4BC1E3916B4936200A580F9 /* NSArray+Shuffle.m in Sources */ = {isa = PBXBuildFile; fileRef = F4BC1E3716B4936200A580F9 /* NSArray+Shuffle.m */; }; - F4DD2AA016FDBF30002A555F /* SHConfigurationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4DD2A9D16FDBF30002A555F /* SHConfigurationWindowController.xib */; }; F4DD2AA316FDBF48002A555F /* SHConfigurationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4DD2A9D16FDBF30002A555F /* SHConfigurationWindowController.xib */; }; F4DD2AA516FDBF73002A555F /* SHAboutBoxWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4DD2AA416FDBF73002A555F /* SHAboutBoxWindowController.xib */; }; F4EF51BC16FA281500D1A5C6 /* SHAboutBoxWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = F4EF51B916FA281500D1A5C6 /* SHAboutBoxWindowController.h */; }; @@ -50,6 +50,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + CBBA40192E8EEB7100E8589A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SHConfigurationWindowController.xib; sourceTree = ""; }; + CBBA401A2E8F059300E8589A /* UniformTypeIdentifiers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UniformTypeIdentifiers.framework; path = System/Library/Frameworks/UniformTypeIdentifiers.framework; sourceTree = SDKROOT; }; F4015D16169CB3C000560296 /* SHConfigurationWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SHConfigurationWindowController.h; sourceTree = ""; }; F4015D17169CB3C000560296 /* SHConfigurationWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SHConfigurationWindowController.m; sourceTree = ""; }; F4015D1D169CB47D00560296 /* SHUserDefaults+Constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SHUserDefaults+Constants.h"; sourceTree = ""; }; @@ -90,7 +92,6 @@ F4BB43B016BD3A9B00443067 /* SHLightGrayBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SHLightGrayBackgroundView.m; sourceTree = ""; }; F4BC1E3616B4936200A580F9 /* NSArray+Shuffle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Shuffle.h"; sourceTree = ""; }; F4BC1E3716B4936200A580F9 /* NSArray+Shuffle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Shuffle.m"; sourceTree = ""; }; - F4DD2A9E16FDBF30002A555F /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/SHConfigurationWindowController.xib; sourceTree = ""; }; F4DD2AA216FDBF48002A555F /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/SHConfigurationWindowController.xib; sourceTree = ""; }; F4DD2AA416FDBF73002A555F /* SHAboutBoxWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SHAboutBoxWindowController.xib; sourceTree = ""; }; F4EF51B916FA281500D1A5C6 /* SHAboutBoxWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SHAboutBoxWindowController.h; sourceTree = ""; }; @@ -102,6 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + CBBA401B2E8F059300E8589A /* UniformTypeIdentifiers.framework in Frameworks */, F449795F2B5301B200A1558A /* QuartzCore.framework in Frameworks */, F449795D2B53017B00A1558A /* CoreMedia.framework in Frameworks */, F449795B2B53011B00A1558A /* AVFoundation.framework in Frameworks */, @@ -133,6 +135,7 @@ F40427CD169B76CB00B146F7 /* Frameworks */ = { isa = PBXGroup; children = ( + CBBA401A2E8F059300E8589A /* UniformTypeIdentifiers.framework */, F449795E2B5301B200A1558A /* QuartzCore.framework */, F449795C2B53017B00A1558A /* CoreMedia.framework */, F449795A2B53011B00A1558A /* AVFoundation.framework */, @@ -245,7 +248,6 @@ F40427C6169B76CB00B146F7 /* Frameworks */, F40427C7169B76CB00B146F7 /* Headers */, F40427C8169B76CB00B146F7 /* Resources */, - F40427C9169B76CB00B146F7 /* Rez */, ); buildRules = ( ); @@ -262,17 +264,19 @@ F40427C0169B76CB00B146F7 /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; CLASSPREFIX = SH; - LastUpgradeCheck = 0440; + LastUpgradeCheck = 2600; ORGANIZATIONNAME = WhiteBox; }; buildConfigurationList = F40427C3169B76CB00B146F7 /* Build configuration list for PBXProject "SaveHollywood" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, fr, + Base, ); mainGroup = F40427BE169B76CB00B146F7; productRefGroup = F40427CC169B76CB00B146F7 /* Products */; @@ -290,7 +294,6 @@ buildActionMask = 2147483647; files = ( F434961B16B701B500C549DF /* Localized.strings in Resources */, - F4DD2AA016FDBF30002A555F /* SHConfigurationWindowController.xib in Resources */, F4DD2AA316FDBF48002A555F /* SHConfigurationWindowController.xib in Resources */, F4DD2AA516FDBF73002A555F /* SHAboutBoxWindowController.xib in Resources */, F4066EA7170760EA00EBE7D0 /* thumbnail.png in Resources */, @@ -300,16 +303,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXRezBuildPhase section */ - F40427C9169B76CB00B146F7 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ F40427C5169B76CB00B146F7 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -348,8 +341,8 @@ F4DD2A9D16FDBF30002A555F /* SHConfigurationWindowController.xib */ = { isa = PBXVariantGroup; children = ( - F4DD2A9E16FDBF30002A555F /* en */, F4DD2AA216FDBF48002A555F /* fr */, + CBBA40192E8EEB7100E8589A /* Base */, ); name = SHConfigurationWindowController.xib; sourceTree = ""; @@ -361,14 +354,36 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -377,11 +392,14 @@ GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx10.9; + SDKROOT = macosx; + STRING_CATALOG_GENERATE_SYMBOLS = YES; }; name = Debug; }; @@ -389,32 +407,60 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.9; - SDKROOT = macosx10.9; + SDKROOT = macosx; + STRING_CATALOG_GENERATE_SYMBOLS = YES; }; name = Release; }; F40427E3169B76CB00B146F7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 10; + DEAD_CODE_STRIPPING = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "SaveHollywood/SaveHollywood-Prefix.pch"; INFOPLIST_FILE = "SaveHollywood/SaveHollywood-Info.plist"; INSTALL_PATH = "$(HOME)/Library/Screen Savers"; + MACOSX_DEPLOYMENT_TARGET = 26.0; + PRODUCT_BUNDLE_IDENTIFIER = "fr.whitebox.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; VERSIONING_SYSTEM = "apple-generic"; @@ -425,12 +471,16 @@ F40427E4169B76CB00B146F7 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 10; + DEAD_CODE_STRIPPING = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "SaveHollywood/SaveHollywood-Prefix.pch"; INFOPLIST_FILE = "SaveHollywood/SaveHollywood-Info.plist"; INSTALL_PATH = "$(HOME)/Library/Screen Savers"; + MACOSX_DEPLOYMENT_TARGET = 26.0; + PRODUCT_BUNDLE_IDENTIFIER = "fr.whitebox.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; VERSIONING_SYSTEM = "apple-generic"; diff --git a/SaveHollywood.xcodeproj/xcshareddata/xcschemes/SaveHollywood.xcscheme b/SaveHollywood.xcodeproj/xcshareddata/xcschemes/SaveHollywood.xcscheme new file mode 100644 index 0000000..d8dcfcf --- /dev/null +++ b/SaveHollywood.xcodeproj/xcshareddata/xcschemes/SaveHollywood.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SaveHollywood/Base.lproj/SHConfigurationWindowController.xib b/SaveHollywood/Base.lproj/SHConfigurationWindowController.xib new file mode 100644 index 0000000..a4446bd --- /dev/null +++ b/SaveHollywood/Base.lproj/SHConfigurationWindowController.xib @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SaveHollywood/NSColor+String.m b/SaveHollywood/NSColor+String.m index 812776c..7665f48 100644 --- a/SaveHollywood/NSColor+String.m +++ b/SaveHollywood/NSColor+String.m @@ -26,7 +26,8 @@ + (NSColor *)colorFromString:(NSString *)inString - (NSString *)stringValue { - NSColor *tColor = [self colorUsingColorSpaceName:@"NSCalibratedRGBColorSpace"]; + NSColorSpace *colorSpace = [NSColorSpace genericRGBColorSpace]; + NSColor *tColor = [self colorUsingColorSpace:colorSpace]; return([NSString stringWithFormat:@"%f|%f|%f",(float)[tColor redComponent],(float)[tColor greenComponent],(float)[tColor blueComponent]]); } diff --git a/SaveHollywood/SHAboutBoxWindowController.m b/SaveHollywood/SHAboutBoxWindowController.m index 64f7341..5356803 100644 --- a/SaveHollywood/SHAboutBoxWindowController.m +++ b/SaveHollywood/SHAboutBoxWindowController.m @@ -30,14 +30,19 @@ - (NSString *)windowNibName - (void)windowDidLoad { - [super windowDidLoad]; + [super windowDidLoad]; - NSBundle * tBundle=[NSBundle bundleForClass:[self class]]; - NSDictionary * tInfoDictionary=tBundle.infoDictionary; + NSBundle * tBundle = [NSBundle bundleForClass:[self class]]; + NSDictionary * tInfoDictionary = tBundle.infoDictionary; - _versionLabel.stringValue=[NSString stringWithFormat:NSLocalizedStringFromTableInBundle(@"Version %@ (%@)",@"Localized",tBundle,@""),tInfoDictionary[@"CFBundleShortVersionString"],tInfoDictionary[@"CFBundleVersion"]]; + _versionLabel.stringValue = [NSString stringWithFormat:NSLocalizedStringFromTableInBundle(@"Version %@ (%@)", @"Localized", tBundle, @""), tInfoDictionary[@"CFBundleShortVersionString"], tInfoDictionary[@"CFBundleVersion"]]; - _copyrightLabel.stringValue=[NSString stringWithFormat:NSLocalizedStringFromTableInBundle(@"Legal terms",@"Localized",tBundle,@""),[[NSCalendarDate date] yearOfCommonEra]]; + NSDate *currentDate = [NSDate date]; + NSCalendar *calendar = [NSCalendar currentCalendar]; + NSDateComponents *components = [calendar components:NSCalendarUnitYear fromDate:currentDate]; + NSInteger year = [components year]; + + _copyrightLabel.stringValue = [NSString stringWithFormat:NSLocalizedStringFromTableInBundle(@"Legal terms", @"Localized", tBundle, @""), year]; } @end diff --git a/SaveHollywood/SHAboutBoxWindowController.xib b/SaveHollywood/SHAboutBoxWindowController.xib index 870009c..a77059e 100644 --- a/SaveHollywood/SHAboutBoxWindowController.xib +++ b/SaveHollywood/SHAboutBoxWindowController.xib @@ -1,518 +1,73 @@ - - - 1080 - 14F2511 - 7706 - 1348.17 - 758.70 - - com.apple.InterfaceBuilder.CocoaPlugin - 7706 - - - NSCustomObject - NSImageCell - NSImageView - NSTextField - NSTextFieldCell - NSView - NSWindowTemplate - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - SHAboutBoxWindowController - - - FirstResponder - - - NSApplication - - - 3 - 2 - {{196, 240}, {314, 181}} - 1618477056 - - NSWindow - - - {314, 181} - {314, 181} - - - 256 - - - - 268 - {{58, 82}, {198, 18}} - - - - _NS:1535 - YES - - 68157504 - 138413056 - SaveHollywood - - YES - 14 - 2072 - - _NS:1535 - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - NO - 1 - - - - 268 - {{17, 56}, {280, 18}} - - - - _NS:1535 - YES - - 68157504 - 138413056 - Version - - YES - 11 - 3100 - - _NS:1535 - - - - - NO - 1 - - - - 268 - {{17, 20}, {280, 28}} - - - _NS:1535 - YES - - 68157504 - 138413056 - Q29weXJpZ2h0IMKpIC0yMDEzIFN0w6lwaGFuZSBTdWRyZQpBbGwgcmlnaHRzIHJlc2VydmVkLg - - _NS:1535 - - - - - NO - 1 - - - - 268 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {{112, 110}, {90, 58}} - - - - _NS:9 - YES - - 134217728 - 33554432 - - NSImage - thumbnail - - _NS:9 - 0 - 0 - 0 - NO - - NO - YES - - - {314, 181} - - - - - {{0, 0}, {2560, 1577}} - {314, 203} - {314, 203} - NO - - - - - - - window - - - - 3 - - - - _copyrightLabel - - - - 45 - - - - _versionLabel - - - - 46 - - - - delegate - - - - 4 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - - - - 5 - - - - - - - - 6 - - - - - 9 - - - - - - - - 10 - - - - - 15 - - - - - - - - 16 - - - - - 30 - - - - - - - - 31 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {50, 162.5} - com.apple.InterfaceBuilder.CocoaPlugin - {{357, 418}, {480, 270}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 46 - - - - - SHAboutBoxWindowController - NSWindowController - - IBProjectSource - ../SaveHollywood/SHAboutBoxWindowController.h - - - - SHAboutBoxWindowController - - NSTextField - NSTextField - - - - _copyrightLabel - NSTextField - - - _versionLabel - NSTextField - - - - IBProjectSource - ../SaveHollywood/SHAboutBoxWindowController.m - - - - - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSImageCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSImageCell.h - - - - NSImageView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSImageView.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSView - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - showWindow: - - showWindow: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - - - 0 - IBCocoaFramework - NO - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - thumbnail - {90, 58} - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copyright © -2013 Stéphane Sudre +All rights reserved. + + + + + + + + + + + + + + + + + + + + + diff --git a/SaveHollywood/SHConfigurationWindowController.m b/SaveHollywood/SHConfigurationWindowController.m index efc6519..09f7ba9 100644 --- a/SaveHollywood/SHConfigurationWindowController.m +++ b/SaveHollywood/SHConfigurationWindowController.m @@ -15,6 +15,8 @@ #import +#import + #import "NSColor+String.h" #import "NSIndexSet+Analysis.h" @@ -115,9 +117,10 @@ @implementation SHConfigurationWindowController + (NSImage *)createIconForFileType:(NSString *)inFileType { - NSImage * tImage=[[NSWorkspace sharedWorkspace] iconForFileType:inFileType]; + UTType *utType = [UTType typeWithIdentifier:inFileType]; + NSImage * tImage=[[NSWorkspace sharedWorkspace] iconForContentType:utType]; - [tImage setSize:NSMakeSize(16.,16.)]; + [tImage setSize:NSMakeSize(16.,16.)]; return tImage; } @@ -178,7 +181,7 @@ - (void)windowDidLoad // Register for D&D - [_assetsTableView registerForDraggedTypes:@[SHPasteboardTypeSelectedRows,NSFilenamesPboardType]]; + [_assetsTableView registerForDraggedTypes:@[SHPasteboardTypeSelectedRows, NSPasteboardTypeFileURL]]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(shouldShowValueLabel:) @@ -212,13 +215,13 @@ - (void)refreshSettings BOOL tBool=[tDefaults boolForKey:SHUserDefaultsAssetsRandomOrder]; - [_randomOrderCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_randomOrderCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; // Start where left off tBool=[tDefaults boolForKey:SHUserDefaultsAssetsStartWhereLeftOff]; - [_resumePlayingCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_resumePlayingCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; // List @@ -257,19 +260,19 @@ - (void)refreshSettings tBool=[tDefaults boolForKey:SHUserDefaultsFrameRandomPosition]; - [_frameRandomPositionCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_frameRandomPositionCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; // Draw Border tBool=[tDefaults boolForKey:SHUserDefaultsFrameDrawBorder]; - [_frameDrawBorderCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_frameDrawBorderCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; // Show Metadata tBool=[tDefaults boolForKey:SHUserDefaultsFrameShowMetadata]; - [_frameShowMetatadaCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_frameShowMetatadaCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; [_frameShowMetatadaModeMatrix setEnabled:tBool]; @@ -306,7 +309,7 @@ - (void)refreshSettings tBool=[tDefaults boolForKey:SHUserDefaultsAudioMainDisplayOnly]; - [_audioMainScreenCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_audioMainScreenCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; // Volume @@ -339,7 +342,7 @@ - (void)refreshSettings tBool=[tDefaults boolForKey:SHUserDefaultsMainDisplayOnly]; - [_mainScreenCheckBox setState:(tBool==YES) ? NSOnState : NSOffState]; + [_mainScreenCheckBox setState:(tBool==YES) ? NSControlStateValueOn : NSControlStateValueOff]; [_assetsTableView reloadData]; } @@ -572,13 +575,13 @@ - (IBAction)addAsset:(id)sender [tOpenPanel setDelegate:self]; [tOpenPanel setCanChooseDirectories:YES]; [tOpenPanel setAllowsMultipleSelection:YES]; - [tOpenPanel setAllowedFileTypes:[AVURLAsset audiovisualTypes]]; + [tOpenPanel setAllowedContentTypes:@[UTTypeAudiovisualContent]]; [tOpenPanel setTitle:NSLocalizedStringFromTableInBundle(@"Add video or folder",@"Localized",[NSBundle bundleForClass:[self class]],@"")]; [tOpenPanel setPrompt:NSLocalizedStringFromTableInBundle(@"Add",@"Localized",[NSBundle bundleForClass:[self class]],@"")]; NSInteger tResult=[tOpenPanel runModal]; - if (tResult==NSFileHandlingPanelOKButton) + if (tResult==NSModalResponseOK) { NSArray * tURLs=[tOpenPanel URLs]; NSMutableIndexSet * tMutableIndexSet=[NSMutableIndexSet indexSet]; @@ -648,7 +651,7 @@ - (IBAction)switchFrameScaling:(id)sender - (IBAction)switchShowMetadata:(id)sender { - BOOL tBool=([sender state]==NSOnState); + BOOL tBool=([sender state]==NSControlStateValueOn); NSInteger tTag=[[_frameShowMetatadaModeMatrix selectedCell] tag]; [_frameShowMetatadaModeMatrix setEnabled:tBool]; @@ -702,7 +705,7 @@ - (IBAction)showAboutBox:(id)sender - (IBAction)closeDialog:(id)sender { - if ([sender tag]==NSOKButton) + if ([sender tag]==NSModalResponseOK) { #ifdef __TEST_SCREENSAVER__ NSUserDefaults *tDefaults = [NSUserDefaults standardUserDefaults]; @@ -716,11 +719,11 @@ - (IBAction)closeDialog:(id)sender // Random Order - [tDefaults setBool:([_randomOrderCheckBox state]==NSOnState) forKey:SHUserDefaultsAssetsRandomOrder]; + [tDefaults setBool:([_randomOrderCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsAssetsRandomOrder]; // Start where left off - [tDefaults setBool:([_resumePlayingCheckBox state]==NSOnState) forKey:SHUserDefaultsAssetsStartWhereLeftOff]; + [tDefaults setBool:([_resumePlayingCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsAssetsStartWhereLeftOff]; // List @@ -747,15 +750,15 @@ - (IBAction)closeDialog:(id)sender // Random Position - [tDefaults setBool:([_frameRandomPositionCheckBox state]==NSOnState) forKey:SHUserDefaultsFrameRandomPosition]; + [tDefaults setBool:([_frameRandomPositionCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsFrameRandomPosition]; // Draw Border - [tDefaults setBool:([_frameDrawBorderCheckBox state]==NSOnState) forKey:SHUserDefaultsFrameDrawBorder]; + [tDefaults setBool:([_frameDrawBorderCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsFrameDrawBorder]; // Show Metadata - [tDefaults setBool:([_frameShowMetatadaCheckBox state]==NSOnState) forKey:SHUserDefaultsFrameShowMetadata]; + [tDefaults setBool:([_frameShowMetatadaCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsFrameShowMetadata]; // Show Metadata mode @@ -780,7 +783,7 @@ - (IBAction)closeDialog:(id)sender // Audio - [tDefaults setBool:([_audioMainScreenCheckBox state]==NSOnState) forKey:SHUserDefaultsAudioMainDisplayOnly]; + [tDefaults setBool:([_audioMainScreenCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsAudioMainDisplayOnly]; // Volume @@ -793,7 +796,7 @@ - (IBAction)closeDialog:(id)sender // Main Screen Only - [tDefaults setBool:([_mainScreenCheckBox state]==NSOnState) forKey:SHUserDefaultsMainDisplayOnly]; + [tDefaults setBool:([_mainScreenCheckBox state]==NSControlStateValueOn) forKey:SHUserDefaultsMainDisplayOnly]; [tDefaults synchronize]; } @@ -905,7 +908,7 @@ - (NSView *)tableView:(NSTableView *)inTableView viewForTableColumn:(NSTableColu [tAssetTableView.folderNameLabel setTextColor:[NSColor redColor]]; - tAssetTableView.imageView.image=[[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kUnknownFSObjectIcon)]; + tAssetTableView.imageView.image = [[NSWorkspace sharedWorkspace] iconForContentType:UTTypeItem]; } return tAssetTableView; @@ -939,8 +942,8 @@ - (NSDragOperation)tableView:(NSTableView *)inTableView validateDrop:(id )inD NSMutableArray * tNewAssets=nil; NSPasteboard * tPasteboard=[inDraggingInfo draggingPasteboard]; - NSString * tPasteboardType=[tPasteboard availableTypeFromArray:@[SHPasteboardTypeSelectedRows,NSFilenamesPboardType]]; - + NSString *tPasteboardType = [tPasteboard availableTypeFromArray:@[SHPasteboardTypeSelectedRows, NSPasteboardTypeFileURL]]; + if ([tPasteboardType isEqualToString:SHPasteboardTypeSelectedRows]==YES) { NSUInteger tIndex=[_internalDragData firstIndex]; @@ -1047,9 +1049,9 @@ - (BOOL)tableView:(NSTableView *)inTableView acceptDrop:(id )inD [_cachedAssetsArray removeObjectsAtIndexes:_internalDragData]; } - else if ([tPasteboardType isEqualToString:NSFilenamesPboardType]==YES) + else if ([tPasteboardType isEqualToString:NSPasteboardTypeFileURL]) { - NSArray * tFilesArray = [tPasteboard propertyListForType:NSFilenamesPboardType]; + NSArray *tFilesArray = [tPasteboard propertyListForType:NSPasteboardTypeFileURL]; NSFileManager * tFileManager=[NSFileManager defaultManager]; tNewAssets=[NSMutableArray array]; diff --git a/SaveHollywood/SHLightGrayBackgroundView.m b/SaveHollywood/SHLightGrayBackgroundView.m index e994c8b..309ad0a 100644 --- a/SaveHollywood/SHLightGrayBackgroundView.m +++ b/SaveHollywood/SHLightGrayBackgroundView.m @@ -24,12 +24,12 @@ - (BOOL)isOpaque - (void)drawRect:(NSRect)dirtyRect { - if ([self isEffectiveAppareanceDarkAqua]==YES) - return; - - [[NSColor colorWithDeviceWhite:0.915 alpha:0.8] set]; - - NSRectFillUsingOperation(dirtyRect, NSCompositeSourceOver); + if ([self isEffectiveAppareanceDarkAqua]==YES) + return; + + [[NSColor colorWithDeviceWhite:0.915 alpha:0.8] set]; + + NSRectFillUsingOperation(dirtyRect, NSCompositingOperationSourceOver); } @end diff --git a/SaveHollywood/SHSecondaryBox.m b/SaveHollywood/SHSecondaryBox.m index a3794af..ccf68a0 100644 --- a/SaveHollywood/SHSecondaryBox.m +++ b/SaveHollywood/SHSecondaryBox.m @@ -24,18 +24,18 @@ - (BOOL)isOpaque - (void)drawRect:(NSRect)dirtyRect { - if ([self isEffectiveAppareanceDarkAqua]==NO) - [[NSColor colorWithDeviceWhite:1.0 alpha:0.5] set]; - else - [[NSColor colorWithDeviceWhite:0.0 alpha:0.15] set]; - - NSRectFillUsingOperation(dirtyRect,NSCompositeSourceOver); - - [[NSColor colorWithDeviceWhite:0.0 alpha:0.10] set]; - - NSRect tFrameRect=NSInsetRect([self bounds],-1,0); - - NSFrameRectWithWidthUsingOperation(tFrameRect, 1.0, NSCompositeSourceOver); + if ([self isEffectiveAppareanceDarkAqua] == NO) + [[NSColor colorWithDeviceWhite:1.0 alpha:0.5] set]; + else + [[NSColor colorWithDeviceWhite:0.0 alpha:0.15] set]; + + NSRectFillUsingOperation(dirtyRect, NSCompositingOperationSourceOver); + + [[NSColor colorWithDeviceWhite:0.0 alpha:0.10] set]; + + NSRect tFrameRect = NSInsetRect([self bounds], -1, 0); + + NSFrameRectWithWidthUsingOperation(tFrameRect, 1.0, NSCompositingOperationSourceOver); } @end diff --git a/SaveHollywood/SHTokenView.m b/SaveHollywood/SHTokenView.m index 9ec0d79..3638628 100644 --- a/SaveHollywood/SHTokenView.m +++ b/SaveHollywood/SHTokenView.m @@ -43,14 +43,14 @@ - (id)initWithFrame:(NSRect)frameRect if (self!=nil) { NSMutableParagraphStyle * tMutableParagraphStyle=[[NSParagraphStyle defaultParagraphStyle] mutableCopy]; - tMutableParagraphStyle.alignment=NSCenterTextAlignment; + tMutableParagraphStyle.alignment=NSTextAlignmentCenter; NSShadow * tShadow=[NSShadow new]; tShadow.shadowOffset=NSMakeSize(0,-1); tShadow.shadowColor=[NSColor colorWithDeviceWhite:0.65 alpha:1.0]; _attributesDictionary=[@{NSForegroundColorAttributeName:[NSColor whiteColor], - NSFontAttributeName:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSRegularControlSize]], + NSFontAttributeName:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSControlSizeRegular]], NSParagraphStyleAttributeName:tMutableParagraphStyle, NSShadowAttributeName:tShadow} copy]; @@ -101,7 +101,7 @@ - (void)drawRect:(NSRect)dirtyRect if (_cachedStringValue!=nil) { - CGFloat tHeight=[NSFont systemFontSizeForControlSize:NSRegularControlSize];//heightForStringDrawing(_cachedStringValue,tBounds.size.width); + CGFloat tHeight=[NSFont systemFontSizeForControlSize:NSControlSizeRegular];//heightForStringDrawing(_cachedStringValue,tBounds.size.width); tBounds.origin.y=round(NSMidY(tBounds)-tHeight*0.5+1); tBounds.size.height=tHeight; diff --git a/SaveHollywood/SaveHollywood-Info.plist b/SaveHollywood/SaveHollywood-Info.plist index b03d85c..72b621c 100644 --- a/SaveHollywood/SaveHollywood-Info.plist +++ b/SaveHollywood/SaveHollywood-Info.plist @@ -9,7 +9,7 @@ CFBundleIconFile CFBundleIdentifier - fr.whitebox.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -17,11 +17,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 2.6 + 2.7 CFBundleSignature ???? CFBundleVersion - 10 + 11 NSHumanReadableCopyright Copyright © 2013-2018 WhiteBox. All rights reserved. NSPrincipalClass diff --git a/SaveHollywood/SaveHollywoodView.m b/SaveHollywood/SaveHollywoodView.m index c9c7261..8dc884f 100755 --- a/SaveHollywood/SaveHollywoodView.m +++ b/SaveHollywood/SaveHollywoodView.m @@ -10,6 +10,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#import #import "SaveHollywoodView.h" #import "SHConfigurationWindowController.h" @@ -23,6 +24,7 @@ #import "NSColor+String.h" #import "NSArray+Shuffle.h" + #define BORDER_SIZE 50.0 #define LRAND() ((long) (random() & 0x7fffffff)) @@ -147,37 +149,29 @@ - (id)initWithFrame:(NSRect)frameRect - (id)initWithFrame:(NSRect)frameRect isPreview:(BOOL)isPreview { - self=[super initWithFrame:frameRect isPreview:isPreview]; - - if (self!=nil) - { - SInt32 tMajorVersion,tMinorVersion,tBugFixVersion; - - Gestalt(gestaltSystemVersionMajor,&tMajorVersion); - Gestalt(gestaltSystemVersionMinor,&tMinorVersion); - Gestalt(gestaltSystemVersionBugFix,&tBugFixVersion); - - - _useKeyedArchiverForLeftOffData=(tMajorVersion>10 || (tMajorVersion==10 && tMinorVersion>=12)); - - [self setAnimationTimeInterval:1.0]; - - _fileManager=[NSFileManager defaultManager]; - - _preview=isPreview; - - if (_preview==YES) - { - _mainScreen=YES; - } - else - { - _mainScreen= (NSMinX(frameRect)==0 && NSMinY(frameRect)==0); + self = [super initWithFrame:frameRect isPreview:isPreview]; + + if (self != nil) { + NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion]; + NSInteger major = version.majorVersion; + NSInteger minor = version.minorVersion; + + _useKeyedArchiverForLeftOffData = (major > 10 || (major == 10 && minor >= 12)); + + [self setAnimationTimeInterval:1.0]; + + _fileManager = [NSFileManager defaultManager]; + + _preview = isPreview; + + if (_preview == YES) { + _mainScreen = YES; + } else { + _mainScreen = (NSMinX(frameRect) == 0 && NSMinY(frameRect) == 0); } - + [self setWantsLayer:YES]; } - return self; } @@ -384,35 +378,24 @@ - (void)startAnimation } } - if ([tAssets count]>0) + if ([tAssets count] > 0) { __assetsArray=[[NSMutableArray alloc] initWithCapacity:[tAssets count]]; - + if (__assetsArray!=nil) { - // Flatten the list of potential assets and prune it from incompatible and unplayable files - NSArray * tAcceptedUTIsArray=[AVURLAsset audiovisualTypes]; - NSWorkspace * tSharedWorkspace=[NSWorkspace sharedWorkspace]; - for(NSURL * tURL in tAssets) { if ([tURL isFileURL]==YES) { NSString * tAbsolutePath=[tURL path]; BOOL tIsDirectory; - + if ([_fileManager fileExistsAtPath:tAbsolutePath isDirectory:&tIsDirectory]==YES) { if (tIsDirectory==NO) { - // Check that the file is of a supported type - - NSString * tUTI=[tSharedWorkspace typeOfFile:tAbsolutePath error:NULL]; - - if (tUTI!=nil && [tAcceptedUTIsArray containsObject:tUTI]==YES) - { - [__assetsArray addObject:tURL]; - } + [__assetsArray addObject:tURL]; } else { @@ -428,34 +411,14 @@ - (void)startAnimation } else { - for (NSString * tFileName in tFileNamesArray) - { - NSString * tSubPath=[tAbsolutePath stringByAppendingPathComponent:tFileName]; - - // Check that the file is of a supported type - - NSString * tUTI=[tSharedWorkspace typeOfFile:tSubPath error:NULL]; - - if (tUTI!=nil && [tAcceptedUTIsArray containsObject:tUTI]==YES) - { - NSURL *tSubURL=[NSURL fileURLWithPath:tSubPath]; - - if (tSubURL!=nil) - { - [__assetsArray addObject:tSubURL]; - } - } + for (NSString *tFileName in tFileNamesArray) { + NSString *fullFilePath = [tAbsolutePath stringByAppendingPathComponent:tFileName]; + [__assetsArray addObject:[NSURL fileURLWithPath:fullFilePath]]; } } } } } - else - { - // Remote URL - - // A COMPLETER - } } NSUInteger tCount=[__assetsArray count]; @@ -478,9 +441,7 @@ - (void)startAnimation selector:@selector(playerItemDidPlayToEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:nil]; - - // - + NSDictionary * tLastKnownAssetDictionary=nil; if (_preview==NO) @@ -502,13 +463,13 @@ - (void)startAnimation if (tData!=nil) { - if (_useKeyedArchiverForLeftOffData==YES) - tLastKnownAssetDictionary=[NSKeyedUnarchiver unarchiveObjectWithData:tData]; - else - tLastKnownAssetDictionary=[NSUnarchiver unarchiveObjectWithData:tData]; - - if (tLastKnownAssetDictionary==nil) - NSLog(@"Error when unarchiving last known asset for %@",tScreenKey); + NSError *error = nil; + tLastKnownAssetDictionary = [NSKeyedUnarchiver unarchivedObjectOfClass:[NSDictionary class] + fromData:tData + error:&error]; + if (!tLastKnownAssetDictionary) { + NSLog(@"Failed unarchiving data: %@", error); + } } } else @@ -617,15 +578,31 @@ - (void)stopAnimation NSDictionary * tLastAssetDictionary=@{SHAssetTimeKey:tValue, SHAssetURLKey:tCurrentURL}; - NSData * tData=nil; - - if (_useKeyedArchiverForLeftOffData==YES) - tData=[NSKeyedArchiver archivedDataWithRootObject:tLastAssetDictionary]; - else - tData=[NSArchiver archivedDataWithRootObject:tLastAssetDictionary]; - - if (tData!=nil) + NSError *error = nil; + NSData *tData = nil; + + if (_useKeyedArchiverForLeftOffData == YES) { + tData = [NSKeyedArchiver archivedDataWithRootObject:tLastAssetDictionary + requiringSecureCoding:NO + error:&error]; + if (error) { + NSLog(@"Archiving error: %@", error); + } + } else { + // NSArchiver is deprecated, consider migrating all data to use NSKeyedArchiver + NSError *error = nil; + tData = [NSKeyedArchiver archivedDataWithRootObject:tLastAssetDictionary + requiringSecureCoding:NO + error:&error]; + if (error != nil) { + NSLog(@"Error archiving data: %@", error); + } + } + + if (tData != nil) { [tDefaults setObject:tData forKey:tScreenKey]; + } + } } else @@ -820,66 +797,63 @@ - (BOOL)playNextAsset:(NSDictionary *)preferredNextAssetDictionary canPlaySameRa CGRect tBackgroundFrame=_backgroundLayer.bounds; CGRect tFrame=tBackgroundFrame; - if (_scaling==SHMovieScaleNone) - { - CGSize tAssetSize=tAsset.naturalSize; - - CGFloat tRatio=tAssetSize.width/tBackgroundFrame.size.width; - CGFloat tYRatio=tAssetSize.height/tBackgroundFrame.size.height; - - if (tYRatio>tRatio) - { - tRatio=tYRatio; + [tAsset loadTracksWithMediaType:AVMediaTypeVideo completionHandler:^(NSArray * _Nullable tracks, NSError * _Nullable error) { + if (error != nil || tracks.count == 0) { + NSLog(@"Failed to load video tracks: %@", error); + return; } - - if (tRatio>=1.0f) - { - tAssetSize.width=round(tAssetSize.width/tRatio); - tAssetSize.height=round(tAssetSize.height/tRatio); + + AVAssetTrack *videoTrack = tracks[0]; + CGSize tAssetSize = videoTrack.naturalSize; + + CGFloat tRatio = tAssetSize.width / tBackgroundFrame.size.width; + CGFloat tYRatio = tAssetSize.height / tBackgroundFrame.size.height; + + if (tYRatio > tRatio) { + tRatio = tYRatio; } - - if (_randomPosition==YES && tRatio<1.0) - { - // Make sure we can randomize the position - - NSSize tSize=tAssetSize; - - tFrame.origin=SSRandomPointForSizeWithinRect(tAssetSize,tBackgroundFrame); - tFrame.size=tSize; + + if (tRatio >= 1.0f) { + tAssetSize.width = round(tAssetSize.width / tRatio); + tAssetSize.height = round(tAssetSize.height / tRatio); } - else - { - if (_drawBorder==YES) - { - if (tAssetSize.width>(tBackgroundFrame.size.width-2*BORDER_SIZE)) - { - tAssetSize.width=tBackgroundFrame.size.width-2*BORDER_SIZE; + + CGRect tFrame; + + if (_randomPosition == YES && tRatio < 1.0) { + NSSize tSize = tAssetSize; + tFrame.origin = SSRandomPointForSizeWithinRect(tAssetSize, tBackgroundFrame); + tFrame.size = tSize; + } else { + if (_drawBorder == YES) { + if (tAssetSize.width > (tBackgroundFrame.size.width - 2 * BORDER_SIZE)) { + tAssetSize.width = tBackgroundFrame.size.width - 2 * BORDER_SIZE; } - - if (tAssetSize.height>(tBackgroundFrame.size.height-2*BORDER_SIZE)) - { - tAssetSize.height=tBackgroundFrame.size.height-2*BORDER_SIZE; + if (tAssetSize.height > (tBackgroundFrame.size.height - 2 * BORDER_SIZE)) { + tAssetSize.height = tBackgroundFrame.size.height - 2 * BORDER_SIZE; } } - - tFrame.size=tAssetSize; - - tFrame.origin.x=round(tBackgroundFrame.origin.x+(tBackgroundFrame.size.width-tAssetSize.width)*0.5); - tFrame.origin.y=round(tBackgroundFrame.origin.y+(tBackgroundFrame.size.height-tAssetSize.height)*0.5); + tFrame.size = tAssetSize; + tFrame.origin.x = round(tBackgroundFrame.origin.x + (tBackgroundFrame.size.width - tAssetSize.width) * 0.5); + tFrame.origin.y = round(tBackgroundFrame.origin.y + (tBackgroundFrame.size.height - tAssetSize.height) * 0.5); } - } - else - { - if (_scaling==SHMovieScaleAxesIndependently) - _AVPlayerLayer.videoGravity=AVLayerVideoGravityResizeAspectFill; - else - _AVPlayerLayer.videoGravity=AVLayerVideoGravityResizeAspect; - - if (_drawBorder==YES) - { - tFrame=CGRectInset(tBackgroundFrame, BORDER_SIZE, BORDER_SIZE); + + if (_scaling == SHMovieScaleAxesIndependently) { + _AVPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; + } else { + _AVPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspect; } - } + + if (_drawBorder == YES) { + tFrame = CGRectInset(tBackgroundFrame, BORDER_SIZE, BORDER_SIZE); + } + + // Use tFrame and update layers/UI on main thread as needed: + dispatch_async(dispatch_get_main_queue(), ^{ + _AVPlayerLayer.frame = tFrame; + // Update UI or redraw if necessary + }); + }]; _AVPlayerLayer.frame=tFrame; @@ -938,7 +912,7 @@ - (BOOL)playNextAsset:(NSDictionary *)preferredNextAssetDictionary canPlaySameRa // Update assets playing list [[SHPlayingAssetsRegister sharedRegister] addAsset:tAsset.URL]; - + [_AVPlayerLayer.player play]; if (_preview==NO && _showMetadata==YES) @@ -1005,49 +979,49 @@ - (BOOL)playNextAsset:(NSDictionary *)preferredNextAssetDictionary canPlaySameRa if ([tAvailableMetadataFormats containsObject:AVMetadataFormatQuickTimeUserData]==YES) { - NSArray * tMetadata=[tAVPlayerItem.asset metadataForFormat:AVMetadataFormatQuickTimeUserData]; - NSArray * tMetadataItemsArray; - - // Title - - if (_currentAssetMetadataTitle==nil) - { - tMetadataItemsArray=[AVMetadataItem metadataItemsFromArray:tMetadata - withKey:AVMetadataCommonKeyTitle - keySpace:AVMetadataKeySpaceCommon]; + [tAVPlayerItem.asset loadMetadataForFormat:AVMetadataFormatQuickTimeUserData completionHandler:^(NSArray * _Nullable metadata, NSError * _Nullable error) { - if ([tMetadataItemsArray count]>0) - { - _currentAssetMetadataTitle=[[NSString alloc] initWithString:[tMetadataItemsArray[0] stringValue]]; - } - } - - // Copyrights - - if (_currentAssetMetadataCopyrights==nil) - { - tMetadataItemsArray=[AVMetadataItem metadataItemsFromArray:tMetadata - withKey:AVMetadataCommonKeyCopyrights - keySpace:AVMetadataKeySpaceCommon]; - - if ([tMetadataItemsArray count]>0) - { - _currentAssetMetadataCopyrights=[[NSString alloc] initWithString:[tMetadataItemsArray[0] stringValue]]; + if (error) { + NSLog(@"Error loading metadata: %@", error); + return; } - } - - if (_currentAssetMetadataTitle!=nil || _currentAssetMetadataCopyrights!=nil) - { - tTitleLayer.string=_currentAssetMetadataTitle; - tCopyrightLayer.string=_currentAssetMetadataCopyrights; - if (_metadadataMode==kMovieFrameShowMetadataAtStart) - { - [self performSelectorOnMainThread:@selector(showMetadata:) - withObject:nil - waitUntilDone:NO]; + NSArray *tMetadataItemsArray; + + // Title + if (_currentAssetMetadataTitle == nil) { + tMetadataItemsArray = [AVMetadataItem metadataItemsFromArray:metadata + withKey:AVMetadataCommonKeyTitle + keySpace:AVMetadataKeySpaceCommon]; + if ([tMetadataItemsArray count] > 0) { + _currentAssetMetadataTitle = [[NSString alloc] initWithString:[tMetadataItemsArray[0] stringValue]]; + } } - } + + // Copyright + if (_currentAssetMetadataCopyrights == nil) { + tMetadataItemsArray = [AVMetadataItem metadataItemsFromArray:metadata + withKey:AVMetadataCommonKeyCopyrights + keySpace:AVMetadataKeySpaceCommon]; + if ([tMetadataItemsArray count] > 0) { + _currentAssetMetadataCopyrights = [[NSString alloc] initWithString:[tMetadataItemsArray[0] stringValue]]; + } + } + + if (_currentAssetMetadataTitle != nil || _currentAssetMetadataCopyrights != nil) { + dispatch_async(dispatch_get_main_queue(), ^{ + tTitleLayer.string = _currentAssetMetadataTitle; + tCopyrightLayer.string = _currentAssetMetadataCopyrights; + + if (_metadadataMode == kMovieFrameShowMetadataAtStart) { + [self performSelectorOnMainThread:@selector(showMetadata:) + withObject:nil + waitUntilDone:NO]; + } + }); + } + }]; + } } }]; diff --git a/SaveHollywood/en.lproj/SHConfigurationWindowController.xib b/SaveHollywood/en.lproj/SHConfigurationWindowController.xib deleted file mode 100644 index 96cc09f..0000000 --- a/SaveHollywood/en.lproj/SHConfigurationWindowController.xib +++ /dev/null @@ -1,3130 +0,0 @@ - - - - 1080 - 14F2511 - 7706 - 1348.17 - 758.70 - - com.apple.InterfaceBuilder.CocoaPlugin - 7706 - - - NSButton - NSButtonCell - NSColorWell - NSCustomObject - NSCustomView - NSImageCell - NSImageView - NSMatrix - NSMenu - NSMenuItem - NSNumberFormatter - NSScrollView - NSScroller - NSSlider - NSSliderCell - NSTableCellView - NSTableColumn - NSTableView - NSTextField - NSTextFieldCell - NSView - NSWindowTemplate - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - SHConfigurationWindowController - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{84, 169}, {438, 742}} - 1618478080 - - NSWindow - - - {438, 2000} - {438, 697} - - - 256 - - - - 289 - {{342, 12}, {82, 32}} - - - _NS:9 - 1 - YES - - 67108864 - 134217728 - OK - - YES - 13 - 1044 - - _NS:9 - - -2038284288 - 129 - - DQ - 200 - 25 - - NO - - - - 289 - {{260, 12}, {82, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - Cancel - - _NS:9 - - -2038284288 - 129 - - Gw - 200 - 25 - - NO - - - - 292 - {{14, 12}, {91, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - About… - - _NS:9 - - -2038284288 - 129 - - - 200 - 25 - - NO - - - - 292 - {{43, 582}, {24, 23}} - - - - _NS:22 - YES - - -1543503872 - 134217728 - - - _NS:22 - - -2033434624 - 162 - - NSImage - NSRemoveTemplate - - - CA - 400 - 75 - - NO - - - - 260 - {{20, 582}, {24, 23}} - - - - _NS:22 - YES - - -2080374784 - 134217728 - - - _NS:22 - - -2033434624 - 162 - - NSImage - NSAddTemplate - - - - 400 - 75 - - NO - - - - 288 - {{34, 175}, {70, 17}} - - - - YES - - 67108864 - 71303168 - Volume: - - YES - 13 - 2072 - - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - NO - 1 - - - - 288 - {{46, 204}, {58, 17}} - - - - YES - - 67108864 - 71303168 - Audio: - - - - - - NO - 1 - - - - 288 - {{109, 134}, {75, 58}} - - - - YES - NO - 3 - 1 - - - -2080374784 - 0 - Mute - - - 1 - 1211912448 - 0 - - NSRadioButton - - - - - - 200 - 25 - - - 67108864 - 0 - Normal - - - 1211912448 - 0 - - - - 200 - 25 - - - 67108864 - 0 - Custom: - - - 2 - 1211912448 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAxIAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMSExp -bm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAA -AAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAA -AhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA -A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAA -BDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 -bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAA -AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA -b6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA -ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYx -OTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2 -LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl -c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA -AAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABM -CVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 -cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 -AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQET -ARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp -AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML -AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+ -BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZI -BlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghu -CIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz -CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e -DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx -EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTw -FRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg -GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3D -HeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLd -IwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhx -KKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C -Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT -NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn -PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPA -RANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi -TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSP -VNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J -XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeT -Z+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw -cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzh -fUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp -iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK -lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH -obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6h -rxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8Ibyb -vRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2 -y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 -2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb -6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn -+3f8B/yY/Sn9uv5L/tz/bf//A - - - - - - 3 - MCAwAA - - - - - - 400 - 75 - - - {75, 18} - {4, 2} - 1143472128 - NSActionCell - - 67108864 - 0 - Radio - - 1211912448 - 0 - - - 400 - 75 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - - - - - 274 - - - - 2322 - - - - 256 - - - - 274 - - - - 266 - {{38, 17}, {305, 16}} - - - - {250, 750} - YES - - 67108928 - 272631808 - Table View Cell - - - - - - NO - 1 - - - - 266 - {{38, 2}, {63, 13}} - - - - {250, 750} - YES - - 67108928 - 272762880 - 00:00:00 - - YES - 10 - 1044 - - - - - 3 - MC41AA - - 2 - - - - NO - 1 - - - - 268 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {{3, 1}, {32, 32}} - - - - _NS:9 - YES - - 134217728 - 33554432 - _NS:9 - 0 - 3 - 0 - NO - - NO - YES - - - - 266 - {{38, 9}, {293, 16}} - - - - {250, 750} - YES - - 67108928 - 272631808 - Table View Cell - - - - - - NO - 1 - - - - 265 - {{328, 7}, {44, 20}} - - - - _NS:9 - SHTokenView - - - {{1, 1}, {378, 34}} - - - - - - {381, 108} - - - - YES - NO - YES - - - 256 - {{289, 0}, {16, 17}} - - - - File Name - 378 - 40 - 1000 - - 75497536 - 2048 - - - YES - 11 - 3100 - - - 3 - MC4zMzMzMzMzMzMzAA - - - 6 - System - headerTextColor - - - - - 338690112 - 1024 - - - - - - 1 - YES - - - - 3 - 2 - - 6 - System - controlBackgroundColor - - - - 6 - System - gridColor - - 3 - MC41AA - - - 34 - 1522532352 - - - 5 - -1 - 0 - YES - 0 - NO - 0 - - - {{1, 1}, {381, 108}} - - - - - - 4 - YES - - - - 256 - {{382, 1}, {15, 108}} - - - - NO - _doScroller: - - - _doScroller: - 0.47499999403953552 - - - - -2147483392 - {{-100, -100}, {288, 15}} - - - - NO - _doScroller: - - 1 - - _doScroller: - 0.99047619104385376 - - - {{20, 612}, {398, 110}} - - - - 2066 - - - - QSAAAEEgAABCEAAAQhAAAA - 0.25 - 4 - 1 - - - - 289 - {{109, 551}, {154, 18}} - - - - YES - - 67108864 - 0 - Play in random order - - - 1211912448 - 2 - - NSSwitch - - - - 200 - 25 - - NO - - - - 289 - {{109, 526}, {263, 18}} - - - - YES - - 67108864 - 0 - Start playing from last position played - - - 1211912448 - 2 - - - - 200 - 25 - - NO - - - - 288 - {{218, 124}, {132, 25}} - - - - YES - - 67108864 - 0 - - - - - Helvetica - 12 - 16 - - - 1 - 0.0 - 1 - 0.0 - 11 - 0 - NO - NO - - NO - - - - 292 - {{358, 126}, {32, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - - - _NS:9 - - 138690560 - 70 - - - 200 - 25 - - NO - - - - 292 - {{195, 126}, {32, 32}} - - - - _NS:9 - YES - - 67108864 - 134217728 - - - _NS:9 - - 138690560 - 70 - - - 200 - 25 - - NO - - - - 290 - - - - 268 - {{388, 46}, {24, 14}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - 60s - - YES - 10 - 1044 - - _NS:1535 - - - - - NO - 1 - - - - 268 - {{323, 46}, {18, 14}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - 45 - - YES - 10 - 1044 - - _NS:1535 - - - - - NO - 1 - - - - 268 - {{256, 46}, {18, 14}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - 30 - - YES - 10 - 1044 - - _NS:1535 - - - - - NO - 1 - - - - 268 - {{310, 92}, {96, 14}} - - - - _NS:1535 - YES - - 68157504 - 71304192 - - - _NS:1535 - - - - 3 - MC4yNQA - - - - NO - 1 - - - - 268 - {{191, 46}, {18, 14}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - 15 - - YES - 10 - 1044 - - _NS:1535 - - - - - NO - 1 - - - - 268 - {{191, 63}, {215, 25}} - - - - _NS:9 - YES - - -2080112384 - 0 - - _NS:9 - - 60 - 15 - 30 - 0.0 - 4 - 0 - NO - NO - - NO - - - - 256 - {{125, 181}, {137, 18}} - - - - YES - - 67108864 - 0 - Random position - - - 1211912448 - 2 - - NSImage - NSSwitch - - - - - 200 - 25 - - NO - - - - 256 - {{55, 246}, {49, 17}} - - - - YES - - 67108864 - 71303168 - Size: - - - - - - NO - 1 - - - - 256 - {{109, 205}, {139, 58}} - - - - YES - NO - 3 - 1 - - - -2080374784 - 0 - Sized to fit screen - - - 1211912448 - 0 - - - - - - 200 - 25 - - - 67108864 - 0 - Sized to fill screen - - - 1 - 1211912448 - 0 - - - - 200 - 25 - - - 67108864 - 0 - Actual Size - - - 2 - 1211912448 - 0 - - 400 - 75 - - - {139, 18} - {4, 2} - 1143472128 - NSActionCell - - 67108864 - 0 - Radio - - 1211912448 - 0 - - - 400 - 75 - - - - - - - - - 256 - {{43, 146}, {61, 17}} - - - - YES - - 68157504 - 71304256 - Frame: - - - - - - NO - 1 - - - - 256 - {{127, 73}, {111, 41}} - - - - YES - NO - 2 - 1 - - - -2080374784 - 0 - At movie start - - - 1211912448 - 0 - - - - - - 200 - 25 - - - 67108864 - 0 - Every: - - - 1 - 1211912448 - 0 - - - - 200 - 25 - - - {111, 18} - {4, 5} - 1143472128 - NSActionCell - - 67108864 - 0 - Radio - - 1211912448 - 0 - - - 400 - 75 - - - - - - - - - 256 - {{109, 120}, {161, 18}} - - - - YES - - 67108864 - 0 - Show title & copyright - - - 1211912448 - 2 - - - - - - 200 - 25 - - NO - - - - 256 - {{109, 145}, {101, 18}} - - - - YES - - 67108864 - 0 - Draw border - - - 1211912448 - 2 - - - - - - 200 - 25 - - NO - - - - 256 - - - NSColor pasteboard type - - - {{109, 16}, {40, 25}} - - - - YES - NO - YES - - - - - 256 - {{8, 20}, {96, 17}} - - - - YES - - 67108864 - 71303168 - Background: - - - - - - NO - 1 - - - {{-1, 233}, {440, 279}} - - - - _NS:9 - SHSecondaryBox - - - - 290 - - - - 256 - {{35, 15}, {69, 17}} - - - - YES - - 67108864 - 71303168 - Displays: - - - - - - NO - 1 - - - - 256 - {{109, 14}, {138, 18}} - - - - YES - - 67108864 - 0 - Main display only - - - 1211912448 - 2 - - - - - - 200 - 25 - - NO - - - {{-1, 60}, {440, 48}} - - - - _NS:9 - SHSecondaryBox - - - - 256 - {{109, 202}, {182, 18}} - - - - YES - - 67108864 - 0 - Play only on main display - - - 1211912448 - 2 - - - - - - 200 - 25 - - NO - - - - 256 - {{41, 552}, {63, 17}} - - - - YES - - 67108864 - 71303168 - Movies: - - - - - - NO - 1 - - - {438, 742} - - - - - {{0, 0}, {2560, 1417}} - {438, 719} - {438, 2022} - NO - - - - - - - Show in Finder - - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - - - - - - - - - - - - - -∞ - - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - - - - - window - - - - 3 - - - - _assetsTableView - - - - 82 - - - - _addButton - - - - 88 - - - - _deleteButton - - - - 89 - - - - _randomOrderCheckBox - - - - 92 - - - - _volumeMatrix - - - - 94 - - - - _volumeSlider - - - - 95 - - - - addAsset: - - - - 98 - - - - removeAssets: - - - - 99 - - - - closeDialog: - - - - 100 - - - - closeDialog: - - - - 101 - - - - _volumeFullButton - - - - 108 - - - - _volumeMuteButton - - - - 109 - - - - setVolumeMute: - - - - 110 - - - - setVolumeFull: - - - - 111 - - - - switchVolumeMode: - - - - 112 - - - - _backgroundColorWell - - - - 83 - - - - _frameDrawBorderCheckBox - - - - 113 - - - - _frameScalingMatrix - - - - 115 - - - - switchFrameScaling: - - - - 116 - - - - _frameRandomPositionCheckBox - - - - 114 - - - - _mainScreenCheckBox - - - - 85 - - - - _frameShowMetatadaCheckBox - - - - 179 - - - - _frameShowMetatadaModeMatrix - - - - 180 - - - - switchShowMetadata: - - - - 184 - - - - switchShowMetadataMode: - - - - 185 - - - - showInFinder: - - - - 210 - - - - showAboutBox: - - - - 220 - - - - _frameShowMetatadaPeriodLiveValueLabel - - - - 240 - - - - _frameShowMetatadaPeriodSlider - - - - 241 - - - - setPeriodWithSlider: - - - - 242 - - - - _audioMainScreenCheckBox - - - - 251 - - - - _resumePlayingCheckBox - - - - 256 - - - - delegate - - - - 4 - - - - dataSource - - - - 96 - - - - delegate - - - - 97 - - - - menu - - - - 211 - - - - imageView - - - - 202 - - - - textField - - - - 203 - - - - durationLabel - - - - 204 - - - - folderNameLabel - - - - 205 - - - - folderAssetsCountLabel - - - - 219 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - - - - - - - 6 - - - - - 9 - - - - - - - - 10 - - - - - 13 - - - - - - - - 14 - - - - - 34 - - - - - - - - 35 - - - - - 36 - - - - - - - - 37 - - - - - 41 - - - - - - - - 44 - - - - - - - - - - - 48 - - - - - - - - - - 49 - - - - - - - - 53 - - - - - - - - 58 - - - - - 61 - - - - - 62 - - - - - 63 - - - - - 64 - - - - - - - - 65 - - - - - - - - - 66 - - - - - 69 - - - - - 70 - - - - - 71 - - - - - 72 - - - - - 74 - - - - - 104 - - - - - - - - 105 - - - - - 106 - - - - - - - - 107 - - - - - 138 - - - - - - - - - - - - - - - - - - - - - - 42 - - - - - - - - 73 - - - - - 43 - - - - - 38 - - - - - - - - 79 - - - - - 120 - - - - - - - - 121 - - - - - 122 - - - - - - - - - - 126 - - - - - 124 - - - - - 123 - - - - - 118 - - - - - - - - 119 - - - - - 39 - - - - - - - - - - - 117 - - - - - 78 - - - - - 77 - - - - - 76 - - - - - 40 - - - - - - - - 75 - - - - - 47 - - - - - - - - 67 - - - - - 141 - - - - - - - - - 80 - - - - - - - - 81 - - - - - 139 - - - - - - - - 140 - - - - - 186 - - - - - - - - - - - - 190 - - - - - - - - 191 - - - - - - - - 192 - - - - - - - - 193 - - - - - 194 - - - - - 195 - - - - - 198 - - - - - - - - 199 - - - - - 206 - - - - - - - - 207 - - - - - 217 - - - - - 225 - - - - - 228 - - - - - - - - 229 - - - - - 230 - - - - - - - - 231 - - - - - 232 - - - - - - - - 233 - - - - - 234 - - - - - - - - 235 - - - - - 236 - - - - - - - - 237 - - - - - 238 - - - - - - - - 239 - - - - - 247 - - - - - - - - 248 - - - - - 249 - - - - - - - - 250 - - - - - 252 - - - - - - - - 253 - - - - - 254 - - - - - - - - 255 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {805, 612} - com.apple.InterfaceBuilder.CocoaPlugin - {{357, 418}, {480, 270}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - 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 - SHAssetTableCellView - com.apple.InterfaceBuilder.CocoaPlugin - AssetView - 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 - SHSlider - 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 - 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 - - - - - - 256 - - - - - SHAssetTableCellView - NSTableCellView - - NSTextField - SHTokenView - NSTextField - - - - durationLabel - NSTextField - - - folderAssetsCountLabel - SHTokenView - - - folderNameLabel - NSTextField - - - - IBProjectSource - ../SaveHollywood/SHAssetTableCellView.h - - - - SHConfigurationWindowController - NSWindowController - - IBProjectSource - ../SaveHollywood/SHConfigurationWindowController.h - - - - SHConfigurationWindowController - - id - id - id - id - id - id - id - id - id - id - id - id - - - - addAsset: - id - - - closeDialog: - id - - - removeAssets: - id - - - setPeriodWithSlider: - id - - - setVolumeFull: - id - - - setVolumeMute: - id - - - showAboutBox: - id - - - showInFinder: - id - - - switchFrameScaling: - id - - - switchShowMetadata: - id - - - switchShowMetadataMode: - id - - - switchVolumeMode: - id - - - - NSButton - NSTableView - NSButton - NSColorWell - NSButton - NSButton - NSButton - NSMatrix - NSButton - NSMatrix - NSTextField - SHSlider - NSButton - NSButton - NSButton - NSButton - NSMatrix - NSButton - NSSlider - - - - _addButton - NSButton - - - _assetsTableView - NSTableView - - - _audioMainScreenCheckBox - NSButton - - - _backgroundColorWell - NSColorWell - - - _deleteButton - NSButton - - - _frameDrawBorderCheckBox - NSButton - - - _frameRandomPositionCheckBox - NSButton - - - _frameScalingMatrix - NSMatrix - - - _frameShowMetatadaCheckBox - NSButton - - - _frameShowMetatadaModeMatrix - NSMatrix - - - _frameShowMetatadaPeriodLiveValueLabel - NSTextField - - - _frameShowMetatadaPeriodSlider - SHSlider - - - _mainScreenCheckBox - NSButton - - - _randomOrderCheckBox - NSButton - - - _resumePlayingCheckBox - NSButton - - - _volumeFullButton - NSButton - - - _volumeMatrix - NSMatrix - - - _volumeMuteButton - NSButton - - - _volumeSlider - NSSlider - - - - IBProjectSource - ../SaveHollywood/SHConfigurationWindowController.m - - - - SHSecondaryBox - SHView - - IBProjectSource - ../SaveHollywood/SHSecondaryBox.h - - - - SHSlider - NSSlider - - IBProjectSource - ../SaveHollywood/SHSlider.h - - - - SHTokenView - NSView - - IBProjectSource - ../SaveHollywood/SHTokenView.h - - - - SHView - NSView - - IBProjectSource - ../SaveHollywood/SHView.h - - - - - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSColorWell - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSColorWell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSImageCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSImageCell.h - - - - NSImageView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSImageView.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 - - - - NSNumberFormatter - NSFormatter - - IBFrameworkSource - Foundation.framework/Headers/NSNumberFormatter.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSScrollView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSScrollView.h - - - - NSScroller - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSScroller.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSTableCellView - NSView - - NSImageView - NSTextField - - - - imageView - NSImageView - - - textField - NSTextField - - - - IBFrameworkSource - AppKit.framework/Headers/NSTableCellView.h - - - - NSTableColumn - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableColumn.h - - - - NSTableView - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSView - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - showWindow: - - showWindow: - id - - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - - - 0 - IBCocoaFramework - NO - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {11, 11} - {12, 12} - {10, 2} - {11, 11} - {15, 15} - - -