diff --git a/.gitignore b/.gitignore index 312d1f6..8cf7015 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ fastlane/report.xml fastlane/Preview.html fastlane/screenshots/**/*.png fastlane/test_output +pixelizator.sketch diff --git a/README.md b/README.md index 3b3b43b..a2d41b6 100644 --- a/README.md +++ b/README.md @@ -1 +1,28 @@ -# pixelizator \ No newline at end of file +

+ +

+ +# Pixelizator + +https://github.com/bmaslakov/cocoa-close-pixelate + +https://stackoverflow.com/questions/25510081/how-to-allow-user-to-pick-the-image-with-swift + +https://gist.github.com/danyshaanan/6754465 + +## Swift (iOS) + + +## Python + +### Usage +`python pixelizator.py ` + + pixel_size: default 8 + scale: default 1 + +### Input + + +### Output + \ No newline at end of file diff --git a/assets/pixelizator_icon_web.png b/assets/pixelizator_icon_web.png new file mode 100644 index 0000000..5b56715 Binary files /dev/null and b/assets/pixelizator_icon_web.png differ diff --git a/python/input.png b/python/input.png new file mode 100644 index 0000000..ce968ae Binary files /dev/null and b/python/input.png differ diff --git a/python/output.png b/python/output.png new file mode 100644 index 0000000..8f8e0f8 Binary files /dev/null and b/python/output.png differ diff --git a/python/pixelizator.py b/python/pixelizator.py new file mode 100644 index 0000000..565ab5b --- /dev/null +++ b/python/pixelizator.py @@ -0,0 +1,22 @@ +from PIL import Image +import sys + + +if len(sys.argv) > 1: + pixel_size = int(sys.argv[1]) +else: + pixel_size = 8 + +if len(sys.argv) > 2: + scale = int(sys.argv[2]) +else: + scale = 1 + +image = Image.open('input.png') +downscaled_image = image.resize((image.size[0]/pixel_size, + image.size[1]/pixel_size), + Image.NEAREST) +upscaled_image = downscaled_image.resize((downscaled_image.size[0]*pixel_size*scale, + downscaled_image.size[1]*pixel_size*scale), + Image.NEAREST) +upscaled_image.save('output.png') \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator.xcodeproj/project.pbxproj b/swift/Pixelizator/Pixelizator.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8578170 --- /dev/null +++ b/swift/Pixelizator/Pixelizator.xcodeproj/project.pbxproj @@ -0,0 +1,466 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 6055DD1F21E952EB00D2B8A9 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6055DD1E21E952EB00D2B8A9 /* Constants.swift */; }; + 6055DD2121E952FF00D2B8A9 /* ImageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6055DD2021E952FF00D2B8A9 /* ImageExtensions.swift */; }; + 608E2D9B21E833F50011C3C7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608E2D9A21E833F50011C3C7 /* AppDelegate.swift */; }; + 608E2D9D21E833F50011C3C7 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 608E2D9C21E833F50011C3C7 /* MainViewController.swift */; }; + 608E2DA021E833F50011C3C7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 608E2D9E21E833F50011C3C7 /* Main.storyboard */; }; + 608E2DA221E833F60011C3C7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 608E2DA121E833F60011C3C7 /* Assets.xcassets */; }; + 608E2DA521E833F60011C3C7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 608E2DA321E833F60011C3C7 /* LaunchScreen.storyboard */; }; + DBB090F356184E9AF903AD2E /* Pods_Pixelizator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0FB086CC6436E21BDBEA72D /* Pods_Pixelizator.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 6055DD1E21E952EB00D2B8A9 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = ""; }; + 6055DD2021E952FF00D2B8A9 /* ImageExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageExtensions.swift; sourceTree = ""; }; + 608E2D9721E833F50011C3C7 /* Pixelizator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pixelizator.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 608E2D9A21E833F50011C3C7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 608E2D9C21E833F50011C3C7 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; + 608E2D9F21E833F50011C3C7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 608E2DA121E833F60011C3C7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 608E2DA421E833F60011C3C7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 608E2DA621E833F60011C3C7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A0FB086CC6436E21BDBEA72D /* Pods_Pixelizator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Pixelizator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ACE58656594CAF0946B19978 /* Pods-Pixelizator.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pixelizator.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.debug.xcconfig"; sourceTree = ""; }; + E06141BBF4C558EBCF4F8537 /* Pods-Pixelizator.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Pixelizator.release.xcconfig"; path = "Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.release.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 608E2D9421E833F50011C3C7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DBB090F356184E9AF903AD2E /* Pods_Pixelizator.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6055DD1921E950C100D2B8A9 /* Application */ = { + isa = PBXGroup; + children = ( + 608E2D9A21E833F50011C3C7 /* AppDelegate.swift */, + ); + path = Application; + sourceTree = ""; + }; + 6055DD1A21E950CE00D2B8A9 /* Main */ = { + isa = PBXGroup; + children = ( + 608E2D9C21E833F50011C3C7 /* MainViewController.swift */, + ); + path = Main; + sourceTree = ""; + }; + 6055DD1B21E950D600D2B8A9 /* Resources */ = { + isa = PBXGroup; + children = ( + 608E2DA121E833F60011C3C7 /* Assets.xcassets */, + 608E2DA621E833F60011C3C7 /* Info.plist */, + 6055DD1E21E952EB00D2B8A9 /* Constants.swift */, + ); + path = Resources; + sourceTree = ""; + }; + 6055DD1C21E9511200D2B8A9 /* Storyboards */ = { + isa = PBXGroup; + children = ( + 608E2D9E21E833F50011C3C7 /* Main.storyboard */, + 608E2DA321E833F60011C3C7 /* LaunchScreen.storyboard */, + ); + path = Storyboards; + sourceTree = ""; + }; + 6055DD1D21E952D300D2B8A9 /* Utilities */ = { + isa = PBXGroup; + children = ( + 6055DD2021E952FF00D2B8A9 /* ImageExtensions.swift */, + ); + path = Utilities; + sourceTree = ""; + }; + 608E2D8E21E833F50011C3C7 = { + isa = PBXGroup; + children = ( + 608E2D9921E833F50011C3C7 /* Pixelizator */, + 608E2D9821E833F50011C3C7 /* Products */, + 63C140A749DAC17EA8C9FA28 /* Pods */, + B5ED2311A23E5ED3E812A67E /* Frameworks */, + ); + sourceTree = ""; + }; + 608E2D9821E833F50011C3C7 /* Products */ = { + isa = PBXGroup; + children = ( + 608E2D9721E833F50011C3C7 /* Pixelizator.app */, + ); + name = Products; + sourceTree = ""; + }; + 608E2D9921E833F50011C3C7 /* Pixelizator */ = { + isa = PBXGroup; + children = ( + 6055DD1921E950C100D2B8A9 /* Application */, + 6055DD1A21E950CE00D2B8A9 /* Main */, + 6055DD1C21E9511200D2B8A9 /* Storyboards */, + 6055DD1D21E952D300D2B8A9 /* Utilities */, + 6055DD1B21E950D600D2B8A9 /* Resources */, + ); + path = Pixelizator; + sourceTree = ""; + }; + 63C140A749DAC17EA8C9FA28 /* Pods */ = { + isa = PBXGroup; + children = ( + ACE58656594CAF0946B19978 /* Pods-Pixelizator.debug.xcconfig */, + E06141BBF4C558EBCF4F8537 /* Pods-Pixelizator.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + B5ED2311A23E5ED3E812A67E /* Frameworks */ = { + isa = PBXGroup; + children = ( + A0FB086CC6436E21BDBEA72D /* Pods_Pixelizator.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 608E2D9621E833F50011C3C7 /* Pixelizator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 608E2DA921E833F60011C3C7 /* Build configuration list for PBXNativeTarget "Pixelizator" */; + buildPhases = ( + 55CDD178A2209BB7DD113789 /* [CP] Check Pods Manifest.lock */, + 608E2D9321E833F50011C3C7 /* Sources */, + 608E2D9421E833F50011C3C7 /* Frameworks */, + 608E2D9521E833F50011C3C7 /* Resources */, + 2958FC731A24A91E7911C0A1 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Pixelizator; + productName = Pixelizator; + productReference = 608E2D9721E833F50011C3C7 /* Pixelizator.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 608E2D8F21E833F50011C3C7 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1010; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = GS; + TargetAttributes = { + 608E2D9621E833F50011C3C7 = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = 608E2D9221E833F50011C3C7 /* Build configuration list for PBXProject "Pixelizator" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 608E2D8E21E833F50011C3C7; + productRefGroup = 608E2D9821E833F50011C3C7 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 608E2D9621E833F50011C3C7 /* Pixelizator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 608E2D9521E833F50011C3C7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 608E2DA521E833F60011C3C7 /* LaunchScreen.storyboard in Resources */, + 608E2DA221E833F60011C3C7 /* Assets.xcassets in Resources */, + 608E2DA021E833F50011C3C7 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 2958FC731A24A91E7911C0A1 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${SRCROOT}/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + ); + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PKHUD.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 55CDD178A2209BB7DD113789 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Pixelizator-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 608E2D9321E833F50011C3C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 608E2D9D21E833F50011C3C7 /* MainViewController.swift in Sources */, + 608E2D9B21E833F50011C3C7 /* AppDelegate.swift in Sources */, + 6055DD1F21E952EB00D2B8A9 /* Constants.swift in Sources */, + 6055DD2121E952FF00D2B8A9 /* ImageExtensions.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 608E2D9E21E833F50011C3C7 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 608E2D9F21E833F50011C3C7 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 608E2DA321E833F60011C3C7 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 608E2DA421E833F60011C3C7 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 608E2DA721E833F60011C3C7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 608E2DA821E833F60011C3C7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 608E2DAA21E833F60011C3C7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ACE58656594CAF0946B19978 /* Pods-Pixelizator.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Pixelizator/Resources/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = pixelizator; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 608E2DAB21E833F60011C3C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E06141BBF4C558EBCF4F8537 /* Pods-Pixelizator.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Pixelizator/Resources/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = pixelizator; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 608E2D9221E833F50011C3C7 /* Build configuration list for PBXProject "Pixelizator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 608E2DA721E833F60011C3C7 /* Debug */, + 608E2DA821E833F60011C3C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 608E2DA921E833F60011C3C7 /* Build configuration list for PBXNativeTarget "Pixelizator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 608E2DAA21E833F60011C3C7 /* Debug */, + 608E2DAB21E833F60011C3C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 608E2D8F21E833F50011C3C7 /* Project object */; +} diff --git a/swift/Pixelizator/Pixelizator.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/swift/Pixelizator/Pixelizator.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..ae3b455 --- /dev/null +++ b/swift/Pixelizator/Pixelizator.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/swift/Pixelizator/Pixelizator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/swift/Pixelizator/Pixelizator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/swift/Pixelizator/Pixelizator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/swift/Pixelizator/Pixelizator.xcworkspace/contents.xcworkspacedata b/swift/Pixelizator/Pixelizator.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..757fc60 --- /dev/null +++ b/swift/Pixelizator/Pixelizator.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/swift/Pixelizator/Pixelizator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/swift/Pixelizator/Pixelizator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/swift/Pixelizator/Pixelizator.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/swift/Pixelizator/Pixelizator/Application/AppDelegate.swift b/swift/Pixelizator/Pixelizator/Application/AppDelegate.swift new file mode 100644 index 0000000..aa381d9 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Application/AppDelegate.swift @@ -0,0 +1,20 @@ +// +// AppDelegate.swift +// Pixelizator +// +// Created by Greg on 1/10/19. +// Copyright © 2019 GS. All rights reserved. +// + +import UIKit + +@UIApplicationMain +final class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + return true + } +} + diff --git a/swift/Pixelizator/Pixelizator/Main/MainViewController.swift b/swift/Pixelizator/Pixelizator/Main/MainViewController.swift new file mode 100644 index 0000000..6dc7ecd --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Main/MainViewController.swift @@ -0,0 +1,139 @@ +// +// MainViewController.swift +// Pixelizator +// +// Created by Greg on 1/10/19. +// Copyright © 2019 GS. All rights reserved. +// + +import UIKit +import AVFoundation +import Photos +import PKHUD + +final class MainViewController: UIViewController { + + @IBOutlet private weak var pixelSizeSlider: UISlider! + @IBOutlet private weak var backgroundImageView: UIImageView! + @IBOutlet private weak var previewImageView: UIImageView! + private var sourceImage: UIImage! + private var lastPixelizationTimestamp: TimeInterval? + + override func viewDidLoad() { + super.viewDidLoad() + let randomNumber = Int.random(in: 1 ..< 6) + setImage(image: UIImage(named: "Example\(randomNumber)")!, animated: false) + } + + //MARK: - IBActions + + @IBAction func sliderAction(_ sender: UISlider) { + pixelizeImage(pixelSize: CGFloat(pixelSizeSlider.value)) + } + + @IBAction func loadAction(_ sender: UIButton) { + tryToLoadGallery() + } + + @IBAction func saveAction(_ sender: UIButton) { + UIImageWriteToSavedPhotosAlbum(previewImageView.image!, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil) + } + + //MARK: - Action logic + + @objc func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) { + if error != nil { + HUD.flash(.labeledError(title: "Error", subtitle: "Try again!"), delay: popupDelay) + } else { + HUD.flash(.label("Saved to the gallery!"), delay: popupDelay) + } + } + + private func tryToLoadGallery() { + func handleStatus(status: PHAuthorizationStatus) { + if status == .authorized{ + self.loadGallery() + } else { + self.showPermissionPrompt() + } + } + let status = PHPhotoLibrary.authorizationStatus() + if status == .notDetermined { + PHPhotoLibrary.requestAuthorization({status in + handleStatus(status: status) + }) + } else { + handleStatus(status: status) + } + } + + private func loadGallery() { + let imagePickerController = UIImagePickerController() + imagePickerController.delegate = self + imagePickerController.sourceType = UIImagePickerController.SourceType.savedPhotosAlbum + present(imagePickerController, animated: true, completion: nil) + } + + private func showPermissionPrompt() { + let alertController = UIAlertController(title: "Allow Camera Roll Access", message: + "Photos access is necessary for this app to run.", preferredStyle: UIAlertController.Style.alert) + + let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in + if let url = URL(string:UIApplication.openSettingsURLString) { + if UIApplication.shared.canOpenURL(url) { + UIApplication.shared.open(url, options: [:], completionHandler: nil) + } + } + } + alertController.addAction(settingsAction) + + let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil) + alertController.addAction(cancelAction) + + present(alertController, animated: true, completion: nil) + } + + private func setImage(image: UIImage, animated: Bool) { + DispatchQueue.main.async { + let scale = self.previewImageView.frame.width/image.size.width + let adjustedImage = image.resize(scaleX: scale, scaleY: scale, interpolation: .default) + + self.backgroundImageView.image = adjustedImage + self.sourceImage = adjustedImage + self.showImage(image: image, animated: animated) + self.pixelizeImage(pixelSize: CGFloat(self.pixelSizeSlider.value)) + } + } + + private func pixelizeImage(pixelSize: CGFloat) { + if lastPixelizationTimestamp == nil || NSDate().timeIntervalSince1970 > lastPixelizationTimestamp! + pixelizationUpdateThreshold { + DispatchQueue.global(qos: .background).async { + let pixeletedImage = self.sourceImage.pixelize(pixelSize: pixelSize) + DispatchQueue.main.async { + self.showImage(image: pixeletedImage, animated: true) + self.previewImageView.image = pixeletedImage + } + } + lastPixelizationTimestamp = NSDate().timeIntervalSince1970 + } + } + + private func showImage(image: UIImage, animated: Bool) { + UIView.transition(with: self.previewImageView, + duration: animated ? imageTransitionAnimationTime : 0, + options: .transitionCrossDissolve, + animations: { self.previewImageView.image = image }, + completion: nil) + } +} + +extension MainViewController: UIImagePickerControllerDelegate & UINavigationControllerDelegate { + + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { + if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage { + pixelSizeSlider.value = 0 + setImage(image: image, animated: true) + } + picker.dismiss(animated: true, completion: nil) + } +} diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..8d8f4bb --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "ItunesArtwork@2x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..6e6df32 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..f689907 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..417c0f6 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..c6cd9c4 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..9e5a3fc Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..a9ed833 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..f689907 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..9656697 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..dd87ee1 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..dd87ee1 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..291908e Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..70d5f12 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..e976742 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..5eed97e Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png new file mode 100644 index 0000000..cd528c4 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example1.imageset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example1.imageset/Contents.json new file mode 100644 index 0000000..8e131a3 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example1.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "dolores.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example1.imageset/dolores.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example1.imageset/dolores.png new file mode 100644 index 0000000..2e4ec45 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example1.imageset/dolores.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example2.imageset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example2.imageset/Contents.json new file mode 100644 index 0000000..ff45a60 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example2.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "golden_gate.jpg" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example2.imageset/golden_gate.jpg b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example2.imageset/golden_gate.jpg new file mode 100644 index 0000000..bde6cc4 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example2.imageset/golden_gate.jpg differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example3.imageset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example3.imageset/Contents.json new file mode 100644 index 0000000..ca20404 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example3.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "sf.jpeg" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example3.imageset/sf.jpeg b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example3.imageset/sf.jpeg new file mode 100644 index 0000000..64e73da Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example3.imageset/sf.jpeg differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example4.imageset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example4.imageset/Contents.json new file mode 100644 index 0000000..562646c --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example4.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "sf.jpg" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example4.imageset/sf.jpg b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example4.imageset/sf.jpg new file mode 100644 index 0000000..7d9aa44 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example4.imageset/sf.jpg differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example5.imageset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example5.imageset/Contents.json new file mode 100644 index 0000000..d52214c --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example5.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "SF.jpg" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example5.imageset/SF.jpg b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example5.imageset/SF.jpg new file mode 100644 index 0000000..0d04fdf Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Example5.imageset/SF.jpg differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Icon.imageset/Contents.json b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Icon.imageset/Contents.json new file mode 100644 index 0000000..1351bf5 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Icon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "pixelizator_icon_web.png" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Icon.imageset/pixelizator_icon_web.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Icon.imageset/pixelizator_icon_web.png new file mode 100644 index 0000000..5b56715 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/Icon.imageset/pixelizator_icon_web.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@1x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@1x.png new file mode 100644 index 0000000..773c86b Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@1x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@2x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@2x.png new file mode 100644 index 0000000..cd528c4 Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@2x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@3x.png b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@3x.png new file mode 100644 index 0000000..486cc7b Binary files /dev/null and b/swift/Pixelizator/Pixelizator/Resources/Assets.xcassets/iTunesArtwork@3x.png differ diff --git a/swift/Pixelizator/Pixelizator/Resources/Constants.swift b/swift/Pixelizator/Pixelizator/Resources/Constants.swift new file mode 100644 index 0000000..8f0f250 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Constants.swift @@ -0,0 +1,13 @@ +// +// Constants.swift +// Pixelizator +// +// Created by Greg on 1/11/19. +// Copyright © 2019 GS. All rights reserved. +// + +import Foundation + +let pixelizationUpdateThreshold = 0.1 +let popupDelay = 1.5 +let imageTransitionAnimationTime = 0.5 diff --git a/swift/Pixelizator/Pixelizator/Resources/Info.plist b/swift/Pixelizator/Pixelizator/Resources/Info.plist new file mode 100644 index 0000000..8e74a17 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Resources/Info.plist @@ -0,0 +1,55 @@ + + + + + + + CFBundleName + $(PRODUCT_NAME) + UILaunchStoryboardName + LaunchScreen + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleVersion + 3 + UIStatusBarHidden + + UIMainStoryboardFile + Main + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleInfoDictionaryVersion + 6.0 + CFBundleExecutable + $(EXECUTABLE_NAME) + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIRequiresFullScreen + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + NSPhotoLibraryAddUsageDescription + To allow you save your pixelized images. + LSRequiresIPhoneOS + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + NSPhotoLibraryUsageDescription + To allow you pixelize your images. + + diff --git a/swift/Pixelizator/Pixelizator/Storyboards/Base.lproj/LaunchScreen.storyboard b/swift/Pixelizator/Pixelizator/Storyboards/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..2dd73ac --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Storyboards/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swift/Pixelizator/Pixelizator/Storyboards/Base.lproj/Main.storyboard b/swift/Pixelizator/Pixelizator/Storyboards/Base.lproj/Main.storyboard new file mode 100644 index 0000000..5540d80 --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Storyboards/Base.lproj/Main.storyboard @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swift/Pixelizator/Pixelizator/Utilities/ImageExtensions.swift b/swift/Pixelizator/Pixelizator/Utilities/ImageExtensions.swift new file mode 100644 index 0000000..91f107f --- /dev/null +++ b/swift/Pixelizator/Pixelizator/Utilities/ImageExtensions.swift @@ -0,0 +1,33 @@ +// +// ImageExtensions.swift +// Pixelizator +// +// Created by Greg on 1/11/19. +// Copyright © 2019 GS. All rights reserved. +// + +import UIKit + +extension UIImage { + + func pixelize(pixelSize: CGFloat) -> UIImage { + guard pixelSize != 0 else { return self } + let downsizedImage = resize(scaleX: 1/pixelSize, scaleY: 1/pixelSize, interpolation: .none) + let upsizedImage = downsizedImage.resize(scaleX: pixelSize, scaleY: pixelSize, interpolation: .none) + return upsizedImage + } + + func resize(scaleX: CGFloat, scaleY: CGFloat, interpolation: CGInterpolationQuality) -> UIImage { + + let resize = size.applying(CGAffineTransform(scaleX: scaleX, y: scaleY)) + UIGraphicsBeginImageContextWithOptions(resize, false, UIScreen.main.scale) + let context = UIGraphicsGetCurrentContext()! + context.interpolationQuality = interpolation + let rect = CGRect(origin: .zero, size: resize) + draw(in: rect) + let resizedImage = UIImage(cgImage: context.makeImage()!) + + UIGraphicsEndImageContext() + return resizedImage + } +} diff --git a/swift/Pixelizator/Podfile b/swift/Pixelizator/Podfile new file mode 100644 index 0000000..b0c38b1 --- /dev/null +++ b/swift/Pixelizator/Podfile @@ -0,0 +1,9 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +use_frameworks! + +target 'Pixelizator' do + + pod 'PKHUD', '~> 5.0' +end diff --git a/swift/Pixelizator/Podfile.lock b/swift/Pixelizator/Podfile.lock new file mode 100644 index 0000000..602f884 --- /dev/null +++ b/swift/Pixelizator/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - PKHUD (5.2.0) + +DEPENDENCIES: + - PKHUD (~> 5.0) + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - PKHUD + +SPEC CHECKSUMS: + PKHUD: dd5357ac65f26115c35c4a68e9b328053326c5fe + +PODFILE CHECKSUM: 258879bf1db0b5b82835c0a281d420be68f6d1f4 + +COCOAPODS: 1.5.3 diff --git a/swift/Pixelizator/Pods/Manifest.lock b/swift/Pixelizator/Pods/Manifest.lock new file mode 100644 index 0000000..602f884 --- /dev/null +++ b/swift/Pixelizator/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - PKHUD (5.2.0) + +DEPENDENCIES: + - PKHUD (~> 5.0) + +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - PKHUD + +SPEC CHECKSUMS: + PKHUD: dd5357ac65f26115c35c4a68e9b328053326c5fe + +PODFILE CHECKSUM: 258879bf1db0b5b82835c0a281d420be68f6d1f4 + +COCOAPODS: 1.5.3 diff --git a/swift/Pixelizator/Pods/PKHUD/LICENSE b/swift/Pixelizator/Pods/PKHUD/LICENSE new file mode 100644 index 0000000..6d6eecf --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Philip Kluz (Philip.Kluz@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/FrameView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/FrameView.swift new file mode 100644 index 0000000..787f72e --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/FrameView.swift @@ -0,0 +1,63 @@ +// +// HUDView.swift +// PKHUD +// +// Created by Philip Kluz on 6/16/14. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// Provides the general look and feel of the PKHUD, into which the eventual content is inserted. +internal class FrameView: UIVisualEffectView { + + internal init() { + super.init(effect: UIBlurEffect(style: .light)) + commonInit() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + commonInit() + } + + fileprivate func commonInit() { + backgroundColor = UIColor(white: 0.8, alpha: 0.36) + layer.cornerRadius = 9.0 + layer.masksToBounds = true + + contentView.addSubview(self.content) + + let offset = 20.0 + + let motionEffectsX = UIInterpolatingMotionEffect(keyPath: "center.x", type: .tiltAlongHorizontalAxis) + motionEffectsX.maximumRelativeValue = offset + motionEffectsX.minimumRelativeValue = -offset + + let motionEffectsY = UIInterpolatingMotionEffect(keyPath: "center.y", type: .tiltAlongVerticalAxis) + motionEffectsY.maximumRelativeValue = offset + motionEffectsY.minimumRelativeValue = -offset + + let group = UIMotionEffectGroup() + group.motionEffects = [motionEffectsX, motionEffectsY] + + addMotionEffect(group) + } + + fileprivate var _content = UIView() + internal var content: UIView { + get { + return _content + } + set { + _content.removeFromSuperview() + _content = newValue + _content.alpha = 0.85 + _content.clipsToBounds = true + _content.contentMode = .center + frame.size = _content.bounds.size + contentView.addSubview(_content) + } + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/HUD.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/HUD.swift new file mode 100644 index 0000000..bbe4242 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/HUD.swift @@ -0,0 +1,117 @@ +// +// HUD.swift +// PKHUD +// +// Created by Eugene Tartakovsky on 29/01/16. +// Copyright © 2016 Eugene Tartakovsky, NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +public enum HUDContentType { + case success + case error + case progress + case image(UIImage?) + case rotatingImage(UIImage?) + + case labeledSuccess(title: String?, subtitle: String?) + case labeledError(title: String?, subtitle: String?) + case labeledProgress(title: String?, subtitle: String?) + case labeledImage(image: UIImage?, title: String?, subtitle: String?) + case labeledRotatingImage(image: UIImage?, title: String?, subtitle: String?) + + case label(String?) + case systemActivity + case customView(view: UIView) +} + +public final class HUD { + + // MARK: Properties + public static var dimsBackground: Bool { + get { return PKHUD.sharedHUD.dimsBackground } + set { PKHUD.sharedHUD.dimsBackground = newValue } + } + + public static var allowsInteraction: Bool { + get { return PKHUD.sharedHUD.userInteractionOnUnderlyingViewsEnabled } + set { PKHUD.sharedHUD.userInteractionOnUnderlyingViewsEnabled = newValue } + } + + public static var leadingMargin: CGFloat { + get { return PKHUD.sharedHUD.leadingMargin } + set { PKHUD.sharedHUD.leadingMargin = newValue } + } + + public static var trailingMargin: CGFloat { + get { return PKHUD.sharedHUD.trailingMargin } + set { PKHUD.sharedHUD.trailingMargin = newValue } + } + + public static var isVisible: Bool { return PKHUD.sharedHUD.isVisible } + + // MARK: Public methods, PKHUD based + public static func show(_ content: HUDContentType, onView view: UIView? = nil) { + PKHUD.sharedHUD.contentView = contentView(content) + PKHUD.sharedHUD.show(onView: view) + } + + public static func hide(_ completion: ((Bool) -> Void)? = nil) { + PKHUD.sharedHUD.hide(animated: false, completion: completion) + } + + public static func hide(animated: Bool, completion: ((Bool) -> Void)? = nil) { + PKHUD.sharedHUD.hide(animated: animated, completion: completion) + } + + public static func hide(afterDelay delay: TimeInterval, completion: ((Bool) -> Void)? = nil) { + PKHUD.sharedHUD.hide(afterDelay: delay, completion: completion) + } + + // MARK: Public methods, HUD based + public static func flash(_ content: HUDContentType, onView view: UIView? = nil) { + HUD.show(content, onView: view) + HUD.hide(animated: true, completion: nil) + } + + public static func flash(_ content: HUDContentType, onView view: UIView? = nil, delay: TimeInterval, completion: ((Bool) -> Void)? = nil) { + HUD.show(content, onView: view) + HUD.hide(afterDelay: delay, completion: completion) + } + + // MARK: Private methods + fileprivate static func contentView(_ content: HUDContentType) -> UIView { + switch content { + case .success: + return PKHUDSuccessView() + case .error: + return PKHUDErrorView() + case .progress: + return PKHUDProgressView() + case let .image(image): + return PKHUDSquareBaseView(image: image) + case let .rotatingImage(image): + return PKHUDRotatingImageView(image: image) + + case let .labeledSuccess(title, subtitle): + return PKHUDSuccessView(title: title, subtitle: subtitle) + case let .labeledError(title, subtitle): + return PKHUDErrorView(title: title, subtitle: subtitle) + case let .labeledProgress(title, subtitle): + return PKHUDProgressView(title: title, subtitle: subtitle) + case let .labeledImage(image, title, subtitle): + return PKHUDSquareBaseView(image: image, title: title, subtitle: subtitle) + case let .labeledRotatingImage(image, title, subtitle): + return PKHUDRotatingImageView(image: image, title: title, subtitle: subtitle) + + case let .label(text): + return PKHUDTextView(text: text) + case .systemActivity: + return PKHUDSystemActivityIndicatorView() + case let .customView(view): + return view + } + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/Contents.json b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/Contents.json b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/Contents.json new file mode 100644 index 0000000..03ff7b9 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "checkmark.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/checkmark.pdf b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/checkmark.pdf new file mode 100644 index 0000000..0b8e70b Binary files /dev/null and b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/checkmark.imageset/checkmark.pdf differ diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/Contents.json b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/Contents.json new file mode 100644 index 0000000..c7c5c82 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "cross.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/cross.pdf b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/cross.pdf new file mode 100644 index 0000000..d399889 Binary files /dev/null and b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/cross.imageset/cross.pdf differ diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/Contents.json b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/Contents.json new file mode 100644 index 0000000..f71552a --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "progress.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/progress.pdf b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/progress.pdf new file mode 100644 index 0000000..474d067 Binary files /dev/null and b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_activity.imageset/progress.pdf differ diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/Contents.json b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/Contents.json new file mode 100644 index 0000000..c517056 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "progress_circular.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "original" + } +} \ No newline at end of file diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/progress_circular.pdf b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/progress_circular.pdf new file mode 100644 index 0000000..c3636e0 Binary files /dev/null and b/swift/Pixelizator/Pods/PKHUD/PKHUD/Images.xcassets/progress_circular.imageset/progress_circular.pdf differ diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUD.h b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUD.h new file mode 100644 index 0000000..2d38705 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUD.h @@ -0,0 +1,16 @@ +// +// PKHUD.h +// PKHUD +// +// Created by Philip Kluz on 6/17/14. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +@import UIKit; + +//! Project version number for PKHUD. +FOUNDATION_EXPORT double PKHUDVersionNumber; + +//! Project version string for PKHUD. +FOUNDATION_EXPORT const unsigned char PKHUDVersionString[]; diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUD.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUD.swift new file mode 100644 index 0000000..5864bf1 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUD.swift @@ -0,0 +1,223 @@ +// +// HUD.swift +// PKHUD +// +// Created by Philip Kluz on 6/13/14. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// The PKHUD object controls showing and hiding of the HUD, as well as its contents and touch response behavior. +open class PKHUD: NSObject { + + fileprivate struct Constants { + static let sharedHUD = PKHUD() + } + + public var viewToPresentOn: UIView? + + fileprivate let container = ContainerView() + fileprivate var hideTimer: Timer? + + public typealias TimerAction = (Bool) -> Void + fileprivate var timerActions = [String: TimerAction]() + + /// Grace period is the time (in seconds) that the invoked method may be run without + /// showing the HUD. If the task finishes before the grace time runs out, the HUD will + /// not be shown at all. + /// This may be used to prevent HUD display for very short tasks. + /// Defaults to 0 (no grace time). + @available(*, deprecated, message: "Will be removed with Swift4 support, use gracePeriod instead") + public var graceTime: TimeInterval { + get { + return gracePeriod + } + set(newPeriod) { + gracePeriod = newPeriod + } + } + + /// Grace period is the time (in seconds) that the invoked method may be run without + /// showing the HUD. If the task finishes before the grace time runs out, the HUD will + /// not be shown at all. + /// This may be used to prevent HUD display for very short tasks. + /// Defaults to 0 (no grace time). + public var gracePeriod: TimeInterval = 0 + fileprivate var graceTimer: Timer? + + // MARK: Public + + open class var sharedHUD: PKHUD { + return Constants.sharedHUD + } + + public override init () { + super.init() + + #if swift(>=4.2) + let notificationName = UIApplication.willEnterForegroundNotification + #else + let notificationName = NSNotification.Name.UIApplicationWillEnterForeground + #endif + + NotificationCenter.default.addObserver(self, + selector: #selector(PKHUD.willEnterForeground(_:)), + name: notificationName, + object: nil) + userInteractionOnUnderlyingViewsEnabled = false + container.frameView.autoresizingMask = [ .flexibleLeftMargin, + .flexibleRightMargin, + .flexibleTopMargin, + .flexibleBottomMargin ] + + self.container.isAccessibilityElement = true + self.container.accessibilityIdentifier = "PKHUD" + } + + public convenience init(viewToPresentOn view: UIView) { + self.init() + viewToPresentOn = view + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + + open var dimsBackground = true + open var userInteractionOnUnderlyingViewsEnabled: Bool { + get { + return !container.isUserInteractionEnabled + } + set { + container.isUserInteractionEnabled = !newValue + } + } + + open var isVisible: Bool { + return !container.isHidden + } + + open var contentView: UIView { + get { + return container.frameView.content + } + set { + container.frameView.content = newValue + startAnimatingContentView() + } + } + + open var effect: UIVisualEffect? { + get { + return container.frameView.effect + } + set { + container.frameView.effect = newValue + } + } + + open var leadingMargin: CGFloat = 0 + + open var trailingMargin: CGFloat = 0 + + open func show(onView view: UIView? = nil) { + let view: UIView = view ?? viewToPresentOn ?? UIApplication.shared.keyWindow! + if !view.subviews.contains(container) { + view.addSubview(container) + container.frame.origin = CGPoint.zero + container.frame.size = view.frame.size + container.autoresizingMask = [ .flexibleHeight, .flexibleWidth ] + container.isHidden = true + } + if dimsBackground { + container.showBackground(animated: true) + } + + // If the grace time is set, postpone the HUD display + if gracePeriod > 0.0 { + let timer = Timer(timeInterval: gracePeriod, target: self, selector: #selector(PKHUD.handleGraceTimer(_:)), userInfo: nil, repeats: false) + #if swift(>=4.2) + RunLoop.current.add(timer, forMode: .common) + #else + RunLoop.current.add(timer, forMode: .commonModes) + #endif + graceTimer = timer + } else { + showContent() + } + } + + func showContent() { + graceTimer?.invalidate() + container.showFrameView() + startAnimatingContentView() + } + + open func hide(animated anim: Bool = true, completion: TimerAction? = nil) { + graceTimer?.invalidate() + + container.hideFrameView(animated: anim, completion: completion) + stopAnimatingContentView() + } + + open func hide(_ animated: Bool, completion: TimerAction? = nil) { + hide(animated: animated, completion: completion) + } + + open func hide(afterDelay delay: TimeInterval, completion: TimerAction? = nil) { + let key = UUID().uuidString + let userInfo = ["timerActionKey": key] + if let completion = completion { + timerActions[key] = completion + } + + hideTimer?.invalidate() + hideTimer = Timer.scheduledTimer(timeInterval: delay, + target: self, + selector: #selector(PKHUD.performDelayedHide(_:)), + userInfo: userInfo, + repeats: false) + } + + // MARK: Internal + + @objc internal func willEnterForeground(_ notification: Notification?) { + self.startAnimatingContentView() + } + + internal func startAnimatingContentView() { + if let animatingContentView = contentView as? PKHUDAnimating, isVisible { + animatingContentView.startAnimation() + } + } + + internal func stopAnimatingContentView() { + if let animatingContentView = contentView as? PKHUDAnimating { + animatingContentView.stopAnimation?() + } + } + + // MARK: Timer callbacks + + @objc internal func performDelayedHide(_ timer: Timer? = nil) { + let userInfo = timer?.userInfo as? [String: AnyObject] + let key = userInfo?["timerActionKey"] as? String + var completion: TimerAction? + + if let key = key, let action = timerActions[key] { + completion = action + timerActions[key] = nil + } + + hide(animated: true, completion: completion) + } + + @objc internal func handleGraceTimer(_ timer: Timer? = nil) { + // Show the HUD only if the task is still running + if (graceTimer?.isValid)! { + showContent() + } + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAnimating.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAnimating.swift new file mode 100644 index 0000000..5ee0857 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAnimating.swift @@ -0,0 +1,16 @@ +// +// PKHUDAnimatingContentView.swift +// PKHUD +// +// Created by Philip Kluz on 9/27/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +@objc public protocol PKHUDAnimating { + + func startAnimation() + @objc optional func stopAnimation() +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAnimation.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAnimation.swift new file mode 100644 index 0000000..2426eee --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAnimation.swift @@ -0,0 +1,67 @@ +// +// PKHUDAnimation.swift +// PKHUD +// +// Created by Piergiuseppe Longo on 06/01/16. +// Copyright © 2016 Piergiuseppe Longo, NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import Foundation +import QuartzCore + +public final class PKHUDAnimation { + + public static let discreteRotation: CAAnimation = { + let animation = CAKeyframeAnimation(keyPath: "transform.rotation.z") + animation.values = [ + NSNumber(value: 0.0), + NSNumber(value: 1.0 * .pi / 6.0), + NSNumber(value: 2.0 * .pi / 6.0), + NSNumber(value: 3.0 * .pi / 6.0), + NSNumber(value: 4.0 * .pi / 6.0), + NSNumber(value: 5.0 * .pi / 6.0), + NSNumber(value: 6.0 * .pi / 6.0), + NSNumber(value: 7.0 * .pi / 6.0), + NSNumber(value: 8.0 * .pi / 6.0), + NSNumber(value: 9.0 * .pi / 6.0), + NSNumber(value: 10.0 * .pi / 6.0), + NSNumber(value: 11.0 * .pi / 6.0), + NSNumber(value: 2.0 * .pi) + ] + animation.keyTimes = [ + NSNumber(value: 0.0), + NSNumber(value: 1.0 / 12.0), + NSNumber(value: 2.0 / 12.0), + NSNumber(value: 3.0 / 12.0), + NSNumber(value: 4.0 / 12.0), + NSNumber(value: 5.0 / 12.0), + NSNumber(value: 0.5), + NSNumber(value: 7.0 / 12.0), + NSNumber(value: 8.0 / 12.0), + NSNumber(value: 9.0 / 12.0), + NSNumber(value: 10.0 / 12.0), + NSNumber(value: 11.0 / 12.0), + NSNumber(value: 1.0) + ] + animation.duration = 1.2 + + #if swift(>=4.2) + animation.calculationMode = .discrete + #else + animation.calculationMode = "discrete" + #endif + + animation.repeatCount = Float(INT_MAX) + return animation + }() + + static let continuousRotation: CAAnimation = { + let animation = CABasicAnimation(keyPath: "transform.rotation.z") + animation.fromValue = 0 + animation.toValue = 2.0 * .pi + animation.duration = 1.2 + animation.repeatCount = Float(INT_MAX) + return animation + }() +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAssets.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAssets.swift new file mode 100644 index 0000000..2ecc43f --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDAssets.swift @@ -0,0 +1,36 @@ +// +// PKHUD.Assets.swift +// PKHUD +// +// Created by Philip Kluz on 6/18/14. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDAssets provides a set of default images, that can be supplied to the PKHUD's content views. +open class PKHUDAssets: NSObject { + + open class var crossImage: UIImage { return PKHUDAssets.bundledImage(named: "cross") } + open class var checkmarkImage: UIImage { return PKHUDAssets.bundledImage(named: "checkmark") } + open class var progressActivityImage: UIImage { return PKHUDAssets.bundledImage(named: "progress_activity") } + open class var progressCircularImage: UIImage { return PKHUDAssets.bundledImage(named: "progress_circular") } + + internal class func bundledImage(named name: String) -> UIImage { + let primaryBundle = Bundle(for: PKHUDAssets.self) + if let image = UIImage(named: name, in: primaryBundle, compatibleWith: nil) { + // Load image in cases where PKHUD is directly integrated + return image + } else if + let subBundleUrl = primaryBundle.url(forResource: "PKHUDResources", withExtension: "bundle"), + let subBundle = Bundle(url: subBundleUrl), + let image = UIImage(named: name, in: subBundle, compatibleWith: nil) + { + // Load image in cases where PKHUD is integrated via cocoapods as a dynamic or static framework with a separate resource bundle + return image + } + + return UIImage() + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDErrorView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDErrorView.swift new file mode 100644 index 0000000..d53bb05 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDErrorView.swift @@ -0,0 +1,101 @@ +// +// PKHUDErrorAnimation.swift +// PKHUD +// +// Created by Philip Kluz on 9/27/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDErrorView provides an animated error (cross) view. +open class PKHUDErrorView: PKHUDSquareBaseView, PKHUDAnimating { + + var dashOneLayer = PKHUDErrorView.generateDashLayer() + var dashTwoLayer = PKHUDErrorView.generateDashLayer() + + class func generateDashLayer() -> CAShapeLayer { + let dash = CAShapeLayer() + dash.frame = CGRect(x: 0.0, y: 0.0, width: 88.0, height: 88.0) + dash.path = { + let path = UIBezierPath() + path.move(to: CGPoint(x: 0.0, y: 44.0)) + path.addLine(to: CGPoint(x: 88.0, y: 44.0)) + return path.cgPath + }() + + #if swift(>=4.2) + dash.lineCap = .round + dash.lineJoin = .round + dash.fillMode = .forwards + #else + dash.lineCap = kCALineCapRound + dash.lineJoin = kCALineJoinRound + dash.fillMode = kCAFillModeForwards + #endif + + dash.fillColor = nil + dash.strokeColor = UIColor(red: 0.15, green: 0.15, blue: 0.15, alpha: 1.0).cgColor + dash.lineWidth = 6 + return dash + } + + public init(title: String? = nil, subtitle: String? = nil) { + super.init(title: title, subtitle: subtitle) + layer.addSublayer(dashOneLayer) + layer.addSublayer(dashTwoLayer) + dashOneLayer.position = layer.position + dashTwoLayer.position = layer.position + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + layer.addSublayer(dashOneLayer) + layer.addSublayer(dashTwoLayer) + dashOneLayer.position = layer.position + dashTwoLayer.position = layer.position + } + + func rotationAnimation(_ angle: CGFloat) -> CABasicAnimation { + var animation: CABasicAnimation + if #available(iOS 9.0, *) { + let springAnimation = CASpringAnimation(keyPath: "transform.rotation.z") + springAnimation.damping = 1.5 + springAnimation.mass = 0.22 + springAnimation.initialVelocity = 0.5 + animation = springAnimation + } else { + animation = CABasicAnimation(keyPath: "transform.rotation.z") + } + + animation.fromValue = 0.0 + animation.toValue = angle * CGFloat(.pi / 180.0) + animation.duration = 1.0 + + #if swift(>=4.2) + let timingFunctionName = CAMediaTimingFunctionName.easeInEaseOut + #else + let timingFunctionName = kCAMediaTimingFunctionEaseInEaseOut + #endif + + animation.timingFunction = CAMediaTimingFunction(name: timingFunctionName) + return animation + } + + public func startAnimation() { + let dashOneAnimation = rotationAnimation(-45.0) + let dashTwoAnimation = rotationAnimation(45.0) + + dashOneLayer.transform = CATransform3DMakeRotation(-45 * CGFloat(.pi / 180.0), 0.0, 0.0, 1.0) + dashTwoLayer.transform = CATransform3DMakeRotation(45 * CGFloat(.pi / 180.0), 0.0, 0.0, 1.0) + + dashOneLayer.add(dashOneAnimation, forKey: "dashOneAnimation") + dashTwoLayer.add(dashTwoAnimation, forKey: "dashTwoAnimation") + } + + public func stopAnimation() { + dashOneLayer.removeAnimation(forKey: "dashOneAnimation") + dashTwoLayer.removeAnimation(forKey: "dashTwoAnimation") + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDProgressView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDProgressView.swift new file mode 100644 index 0000000..24b7d52 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDProgressView.swift @@ -0,0 +1,30 @@ +// +// PKHUDProgressVIew.swift +// PKHUD +// +// Created by Philip Kluz on 6/12/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit +import QuartzCore + +/// PKHUDProgressView provides an indeterminate progress view. +open class PKHUDProgressView: PKHUDSquareBaseView, PKHUDAnimating { + + public init(title: String? = nil, subtitle: String? = nil) { + super.init(image: PKHUDAssets.progressActivityImage, title: title, subtitle: subtitle) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + public func startAnimation() { + imageView.layer.add(PKHUDAnimation.discreteRotation, forKey: "progressAnimation") + } + + public func stopAnimation() { + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDRotatingImageView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDRotatingImageView.swift new file mode 100644 index 0000000..c7eba25 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDRotatingImageView.swift @@ -0,0 +1,22 @@ +// +// PKHUDRotatingImageView.swift +// PKHUD +// +// Created by Mark Koh on 1/14/16. +// Copyright © 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit +import QuartzCore + +/// PKHUDRotatingImageView provides a content view that rotates the supplied image automatically. +open class PKHUDRotatingImageView: PKHUDSquareBaseView, PKHUDAnimating { + + public func startAnimation() { + imageView.layer.add(PKHUDAnimation.continuousRotation, forKey: "progressAnimation") + } + + public func stopAnimation() { + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSquareBaseView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSquareBaseView.swift new file mode 100644 index 0000000..9fd8260 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSquareBaseView.swift @@ -0,0 +1,83 @@ +// +// PKHUDSquareBaseView.swift +// PKHUD +// +// Created by Philip Kluz on 6/12/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDSquareBaseView provides a square view, which you can subclass and add additional views to. +open class PKHUDSquareBaseView: UIView { + + static let defaultSquareBaseViewFrame = CGRect(origin: CGPoint.zero, size: CGSize(width: 156.0, height: 156.0)) + + public override init(frame: CGRect) { + super.init(frame: frame) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + public init(image: UIImage? = nil, title: String? = nil, subtitle: String? = nil) { + super.init(frame: PKHUDSquareBaseView.defaultSquareBaseViewFrame) + self.imageView.image = image + titleLabel.text = title + subtitleLabel.text = subtitle + + addSubview(imageView) + addSubview(titleLabel) + addSubview(subtitleLabel) + } + + public let imageView: UIImageView = { + let imageView = UIImageView() + imageView.alpha = 0.85 + imageView.clipsToBounds = true + imageView.contentMode = .center + return imageView + }() + + public let titleLabel: UILabel = { + let label = UILabel() + label.textAlignment = .center + label.font = UIFont.boldSystemFont(ofSize: 17.0) + label.textColor = UIColor.black.withAlphaComponent(0.85) + label.adjustsFontSizeToFitWidth = true + label.minimumScaleFactor = 0.25 + return label + }() + + public let subtitleLabel: UILabel = { + let label = UILabel() + label.textAlignment = .center + label.font = UIFont.systemFont(ofSize: 14.0) + label.textColor = UIColor.black.withAlphaComponent(0.7) + label.adjustsFontSizeToFitWidth = true + label.numberOfLines = 2 + label.adjustsFontSizeToFitWidth = true + label.minimumScaleFactor = 0.25 + return label + }() + + open override func layoutSubviews() { + super.layoutSubviews() + + let margin: CGFloat = PKHUD.sharedHUD.leadingMargin + PKHUD.sharedHUD.trailingMargin + let originX: CGFloat = margin > 0 ? margin : 0.0 + let viewWidth = bounds.size.width - 2 * margin + let viewHeight = bounds.size.height + + let halfHeight = CGFloat(ceilf(CFloat(viewHeight / 2.0))) + let quarterHeight = CGFloat(ceilf(CFloat(viewHeight / 4.0))) + let threeQuarterHeight = CGFloat(ceilf(CFloat(viewHeight / 4.0 * 3.0))) + + titleLabel.frame = CGRect(origin: CGPoint(x: originX, y: 0.0), size: CGSize(width: viewWidth, height: quarterHeight)) + imageView.frame = CGRect(origin: CGPoint(x: originX, y: quarterHeight), size: CGSize(width: viewWidth, height: halfHeight)) + subtitleLabel.frame = CGRect(origin: CGPoint(x: originX, y: threeQuarterHeight), size: CGSize(width: viewWidth, height: quarterHeight)) + + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSuccessView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSuccessView.swift new file mode 100644 index 0000000..56825ec --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSuccessView.swift @@ -0,0 +1,65 @@ +// +// PKHUDCheckmarkView.swift +// PKHUD +// +// Created by Philip Kluz on 9/27/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDCheckmarkView provides an animated success (checkmark) view. +open class PKHUDSuccessView: PKHUDSquareBaseView, PKHUDAnimating { + + var checkmarkShapeLayer: CAShapeLayer = { + let checkmarkPath = UIBezierPath() + checkmarkPath.move(to: CGPoint(x: 4.0, y: 27.0)) + checkmarkPath.addLine(to: CGPoint(x: 34.0, y: 56.0)) + checkmarkPath.addLine(to: CGPoint(x: 88.0, y: 0.0)) + + let layer = CAShapeLayer() + layer.frame = CGRect(x: 3.0, y: 3.0, width: 88.0, height: 56.0) + layer.path = checkmarkPath.cgPath + + #if swift(>=4.2) + layer.fillMode = .forwards + layer.lineCap = .round + layer.lineJoin = .round + #else + layer.fillMode = kCAFillModeForwards + layer.lineCap = kCALineCapRound + layer.lineJoin = kCALineJoinRound + #endif + + layer.fillColor = nil + layer.strokeColor = UIColor(red: 0.15, green: 0.15, blue: 0.15, alpha: 1.0).cgColor + layer.lineWidth = 6.0 + return layer + }() + + public init(title: String? = nil, subtitle: String? = nil) { + super.init(title: title, subtitle: subtitle) + layer.addSublayer(checkmarkShapeLayer) + checkmarkShapeLayer.position = layer.position + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + layer.addSublayer(checkmarkShapeLayer) + checkmarkShapeLayer.position = layer.position + } + + open func startAnimation() { + let checkmarkStrokeAnimation = CAKeyframeAnimation(keyPath: "strokeEnd") + checkmarkStrokeAnimation.values = [0, 1] + checkmarkStrokeAnimation.keyTimes = [0, 1] + checkmarkStrokeAnimation.duration = 0.35 + + checkmarkShapeLayer.add(checkmarkStrokeAnimation, forKey: "checkmarkStrokeAnim") + } + + open func stopAnimation() { + checkmarkShapeLayer.removeAnimation(forKey: "checkmarkStrokeAnimation") + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSystemActivityIndicatorView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSystemActivityIndicatorView.swift new file mode 100644 index 0000000..bba3df5 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDSystemActivityIndicatorView.swift @@ -0,0 +1,55 @@ +// +// PKHUDSystemActivityIndicatorView.swift +// PKHUD +// +// Created by Philip Kluz on 6/12/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDSystemActivityIndicatorView provides the system UIActivityIndicatorView as an alternative. +public final class PKHUDSystemActivityIndicatorView: PKHUDSquareBaseView, PKHUDAnimating { + + public init() { + super.init(frame: PKHUDSquareBaseView.defaultSquareBaseViewFrame) + commonInit() + } + + public override init(frame: CGRect) { + super.init(frame: frame) + commonInit() + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + commonInit() + } + + func commonInit () { + backgroundColor = UIColor.clear + alpha = 0.8 + + self.addSubview(activityIndicatorView) + } + + public override func layoutSubviews() { + super.layoutSubviews() + activityIndicatorView.center = self.center + } + + let activityIndicatorView: UIActivityIndicatorView = { + #if swift(>=4.2) + let activity = UIActivityIndicatorView(style: .whiteLarge) + #else + let activity = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge) + #endif + activity.color = UIColor.black + return activity + }() + + public func startAnimation() { + activityIndicatorView.startAnimating() + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDTextView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDTextView.swift new file mode 100644 index 0000000..5dc5055 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDTextView.swift @@ -0,0 +1,46 @@ +// +// PKHUDTextView.swift +// PKHUD +// +// Created by Philip Kluz on 6/12/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDTextView provides a wide, three line text view, which you can use to display information. +open class PKHUDTextView: PKHUDWideBaseView { + + public init(text: String?) { + super.init() + commonInit(text) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + commonInit("") + } + + func commonInit(_ text: String?) { + titleLabel.text = text + addSubview(titleLabel) + } + + open override func layoutSubviews() { + super.layoutSubviews() + + let padding: CGFloat = 10.0 + titleLabel.frame = bounds.insetBy(dx: padding, dy: padding) + } + + public let titleLabel: UILabel = { + let label = UILabel() + label.textAlignment = .center + label.font = UIFont.boldSystemFont(ofSize: 17.0) + label.textColor = UIColor.black.withAlphaComponent(0.85) + label.adjustsFontSizeToFitWidth = true + label.numberOfLines = 3 + return label + }() +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDWideBaseView.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDWideBaseView.swift new file mode 100644 index 0000000..ea6b6c9 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/PKHUDWideBaseView.swift @@ -0,0 +1,28 @@ +// +// PKHUDWideBaseView.swift +// PKHUD +// +// Created by Philip Kluz on 6/12/15. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// PKHUDWideBaseView provides a wide base view, which you can subclass and add additional views to. +open class PKHUDWideBaseView: UIView { + + static let defaultWideBaseViewFrame = CGRect(origin: CGPoint.zero, size: CGSize(width: 265.0, height: 90.0)) + + public init() { + super.init(frame: PKHUDWideBaseView.defaultWideBaseViewFrame) + } + + public override init(frame: CGRect) { + super.init(frame: frame) + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/Window.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/Window.swift new file mode 100644 index 0000000..96e4432 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/Window.swift @@ -0,0 +1,104 @@ +// +// HUDWindow.swift +// PKHUD +// +// Created by Philip Kluz on 6/16/14. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// The window used to display the PKHUD within. Placed atop the applications main window. +internal class ContainerView: UIView { + + internal let frameView: FrameView + internal init(frameView: FrameView = FrameView()) { + self.frameView = frameView + super.init(frame: CGRect.zero) + commonInit() + } + + required init?(coder aDecoder: NSCoder) { + frameView = FrameView() + super.init(coder: aDecoder) + commonInit() + } + + fileprivate func commonInit() { + backgroundColor = UIColor.clear + isHidden = true + + addSubview(backgroundView) + addSubview(frameView) + } + + internal override func layoutSubviews() { + super.layoutSubviews() + + frameView.center = center + backgroundView.frame = bounds + } + + internal func showFrameView() { + layer.removeAllAnimations() + frameView.center = center + frameView.alpha = 1.0 + isHidden = false + } + + fileprivate var willHide = false + + internal func hideFrameView(animated anim: Bool, completion: ((Bool) -> Void)? = nil) { + let finalize: (_ finished: Bool) -> Void = { finished in + self.isHidden = true + self.removeFromSuperview() + self.willHide = false + + completion?(finished) + } + + if isHidden { + return + } + + willHide = true + + if anim { + UIView.animate(withDuration: 0.8, animations: { + self.frameView.alpha = 0.0 + self.hideBackground(animated: false) + }, completion: { _ in finalize(true) }) + } else { + self.frameView.alpha = 0.0 + finalize(true) + } + } + + fileprivate let backgroundView: UIView = { + let view = UIView() + view.backgroundColor = UIColor(white: 0.0, alpha: 0.25) + view.alpha = 0.0 + return view + }() + + internal func showBackground(animated anim: Bool) { + if anim { + UIView.animate(withDuration: 0.175, animations: { + self.backgroundView.alpha = 1.0 + }) + } else { + backgroundView.alpha = 1.0 + } + } + + internal func hideBackground(animated anim: Bool) { + if anim { + UIView.animate(withDuration: 0.65, animations: { + self.backgroundView.alpha = 0.0 + }) + } else { + backgroundView.alpha = 0.0 + } + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/PKHUD/WindowRootViewController.swift b/swift/Pixelizator/Pods/PKHUD/PKHUD/WindowRootViewController.swift new file mode 100644 index 0000000..2e6d610 --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/PKHUD/WindowRootViewController.swift @@ -0,0 +1,46 @@ +// +// PKHUD.WindowRootViewController.swift +// PKHUD +// +// Created by Philip Kluz on 6/18/14. +// Copyright (c) 2016 NSExceptional. All rights reserved. +// Licensed under the MIT license. +// + +import UIKit + +/// Serves as a configuration relay controller, tapping into the main window's rootViewController settings. +internal class WindowRootViewController: UIViewController { + + internal override var supportedInterfaceOrientations: UIInterfaceOrientationMask { + if let rootViewController = UIApplication.shared.delegate?.window??.rootViewController { + return rootViewController.supportedInterfaceOrientations + } else { + return UIInterfaceOrientationMask.portrait + } + } + + internal override var preferredStatusBarStyle: UIStatusBarStyle { + return self.presentingViewController?.preferredStatusBarStyle ?? UIApplication.shared.statusBarStyle + } + + internal override var prefersStatusBarHidden: Bool { + return self.presentingViewController?.prefersStatusBarHidden ?? UIApplication.shared.isStatusBarHidden + } + + internal override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { + if let rootViewController = UIApplication.shared.delegate?.window??.rootViewController { + return rootViewController.preferredStatusBarUpdateAnimation + } else { + return .none + } + } + + internal override var shouldAutorotate: Bool { + if let rootViewController = UIApplication.shared.delegate?.window??.rootViewController { + return rootViewController.shouldAutorotate + } else { + return false + } + } +} diff --git a/swift/Pixelizator/Pods/PKHUD/README.md b/swift/Pixelizator/Pods/PKHUD/README.md new file mode 100644 index 0000000..f6fe6be --- /dev/null +++ b/swift/Pixelizator/Pods/PKHUD/README.md @@ -0,0 +1,160 @@ +[![Build Status](https://travis-ci.org/pkluz/PKHUD.svg?branch=master)](https://travis-ci.org/pkluz/PKHUD) +[![License](https://img.shields.io/cocoapods/l/PKHUD.svg?style=flat)](https://cocoapods.org/pods/PKHUD) +[![Platform](https://img.shields.io/cocoapods/p/PKHUD.svg?style=flat)](http://cocoadocs.org/docsets/PKHUD/3.2.1/) +[![CocoaPod](https://img.shields.io/cocoapods/v/PKHUD.svg?style=flat)](https://cocoapods.org/pods/PKHUD) +[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) + +![PKHUD - Swift and easy](https://raw.githubusercontent.com/pkluz/PKHUD/master/README_hero.png) + +A **Swift** based reimplementation of the Apple HUD (Volume, Ringer, Rotation,…) **for iOS 8** and up. + +## Features +- Official iOS 8 blur effect via **UIVisualEffectsView**. +- Proper **rotation support**. +- Size / **Device agnostic**. +- Works on top of presented view controllers, alerts,... +- Comes with several *free* resources - Checkmark, Cross, Progress Indicator,… +- …as well as **animated** ones. +- Builds as an **iOS 8 framework**. + +![PKHUD.gif](https://cloud.githubusercontent.com/assets/1275218/10124182/09f4c406-654f-11e5-9cab-0f2e6f470887.gif) + +## Installation +**The recommended way is to use CocoaPods.** + +### CocoaPods + +To install PKHUD for Swift 2 using CocoaPods, include the following in your Podfile + +```ruby +pod 'PKHUD', '~> 3.0' +``` + +To install PKHUD for Swift 3.x using CocoaPods, include the following in your Podfile + +```ruby +pod 'PKHUD', '~> 4.0' +``` + +To install PKHUD for Swift 4.x, include the following in your Podfile + +```ruby +pod 'PKHUD', '~> 5.0' +``` + +### Carthage + +[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. + +You can install Carthage with [Homebrew](http://brew.sh/) using the following command: + +```bash +$ brew update +$ brew install carthage +``` + +To integrate PKHUD into your Xcode project using Carthage, specify it in your `Cartfile`: + +```ogdl +github "pkluz/PKHUD" ~> 4.0 +``` + +Run `carthage update` to build the framework and drag the built `PKHUD.framework` into your Xcode project. + +## How To + +After adding the framework to your project, you need to import the module +```swift +import PKHUD +``` + +Now, you can proceed to show an arbitrary HUD (and have it automatically disappear a second later) like this: +```swift +HUD.flash(.success, delay: 1.0) +``` + +_or_ with a completion handler: + +```swift +HUD.flash(.success, delay: 1.0) { finished in + // Completion Handler +} +``` + +alternatively, you can use the more verbose and flexible “plumbing” API: + +```swift +PKHUD.sharedHUD.contentView = PKHUDSuccessView() +PKHUD.sharedHUD.show() +PKHUD.sharedHUD.hide(afterDelay: 1.0) { success in + // Completion Handler +} +``` + +You can also hot-swap content views - this can prove useful if you want to display a progress HUD first and transform it into a success or error HUD after an asynchronous operation has finished. +```swift +HUD.show(.progress) + +// Now some long running task starts... +DispatchQueue.main.asyncAfter(deadline: .now() + 2) { + // ...and once it finishes we flash the HUD for a second. + HUD.flash(.success, delay: 1.0) +} +``` + +Please note that there are _multiple_ types of content views that ship with PKHUD. You can find them as separate files in the project folder as well as in the `ContentViews` group in Xcode. + +## Communication _(Hat Tip AlamoFire)_ + +- If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/pkhud). (Tag 'pkhud') +- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/pkhud). +- If you **found a bug**, open an issue. +- If you **have a feature request**, open an issue. +- If you **want to contribute**, submit a pull request. + + +## Customization + +There are two properties at your disposal to customize general behavior. + +- `PKHUD.sharedHUD.dimsBackground: Bool` defines whether the background is slightly dimmed when the HUD is shown. + +- `PKHUD.sharedHUD.userInteractionOnUnderlyingViewsEnabled: Bool` defines whether the underlying views respond to touches while the HUD is shown. + +Additionally you are free to create you own custom content views. They can descend from any `UIView` type or the predefined base classes `PKHUDSquareBaseView` and `PKHUDWideBaseView`. + +**Note**: It's neither possible to customize the general look and feel, nor do I plan to add that feature. You are free to provide any content views you wish but the blurring, corner radius and shading will remain the same. + +## Credits + +PKHUD is owned and maintained by Philip Kluz. Other mantainers are: + +- Piergiuseppe Longo [twitter](https://twitter.com/pglongo) + +## Xamarin + +If you are Xamarin developer you can use this [port](https://github.com/Prin53/Xamarin.iOS.PKHUD). + +## License + +The MIT License (MIT) + +Copyright (c) 2015 Philip Kluz (Philip.Kluz@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/swift/Pixelizator/Pods/Pods.xcodeproj/project.pbxproj b/swift/Pixelizator/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b12796d --- /dev/null +++ b/swift/Pixelizator/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,785 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 041A319F313FA03C9AECBD23F4A41676 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; + 0AD7956E61AD5EF273B31E3878B480F9 /* PKHUDSquareBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF94861B5E5BCDEA9026C7C6079D4ED0 /* PKHUDSquareBaseView.swift */; }; + 0C2767249291A4A1505A28CFC9498026 /* PKHUDRotatingImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B40C8D7C066CBEFCE66ADBD6511407 /* PKHUDRotatingImageView.swift */; }; + 0F4DD3C94E4DF364C580CCA89D9C2415 /* PKHUD-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DF5AF37EE62F6AE5EE1E43713EEA3627 /* PKHUD-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BC5BD0252DA8DA05906C5D590C834C9 /* PKHUDAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0607033B6E9F75F8888CE2D87AC710C0 /* PKHUDAnimation.swift */; }; + 3F6232073AB7C98C232EF26093587FAD /* Pods-Pixelizator-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D4140CE33F9E6339E21DDAFECCBE3D9 /* Pods-Pixelizator-dummy.m */; }; + 4D8650E0675A910371A5ACDA54942B38 /* Pods-Pixelizator-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 599BE3BB9CB64016F009C3EC420B60D7 /* Pods-Pixelizator-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4FC4DA714B42350BC08EA10BD54A38AE /* PKHUDErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1164433BE2043A986C1BE946598AE00A /* PKHUDErrorView.swift */; }; + 584DA6928D93CB8AA7DDDEB67FF8FE5C /* FrameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF22A71B42526D0A303F8DE7A72B1675 /* FrameView.swift */; }; + 6384CC7276BF926A6E48E96AA10EFC1A /* PKHUDSuccessView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6FB3CF4BC1F4554FD9D5141F34743B2 /* PKHUDSuccessView.swift */; }; + 695A4D580E443E5DE0356968CCC393CD /* PKHUDSystemActivityIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FD4C222B1512E10D66B71D33C1E9BF6 /* PKHUDSystemActivityIndicatorView.swift */; }; + 7187B4DDEF3EF96F0E6983A9A0AEE61E /* PKHUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9BF9FDD75E98623FBCAD19ECDB328D3 /* PKHUD.swift */; }; + 78B029B6D7F554212B95F64F80CDEC33 /* PKHUDAnimating.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3633E6C374BBC4E0C024A93C6A3EC17D /* PKHUDAnimating.swift */; }; + 7E49EB565118F1F3A231528110A1FF5F /* PKHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B4DE115F12120303243790CE7D5A6F /* PKHUD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 897E572CF7EAAB73AA6AB472CFF35C05 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; + 8C4D24A5AC87E30A33214EA4E7FA359B /* PKHUDAssets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D75D2643D35302026B8EFAE76A451CE /* PKHUDAssets.swift */; }; + 8E945BA2AB75EB4A3E0B0E66CAB5D17C /* WindowRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A2FAAEEC5419B27F1BF303DDAE05490 /* WindowRootViewController.swift */; }; + 9967627CA12A571655D6F64ECD4688B3 /* PKHUDResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 402A987A721FCE8FFC74F986189A2729 /* PKHUDResources.bundle */; }; + 99D620F94B0CD9C041635D559BD81B4A /* HUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2D1D6EA19C8357797ADE8A2D291AF55 /* HUD.swift */; }; + 9A1224693C7C3574E4A517844399E668 /* PKHUDWideBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219BF8BC523FC0BBB9FF08C2E2FF3EBB /* PKHUDWideBaseView.swift */; }; + C16DB56D2D110826C502A4DFF6A6F0D3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BBA37A124C71DE6F0602CD283CC93DF1 /* Images.xcassets */; }; + EC093FB80F3090C6B466C94280790C23 /* Window.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F7B43524F6C718FA39DA853DF0D6E4 /* Window.swift */; }; + ECB37571500A625742833F6EDD1CE4E1 /* PKHUDTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B9E7ED7713F482171DE871FB745B3A6 /* PKHUDTextView.swift */; }; + F51584A61D18FFFF50A115D6351EB91C /* PKHUDProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3A2F8D29AF0CDA12C644DD77BBE8282 /* PKHUDProgressView.swift */; }; + F9718DA2D558B553E75E2031B94D55D8 /* PKHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6166C134A01C1172D76E70C7DBD7B8D7 /* PKHUD-dummy.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 56890D86243926CBCF03222DAFFA7D93 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0422742DF5CC42F97485A5A4607BBEE9; + remoteInfo = PKHUD; + }; + E0883D7F7AB2ACD8990E5C3D4857446A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4C3315A1ABAE8BC33824D088C610C951; + remoteInfo = "PKHUD-PKHUDResources"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0607033B6E9F75F8888CE2D87AC710C0 /* PKHUDAnimation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDAnimation.swift; path = PKHUD/PKHUDAnimation.swift; sourceTree = ""; }; + 0A2FAAEEC5419B27F1BF303DDAE05490 /* WindowRootViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WindowRootViewController.swift; path = PKHUD/WindowRootViewController.swift; sourceTree = ""; }; + 0D4140CE33F9E6339E21DDAFECCBE3D9 /* Pods-Pixelizator-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Pixelizator-dummy.m"; sourceTree = ""; }; + 0DE02BFAE8E42FC85C2052D3939B51F6 /* PKHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PKHUD-prefix.pch"; sourceTree = ""; }; + 1164433BE2043A986C1BE946598AE00A /* PKHUDErrorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDErrorView.swift; path = PKHUD/PKHUDErrorView.swift; sourceTree = ""; }; + 219BF8BC523FC0BBB9FF08C2E2FF3EBB /* PKHUDWideBaseView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDWideBaseView.swift; path = PKHUD/PKHUDWideBaseView.swift; sourceTree = ""; }; + 241D81360E597CE77FCAA235DD28ED95 /* PKHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PKHUD.framework; path = PKHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 26732DDAB7723808E07023DA9DD3FF4A /* Pods-Pixelizator.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Pixelizator.modulemap"; sourceTree = ""; }; + 2D75D2643D35302026B8EFAE76A451CE /* PKHUDAssets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDAssets.swift; path = PKHUD/PKHUDAssets.swift; sourceTree = ""; }; + 32B4DE115F12120303243790CE7D5A6F /* PKHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PKHUD.h; path = PKHUD/PKHUD.h; sourceTree = ""; }; + 3633E6C374BBC4E0C024A93C6A3EC17D /* PKHUDAnimating.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDAnimating.swift; path = PKHUD/PKHUDAnimating.swift; sourceTree = ""; }; + 3FD4C222B1512E10D66B71D33C1E9BF6 /* PKHUDSystemActivityIndicatorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDSystemActivityIndicatorView.swift; path = PKHUD/PKHUDSystemActivityIndicatorView.swift; sourceTree = ""; }; + 402A987A721FCE8FFC74F986189A2729 /* PKHUDResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = PKHUDResources.bundle; path = "PKHUD-PKHUDResources.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5785865CCFF4E38FCCE076495BB1B21B /* Pods-Pixelizator.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Pixelizator.debug.xcconfig"; sourceTree = ""; }; + 599BE3BB9CB64016F009C3EC420B60D7 /* Pods-Pixelizator-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Pixelizator-umbrella.h"; sourceTree = ""; }; + 6166C134A01C1172D76E70C7DBD7B8D7 /* PKHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PKHUD-dummy.m"; sourceTree = ""; }; + 6B9E7ED7713F482171DE871FB745B3A6 /* PKHUDTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDTextView.swift; path = PKHUD/PKHUDTextView.swift; sourceTree = ""; }; + 89A84CD2BEF7BC76D5CD5BDB5F3E1E08 /* Pods_Pixelizator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_Pixelizator.framework; path = "Pods-Pixelizator.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A3A2F8D29AF0CDA12C644DD77BBE8282 /* PKHUDProgressView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDProgressView.swift; path = PKHUD/PKHUDProgressView.swift; sourceTree = ""; }; + A6FB3CF4BC1F4554FD9D5141F34743B2 /* PKHUDSuccessView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDSuccessView.swift; path = PKHUD/PKHUDSuccessView.swift; sourceTree = ""; }; + A7F7B43524F6C718FA39DA853DF0D6E4 /* Window.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Window.swift; path = PKHUD/Window.swift; sourceTree = ""; }; + B0756CC81564C17261315772FAAF1BB3 /* PKHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PKHUD.xcconfig; sourceTree = ""; }; + B1715B2C565271AC6956E814ED879979 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B61416FD71796BABD9B4C1FA7E227131 /* Pods-Pixelizator-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Pixelizator-resources.sh"; sourceTree = ""; }; + BBA37A124C71DE6F0602CD283CC93DF1 /* Images.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = PKHUD/Images.xcassets; sourceTree = ""; }; + BF22A71B42526D0A303F8DE7A72B1675 /* FrameView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FrameView.swift; path = PKHUD/FrameView.swift; sourceTree = ""; }; + BF94861B5E5BCDEA9026C7C6079D4ED0 /* PKHUDSquareBaseView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDSquareBaseView.swift; path = PKHUD/PKHUDSquareBaseView.swift; sourceTree = ""; }; + C122D007C9A46B99B23F71EA98F9DD66 /* Pods-Pixelizator-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Pixelizator-frameworks.sh"; sourceTree = ""; }; + C2C68A82099E7332F81778E159BB01AF /* PKHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PKHUD.modulemap; sourceTree = ""; }; + C5B40C8D7C066CBEFCE66ADBD6511407 /* PKHUDRotatingImageView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUDRotatingImageView.swift; path = PKHUD/PKHUDRotatingImageView.swift; sourceTree = ""; }; + CF555150DF69BFAFDA4B9F19DB9727B0 /* Pods-Pixelizator-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Pixelizator-acknowledgements.plist"; sourceTree = ""; }; + D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D77728B7E1138CEE2E75BBCCF377F04F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DF5AF37EE62F6AE5EE1E43713EEA3627 /* PKHUD-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PKHUD-umbrella.h"; sourceTree = ""; }; + E67B88BCFA832F11944EE1F2690409CF /* Pods-Pixelizator.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Pixelizator.release.xcconfig"; sourceTree = ""; }; + E9BF9FDD75E98623FBCAD19ECDB328D3 /* PKHUD.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKHUD.swift; path = PKHUD/PKHUD.swift; sourceTree = ""; }; + F2D1D6EA19C8357797ADE8A2D291AF55 /* HUD.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HUD.swift; path = PKHUD/HUD.swift; sourceTree = ""; }; + F37DDFE8428D035E0A58ED68B733547F /* Pods-Pixelizator-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Pixelizator-acknowledgements.markdown"; sourceTree = ""; }; + F788E0337901DF957D8214A258BD67FF /* ResourceBundle-PKHUDResources-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-PKHUDResources-Info.plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3C3A17705631D41E5B336B63B7938FA9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 041A319F313FA03C9AECBD23F4A41676 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3E5922D0EFAF0FA0ADF29F144C46CA90 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 897E572CF7EAAB73AA6AB472CFF35C05 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FA62ABB802391986FD5254C46A96CC16 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 25A235A7D73D5998A07DE69E73BFDFE9 /* Resources */ = { + isa = PBXGroup; + children = ( + BBA37A124C71DE6F0602CD283CC93DF1 /* Images.xcassets */, + ); + name = Resources; + sourceTree = ""; + }; + 41967F7511FB6A6CF6E6732B8D30697B /* Products */ = { + isa = PBXGroup; + children = ( + 241D81360E597CE77FCAA235DD28ED95 /* PKHUD.framework */, + 402A987A721FCE8FFC74F986189A2729 /* PKHUDResources.bundle */, + 89A84CD2BEF7BC76D5CD5BDB5F3E1E08 /* Pods_Pixelizator.framework */, + ); + name = Products; + sourceTree = ""; + }; + 44D5347904CF754D6785B84253F2574A /* iOS */ = { + isa = PBXGroup; + children = ( + D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + 88E8EC96368FBD710C9483099BB42271 /* Pods */, + 41967F7511FB6A6CF6E6732B8D30697B /* Products */, + 983095AF2C7D5927DF3E8ACD050B79D9 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 88E8EC96368FBD710C9483099BB42271 /* Pods */ = { + isa = PBXGroup; + children = ( + BEEBCB5A1B246F87FBCA51DFE83672A7 /* PKHUD */, + ); + name = Pods; + sourceTree = ""; + }; + 983095AF2C7D5927DF3E8ACD050B79D9 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + D141BF46136ADC8770B043B733F3E03F /* Pods-Pixelizator */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + AA1284359054FA444B551A50358B37DE /* Support Files */ = { + isa = PBXGroup; + children = ( + D77728B7E1138CEE2E75BBCCF377F04F /* Info.plist */, + C2C68A82099E7332F81778E159BB01AF /* PKHUD.modulemap */, + B0756CC81564C17261315772FAAF1BB3 /* PKHUD.xcconfig */, + 6166C134A01C1172D76E70C7DBD7B8D7 /* PKHUD-dummy.m */, + 0DE02BFAE8E42FC85C2052D3939B51F6 /* PKHUD-prefix.pch */, + DF5AF37EE62F6AE5EE1E43713EEA3627 /* PKHUD-umbrella.h */, + F788E0337901DF957D8214A258BD67FF /* ResourceBundle-PKHUDResources-Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/PKHUD"; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 44D5347904CF754D6785B84253F2574A /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + BEEBCB5A1B246F87FBCA51DFE83672A7 /* PKHUD */ = { + isa = PBXGroup; + children = ( + BF22A71B42526D0A303F8DE7A72B1675 /* FrameView.swift */, + F2D1D6EA19C8357797ADE8A2D291AF55 /* HUD.swift */, + 32B4DE115F12120303243790CE7D5A6F /* PKHUD.h */, + E9BF9FDD75E98623FBCAD19ECDB328D3 /* PKHUD.swift */, + 3633E6C374BBC4E0C024A93C6A3EC17D /* PKHUDAnimating.swift */, + 0607033B6E9F75F8888CE2D87AC710C0 /* PKHUDAnimation.swift */, + 2D75D2643D35302026B8EFAE76A451CE /* PKHUDAssets.swift */, + 1164433BE2043A986C1BE946598AE00A /* PKHUDErrorView.swift */, + A3A2F8D29AF0CDA12C644DD77BBE8282 /* PKHUDProgressView.swift */, + C5B40C8D7C066CBEFCE66ADBD6511407 /* PKHUDRotatingImageView.swift */, + BF94861B5E5BCDEA9026C7C6079D4ED0 /* PKHUDSquareBaseView.swift */, + A6FB3CF4BC1F4554FD9D5141F34743B2 /* PKHUDSuccessView.swift */, + 3FD4C222B1512E10D66B71D33C1E9BF6 /* PKHUDSystemActivityIndicatorView.swift */, + 6B9E7ED7713F482171DE871FB745B3A6 /* PKHUDTextView.swift */, + 219BF8BC523FC0BBB9FF08C2E2FF3EBB /* PKHUDWideBaseView.swift */, + A7F7B43524F6C718FA39DA853DF0D6E4 /* Window.swift */, + 0A2FAAEEC5419B27F1BF303DDAE05490 /* WindowRootViewController.swift */, + 25A235A7D73D5998A07DE69E73BFDFE9 /* Resources */, + AA1284359054FA444B551A50358B37DE /* Support Files */, + ); + name = PKHUD; + path = PKHUD; + sourceTree = ""; + }; + D141BF46136ADC8770B043B733F3E03F /* Pods-Pixelizator */ = { + isa = PBXGroup; + children = ( + B1715B2C565271AC6956E814ED879979 /* Info.plist */, + 26732DDAB7723808E07023DA9DD3FF4A /* Pods-Pixelizator.modulemap */, + F37DDFE8428D035E0A58ED68B733547F /* Pods-Pixelizator-acknowledgements.markdown */, + CF555150DF69BFAFDA4B9F19DB9727B0 /* Pods-Pixelizator-acknowledgements.plist */, + 0D4140CE33F9E6339E21DDAFECCBE3D9 /* Pods-Pixelizator-dummy.m */, + C122D007C9A46B99B23F71EA98F9DD66 /* Pods-Pixelizator-frameworks.sh */, + B61416FD71796BABD9B4C1FA7E227131 /* Pods-Pixelizator-resources.sh */, + 599BE3BB9CB64016F009C3EC420B60D7 /* Pods-Pixelizator-umbrella.h */, + 5785865CCFF4E38FCCE076495BB1B21B /* Pods-Pixelizator.debug.xcconfig */, + E67B88BCFA832F11944EE1F2690409CF /* Pods-Pixelizator.release.xcconfig */, + ); + name = "Pods-Pixelizator"; + path = "Target Support Files/Pods-Pixelizator"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 46D5972DE07B4B80CB6237E0A8864BA1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0F4DD3C94E4DF364C580CCA89D9C2415 /* PKHUD-umbrella.h in Headers */, + 7E49EB565118F1F3A231528110A1FF5F /* PKHUD.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 59D8D75FA84B97A404550BF5BDBAEC22 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D8650E0675A910371A5ACDA54942B38 /* Pods-Pixelizator-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0422742DF5CC42F97485A5A4607BBEE9 /* PKHUD */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6F3745AF89B93F23E8A26CA404655A54 /* Build configuration list for PBXNativeTarget "PKHUD" */; + buildPhases = ( + 46D5972DE07B4B80CB6237E0A8864BA1 /* Headers */, + 4475B13BB559D6E38EFC0C3B6E0DFB2E /* Sources */, + 3C3A17705631D41E5B336B63B7938FA9 /* Frameworks */, + 24D8FE0F203AF51C109E11B445C23B82 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 08CE7830C1B53D424111C0E1C7BECDA6 /* PBXTargetDependency */, + ); + name = PKHUD; + productName = PKHUD; + productReference = 241D81360E597CE77FCAA235DD28ED95 /* PKHUD.framework */; + productType = "com.apple.product-type.framework"; + }; + 4C3315A1ABAE8BC33824D088C610C951 /* PKHUD-PKHUDResources */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5C15B5AB1F9207DB439180AE3C39F2C0 /* Build configuration list for PBXNativeTarget "PKHUD-PKHUDResources" */; + buildPhases = ( + 0DBDAD36350E4197D78E2E1F0A787823 /* Sources */, + FA62ABB802391986FD5254C46A96CC16 /* Frameworks */, + 02240CBC53F5A9C7D71BDF1AF7D9F620 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "PKHUD-PKHUDResources"; + productName = "PKHUD-PKHUDResources"; + productReference = 402A987A721FCE8FFC74F986189A2729 /* PKHUDResources.bundle */; + productType = "com.apple.product-type.bundle"; + }; + F659EB90888CED233C21624289CD4C75 /* Pods-Pixelizator */ = { + isa = PBXNativeTarget; + buildConfigurationList = BD6040B67723F2E8CDAEAC5735EDB8E6 /* Build configuration list for PBXNativeTarget "Pods-Pixelizator" */; + buildPhases = ( + 59D8D75FA84B97A404550BF5BDBAEC22 /* Headers */, + E7A3E47902965533C8472D59154C237D /* Sources */, + 3E5922D0EFAF0FA0ADF29F144C46CA90 /* Frameworks */, + 058300B2A1D313FA456D2BE40DD42D45 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 9493F2A6259B5462456786F9883E8FD3 /* PBXTargetDependency */, + ); + name = "Pods-Pixelizator"; + productName = "Pods-Pixelizator"; + productReference = 89A84CD2BEF7BC76D5CD5BDB5F3E1E08 /* Pods_Pixelizator.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 41967F7511FB6A6CF6E6732B8D30697B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0422742DF5CC42F97485A5A4607BBEE9 /* PKHUD */, + 4C3315A1ABAE8BC33824D088C610C951 /* PKHUD-PKHUDResources */, + F659EB90888CED233C21624289CD4C75 /* Pods-Pixelizator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 02240CBC53F5A9C7D71BDF1AF7D9F620 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C16DB56D2D110826C502A4DFF6A6F0D3 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 058300B2A1D313FA456D2BE40DD42D45 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 24D8FE0F203AF51C109E11B445C23B82 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9967627CA12A571655D6F64ECD4688B3 /* PKHUDResources.bundle in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0DBDAD36350E4197D78E2E1F0A787823 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4475B13BB559D6E38EFC0C3B6E0DFB2E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 584DA6928D93CB8AA7DDDEB67FF8FE5C /* FrameView.swift in Sources */, + 99D620F94B0CD9C041635D559BD81B4A /* HUD.swift in Sources */, + F9718DA2D558B553E75E2031B94D55D8 /* PKHUD-dummy.m in Sources */, + 7187B4DDEF3EF96F0E6983A9A0AEE61E /* PKHUD.swift in Sources */, + 78B029B6D7F554212B95F64F80CDEC33 /* PKHUDAnimating.swift in Sources */, + 3BC5BD0252DA8DA05906C5D590C834C9 /* PKHUDAnimation.swift in Sources */, + 8C4D24A5AC87E30A33214EA4E7FA359B /* PKHUDAssets.swift in Sources */, + 4FC4DA714B42350BC08EA10BD54A38AE /* PKHUDErrorView.swift in Sources */, + F51584A61D18FFFF50A115D6351EB91C /* PKHUDProgressView.swift in Sources */, + 0C2767249291A4A1505A28CFC9498026 /* PKHUDRotatingImageView.swift in Sources */, + 0AD7956E61AD5EF273B31E3878B480F9 /* PKHUDSquareBaseView.swift in Sources */, + 6384CC7276BF926A6E48E96AA10EFC1A /* PKHUDSuccessView.swift in Sources */, + 695A4D580E443E5DE0356968CCC393CD /* PKHUDSystemActivityIndicatorView.swift in Sources */, + ECB37571500A625742833F6EDD1CE4E1 /* PKHUDTextView.swift in Sources */, + 9A1224693C7C3574E4A517844399E668 /* PKHUDWideBaseView.swift in Sources */, + EC093FB80F3090C6B466C94280790C23 /* Window.swift in Sources */, + 8E945BA2AB75EB4A3E0B0E66CAB5D17C /* WindowRootViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E7A3E47902965533C8472D59154C237D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3F6232073AB7C98C232EF26093587FAD /* Pods-Pixelizator-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 08CE7830C1B53D424111C0E1C7BECDA6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "PKHUD-PKHUDResources"; + target = 4C3315A1ABAE8BC33824D088C610C951 /* PKHUD-PKHUDResources */; + targetProxy = E0883D7F7AB2ACD8990E5C3D4857446A /* PBXContainerItemProxy */; + }; + 9493F2A6259B5462456786F9883E8FD3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PKHUD; + target = 0422742DF5CC42F97485A5A4607BBEE9 /* PKHUD */; + targetProxy = 56890D86243926CBCF03222DAFFA7D93 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0BEAE452BF3F56BA3D3196B403CB2355 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B0756CC81564C17261315772FAAF1BB3 /* PKHUD.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PKHUD"; + INFOPLIST_FILE = "Target Support Files/PKHUD/ResourceBundle-PKHUDResources-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = PKHUDResources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 734A472121F9303C9EB01B8AA6C4439C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B0756CC81564C17261315772FAAF1BB3 /* PKHUD.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PKHUD"; + INFOPLIST_FILE = "Target Support Files/PKHUD/ResourceBundle-PKHUDResources-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + PRODUCT_NAME = PKHUDResources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 807C1496BB847B006E1CF40B4DB9D94C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E67B88BCFA832F11944EE1F2690409CF /* Pods-Pixelizator.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Pixelizator/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Pixelizator/Pods-Pixelizator.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + BAC531930CCC6C0FE56A1DF2A7AD6EE1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5785865CCFF4E38FCCE076495BB1B21B /* Pods-Pixelizator.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-Pixelizator/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-Pixelizator/Pods-Pixelizator.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + BB044C4AFAC2A37F66D023639C0B5841 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + C8F6AD84CD9EBD21EE14F83C2F3C21E0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + E8DA8368425C4B13249EC4DA006DB0CD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B0756CC81564C17261315772FAAF1BB3 /* PKHUD.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PKHUD/PKHUD-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PKHUD/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/PKHUD/PKHUD.modulemap"; + PRODUCT_MODULE_NAME = PKHUD; + PRODUCT_NAME = PKHUD; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + F64093E6B831B0858C226F98042BDFED /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B0756CC81564C17261315772FAAF1BB3 /* PKHUD.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/PKHUD/PKHUD-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PKHUD/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/PKHUD/PKHUD.modulemap"; + PRODUCT_MODULE_NAME = PKHUD; + PRODUCT_NAME = PKHUD; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BB044C4AFAC2A37F66D023639C0B5841 /* Debug */, + C8F6AD84CD9EBD21EE14F83C2F3C21E0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5C15B5AB1F9207DB439180AE3C39F2C0 /* Build configuration list for PBXNativeTarget "PKHUD-PKHUDResources" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 734A472121F9303C9EB01B8AA6C4439C /* Debug */, + 0BEAE452BF3F56BA3D3196B403CB2355 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6F3745AF89B93F23E8A26CA404655A54 /* Build configuration list for PBXNativeTarget "PKHUD" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E8DA8368425C4B13249EC4DA006DB0CD /* Debug */, + F64093E6B831B0858C226F98042BDFED /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BD6040B67723F2E8CDAEAC5735EDB8E6 /* Build configuration list for PBXNativeTarget "Pods-Pixelizator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BAC531930CCC6C0FE56A1DF2A7AD6EE1 /* Debug */, + 807C1496BB847B006E1CF40B4DB9D94C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/Info.plist b/swift/Pixelizator/Pods/Target Support Files/PKHUD/Info.plist new file mode 100644 index 0000000..82c355f --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 5.2.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-dummy.m b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-dummy.m new file mode 100644 index 0000000..7003310 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_PKHUD : NSObject +@end +@implementation PodsDummy_PKHUD +@end diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-prefix.pch b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-prefix.pch new file mode 100644 index 0000000..beb2a24 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-umbrella.h b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-umbrella.h new file mode 100644 index 0000000..83b88bf --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "PKHUD.h" + +FOUNDATION_EXPORT double PKHUDVersionNumber; +FOUNDATION_EXPORT const unsigned char PKHUDVersionString[]; + diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD.modulemap b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD.modulemap new file mode 100644 index 0000000..baceebb --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD.modulemap @@ -0,0 +1,6 @@ +framework module PKHUD { + umbrella header "PKHUD-umbrella.h" + + export * + module * { export * } +} diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD.xcconfig b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD.xcconfig new file mode 100644 index 0000000..f946458 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/PKHUD.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PKHUD +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/PKHUD +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/swift/Pixelizator/Pods/Target Support Files/PKHUD/ResourceBundle-PKHUDResources-Info.plist b/swift/Pixelizator/Pods/Target Support Files/PKHUD/ResourceBundle-PKHUDResources-Info.plist new file mode 100644 index 0000000..87c9e38 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/PKHUD/ResourceBundle-PKHUDResources-Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 5.2.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Info.plist b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-acknowledgements.markdown b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-acknowledgements.markdown new file mode 100644 index 0000000..f7f4b09 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-acknowledgements.markdown @@ -0,0 +1,27 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## PKHUD + +The MIT License (MIT) + +Copyright (c) 2014 Philip Kluz (Philip.Kluz@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +Generated by CocoaPods - https://cocoapods.org diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-acknowledgements.plist b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-acknowledgements.plist new file mode 100644 index 0000000..a044187 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-acknowledgements.plist @@ -0,0 +1,59 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2014 Philip Kluz (Philip.Kluz@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + License + MIT + Title + PKHUD + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-dummy.m b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-dummy.m new file mode 100644 index 0000000..510d1fe --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Pixelizator : NSObject +@end +@implementation PodsDummy_Pods_Pixelizator +@end diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-frameworks.sh b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-frameworks.sh new file mode 100755 index 0000000..f5c8dfd --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-frameworks.sh @@ -0,0 +1,153 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/PKHUD/PKHUD.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-resources.sh b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-resources.sh new file mode 100755 index 0000000..345301f --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-resources.sh @@ -0,0 +1,118 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-umbrella.h b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-umbrella.h new file mode 100644 index 0000000..4de0a51 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_PixelizatorVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_PixelizatorVersionString[]; + diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.debug.xcconfig b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.debug.xcconfig new file mode 100644 index 0000000..a297d0b --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.debug.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PKHUD" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PKHUD/PKHUD.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "PKHUD" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.modulemap b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.modulemap new file mode 100644 index 0000000..6e7edb2 --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Pixelizator { + umbrella header "Pods-Pixelizator-umbrella.h" + + export * + module * { export * } +} diff --git a/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.release.xcconfig b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.release.xcconfig new file mode 100644 index 0000000..a297d0b --- /dev/null +++ b/swift/Pixelizator/Pods/Target Support Files/Pods-Pixelizator/Pods-Pixelizator.release.xcconfig @@ -0,0 +1,11 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/PKHUD" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/PKHUD/PKHUD.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "PKHUD" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods