From 26ac7efa4e6d85fc6c4edd9bec5909b63ff425f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=94=E5=8D=81=E5=B5=90=E7=BF=94?= Date: Sat, 22 Apr 2017 19:44:44 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=97=E3=83=AD=E3=82=B8=E3=82=A7=E3=82=AF?= =?UTF-8?q?=E3=83=88=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 26 + .../project.pbxproj | 584 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + SyakaiseiFilterButton/AppDelegate.swift | 23 + .../AppIcon.appiconset/Contents.json | 58 ++ .../Base.lproj/Main.storyboard | 133 ++++ .../Class/Controller/ViewController.swift | 16 + .../Class/Controller/WindowController.swift | 38 ++ SyakaiseiFilterButton/Document.swift | 26 + .../Document.xcdatamodeld/.xccurrentversion | 8 + .../Document.xcdatamodel/contents | 4 + SyakaiseiFilterButton/Info.plist | 101 +++ .../Sound/line-girl1-hee1.mp3 | Bin 0 -> 43200 bytes SyakaiseiFilterButtonTests/Info.plist | 22 + .../SyakaiseiFilterButtonTests.swift | 33 + SyakaiseiFilterButtonUITests/Info.plist | 22 + .../SyakaiseiFilterButtonUITests.swift | 33 + 17 files changed, 1134 insertions(+) create mode 100644 .gitignore create mode 100644 SyakaiseiFilterButton.xcodeproj/project.pbxproj create mode 100644 SyakaiseiFilterButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 SyakaiseiFilterButton/AppDelegate.swift create mode 100644 SyakaiseiFilterButton/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 SyakaiseiFilterButton/Base.lproj/Main.storyboard create mode 100644 SyakaiseiFilterButton/Class/Controller/ViewController.swift create mode 100644 SyakaiseiFilterButton/Class/Controller/WindowController.swift create mode 100644 SyakaiseiFilterButton/Document.swift create mode 100644 SyakaiseiFilterButton/Document.xcdatamodeld/.xccurrentversion create mode 100644 SyakaiseiFilterButton/Document.xcdatamodeld/Document.xcdatamodel/contents create mode 100644 SyakaiseiFilterButton/Info.plist create mode 100644 SyakaiseiFilterButton/Sound/line-girl1-hee1.mp3 create mode 100644 SyakaiseiFilterButtonTests/Info.plist create mode 100644 SyakaiseiFilterButtonTests/SyakaiseiFilterButtonTests.swift create mode 100644 SyakaiseiFilterButtonUITests/Info.plist create mode 100644 SyakaiseiFilterButtonUITests/SyakaiseiFilterButtonUITests.swift diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e6e5f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Xcode (from gitignore.io) +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate + +# CocoaPod +Pods/* +Podfile.lock + +# others +*.swp +!.gitkeep +.DS_Store \ No newline at end of file diff --git a/SyakaiseiFilterButton.xcodeproj/project.pbxproj b/SyakaiseiFilterButton.xcodeproj/project.pbxproj new file mode 100644 index 0000000..a77bcaa --- /dev/null +++ b/SyakaiseiFilterButton.xcodeproj/project.pbxproj @@ -0,0 +1,584 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + D0572F3A1EAB4EB600CC001F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0572F391EAB4EB600CC001F /* AppDelegate.swift */; }; + D0572F3E1EAB4EB700CC001F /* Document.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0572F3D1EAB4EB700CC001F /* Document.swift */; }; + D0572F411EAB4EB700CC001F /* Document.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = D0572F3F1EAB4EB700CC001F /* Document.xcdatamodeld */; }; + D0572F431EAB4EB700CC001F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D0572F421EAB4EB700CC001F /* Assets.xcassets */; }; + D0572F461EAB4EB700CC001F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D0572F441EAB4EB700CC001F /* Main.storyboard */; }; + D0572F511EAB4EB700CC001F /* SyakaiseiFilterButtonTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0572F501EAB4EB700CC001F /* SyakaiseiFilterButtonTests.swift */; }; + D0572F5C1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0572F5B1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.swift */; }; + D0572F711EAB534E00CC001F /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0572F701EAB534E00CC001F /* ViewController.swift */; }; + D0572F731EAB535500CC001F /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0572F721EAB535500CC001F /* WindowController.swift */; }; + D0572F761EAB54BB00CC001F /* line-girl1-hee1.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = D0572F751EAB54BB00CC001F /* line-girl1-hee1.mp3 */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + D0572F4D1EAB4EB700CC001F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D0572F2E1EAB4EB600CC001F /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0572F351EAB4EB600CC001F; + remoteInfo = SyakaiseiFilterButton; + }; + D0572F581EAB4EB700CC001F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D0572F2E1EAB4EB600CC001F /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0572F351EAB4EB600CC001F; + remoteInfo = SyakaiseiFilterButton; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + D0572F361EAB4EB600CC001F /* SyakaiseiFilterButton.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SyakaiseiFilterButton.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D0572F391EAB4EB600CC001F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + D0572F3D1EAB4EB700CC001F /* Document.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Document.swift; sourceTree = ""; }; + D0572F401EAB4EB700CC001F /* Document.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Document.xcdatamodel; sourceTree = ""; }; + D0572F421EAB4EB700CC001F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + D0572F451EAB4EB700CC001F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + D0572F471EAB4EB700CC001F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0572F4C1EAB4EB700CC001F /* SyakaiseiFilterButtonTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SyakaiseiFilterButtonTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D0572F501EAB4EB700CC001F /* SyakaiseiFilterButtonTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyakaiseiFilterButtonTests.swift; sourceTree = ""; }; + D0572F521EAB4EB700CC001F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0572F571EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SyakaiseiFilterButtonUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D0572F5B1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyakaiseiFilterButtonUITests.swift; sourceTree = ""; }; + D0572F5D1EAB4EB700CC001F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D0572F701EAB534E00CC001F /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = Class/Controller/ViewController.swift; sourceTree = ""; }; + D0572F721EAB535500CC001F /* WindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WindowController.swift; path = Class/Controller/WindowController.swift; sourceTree = ""; }; + D0572F751EAB54BB00CC001F /* line-girl1-hee1.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = "line-girl1-hee1.mp3"; path = "Sound/line-girl1-hee1.mp3"; sourceTree = ""; }; + D0572F781EAB61E000CC001F /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0572F331EAB4EB600CC001F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0572F491EAB4EB700CC001F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0572F541EAB4EB700CC001F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D0572F2D1EAB4EB600CC001F = { + isa = PBXGroup; + children = ( + D0572F381EAB4EB600CC001F /* SyakaiseiFilterButton */, + D0572F4F1EAB4EB700CC001F /* SyakaiseiFilterButtonTests */, + D0572F5A1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests */, + D0572F371EAB4EB600CC001F /* Products */, + D0572F771EAB61DF00CC001F /* Frameworks */, + ); + sourceTree = ""; + }; + D0572F371EAB4EB600CC001F /* Products */ = { + isa = PBXGroup; + children = ( + D0572F361EAB4EB600CC001F /* SyakaiseiFilterButton.app */, + D0572F4C1EAB4EB700CC001F /* SyakaiseiFilterButtonTests.xctest */, + D0572F571EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + D0572F381EAB4EB600CC001F /* SyakaiseiFilterButton */ = { + isa = PBXGroup; + children = ( + D0572F6E1EAB533500CC001F /* Class */, + D0572F391EAB4EB600CC001F /* AppDelegate.swift */, + D0572F3D1EAB4EB700CC001F /* Document.swift */, + D0572F741EAB54AE00CC001F /* Sound */, + D0572F421EAB4EB700CC001F /* Assets.xcassets */, + D0572F441EAB4EB700CC001F /* Main.storyboard */, + D0572F471EAB4EB700CC001F /* Info.plist */, + D0572F3F1EAB4EB700CC001F /* Document.xcdatamodeld */, + ); + path = SyakaiseiFilterButton; + sourceTree = ""; + }; + D0572F4F1EAB4EB700CC001F /* SyakaiseiFilterButtonTests */ = { + isa = PBXGroup; + children = ( + D0572F501EAB4EB700CC001F /* SyakaiseiFilterButtonTests.swift */, + D0572F521EAB4EB700CC001F /* Info.plist */, + ); + path = SyakaiseiFilterButtonTests; + sourceTree = ""; + }; + D0572F5A1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests */ = { + isa = PBXGroup; + children = ( + D0572F5B1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.swift */, + D0572F5D1EAB4EB700CC001F /* Info.plist */, + ); + path = SyakaiseiFilterButtonUITests; + sourceTree = ""; + }; + D0572F6E1EAB533500CC001F /* Class */ = { + isa = PBXGroup; + children = ( + D0572F6F1EAB534200CC001F /* Controller */, + ); + name = Class; + sourceTree = ""; + }; + D0572F6F1EAB534200CC001F /* Controller */ = { + isa = PBXGroup; + children = ( + D0572F701EAB534E00CC001F /* ViewController.swift */, + D0572F721EAB535500CC001F /* WindowController.swift */, + ); + name = Controller; + sourceTree = ""; + }; + D0572F741EAB54AE00CC001F /* Sound */ = { + isa = PBXGroup; + children = ( + D0572F751EAB54BB00CC001F /* line-girl1-hee1.mp3 */, + ); + name = Sound; + sourceTree = ""; + }; + D0572F771EAB61DF00CC001F /* Frameworks */ = { + isa = PBXGroup; + children = ( + D0572F781EAB61E000CC001F /* AVFoundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + D0572F351EAB4EB600CC001F /* SyakaiseiFilterButton */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0572F601EAB4EB700CC001F /* Build configuration list for PBXNativeTarget "SyakaiseiFilterButton" */; + buildPhases = ( + D0572F321EAB4EB600CC001F /* Sources */, + D0572F331EAB4EB600CC001F /* Frameworks */, + D0572F341EAB4EB600CC001F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SyakaiseiFilterButton; + productName = SyakaiseiFilterButton; + productReference = D0572F361EAB4EB600CC001F /* SyakaiseiFilterButton.app */; + productType = "com.apple.product-type.application"; + }; + D0572F4B1EAB4EB700CC001F /* SyakaiseiFilterButtonTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0572F631EAB4EB700CC001F /* Build configuration list for PBXNativeTarget "SyakaiseiFilterButtonTests" */; + buildPhases = ( + D0572F481EAB4EB700CC001F /* Sources */, + D0572F491EAB4EB700CC001F /* Frameworks */, + D0572F4A1EAB4EB700CC001F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D0572F4E1EAB4EB700CC001F /* PBXTargetDependency */, + ); + name = SyakaiseiFilterButtonTests; + productName = SyakaiseiFilterButtonTests; + productReference = D0572F4C1EAB4EB700CC001F /* SyakaiseiFilterButtonTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D0572F561EAB4EB700CC001F /* SyakaiseiFilterButtonUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0572F661EAB4EB700CC001F /* Build configuration list for PBXNativeTarget "SyakaiseiFilterButtonUITests" */; + buildPhases = ( + D0572F531EAB4EB700CC001F /* Sources */, + D0572F541EAB4EB700CC001F /* Frameworks */, + D0572F551EAB4EB700CC001F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D0572F591EAB4EB700CC001F /* PBXTargetDependency */, + ); + name = SyakaiseiFilterButtonUITests; + productName = SyakaiseiFilterButtonUITests; + productReference = D0572F571EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D0572F2E1EAB4EB600CC001F /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0830; + LastUpgradeCheck = 0830; + ORGANIZATIONNAME = "五十嵐翔"; + TargetAttributes = { + D0572F351EAB4EB600CC001F = { + CreatedOnToolsVersion = 8.3.2; + ProvisioningStyle = Automatic; + }; + D0572F4B1EAB4EB700CC001F = { + CreatedOnToolsVersion = 8.3.2; + ProvisioningStyle = Automatic; + TestTargetID = D0572F351EAB4EB600CC001F; + }; + D0572F561EAB4EB700CC001F = { + CreatedOnToolsVersion = 8.3.2; + ProvisioningStyle = Automatic; + TestTargetID = D0572F351EAB4EB600CC001F; + }; + }; + }; + buildConfigurationList = D0572F311EAB4EB600CC001F /* Build configuration list for PBXProject "SyakaiseiFilterButton" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = D0572F2D1EAB4EB600CC001F; + productRefGroup = D0572F371EAB4EB600CC001F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0572F351EAB4EB600CC001F /* SyakaiseiFilterButton */, + D0572F4B1EAB4EB700CC001F /* SyakaiseiFilterButtonTests */, + D0572F561EAB4EB700CC001F /* SyakaiseiFilterButtonUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0572F341EAB4EB600CC001F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0572F431EAB4EB700CC001F /* Assets.xcassets in Resources */, + D0572F761EAB54BB00CC001F /* line-girl1-hee1.mp3 in Resources */, + D0572F461EAB4EB700CC001F /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0572F4A1EAB4EB700CC001F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0572F551EAB4EB700CC001F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0572F321EAB4EB600CC001F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0572F411EAB4EB700CC001F /* Document.xcdatamodeld in Sources */, + D0572F731EAB535500CC001F /* WindowController.swift in Sources */, + D0572F3A1EAB4EB600CC001F /* AppDelegate.swift in Sources */, + D0572F711EAB534E00CC001F /* ViewController.swift in Sources */, + D0572F3E1EAB4EB700CC001F /* Document.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0572F481EAB4EB700CC001F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0572F511EAB4EB700CC001F /* SyakaiseiFilterButtonTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0572F531EAB4EB700CC001F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0572F5C1EAB4EB700CC001F /* SyakaiseiFilterButtonUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + D0572F4E1EAB4EB700CC001F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0572F351EAB4EB600CC001F /* SyakaiseiFilterButton */; + targetProxy = D0572F4D1EAB4EB700CC001F /* PBXContainerItemProxy */; + }; + D0572F591EAB4EB700CC001F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0572F351EAB4EB600CC001F /* SyakaiseiFilterButton */; + targetProxy = D0572F581EAB4EB700CC001F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + D0572F441EAB4EB700CC001F /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D0572F451EAB4EB700CC001F /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + D0572F5E1EAB4EB700CC001F /* 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++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + MACOSX_DEPLOYMENT_TARGET = 10.12; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + D0572F5F1EAB4EB700CC001F /* 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++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = 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_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + MACOSX_DEPLOYMENT_TARGET = 10.12; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + }; + name = Release; + }; + D0572F611EAB4EB700CC001F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SyakaiseiFilterButton/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = work.syonet.SyakaiseiFilterButton; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + D0572F621EAB4EB700CC001F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SyakaiseiFilterButton/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = work.syonet.SyakaiseiFilterButton; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + D0572F641EAB4EB700CC001F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SyakaiseiFilterButtonTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = work.syonet.SyakaiseiFilterButtonTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SyakaiseiFilterButton.app/Contents/MacOS/SyakaiseiFilterButton"; + }; + name = Debug; + }; + D0572F651EAB4EB700CC001F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SyakaiseiFilterButtonTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = work.syonet.SyakaiseiFilterButtonTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SyakaiseiFilterButton.app/Contents/MacOS/SyakaiseiFilterButton"; + }; + name = Release; + }; + D0572F671EAB4EB700CC001F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SyakaiseiFilterButtonUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = work.syonet.SyakaiseiFilterButtonUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_TARGET_NAME = SyakaiseiFilterButton; + }; + name = Debug; + }; + D0572F681EAB4EB700CC001F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = SyakaiseiFilterButtonUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = work.syonet.SyakaiseiFilterButtonUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TEST_TARGET_NAME = SyakaiseiFilterButton; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D0572F311EAB4EB600CC001F /* Build configuration list for PBXProject "SyakaiseiFilterButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0572F5E1EAB4EB700CC001F /* Debug */, + D0572F5F1EAB4EB700CC001F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0572F601EAB4EB700CC001F /* Build configuration list for PBXNativeTarget "SyakaiseiFilterButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0572F611EAB4EB700CC001F /* Debug */, + D0572F621EAB4EB700CC001F /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + D0572F631EAB4EB700CC001F /* Build configuration list for PBXNativeTarget "SyakaiseiFilterButtonTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0572F641EAB4EB700CC001F /* Debug */, + D0572F651EAB4EB700CC001F /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + D0572F661EAB4EB700CC001F /* Build configuration list for PBXNativeTarget "SyakaiseiFilterButtonUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0572F671EAB4EB700CC001F /* Debug */, + D0572F681EAB4EB700CC001F /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + D0572F3F1EAB4EB700CC001F /* Document.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + D0572F401EAB4EB700CC001F /* Document.xcdatamodel */, + ); + currentVersion = D0572F401EAB4EB700CC001F /* Document.xcdatamodel */; + path = Document.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ + }; + rootObject = D0572F2E1EAB4EB600CC001F /* Project object */; +} diff --git a/SyakaiseiFilterButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SyakaiseiFilterButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..f89da66 --- /dev/null +++ b/SyakaiseiFilterButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SyakaiseiFilterButton/AppDelegate.swift b/SyakaiseiFilterButton/AppDelegate.swift new file mode 100644 index 0000000..fc3c429 --- /dev/null +++ b/SyakaiseiFilterButton/AppDelegate.swift @@ -0,0 +1,23 @@ +// +// AppDelegate.swift +// SyakaiseiFilterButton +// + +import Cocoa + +@NSApplicationMain +class AppDelegate: NSObject, NSApplicationDelegate { + + + + func applicationDidFinishLaunching(_ aNotification: Notification) { + // Insert code here to initialize your application + } + + func applicationWillTerminate(_ aNotification: Notification) { + // Insert code here to tear down your application + } + + +} + diff --git a/SyakaiseiFilterButton/Assets.xcassets/AppIcon.appiconset/Contents.json b/SyakaiseiFilterButton/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2db2b1c --- /dev/null +++ b/SyakaiseiFilterButton/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images" : [ + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/SyakaiseiFilterButton/Base.lproj/Main.storyboard b/SyakaiseiFilterButton/Base.lproj/Main.storyboard new file mode 100644 index 0000000..e722e98 --- /dev/null +++ b/SyakaiseiFilterButton/Base.lproj/Main.storyboard @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SyakaiseiFilterButton/Class/Controller/ViewController.swift b/SyakaiseiFilterButton/Class/Controller/ViewController.swift new file mode 100644 index 0000000..3f43529 --- /dev/null +++ b/SyakaiseiFilterButton/Class/Controller/ViewController.swift @@ -0,0 +1,16 @@ +// +// ViewController.swift +// SyakaiseiFilterTouchBar +// +// ウィンドウの画面上の処理を扱う +// + +import Cocoa + +class ViewController: NSViewController { + // MARK:- Life Cicle Method + override func viewDidLoad() { + super.viewDidLoad() + } +} + diff --git a/SyakaiseiFilterButton/Class/Controller/WindowController.swift b/SyakaiseiFilterButton/Class/Controller/WindowController.swift new file mode 100644 index 0000000..0b07a87 --- /dev/null +++ b/SyakaiseiFilterButton/Class/Controller/WindowController.swift @@ -0,0 +1,38 @@ +// +// WindowController.swift +// SyakaiseiFilterTouchBar +// +// ウィンドウが開いている時の処理を扱う +// + +import Cocoa +import AVFoundation + +class WindowController: NSWindowController, AVAudioPlayerDelegate { + + // MARK:- Var on fields + /// AudioPlayer + var AudioPlayer = AVAudioPlayer () + + // MARK:- Life Cicle Method + override func windowDidLoad() { + super.windowDidLoad() + // 再生する音声ファイル指定 + let soundFilePath = NSURL(fileURLWithPath:Bundle.main.path(forResource: "line-girl1-hee1", ofType: "mp3")!) + + AudioPlayer = try! AVAudioPlayer(contentsOf: soundFilePath as URL) + AudioPlayer.prepareToPlay() + AudioPlayer.delegate = self + } + + // MARK:- TouchBarButtonイベント + /// へぇボタン押下時の処理 + /// + /// - Parameter sender: <#sender description#> + @IBAction func touchHeButton(_ sender: Any) { + AudioPlayer.currentTime = 0 + // 音の再生 + AudioPlayer.play() + } + +} diff --git a/SyakaiseiFilterButton/Document.swift b/SyakaiseiFilterButton/Document.swift new file mode 100644 index 0000000..cc4980d --- /dev/null +++ b/SyakaiseiFilterButton/Document.swift @@ -0,0 +1,26 @@ +// +// Document.swift +// SyakaiseiFilterButton +// + +import Cocoa + +class Document: NSPersistentDocument { + + override init() { + super.init() + // Add your subclass-specific initialization here. + } + + override class func autosavesInPlace() -> Bool { + return true + } + + override func makeWindowControllers() { + // Returns the Storyboard that contains your Document window. + let storyboard = NSStoryboard(name: "Main", bundle: nil) + let windowController = storyboard.instantiateController(withIdentifier: "Document Window Controller") as! NSWindowController + self.addWindowController(windowController) + } + +} diff --git a/SyakaiseiFilterButton/Document.xcdatamodeld/.xccurrentversion b/SyakaiseiFilterButton/Document.xcdatamodeld/.xccurrentversion new file mode 100644 index 0000000..29890b8 --- /dev/null +++ b/SyakaiseiFilterButton/Document.xcdatamodeld/.xccurrentversion @@ -0,0 +1,8 @@ + + + + + _XCCurrentVersionName + Document.xcdatamodel + + diff --git a/SyakaiseiFilterButton/Document.xcdatamodeld/Document.xcdatamodel/contents b/SyakaiseiFilterButton/Document.xcdatamodeld/Document.xcdatamodel/contents new file mode 100644 index 0000000..476e5b6 --- /dev/null +++ b/SyakaiseiFilterButton/Document.xcdatamodeld/Document.xcdatamodel/contents @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SyakaiseiFilterButton/Info.plist b/SyakaiseiFilterButton/Info.plist new file mode 100644 index 0000000..a13ea47 --- /dev/null +++ b/SyakaiseiFilterButton/Info.plist @@ -0,0 +1,101 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + binary + + CFBundleTypeMIMETypes + + application/octet-stream + + CFBundleTypeName + Binary + CFBundleTypeRole + Editor + LSTypeIsPackage + + NSDocumentClass + $(PRODUCT_MODULE_NAME).Document + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + sqlite + + CFBundleTypeMIMETypes + + application/octet-stream + + CFBundleTypeName + SQLite + CFBundleTypeRole + Editor + LSTypeIsPackage + + NSDocumentClass + $(PRODUCT_MODULE_NAME).Document + NSPersistentStoreTypeKey + SQLite + + + CFBundleTypeExtensions + + xml + + CFBundleTypeIconFile + + CFBundleTypeMIMETypes + + text/xml + + CFBundleTypeName + XML + CFBundleTypeOSTypes + + ???? + + CFBundleTypeRole + Editor + LSTypeIsPackage + + NSDocumentClass + $(PRODUCT_MODULE_NAME).Document + NSPersistentStoreTypeKey + XML + + + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017年 五十嵐翔. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/SyakaiseiFilterButton/Sound/line-girl1-hee1.mp3 b/SyakaiseiFilterButton/Sound/line-girl1-hee1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..84bb731c056d5a30c2a67662189508ce6d9617f3 GIT binary patch literal 43200 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 + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/SyakaiseiFilterButtonTests/SyakaiseiFilterButtonTests.swift b/SyakaiseiFilterButtonTests/SyakaiseiFilterButtonTests.swift new file mode 100644 index 0000000..b9f0c9a --- /dev/null +++ b/SyakaiseiFilterButtonTests/SyakaiseiFilterButtonTests.swift @@ -0,0 +1,33 @@ +// +// SyakaiseiFilterButtonTests.swift +// SyakaiseiFilterButtonTests +// + +import XCTest +@testable import SyakaiseiFilterButton + +class SyakaiseiFilterButtonTests: XCTestCase { + + override func setUp() { + super.setUp() + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/SyakaiseiFilterButtonUITests/Info.plist b/SyakaiseiFilterButtonUITests/Info.plist new file mode 100644 index 0000000..6c6c23c --- /dev/null +++ b/SyakaiseiFilterButtonUITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/SyakaiseiFilterButtonUITests/SyakaiseiFilterButtonUITests.swift b/SyakaiseiFilterButtonUITests/SyakaiseiFilterButtonUITests.swift new file mode 100644 index 0000000..37b40b2 --- /dev/null +++ b/SyakaiseiFilterButtonUITests/SyakaiseiFilterButtonUITests.swift @@ -0,0 +1,33 @@ +// +// SyakaiseiFilterButtonUITests.swift +// SyakaiseiFilterButtonUITests +// + +import XCTest + +class SyakaiseiFilterButtonUITests: XCTestCase { + + override func setUp() { + super.setUp() + + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. + XCUIApplication().launch() + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testExample() { + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + +}