From 4e8bf8ff2c07eb65899e25ea960f2348448ec2a1 Mon Sep 17 00:00:00 2001 From: nhiroyasu Date: Wed, 31 Jan 2024 22:38:52 +0900 Subject: [PATCH] init --- .gitignore | 129 ++++++ LICENSE | 21 + README.md | 15 + ScrollableSimulator.xcodeproj/project.pbxproj | 404 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcschemes/ScrollableSimulator.xcscheme | 77 ++++ ScrollableSimulator/Accessibility.swift | 34 ++ ScrollableSimulator/AppDelegate.swift | 18 + ScrollableSimulator/AppInformation.swift | 15 + ScrollableSimulator/AppService.swift | 85 ++++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/App Icon@16x16.png | Bin 0 -> 11832 bytes .../AppIcon.appiconset/App Icon_128x128.png | Bin 0 -> 16158 bytes .../App Icon_128x128@2x.png | Bin 0 -> 22945 bytes .../AppIcon.appiconset/App Icon_16x16@2x.png | Bin 0 -> 12249 bytes .../AppIcon.appiconset/App Icon_256x256.png | Bin 0 -> 22945 bytes .../App Icon_256x256@2x.png | Bin 0 -> 42127 bytes .../AppIcon.appiconset/App Icon_32x32.png | Bin 0 -> 12249 bytes .../AppIcon.appiconset/App Icon_32x32@2x.png | Bin 0 -> 13468 bytes .../AppIcon.appiconset/App Icon_512x512.png | Bin 0 -> 42127 bytes .../App Icon_512x512@2x.png | Bin 0 -> 105946 bytes .../AppIcon.appiconset/Contents.json | 68 +++ .../Assets.xcassets/Contents.json | 6 + ScrollableSimulator/Info.plist | 5 + ScrollableSimulator/Main.storyboard | 89 ++++ .../ScrollableSimulator.entitlements | 10 + .../MouseScrollBehavior.swift | 48 +++ .../MouseScrollCompletionCaller.swift | 45 ++ .../ScrollableSimulatorBehavior.swift | 59 +++ .../ScrollableSimulatorLauncher.swift | 55 +++ .../TrackpadScrollBehavior.swift | 70 +++ ScrollableSimulator/SimulatorApp.swift | 11 + ScrollableSimulator/Util/CGEvent+.swift | 93 ++++ ScrollableSimulator/Util/Logger.swift | 36 ++ 35 files changed, 1419 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 ScrollableSimulator.xcodeproj/project.pbxproj create mode 100644 ScrollableSimulator.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ScrollableSimulator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ScrollableSimulator.xcodeproj/xcshareddata/xcschemes/ScrollableSimulator.xcscheme create mode 100644 ScrollableSimulator/Accessibility.swift create mode 100644 ScrollableSimulator/AppDelegate.swift create mode 100644 ScrollableSimulator/AppInformation.swift create mode 100644 ScrollableSimulator/AppService.swift create mode 100644 ScrollableSimulator/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon@16x16.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_128x128.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_128x128@2x.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_16x16@2x.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_256x256.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_256x256@2x.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_32x32.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_32x32@2x.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_512x512.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_512x512@2x.png create mode 100644 ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ScrollableSimulator/Assets.xcassets/Contents.json create mode 100644 ScrollableSimulator/Info.plist create mode 100644 ScrollableSimulator/Main.storyboard create mode 100644 ScrollableSimulator/ScrollableSimulator.entitlements create mode 100644 ScrollableSimulator/ScrollableSimulator/MouseScrollBehavior.swift create mode 100644 ScrollableSimulator/ScrollableSimulator/MouseScrollCompletionCaller.swift create mode 100644 ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorBehavior.swift create mode 100644 ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorLauncher.swift create mode 100644 ScrollableSimulator/ScrollableSimulator/TrackpadScrollBehavior.swift create mode 100644 ScrollableSimulator/SimulatorApp.swift create mode 100644 ScrollableSimulator/Util/CGEvent+.swift create mode 100644 ScrollableSimulator/Util/Logger.swift diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..843f5d9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,129 @@ + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + + +## User settings +xcuserdata/ + +## Xcode 8 and earlier +*.xcscmblueprint +*.xccheckout + + + +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +# *.xcodeproj +# +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +# .swiftpm + +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +# Pods/ +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build/ + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bca3343 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Hiroyasu Niitsuma + +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/README.md b/README.md new file mode 100644 index 0000000..2bf1738 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# ScrollableSimulator +An app that enables scrolling functionality in Simulator.app. + +# Feature +- You can scroll using a trackpad or mouse on Simulator.app with this application. +- No more dragging with the trackpad on Simulator.app! + +# Download +## GitHub Assets +TODO + +## AppStore +Coming soon... + +# Demo diff --git a/ScrollableSimulator.xcodeproj/project.pbxproj b/ScrollableSimulator.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0ac0b90 --- /dev/null +++ b/ScrollableSimulator.xcodeproj/project.pbxproj @@ -0,0 +1,404 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 4F7744F62B65ED4E00741931 /* ScrollableSimulatorBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7744F52B65ED4E00741931 /* ScrollableSimulatorBehavior.swift */; }; + 4F7744FA2B662D8000741931 /* MouseScrollCompletionCaller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7744F92B662D8000741931 /* MouseScrollCompletionCaller.swift */; }; + 4F7744FC2B6631AF00741931 /* TrackpadScrollBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7744FB2B6631AF00741931 /* TrackpadScrollBehavior.swift */; }; + 4F7744FE2B6631DF00741931 /* CGEvent+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7744FD2B6631DF00741931 /* CGEvent+.swift */; }; + 4F7745002B66336300741931 /* MouseScrollBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7744FF2B66336300741931 /* MouseScrollBehavior.swift */; }; + 4F8097DB2B65288E00192C7F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F8097DA2B65288E00192C7F /* AppDelegate.swift */; }; + 4F8097DF2B65289000192C7F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4F8097DE2B65289000192C7F /* Assets.xcassets */; }; + 4F8097EA2B6528A000192C7F /* ScrollableSimulatorLauncher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F8097E92B6528A000192C7F /* ScrollableSimulatorLauncher.swift */; }; + 4FEF63322B66452E00BA2032 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4FEF63312B66452E00BA2032 /* Main.storyboard */; }; + 4FEF63342B6646EB00BA2032 /* SimulatorApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FEF63332B6646EB00BA2032 /* SimulatorApp.swift */; }; + 4FEF63362B6647B300BA2032 /* Accessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FEF63352B6647B300BA2032 /* Accessibility.swift */; }; + 4FEF63382B6649C900BA2032 /* AppInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FEF63372B6649C900BA2032 /* AppInformation.swift */; }; + 4FEF63402B67F72F00BA2032 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FEF633F2B67F72F00BA2032 /* Logger.swift */; }; + 4FEF63422B67F98C00BA2032 /* AppService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FEF63412B67F98C00BA2032 /* AppService.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4F7744F52B65ED4E00741931 /* ScrollableSimulatorBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollableSimulatorBehavior.swift; sourceTree = ""; }; + 4F7744F92B662D8000741931 /* MouseScrollCompletionCaller.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MouseScrollCompletionCaller.swift; sourceTree = ""; }; + 4F7744FB2B6631AF00741931 /* TrackpadScrollBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackpadScrollBehavior.swift; sourceTree = ""; }; + 4F7744FD2B6631DF00741931 /* CGEvent+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGEvent+.swift"; sourceTree = ""; }; + 4F7744FF2B66336300741931 /* MouseScrollBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MouseScrollBehavior.swift; sourceTree = ""; }; + 4F8097D72B65288E00192C7F /* Scrollable Simulator for debug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Scrollable Simulator for debug.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F8097DA2B65288E00192C7F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 4F8097DE2B65289000192C7F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 4F8097E32B65289000192C7F /* ScrollableSimulator.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ScrollableSimulator.entitlements; sourceTree = ""; }; + 4F8097E92B6528A000192C7F /* ScrollableSimulatorLauncher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollableSimulatorLauncher.swift; sourceTree = ""; }; + 4FEF63312B66452E00BA2032 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; + 4FEF63332B6646EB00BA2032 /* SimulatorApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimulatorApp.swift; sourceTree = ""; }; + 4FEF63352B6647B300BA2032 /* Accessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Accessibility.swift; sourceTree = ""; }; + 4FEF63372B6649C900BA2032 /* AppInformation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInformation.swift; sourceTree = ""; }; + 4FEF633B2B664FD400BA2032 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 4FEF633F2B67F72F00BA2032 /* Logger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = ""; }; + 4FEF63412B67F98C00BA2032 /* AppService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppService.swift; sourceTree = ""; }; + 4FEF63432B67FB7C00BA2032 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4F8097D42B65288E00192C7F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4F8097CE2B65288E00192C7F = { + isa = PBXGroup; + children = ( + 4FEF63432B67FB7C00BA2032 /* README.md */, + 4F8097D92B65288E00192C7F /* ScrollableSimulator */, + 4F8097D82B65288E00192C7F /* Products */, + ); + sourceTree = ""; + }; + 4F8097D82B65288E00192C7F /* Products */ = { + isa = PBXGroup; + children = ( + 4F8097D72B65288E00192C7F /* Scrollable Simulator for debug.app */, + ); + name = Products; + sourceTree = ""; + }; + 4F8097D92B65288E00192C7F /* ScrollableSimulator */ = { + isa = PBXGroup; + children = ( + 4F8097DA2B65288E00192C7F /* AppDelegate.swift */, + 4FEF63372B6649C900BA2032 /* AppInformation.swift */, + 4FEF63412B67F98C00BA2032 /* AppService.swift */, + 4FEF63332B6646EB00BA2032 /* SimulatorApp.swift */, + 4FEF63352B6647B300BA2032 /* Accessibility.swift */, + 4FEF632C2B66418100BA2032 /* Util */, + 4FEF632B2B66415F00BA2032 /* ScrollableSimulator */, + 4F8097DE2B65289000192C7F /* Assets.xcassets */, + 4F8097E32B65289000192C7F /* ScrollableSimulator.entitlements */, + 4FEF63312B66452E00BA2032 /* Main.storyboard */, + 4FEF633B2B664FD400BA2032 /* Info.plist */, + ); + path = ScrollableSimulator; + sourceTree = ""; + }; + 4FEF632B2B66415F00BA2032 /* ScrollableSimulator */ = { + isa = PBXGroup; + children = ( + 4F8097E92B6528A000192C7F /* ScrollableSimulatorLauncher.swift */, + 4F7744F52B65ED4E00741931 /* ScrollableSimulatorBehavior.swift */, + 4F7744FB2B6631AF00741931 /* TrackpadScrollBehavior.swift */, + 4F7744FF2B66336300741931 /* MouseScrollBehavior.swift */, + 4F7744F92B662D8000741931 /* MouseScrollCompletionCaller.swift */, + ); + path = ScrollableSimulator; + sourceTree = ""; + }; + 4FEF632C2B66418100BA2032 /* Util */ = { + isa = PBXGroup; + children = ( + 4F7744FD2B6631DF00741931 /* CGEvent+.swift */, + 4FEF633F2B67F72F00BA2032 /* Logger.swift */, + ); + path = Util; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4F8097D62B65288E00192C7F /* ScrollableSimulator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4F8097E62B65289000192C7F /* Build configuration list for PBXNativeTarget "ScrollableSimulator" */; + buildPhases = ( + 4F8097D32B65288E00192C7F /* Sources */, + 4F8097D42B65288E00192C7F /* Frameworks */, + 4F8097D52B65288E00192C7F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ScrollableSimulator; + productName = ScrollableSimulator; + productReference = 4F8097D72B65288E00192C7F /* Scrollable Simulator for debug.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4F8097CF2B65288E00192C7F /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1520; + LastUpgradeCheck = 1520; + TargetAttributes = { + 4F8097D62B65288E00192C7F = { + CreatedOnToolsVersion = 15.2; + }; + }; + }; + buildConfigurationList = 4F8097D22B65288E00192C7F /* Build configuration list for PBXProject "ScrollableSimulator" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 4F8097CE2B65288E00192C7F; + productRefGroup = 4F8097D82B65288E00192C7F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4F8097D62B65288E00192C7F /* ScrollableSimulator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4F8097D52B65288E00192C7F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F8097DF2B65289000192C7F /* Assets.xcassets in Resources */, + 4FEF63322B66452E00BA2032 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4F8097D32B65288E00192C7F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4FEF63342B6646EB00BA2032 /* SimulatorApp.swift in Sources */, + 4FEF63422B67F98C00BA2032 /* AppService.swift in Sources */, + 4F7744FE2B6631DF00741931 /* CGEvent+.swift in Sources */, + 4F7744FC2B6631AF00741931 /* TrackpadScrollBehavior.swift in Sources */, + 4F7744FA2B662D8000741931 /* MouseScrollCompletionCaller.swift in Sources */, + 4F7745002B66336300741931 /* MouseScrollBehavior.swift in Sources */, + 4F7744F62B65ED4E00741931 /* ScrollableSimulatorBehavior.swift in Sources */, + 4FEF63402B67F72F00BA2032 /* Logger.swift in Sources */, + 4F8097DB2B65288E00192C7F /* AppDelegate.swift in Sources */, + 4FEF63362B6647B300BA2032 /* Accessibility.swift in Sources */, + 4FEF63382B6649C900BA2032 /* AppInformation.swift in Sources */, + 4F8097EA2B6528A000192C7F /* ScrollableSimulatorLauncher.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 4F8097E42B65289000192C7F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + 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; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 13.6; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 4F8097E52B65289000192C7F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + 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; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 13.6; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + }; + name = Release; + }; + 4F8097E72B65289000192C7F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = ScrollableSimulator/ScrollableSimulator.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 2CMV7D36JC; + ENABLE_HARDENED_RUNTIME = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ScrollableSimulator/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSMainStoryboardFile = Main; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 0.1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.nhiro1109.debug.ScrollableSimulator; + PRODUCT_NAME = "Scrollable Simulator for debug"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 4F8097E82B65289000192C7F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = ScrollableSimulator/ScrollableSimulator.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 2CMV7D36JC; + ENABLE_HARDENED_RUNTIME = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ScrollableSimulator/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSMainStoryboardFile = Main; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 0.1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.nhiro1109.ScrollableSimulator; + PRODUCT_NAME = "Scrollable Simulator"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4F8097D22B65288E00192C7F /* Build configuration list for PBXProject "ScrollableSimulator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F8097E42B65289000192C7F /* Debug */, + 4F8097E52B65289000192C7F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4F8097E62B65289000192C7F /* Build configuration list for PBXNativeTarget "ScrollableSimulator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4F8097E72B65289000192C7F /* Debug */, + 4F8097E82B65289000192C7F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4F8097CF2B65288E00192C7F /* Project object */; +} diff --git a/ScrollableSimulator.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ScrollableSimulator.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ScrollableSimulator.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ScrollableSimulator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ScrollableSimulator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ScrollableSimulator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ScrollableSimulator.xcodeproj/xcshareddata/xcschemes/ScrollableSimulator.xcscheme b/ScrollableSimulator.xcodeproj/xcshareddata/xcschemes/ScrollableSimulator.xcscheme new file mode 100644 index 0000000..ee2b0fc --- /dev/null +++ b/ScrollableSimulator.xcodeproj/xcshareddata/xcschemes/ScrollableSimulator.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ScrollableSimulator/Accessibility.swift b/ScrollableSimulator/Accessibility.swift new file mode 100644 index 0000000..9efd425 --- /dev/null +++ b/ScrollableSimulator/Accessibility.swift @@ -0,0 +1,34 @@ +import Cocoa + +func showAccessibilityPermissionsAlert() { + let alert = NSAlert() + alert.alertStyle = .warning + alert.messageText = "Requesting access to accessibility features" + alert.informativeText = """ + You can manage this permission in System Preferences > Security & Privacy > Privacy. + + After setting, please restart the application. + """ + alert.addButton(withTitle: "Open Settings and Quit") + let response = alert.runModal() + + switch response { + case .alertFirstButtonReturn: + openAccessibilityForSystemPreference() + NSWorkspace.shared.selectFile( + APP_URL.path, + inFileViewerRootedAtPath: APP_URL.deletingLastPathComponent().path + ) + DispatchQueue.main.asyncAfter(deadline: .now() + 1) { + NSApplication.shared.terminate(nil) + } + default: + break + } +} + +func openAccessibilityForSystemPreference() { + if let url = URL(string: "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility") { + NSWorkspace.shared.open(url) + } +} diff --git a/ScrollableSimulator/AppDelegate.swift b/ScrollableSimulator/AppDelegate.swift new file mode 100644 index 0000000..271bb1f --- /dev/null +++ b/ScrollableSimulator/AppDelegate.swift @@ -0,0 +1,18 @@ +import Cocoa + +@main +class AppDelegate: NSObject, NSApplicationDelegate { + private let appService: AppService = .init() + + func applicationDidFinishLaunching(_ aNotification: Notification) { + appService.initialize() + } + + func applicationWillTerminate(_ aNotification: Notification) { + appService.terminate() + } + + func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/ScrollableSimulator/AppInformation.swift b/ScrollableSimulator/AppInformation.swift new file mode 100644 index 0000000..062671e --- /dev/null +++ b/ScrollableSimulator/AppInformation.swift @@ -0,0 +1,15 @@ +import Foundation + +var APP_NAME: String { + if let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String { + return appName + } else if let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String { + return appName + } else { + return "" + } +} + +var APP_URL: URL! { + return Bundle.main.bundleURL +} diff --git a/ScrollableSimulator/AppService.swift b/ScrollableSimulator/AppService.swift new file mode 100644 index 0000000..a72a4c9 --- /dev/null +++ b/ScrollableSimulator/AppService.swift @@ -0,0 +1,85 @@ +import Cocoa + +class AppService { + private var scrollableSimulator: ScrollableSimulatorLauncher? + private var didTerminateAppObserver: NSObjectProtocol? + private var didLaunchAppAppObserver: NSObjectProtocol? + + func initialize() { + if AXIsProcessTrusted() { + observeDidLaunchApplication() + observeDidTerminateApplication() + if let pid = SimulatorApp.getSimulatorPID() { + launchScrollableSimulator(pid: pid) + } + } else { + showAccessibilityPermissionsAlert() + } + } + + func terminate() { + scrollableSimulator?.deactivate() + } + + private func launchScrollableSimulator(pid: pid_t) { + scrollableSimulator = .init(simulatorPID: pid) + do { + try scrollableSimulator?.activate() + } catch { + showAlertForFailedLaunching(retryHandler: { + launchScrollableSimulator(pid: pid) + }) + } + } + + private func observeDidLaunchApplication() { + didLaunchAppAppObserver = NSWorkspace.shared.notificationCenter.addObserver(forName: NSWorkspace.didLaunchApplicationNotification, object: nil, queue: .main, using: { [weak self] notification in + guard let self else { return } + if isSimulator(for: notification), let pid = getSimulatorPID(for: notification) { + launchScrollableSimulator(pid: pid) + } + }) + } + + private func observeDidTerminateApplication() { + didTerminateAppObserver = NSWorkspace.shared.notificationCenter.addObserver(forName: NSWorkspace.didTerminateApplicationNotification, object: nil, queue: .main, using: { [weak self] notification in + guard let self else { return } + if isSimulator(for: notification) { + scrollableSimulator?.deactivate() + } + }) + } + + private func isSimulator(for notification: Notification) -> Bool { + guard let app = notification.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication else { + return false + } + return app.bundleIdentifier == SIMULATOR_BUNDLE_ID + } + + private func getSimulatorPID(for notification: Notification) -> pid_t? { + guard let app = notification.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication else { + return nil + } + return app.processIdentifier + } + + private func showAlertForFailedLaunching(retryHandler: () -> Void) { + let alert = NSAlert() + alert.alertStyle = .warning + alert.messageText = "System failed to boot" + alert.addButton(withTitle: "Retry") + alert.addButton(withTitle: "Quit") + let response = alert.runModal() + + switch response { + case .alertFirstButtonReturn: + retryHandler() + case .alertSecondButtonReturn: + NSApplication.shared.terminate(nil) + default: + break + } + } +} + diff --git a/ScrollableSimulator/Assets.xcassets/AccentColor.colorset/Contents.json b/ScrollableSimulator/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/ScrollableSimulator/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon@16x16.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon@16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..38447631bb6d5d23ee7852178a54db94e1aa5586 GIT binary patch literal 11832 zcmeHt2T+q+w{{Xj?;WWD=`C+U2SIvK6a}OyLP&vN3M8S5bSVOY3W_L*f;3S;z;YBR z!a?*<1O>4H3Mwi}5l}(6Zzvx1JO6y&o%!e9nL9EQ^6tIYZfmc#p7rcEsXMmY@p4IW zK_C!b2YYL0@LPcS;a~&*%grofAP`MIEXLA<`5hQS_5-VB!EYQE9fW}hLIh$VkP3+5 zsbH3s3Q%g(nv~tD6!~YV5E{ieB!q}FM&bQ*u^2Q~3otwn($iR?X zs39~g-Zdf!A8s4KU<4T>k=RgeVh{tXO{MuGDflotmWspEk!$kw6?q0Ik7Up=L<$~f zLGq{4h>QR-5xWhX7t}lC!rD$$|KB?az|aGy~Mf49C}Ax zZ8&Tf)jEe4Tph|JGmqVWH-C~?YBZ_tfDOXn?3r_}{=wMSma4e2R5X_KuS&;~Fhnva z4t>I0W?29ZYs?@rNO-Cpo`R=gKt&@Q$QXY-5o{n(X=Dt8NMx3gK@|T$A_d$C1&epE z4%ZAP2N@GV3o_C(GSb25>uKRISVJvcK-Wmi2#vyP8R_}?q45M=BZ41}x-zQ|cyP=q zsI+kXmE-eqAb~0ZH4j!H(T3V61crI4KFm``0@?=J`UvKu7L5*;(0bZv#xLXe5Ge#| zT;qx|gI6u$havq#@igWE;Fv=%6X`^M3WgCv!-sF6<4J^#E6O)rv9Rw=fqxru{5fn0 zjTEl(tL)zr$d$fpHoJCW?+sL9God){~bFaoipI*4EAJ)9re5dj=rFj`O3ssJ+ujyI7U^gXusZs^)8Euxhbr z>_0f`_Z@?#pen#Lh2BK#vrt3DA_CatN@tuUGUyCf>OMSZzh|+b7?LNS9uUum0$5;B z2>77N#;KlUpES=4Wrr2U^KAgDL}5@C6hFYr#_5}655=>PV5IHd1oK@!G0QRsy<=)% z0^29^DsQm)Fb;o_F77|-H!s1D2GF_yN(Vsc>FJ~Oy&B?*o{64kgUki2trE%&t{RKt1~}PRcEQ<%VY^&V;(#c# zz$MIQ4MrL(FwSWr94J_AlnG$OY+w;auQwoEX`oGmZe*v6aCWiK1&s6&F7_6nQzKl7 zWV{OlLk=QR{1H|bfUGz#S_d!!41twDFL7QST@)IO#5#JQS9t**|KTD4Kznr&D&H5e z>I@bZu8u3Sf^JI=LOA2;L7+R}X@Dmn%*GDxx62d;W#d?RV1cr;SVG|2G%xM^!m?cd zdWQ9cTcy67z?8`;<7Uz53H9u}w%(4StFT%5k-0C9kWjm{%+G9*0^ky&tu z3dk@8_~2r2k!rmPx7+gNX9Ra+U&2n%TU?<>IxUFz&lEXSu&`3Jk zOklu*$E%H{l9B7$Tsu)a-L>;vJ>jhLoqZO@%pI3&wwVn!E#nWN;bK@+dOWWGu=!q?x)V1cpV1V{mwP+@V(qXD z_e&{r7MD%vdQ@LPFtvg4B6v&Ly{gw}7fbK=30x;!HZIMhdNx08^gj~32p6jyYuR0p z?_T>kXotgzzuGI*#*(a#*5?zRP#a{uZiQ>fs}OPG&L29(9h4fsJg9%Oso4MA5vu~e z6D6?=;gsr;L+0&6nSGWN=U5U({n_OazYbECxvzNv+IWsb%Koa@S0UP!H>LZ;s@@cTImiGrbHB^2_ky9YB8qCk&jR&xsrgoTCuWV0xFfa$YfjFkA^ zV?9PXQ>hFvP_9HmG@t`U!|##M04$={BjNu@IF5%Y{J3`zyg+y12f+@;1!MZnpGkUb z4z4tL+Lc&Zr;iwvpV)b}zc=B2f#W%HVf9}LU%ci7&svLG`V^ZRG+7BABiH8&wQI``sSAR@HjfS5qJIT8<5$k*(G@_?|d4n3Ze`+5g1aBK2uhpnK$`LBtvF%6o4T zadpnqp?33_gbmMp>Rh?y11JXaH_R)2EoVV|vtVRi!yQ>{n(Vk5%$=n_)x=T4IS2?Co z(hgzu(h3{9KZK&9l$C32C|El;SMbVY_xrf#3L=B?>g`7x3!lFD>KfW|R(hXdo7&9XisN+4fHPNYYx9kZ9tjh-s?F@%yERm3=dq4-9+TaN6v~>FIlhPp2(cXS*?0r@5<6Tn zVm8;pxV%}GGxYrhZ`+U;zC|9KP*n(DqU(pQaql~O0ig!lg8IJD>%DyYPV)5X)OFUt zSfCInh;QB?zIg&dOdMIkGY)_a1Ttn?^f&bUBQpI6UGE28#`gw$;~a;y{WrhCx^iVrp5ZxGn6?4aO@J)a* zU|6VMsGEddALrj8=l4NK{{g`NoQbU<)&bAMO~NAi{<)e_nQ+l0FT zm##*Mh4vlZFSe>J1Rdh7P$Mo9o4aM$$IX22JmMbPvwMJ?{527wq>J+Jydrd*+PcHh zPlkshzD%s4+^t)bo&i-*>dGN*whLRJF+>KIFE}02jJ$BL)5>SU_ezD+5ki4x!SJEV zv2W=&amvZ0qYe2{JwaSiAIolrIQ`)@UoLRjdwf~dHFfggq2N&b$PE*>nuGW)!~8U05i|r&YDKH#Y|c5B@0}%h`J6 zOlNYk;ti)FhwEX4BU7}~<6B|Qr3TT*Tq;duI2`!1JB=crEh}M9s%V;S-d8$BxNXtt zbjAFXyu5kORbj=>r!wKjqXieobc2r$DDN9Jq+ck3IyG!I3BTxgaiKM5{{)whj#08j zc%5*p}zsacfwSRdtmFu&h@hE!QHa|pDRz*|!2~~8z?1nV`YsVhEnifClc{ga% zpfMLRgb;I5S@882J4^WE*{&vIwWR9YLXC+Wi>t;DMRQSgew_SV4RM3QOO3_%XWR#G z!oS8pM-RbMCn25QEnj*z#z447Lt)B;llV}}618MbJB?Q{lEnx47juu#?Q+$Si~ZU( z&8IQezfg{}7Txk%m`~=3fuZDCjk$^bs6|vf^cv`Nbs%j3!v05c^M7UtKk%Buxch+Q zch11cg5v#&<^a-vx3Qx5!9@Q@Y658dAPnO{NduAqn9#yS1|_fSEQwznkC!bGo-H;G z-fk9s06_jd6da`hM@$WJaEEAgAAJya>|T@4Xi-PnUF)}RPwn~`Q{+UQ4%q}4{5U!i zr3xqmiU8O#{_#|H&VKzwm`&zG6$o+3uU*9LYXNuCh0iK)To5XQ%uIZR3xF9r+zzmT zA$Iwmd8pZ>d%gH!bfw|#Zi>>z&~Lk!2+Np^i59MHyYyl5kP;OvwhpTtG-W^AE%6|i zIuYj<;sFayyQ#+|+CCom(LY=d8vx#|#Cx&{fSCsm5YO^yE%S((X2{+D^SM=hcI07v zP(i_u=*uKwAwOpx8v%J{9>FCnxyo)_B0!!+rZdwIDlLe*a(RK00i>8h+`=NOLMxdD z!UazY1@n43N?|1cfw{EDlP=e_%493(^*MIz|%sZz9%DSJ+KI@CnGT^L4cn* z2@4Mg7DLnu0>?lJ1A;4yyT$;$m!lb^j7o*qk0#LHz7aN`Qm?LHTMDSfQ6&aQvjLTSCKupt*Xba(ea zgaYqzDckpQF}vR_i#SBwQP|GPUP@*anQa>Z>`j7G_g~;bDL)GR@K~f9zKOvYGwj8D+tu-phi-DA)dd|Qd#iS zK!{}${M8EpBoxZCj+HEMAnq_z00ECn0#*p!cPSVPKnH@?C1EfC&x7@(h9JNjN(2SW zYJ>1JGLgZ&2w+eVA#^-~5kRCP96>9jfCc6i0+B$(f){QG@TL$S#6V!^KlJg70Oj!r z(waENpN7YS7lsUNz?-=qIk+3(3OE<;DBS*?F9z)+YJntFn;t>NgfIeD7%Ud!V}Q}a z>RTPe5Q>1s%T`mj-{^Hy#xGs-8=*i*7&@wo6=cBGUf#WhcN*pyAlNAcxU@aEKv8zmANvb<_3CSv?1 z*K3<19m^%rcx3#bnKO5B$CaVb9?LfuCM0>T-M@W}&qAbd@0mcqT~x8xoyO_Y}Y9r7&&l|G{EWo? zTTh<2FXf87B_5|*BV-eju5<01pW=k~XvV``=F+`-BfHyktvgFrRHS9&qbOt<=PQQoHj_up}kHnGpMACp(vEO!r>j?A+$@p3nZ? zC8hrGl+kw#GmUUqsFzFa$BT-}`*~w%`GdJ99om5O7{QcG(tr{EsXrH00R z`64ruvlyP6k$bp%^n>&+GhVt^SXYfunP@oP@%S|RhL5c>EpdNNv3L)Zn|`j$v!d5p-bO^y zRh0D%3^u*zeT{KQj}do%rZ9GVU!9L7bRZ^0&f6`hR7?>6*9)_a$z@ybQ7yxQRb9z% z+S>M>ZjKSS!}9py%k~6UvW~^TXVcHEkp_H@Nd>qi-p6(KQ7jVVKOnc97ztZM5|tM8 zE8d*5v6%2-V2oPoYh6;~%t(*BgQc`%Zio_tV3Hbs=Xi4ZhorYnhjiy{+vc#l@syNL zVBY8LpHeB34<^hFDnumaqWRA3lakvt>%@OU%b<9&Fm^0!IB`VKOhIk&RMdQAS)*I) ztIN1RcF_czioZT1nuRbKt%;6I4Me9SIuJEPa2hSb0$63~PDm^kyyecWM$M?v~md0Q`!Pj~* z2l&r25^B$7sE9=`VE>c}BbqGBSqL|(Oa^;Bz zGC+Uy3OM`(o=`SGWEDJlnK!g6x91>uvIFj`h`9sU4mf_V2jOxvV7d+_FsK-cIU^l> zL&v-?`g=+;k&Z=z0E1*^RX+4kEciMoh^`&LAd^6*3qqeD98B?wL8nEn-9)hn^SF3! zvjSf|8R={3==?y!{}G0MB;h5}BV<=a$FfX&S|g=A{o&|))Pr9l&I(Qica5>9mps*a zdS}=KzZY^eF6UhiLb2)$(a^giYUFKYWZMh@Gg@AbRN=yz9mB^rFQRQhJB31HTMH>f^vtXF43tf0*x#+DFv&6h0c z+TkxNWtS{=!d10uP&B|UUC;8#T^TNV)XXWn{FW296tpyKU7a(V6du{Adsy%7csuL- zEy`{9=0^jPHKKjlon;Af7}nBXD~#%Uauq6Cb_d=tgv=y z*WzvCT>X1b=0BKw-&@q)+fY~k%EaYjP3C-4eCLiW;jUL)grn3?MJy(EwB+QT(@?hD zdik@kLwwH7XjYMQxv-p~vf+jgdf%q6in17*Z?r#pr1HJTOC++q4w-sSsUmox%eH3M zBDRn{*XlFHH}M3=`8S39U+k(CJ*r<_uXYc#whxl`d*!fiTl4fFBmY^Jib;ng;W^v+ zx5Yl&ZPnUzf?F%A)UHb^8l&uf!`YVt%2Vf_^pB88u+b&-x~O>f&UX4nDc}}-U_zkm2_t=p18W5*CG4S z<}Fcyr{EL3M)97x+;8KnzD-B!FON1(9uuIP82)SH3+*}f8kw|0gXhZkITNa8HnDL` zk8=e>`^3 zz2Ak)=8=hNy!mpj@A9`k*E_eC-IFD^1|RH~3HIYX?2sYta8|llqXA3hIeiy3nFZIm z1G-CwH2LR=;9+tG*?Tg7$g9cx zK#Pp8*@3?qjdHNIa5c<0e+-o-xl`m|<4K;PlA09ZYGIXwj{`~(UY;bmE7kSW{*Tfc zV$3b72b6>B?rT5h6t1r8Y0{;JaSuJ!3Kc!56i6FsxxxNCtlMOgM{p$OuCXkkb`TIt z+eNuvT)*V0p7R!x!cp*=x4xg|w7!a3lItc7eB(JYil7b zz-V5=MCjHF4_g49yv|n+S0Q!%?$C+QQ(vO^ngZ)vLY{@!dwq*KmM})^z@d#gx2Wl# z%HWN<&e=20&_<(q608-@#%+FOG+gvye&O@27-)L?OI+=sxM0NB3oPeF8un%aJWhGU zyy8A$VEtpAJ)AX9CWPS42VWWT%|_N$~c;ILHajb~S9BflXO&UDG& z`e>5SJiHLyxSZGhI!0GA!&CX#29v`x3$V$mS+2|N+(({rO_wq~&B127^(9N+`2PYy C>LEk` literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_128x128.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..80d2c25cee85c0542c777aa35724d4c85ce38063 GIT binary patch literal 16158 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 G@xK7eF^Ina literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_128x128@2x.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a1adefd2369973f10ed16adfb095cfdbb09c01 GIT binary patch literal 22945 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 WqC7V|8-~8penmw?`Gul+*#82I`I~S6 literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_16x16@2x.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_16x16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc3ebd447694b5d24ddbd08e2382ed8862ed87e GIT binary patch literal 12249 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 U;_zGu`cnIKWp$<33T7ey3%tvsmH+?% literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_256x256@2x.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_256x256@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5bac6c3443208d16a67bf17aa124bc3a7c922e GIT binary patch literal 42127 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 Da4v^9 literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_32x32.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8350a45c5927f5bfdbd77f5930f7158aac7448 GIT binary patch literal 12249 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 X_)*^;3tjrZ7eTDd?aZ#3_{RSimKRwh literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_512x512.png b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/App Icon_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..920b0bba81fbb6e248a328b5b64a0b2c6862ce4d GIT binary patch literal 42127 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 literal 0 HcmV?d00001 diff --git a/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/Contents.json b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..4cf8b7c --- /dev/null +++ b/ScrollableSimulator/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "App Icon@16x16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "App Icon_16x16@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "App Icon_32x32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "App Icon_32x32@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "App Icon_128x128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "App Icon_128x128@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "App Icon_256x256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "App Icon_256x256@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "App Icon_512x512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "App Icon_512x512@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ScrollableSimulator/Assets.xcassets/Contents.json b/ScrollableSimulator/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/ScrollableSimulator/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ScrollableSimulator/Info.plist b/ScrollableSimulator/Info.plist new file mode 100644 index 0000000..0c67376 --- /dev/null +++ b/ScrollableSimulator/Info.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/ScrollableSimulator/Main.storyboard b/ScrollableSimulator/Main.storyboard new file mode 100644 index 0000000..32f0a67 --- /dev/null +++ b/ScrollableSimulator/Main.storyboard @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ScrollableSimulator/ScrollableSimulator.entitlements b/ScrollableSimulator/ScrollableSimulator.entitlements new file mode 100644 index 0000000..18aff0c --- /dev/null +++ b/ScrollableSimulator/ScrollableSimulator.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/ScrollableSimulator/ScrollableSimulator/MouseScrollBehavior.swift b/ScrollableSimulator/ScrollableSimulator/MouseScrollBehavior.swift new file mode 100644 index 0000000..5d18dcb --- /dev/null +++ b/ScrollableSimulator/ScrollableSimulator/MouseScrollBehavior.swift @@ -0,0 +1,48 @@ +import Foundation +import CoreGraphics + +class MouseScrollBehavior { + private let mouseScrollCompletionCaller: MouseScrollCompletionCaller = .init() + private var additionalDraggedPosition: CGPoint = .zero + + func mutateForDragging( + proxy: CGEventTapProxy, + type: CGEventType, + event mutableEvent: CGEvent, + refcon: UnsafeMutableRawPointer? + ) -> Unmanaged? { + guard let immutableEvent = mutableEvent.copy() else { return Unmanaged.passUnretained(mutableEvent) } + let targetPID = pid_t(immutableEvent.getIntegerValueField(.eventTargetUnixProcessID)) + let xScrollQuantity = getXScrollQuantity(from: immutableEvent) + let yScrollQuantity = getYScrollQuantity(from: immutableEvent) + + if !mouseScrollCompletionCaller.isInitialized() { + mouseScrollCompletionCaller.initialize(scrollCompletionHandler: { + [weak self] in + let mouseUp = makeLeftMouseUp(baseEvent: immutableEvent) + mouseUp?.postToPid(targetPID) + self?.resetState() + }) + let mouseDown = makeLeftMouseDown(baseEvent: immutableEvent) + mouseDown?.postToPid(targetPID) + } + mouseScrollCompletionCaller.send(event: immutableEvent) + + mutableEvent.type = .leftMouseDragged + additionalDraggedPosition = .init( + x: additionalDraggedPosition.x + CGFloat(xScrollQuantity), + y: additionalDraggedPosition.y + CGFloat(yScrollQuantity) + ) + mutableEvent.location = .init( + x: immutableEvent.location.x + additionalDraggedPosition.x, + y: immutableEvent.location.y + additionalDraggedPosition.y + ) + mutableEvent.postToPid(targetPID) + + return nil + } + + private func resetState() { + additionalDraggedPosition = .zero + } +} diff --git a/ScrollableSimulator/ScrollableSimulator/MouseScrollCompletionCaller.swift b/ScrollableSimulator/ScrollableSimulator/MouseScrollCompletionCaller.swift new file mode 100644 index 0000000..327c093 --- /dev/null +++ b/ScrollableSimulator/ScrollableSimulator/MouseScrollCompletionCaller.swift @@ -0,0 +1,45 @@ +import Foundation +import CoreGraphics +import Combine + +class MouseScrollCompletionCaller { + private let TIMEOUT_TIME: Double = 0.2 + private var eventQueue: [CGEvent] = [] + private var timeoutSubject: PassthroughSubject? + private var cancellable: AnyCancellable? + private var scrollCompletionHandler: () -> Void = {} + + func initialize(scrollCompletionHandler: @escaping () -> Void) { + eventQueue = [] + self.scrollCompletionHandler = scrollCompletionHandler + timeoutSubject = .init() + cancellable = timeoutSubject?.timeout( + DispatchQueue.SchedulerTimeType.Stride(floatLiteral: TIMEOUT_TIME), + scheduler: DispatchQueue.main + ) + .sink( + receiveCompletion: { [weak self] result in + self?.scrollCompletionHandler() + self?.reset() + }, + receiveValue: { _ in } + ) + } + + func send(event: CGEvent) { + guard let copyEvent = event.copy() else { return } + eventQueue.append(copyEvent) + timeoutSubject?.send() + } + + func isInitialized() -> Bool { + timeoutSubject != nil && cancellable != nil + } + + private func reset() { + eventQueue = [] + timeoutSubject = nil + cancellable = nil + scrollCompletionHandler = {} + } +} diff --git a/ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorBehavior.swift b/ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorBehavior.swift new file mode 100644 index 0000000..4bba4ac --- /dev/null +++ b/ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorBehavior.swift @@ -0,0 +1,59 @@ +import Foundation +import CoreGraphics + +class ScrollableSimulatorBehavior { + private let eventSource = CGEventSource(stateID: .hidSystemState) + private let trackpadScrollBehavior: TrackpadScrollBehavior = .init() + private let mouseScrollBehavior: MouseScrollBehavior = .init() + + func tapEventHandler( + proxy: CGEventTapProxy, + type: CGEventType, + event: CGEvent, + refcon: UnsafeMutableRawPointer? + ) -> Unmanaged? { + switch type { + case .scrollWheel: + return eventBehaviorOnScrollWheel(proxy: proxy, type: type, event: event, refcon: refcon) + default: + return Unmanaged.passUnretained(event) + } + } + + private func eventBehaviorOnScrollWheel( + proxy: CGEventTapProxy, + type: CGEventType, + event: CGEvent, + refcon: UnsafeMutableRawPointer? + ) -> Unmanaged? { + log(scrollWheelEvent: event) + + if isContinuousScroll(from: event) { + // use trackpad + return trackpadScrollBehavior.mutateForDragging(proxy: proxy, type: type, event: event, refcon: refcon) + } else { + // use mouse + return mouseScrollBehavior.mutateForDragging(proxy: proxy, type: type, event: event, refcon: refcon) + } + } + + private func log(scrollWheelEvent: CGEvent) { + #if DEBUG + print( + String( + format: "at: %ld\tpixelY: %d\tpixelX: %d\tfixedDeltaY: %.2f\tfixedDeltaX: %.2f\tmomentum: %d\tphase: %d\tcount: %d\tinstant: %d\tisContinuous: %d", + scrollWheelEvent.timestamp, + scrollWheelEvent.getIntegerValueField(.scrollWheelEventPointDeltaAxis1), + scrollWheelEvent.getIntegerValueField(.scrollWheelEventPointDeltaAxis2), + scrollWheelEvent.getDoubleValueField(.scrollWheelEventFixedPtDeltaAxis1), + scrollWheelEvent.getDoubleValueField(.scrollWheelEventFixedPtDeltaAxis2), + scrollWheelEvent.getIntegerValueField(.scrollWheelEventMomentumPhase), + scrollWheelEvent.getIntegerValueField(.scrollWheelEventScrollPhase), + scrollWheelEvent.getIntegerValueField(.scrollWheelEventScrollCount), + scrollWheelEvent.getIntegerValueField(.scrollWheelEventInstantMouser), + scrollWheelEvent.getIntegerValueField(.scrollWheelEventIsContinuous) + ) + ) + #endif + } +} diff --git a/ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorLauncher.swift b/ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorLauncher.swift new file mode 100644 index 0000000..73ee0e1 --- /dev/null +++ b/ScrollableSimulator/ScrollableSimulator/ScrollableSimulatorLauncher.swift @@ -0,0 +1,55 @@ +import Foundation +import CoreGraphics + +fileprivate let behavior = ScrollableSimulatorBehavior() + +class ScrollableSimulatorLauncher { + private let runLoop: CFRunLoop = CFRunLoopGetMain() + private let runLoopMode: CFRunLoopMode = .defaultMode + private var runLoopSource: CFRunLoopSource? + + private let simulatorPID: pid_t + + init(simulatorPID: pid_t) { + self.simulatorPID = simulatorPID + } + + func activate() throws { + if let runLoopSource { + if CFRunLoopContainsSource(runLoop, runLoopSource, runLoopMode) { + CFRunLoopRemoveSource(runLoop, runLoopSource, runLoopMode) + self.runLoopSource = nil + } + } + + guard let port = CGEvent.tapCreateForPid( + pid: simulatorPID, + place: .headInsertEventTap, + options: .defaultTap, + eventsOfInterest: .max, + callback: { proxy, type, event, refcon in + behavior.tapEventHandler(proxy: proxy, type: type, event: event, refcon: refcon) + }, + userInfo: nil + ) else { + throw ScrollableSimulatorLauncherError.tapIsNotCreated + } + runLoopSource = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, port, 0) + CFRunLoopAddSource(runLoop, runLoopSource, runLoopMode) + CGEvent.tapEnable(tap: port, enable: true) + Logger.info("ScrollableSimulator is active!") + } + + func deactivate() { + guard let runLoopSource else { return } + if CFRunLoopContainsSource(runLoop, runLoopSource, runLoopMode) { + CFRunLoopRemoveSource(runLoop, runLoopSource, runLoopMode) + } + self.runLoopSource = nil + Logger.info("ScrollableSimulator is inactive") + } +} + +enum ScrollableSimulatorLauncherError: Error { + case tapIsNotCreated +} diff --git a/ScrollableSimulator/ScrollableSimulator/TrackpadScrollBehavior.swift b/ScrollableSimulator/ScrollableSimulator/TrackpadScrollBehavior.swift new file mode 100644 index 0000000..bd16f7a --- /dev/null +++ b/ScrollableSimulator/ScrollableSimulator/TrackpadScrollBehavior.swift @@ -0,0 +1,70 @@ +import Foundation +import CoreGraphics + +class TrackpadScrollBehavior { + private var scrollEventQueue: [CGEvent] = [] + private var additionalDraggedPosition: CGPoint = .zero + + func mutateForDragging( + proxy: CGEventTapProxy, + type: CGEventType, + event mutableEvent: CGEvent, + refcon: UnsafeMutableRawPointer? + ) -> Unmanaged? { + guard let immutableEvent = mutableEvent.copy() else { return Unmanaged.passUnretained(mutableEvent) } + + let xScrollQuantity = getXScrollQuantity(from: immutableEvent) + let yScrollQuantity = getYScrollQuantity(from: immutableEvent) + + // pattern1: began scroll + if isBeganScroll(from: immutableEvent) { + mutableEvent.type = .leftMouseDown + copyAndStoreEvent(immutableEvent) + return Unmanaged.passUnretained(mutableEvent) + } + // pattern2: end scroll(non inertial scroll) + if isEndedScroll(from: immutableEvent) && isNonInertialScroll(lastEvent: scrollEventQueue.last) { + mutableEvent.type = .leftMouseUp + resetState() + return Unmanaged.passUnretained(mutableEvent) + } + // pattern3: end scroll(inertial scroll) + if isEndContinuousScroll(from: immutableEvent) { + mutableEvent.type = .leftMouseUp + resetState() + return Unmanaged.passUnretained(mutableEvent) + } + // pattern4: while scrolling + mutableEvent.type = .leftMouseDragged + additionalDraggedPosition = .init( + x: additionalDraggedPosition.x + CGFloat(xScrollQuantity), + y: additionalDraggedPosition.y + CGFloat(yScrollQuantity) + ) + mutableEvent.location = .init( + x: immutableEvent.location.x + additionalDraggedPosition.x, + y: immutableEvent.location.y + additionalDraggedPosition.y + ) + copyAndStoreEvent(immutableEvent) + return Unmanaged.passUnretained(mutableEvent) + } + + private func isNonInertialScroll(lastEvent: CGEvent?) -> Bool { + guard let lastEvent else { + assertionFailure("lastEvent is null") + return true + } + let lastDeltaY = lastEvent.getDoubleValueField(.scrollWheelEventFixedPtDeltaAxis1) + let lastDeltaX = lastEvent.getDoubleValueField(.scrollWheelEventFixedPtDeltaAxis2) + return lastDeltaY == 0.0 && lastDeltaX == 0.0 + } + + private func copyAndStoreEvent(_ event: CGEvent) { + guard let copyEvent = event.copy() else { return } + scrollEventQueue.append(copyEvent) + } + + private func resetState() { + scrollEventQueue = [] + additionalDraggedPosition = .zero + } +} diff --git a/ScrollableSimulator/SimulatorApp.swift b/ScrollableSimulator/SimulatorApp.swift new file mode 100644 index 0000000..bc40c7f --- /dev/null +++ b/ScrollableSimulator/SimulatorApp.swift @@ -0,0 +1,11 @@ +import Cocoa + +let SIMULATOR_BUNDLE_ID = "com.apple.iphonesimulator" + +class SimulatorApp { + static func getSimulatorPID() -> pid_t? { + NSWorkspace.shared.runningApplications + .first(where: { $0.bundleIdentifier == SIMULATOR_BUNDLE_ID })? + .processIdentifier + } +} diff --git a/ScrollableSimulator/Util/CGEvent+.swift b/ScrollableSimulator/Util/CGEvent+.swift new file mode 100644 index 0000000..d444502 --- /dev/null +++ b/ScrollableSimulator/Util/CGEvent+.swift @@ -0,0 +1,93 @@ +import Foundation +import CoreGraphics + +func getYScrollQuantity(from event: CGEvent) -> Int64 { + event.getIntegerValueField(.scrollWheelEventPointDeltaAxis1) +} + +func getXScrollQuantity(from event: CGEvent) -> Int64 { + event.getIntegerValueField(.scrollWheelEventPointDeltaAxis2) +} + +func getYScrollQuantityForLineBase(from event: CGEvent) -> Int64 { + event.getIntegerValueField(.scrollWheelEventFixedPtDeltaAxis1) +} + +func getXScrollQuantityForLineBase(from event: CGEvent) -> Int64 { + event.getIntegerValueField(.scrollWheelEventFixedPtDeltaAxis2) +} + +func isBeganScroll(from event: CGEvent) -> Bool { + event.getIntegerValueField(.scrollWheelEventScrollPhase) == CGScrollPhase.began.rawValue +} + +func isEndedScroll(from event: CGEvent) -> Bool { + event.getIntegerValueField(.scrollWheelEventScrollPhase) == CGScrollPhase.ended.rawValue +} + +func isContinuousScroll(from event: CGEvent) -> Bool { + event.getIntegerValueField(.scrollWheelEventIsContinuous) != 0 +} + +func isBeginContinuousScroll(from event: CGEvent) -> Bool { + event.getIntegerValueField(.scrollWheelEventMomentumPhase) == CGMomentumScrollPhase.begin.rawValue +} + +func isEndContinuousScroll(from event: CGEvent) -> Bool { + event.getIntegerValueField(.scrollWheelEventMomentumPhase) == CGMomentumScrollPhase.end.rawValue +} + +func makeLeftMouseDown(baseEvent: CGEvent) -> CGEvent? { + guard let copyEvent = baseEvent.copy() else { return nil } + copyEvent.type = .leftMouseDown + return copyEvent +} + +func makeLeftMouseUp(baseEvent: CGEvent) -> CGEvent? { + guard let copyEvent = baseEvent.copy() else { return nil } + copyEvent.type = .leftMouseUp + return copyEvent +} + +func makeLeftMouseDragged(baseEvent: CGEvent, location: CGPoint? = nil) -> CGEvent? { + guard let copyEvent = baseEvent.copy() else { return nil } + copyEvent.type = .leftMouseDragged + if let location { + copyEvent.location = location + } + return copyEvent +} + +/// Getting scroll quantity from CGEvent.data +@available(*, deprecated, message: "Use getXScrollQuantity()") +func getXScrollQuantity(from cfData: CFData) -> Int32 { + // Find the value that marks the point where the scroll quantity is stored. + var findData: [UInt8] = [0x00, 0x01, 0x40, 0x60] // Data array in front of the scroll value (maybe) + let findCfData = CFDataCreate(kCFAllocatorDefault, &findData, findData.count) + let originRange = CFDataFind( + cfData, + findCfData, + .init(location: 0, length: CFDataGetLength(cfData)), + [] + ) + + // The value of 4 bytes behind the marker point is the scroll quantity, so extract the data at that point. + var scrollValues = [UInt8](repeating: 0, count: 4) + CFDataGetBytes( + cfData, + CFRange( + location: originRange.location + originRange.length, + length: 4 + ), + &scrollValues + ) + + // convert uint8[] -> uint32 -> int32 + let unsignedScrollQuantity = UInt32(scrollValues[0]) << 24 + + UInt32(scrollValues[1]) << 16 + + UInt32(scrollValues[2]) << 8 + + UInt32(scrollValues[3]) + let data = withUnsafeBytes(of: unsignedScrollQuantity) { Data($0) } + let signedScrollQuantity = data.withUnsafeBytes { $0.load(as: Int32.self) } + return signedScrollQuantity +} diff --git a/ScrollableSimulator/Util/Logger.swift b/ScrollableSimulator/Util/Logger.swift new file mode 100644 index 0000000..ab0cd90 --- /dev/null +++ b/ScrollableSimulator/Util/Logger.swift @@ -0,0 +1,36 @@ +import Foundation + +enum Logger { + static func info(_ items: Any?, file: String = #file, line: Int = #line, function: String = #function) { + #if DEBUG + let filename = URL(fileURLWithPath: file).lastPathComponent + if let items = items { + print("✅ [\(filename) \(line):\(function)] : \(items)") + } else { + print("✅ [\(filename) \(line):\(function)]") + } + #endif + } + + static func warn(_ items: Any?, file: String = #file, line: Int = #line, function: String = #function) { + #if DEBUG + let filename = URL(fileURLWithPath: file).lastPathComponent + if let items = items { + print("⚠️ [\(filename) \(line):\(function)] : \(items)") + } else { + print("⚠️ [\(filename) \(line):\(function)]") + } + #endif + } + + static func error(_ items: Any?, file: String = #file, line: Int = #line, function: String = #function) { + #if DEBUG + let filename = URL(fileURLWithPath: file).lastPathComponent + if let items = items { + print("⛔️ [\(filename) \(line):\(function)] : \(items)") + } else { + print("⛔️ [\(filename) \(line):\(function)]") + } + #endif + } +}