├── .gitignore ├── .travis.yml ├── Pipfile ├── Pipfile.lock ├── README.md ├── ShiftIt ├── .gitignore ├── AXWindowDriver.h ├── AXWindowDriver.m ├── AccessibilitySettingsLion.png ├── AccessibilitySettingsMaverick.png ├── Base.lproj │ ├── InfoPlist.strings │ ├── Localizable.strings │ ├── MainMenu.xib │ └── PreferencesWindow.xib ├── DefaultShiftItActions.h ├── DefaultShiftItActions.m ├── FMT Tests │ ├── FMT Tests-Info.plist │ ├── FMT Tests-Prefix.pch │ ├── FMTGeometryTests.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── ja.lproj │ │ └── InfoPlist.strings ├── FMT │ ├── FMT.h │ ├── FMTDefines.h │ ├── FMTHotKey+SRKeyCombo.h │ ├── FMTHotKey+SRKeyCombo.m │ ├── FMTHotKey.h │ ├── FMTHotKey.m │ ├── FMTHotKeyManager.h │ ├── FMTHotKeyManager.m │ ├── FMTLoginItems.h │ ├── FMTLoginItems.m │ ├── FMTNSArray+Functional.h │ ├── FMTNSArray+Functional.m │ ├── FMTNSDate+Extras.h │ ├── FMTNSDate+Extras.m │ ├── FMTNSDictionary+Extras.h │ ├── FMTNSDictionary+Extras.m │ ├── FMTNSError+Extras.h │ ├── FMTNSError+Extras.m │ ├── FMTNSFileManager+DirectoryLocations.h │ ├── FMTNSFileManager+DirectoryLocations.m │ ├── FMTUtils.h │ ├── FMTUtils.m │ └── Readme.md ├── FMTError.h ├── FMTError.m ├── FMTGeometry.h ├── FMTGeometry.m ├── GHUnitTestMain.m ├── GTM │ ├── GTMDefines.h │ ├── GTMGarbageCollection.h │ ├── GTMLogger.h │ └── GTMLogger.m ├── PreferencesWindowController.h ├── PreferencesWindowController.m ├── SBSystemPreferences.h ├── SIActionDelegate.h ├── SIAdjacentRectangles.h ├── SIAdjacentRectangles.m ├── SIDefines.h ├── SIScreen.h ├── SIScreen.m ├── SIWindow.h ├── SIWindowContext.h ├── SIWindowDriver.h ├── SIWindowInfo.h ├── SIWindowManager.h ├── SIWindowManager.m ├── ShiftIt Tests │ ├── SIAdjacentRectanglesTest.m │ ├── ShiftIt Tests-Info.plist │ ├── ShiftIt Tests-Prefix.pch │ ├── en.lproj │ │ └── InfoPlist.strings │ └── ja.lproj │ │ └── InfoPlist.strings ├── ShiftIt-Info.plist ├── ShiftIt-defaults.plist ├── ShiftIt.h ├── ShiftIt.icns ├── ShiftIt.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── FMT Tests.xcscheme │ │ ├── ShiftIt NoX11.xcscheme │ │ └── ShiftIt.xcscheme ├── ShiftItApp.h ├── ShiftItAppDelegate.h ├── ShiftItAppDelegate.m ├── ShiftItConstants.h ├── ShiftItMenuIcon.png ├── ShiftIt_Prefix.pch ├── ShortcutRecorder.framework │ ├── Headers │ ├── Resources │ ├── ShortcutRecorder │ └── Versions │ │ ├── A │ │ ├── Headers │ │ │ ├── SRCommon.h │ │ │ ├── SRKeyCodeTransformer.h │ │ │ ├── SRRecorderCell.h │ │ │ ├── SRRecorderControl.h │ │ │ ├── SRValidator.h │ │ │ ├── SR_LeopardView.h │ │ │ └── ShortcutRecorder.h │ │ ├── Resources │ │ │ ├── Info.plist │ │ │ └── ShortcutRecorder.ibplugin │ │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ ├── MacOS │ │ │ │ └── ShortcutRecorder │ │ │ │ └── Resources │ │ │ │ ├── English.lproj │ │ │ │ ├── InfoPlist.strings │ │ │ │ ├── SR_LeopardInspector.nib │ │ │ │ └── SR_LeopardLibrary.nib │ │ │ │ └── SRRecorderControl.classdescription │ │ └── ShortcutRecorder │ │ └── Current ├── Sparkle.framework │ ├── Headers │ ├── Resources │ ├── Sparkle │ └── Versions │ │ ├── A │ │ ├── Headers │ │ │ ├── SUAppcast.h │ │ │ ├── SUAppcastItem.h │ │ │ ├── SUUpdater.h │ │ │ ├── SUVersionComparisonProtocol.h │ │ │ └── Sparkle.h │ │ ├── Resources │ │ │ ├── Info.plist │ │ │ ├── License.txt │ │ │ ├── SUModelTranslation.plist │ │ │ ├── SUStatus.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── de.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ ├── en.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ ├── es.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ ├── fr.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── Sparkle.strings │ │ │ │ └── fr.lproj │ │ │ ├── fr_CA.lproj │ │ │ ├── it.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ ├── nl.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ ├── relaunch │ │ │ ├── ru.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── classes.nib │ │ │ │ │ ├── info.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ └── sv.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ ├── classes.nib │ │ │ │ ├── info.nib │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ └── Sparkle │ │ └── Current ├── WindowGeometryShiftItAction.h ├── WindowGeometryShiftItAction.m ├── X11WindowDriver.h ├── X11WindowDriver.m ├── dsa_pub.pem ├── ja.lproj │ ├── Localizable.strings │ ├── MainMenu.strings │ └── PreferencesWindow.strings ├── main.m └── margin-background-image.png ├── artwork ├── ShiftIt.png ├── ShiftItLogo.xcf ├── ShiftItMenuIcon - source.xcf ├── ShiftItMenuIcon.xcf ├── ShiftItMenuIconReversed - source.xcf └── ShiftItMenuIconReversed.xcf ├── build └── .gitkeep ├── docs └── schreenshot-menu.png ├── fabfile.py └── release ├── appcast.xml ├── release-notes-1.4.1.html ├── release-notes-1.5.1.html ├── release-notes-1.6.1.html ├── release-notes-1.6.2.html ├── release-notes-1.6.3.html ├── release-notes-1.6.4.html ├── release-notes-1.6.5.html ├── release-notes-1.6.6.html └── release-notes-1.6.html /.gitignore: -------------------------------------------------------------------------------- 1 | ShiftIt-*.zip 2 | misc 3 | fabfile.pyc 4 | ._build 5 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | xcode_project: ShiftIt/ShiftIt.xcodeproj 3 | xcode_scheme: ShiftIt 4 | osx_image: xcode6.4 5 | xcode_sdk: macosx10.9 6 | before_install: 7 | - wget http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.6.dmg 8 | - hdiutil attach XQuartz-2.7.6.dmg 9 | - sudo installer -pkg /Volumes/XQuartz-2.7.6/XQuartz.pkg -target / 10 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.python.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | 8 | "asn1crypto" = "==0.22.0" 9 | bcrypt = "==3.1.3" 10 | certifi = "==2017.7.27.1" 11 | cffi = "==1.10.0" 12 | chardet = "==3.0.4" 13 | cryptography = "==2.0.3" 14 | "enum34" = "==1.1.6" 15 | fabric = "==1.14.0" 16 | "github3.py" = "==0.9.6" 17 | idna = "==2.6" 18 | ipaddress = "==1.0.18" 19 | paramiko = "==2.2.1" 20 | "pyasn1" = "==0.3.3" 21 | pycparser = "==2.18" 22 | pynacl = "==1.1.2" 23 | pystache = "==0.5.4" 24 | requests = "==2.18.4" 25 | uritemplate = "==3.0.0" 26 | "uritemplate.py" = "==3.0.2" 27 | "urllib3" = "==1.22" 28 | sh = "*" 29 | 30 | 31 | [dev-packages] -------------------------------------------------------------------------------- /ShiftIt/.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | *.xcworkspace 13 | !default.xcworkspace 14 | xcuserdata 15 | profile 16 | *.moved-aside 17 | # AppCode 18 | DerivedData 19 | .idea/ 20 | -------------------------------------------------------------------------------- /ShiftIt/AXWindowDriver.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <Foundation/Foundation.h> 21 | #import "ShiftIt.h" 22 | 23 | /** 24 | * In order to understand what exactly what is going on it is important 25 | * to understand how the graphic coordinates works in OSX. There are two 26 | * coordinates systems: screen (quartz core graphics) and cocoa. The 27 | * former one has and origin on the top left corner of the primary 28 | * screen (the one with a menu bar) and the coordinates grows in east 29 | * and south direction. The latter has origin in the bottom left corner 30 | * of the primary window and grows in east and north direction. The 31 | * overview of the cocoa coordinates is in [1]. 32 | * 33 | * In this method all coordinates are translated to be the screen 34 | * coordinates. 35 | * 36 | * [1] http://bit.ly/aSmfae (apple official docs) 37 | */ 38 | @interface AXWindowDriver : NSObject<SIWindowDriver> { 39 | @private 40 | AXUIElementRef systemElementRef_; 41 | BOOL shouldUseDrawers_; 42 | BOOL converge_; 43 | double delayBetweenOperations_; 44 | } 45 | 46 | @property(assign) BOOL shouldUseDrawers; 47 | @property(assign) BOOL converge; 48 | @property(assign) double delayBetweenOperations; 49 | 50 | - (id)initWithError:(NSError **)error; 51 | 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /ShiftIt/AccessibilitySettingsLion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/AccessibilitySettingsLion.png -------------------------------------------------------------------------------- /ShiftIt/AccessibilitySettingsMaverick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/AccessibilitySettingsMaverick.png -------------------------------------------------------------------------------- /ShiftIt/Base.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ShiftIt/Base.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | ShiftIt 4 | 5 | Created by Hiroyuki Kurosawa on 2013/11/16. 6 | 7 | */ 8 | 9 | "Left" = "Left"; 10 | "Right" = "Right"; 11 | "Top" = "Top"; 12 | "Bottom" = "Bottom"; 13 | "Top Left" = "Top Left"; 14 | "Top Right" = "Top Right"; 15 | "Bottom Left" = "Bottom Left"; 16 | "Bottom Right" = "Bottom Right"; 17 | "Center" = "Center"; 18 | "Toggle Zoom" = "Toggle Zoom"; 19 | "Maximize" = "Maximize"; 20 | "Toggle Full Screen" = "Toggle Full Screen"; 21 | "Increase" = "Increase"; 22 | "Reduce" = "Reduce"; 23 | "Next Screen" = "Next Screen"; 24 | "Previous Screen" = "Previous Screen"; 25 | 26 | "Authorization Required" = "Authorization Required"; 27 | "Recheck" = "Recheck"; 28 | "Open System Preferences" = "Open System Preferences"; 29 | "Quit" = "Quit"; 30 | "AUTHORIZATION_INFORMATIVE_TEXT_10_9" = "ShiftIt needs to be authorized to use an Accessibility Services in order to be able to move and resize application windows.\n\nYou can do this in System Preferences > Security & Privacy > Privacy > Accessibility. You might need to drag-and-drop ShiftIt into the list of allowed apps and make sure the checkbox is on."; 31 | "AUTHORIZATION_INFORMATIVE_TEXT_10_8" = "ShiftIt needs to be authorized to use an Accessibility Services in order to be able to move and resize application windows.\n\nPlease \"Enable access for assistive devices\" in the System Preferences > Universal Access and then restart ShiftIt."; 32 | 33 | "Start ShiftIt automatically?" = "Start ShiftIt automatically?"; 34 | "Would you like to have ShiftIt automatically started at a login time?" = "Would you like to have ShiftIt automatically started at a login time?"; 35 | "Yes" = "Yes"; 36 | "No" = "No"; -------------------------------------------------------------------------------- /ShiftIt/DefaultShiftItActions.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <Foundation/Foundation.h> 21 | #import "WindowGeometryShiftItAction.h" 22 | #import "ShiftIt.h" 23 | 24 | BOOL CloseTo(double a, double b); 25 | BOOL rectCloseTo(NSRect a, NSRect b); 26 | 27 | const extern SimpleWindowGeometryChangeBlock shiftItLeft; 28 | const extern SimpleWindowGeometryChangeBlock shiftItRight; 29 | const extern SimpleWindowGeometryChangeBlock shiftItTop; 30 | const extern SimpleWindowGeometryChangeBlock shiftItBottom; 31 | const extern SimpleWindowGeometryChangeBlock shiftItTopLeft; 32 | const extern SimpleWindowGeometryChangeBlock shiftItTopRight; 33 | const extern SimpleWindowGeometryChangeBlock shiftItBottomLeft; 34 | const extern SimpleWindowGeometryChangeBlock shiftItBottomRight; 35 | const extern SimpleWindowGeometryChangeBlock shiftItFullScreen; 36 | const extern SimpleWindowGeometryChangeBlock shiftItCenter; 37 | const extern SimpleWindowGeometryChangeBlock shiftItThirdTopLeft; 38 | const extern SimpleWindowGeometryChangeBlock shiftItThirdBottomLeft; 39 | const extern SimpleWindowGeometryChangeBlock shiftItThirdTopCenter; 40 | const extern SimpleWindowGeometryChangeBlock shiftItThirdBottomCenter; 41 | const extern SimpleWindowGeometryChangeBlock shiftItThirdTopRight; 42 | const extern SimpleWindowGeometryChangeBlock shiftItThirdBottomRight; 43 | const extern SimpleWindowGeometryChangeBlock shiftItThirdLeft; 44 | const extern SimpleWindowGeometryChangeBlock shiftItThirdCenter; 45 | const extern SimpleWindowGeometryChangeBlock shiftItThirdRight; 46 | 47 | @interface IncreaseReduceShiftItAction : AbstractWindowGeometryShiftItAction { 48 | @private 49 | BOOL increase_; 50 | } 51 | 52 | - (id) initWithMode:(BOOL)increase; 53 | 54 | @end 55 | 56 | @interface ToggleZoomShiftItAction : NSObject<SIActionDelegate> 57 | @end 58 | 59 | @interface ToggleFullScreenShiftItAction : NSObject<SIActionDelegate> 60 | @end 61 | 62 | @interface ScreenChangeShiftItAction : NSObject<SIActionDelegate> 63 | 64 | - (id) initWithMode:(BOOL)next; 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /ShiftIt/FMT Tests/FMT Tests-Info.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>CFBundleDevelopmentRegion</key> 6 | <string>en</string> 7 | <key>CFBundleExecutable</key> 8 | <string>${EXECUTABLE_NAME}</string> 9 | <key>CFBundleIdentifier</key> 10 | <string>net.fikovnik.projects.FMT.${PRODUCT_NAME:rfc1034identifier}</string> 11 | <key>CFBundleInfoDictionaryVersion</key> 12 | <string>6.0</string> 13 | <key>CFBundlePackageType</key> 14 | <string>BNDL</string> 15 | <key>CFBundleShortVersionString</key> 16 | <string>1.0</string> 17 | <key>CFBundleSignature</key> 18 | <string>????</string> 19 | <key>CFBundleVersion</key> 20 | <string>1</string> 21 | </dict> 22 | </plist> 23 | -------------------------------------------------------------------------------- /ShiftIt/FMT Tests/FMT Tests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'FMT Tests' target in the 'FMT Tests' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import <Cocoa/Cocoa.h> 7 | #endif 8 | -------------------------------------------------------------------------------- /ShiftIt/FMT Tests/FMTGeometryTests.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <SenTestingKit/SenTestingKit.h> 24 | #import "FMTGeometry.h" 25 | 26 | @interface FMTGeometryTests : SenTestCase 27 | 28 | @end 29 | 30 | @implementation FMTGeometryTests 31 | 32 | - (void)testMakeVector { 33 | FMTVect v = FMTMakeVect(1, 1, 3, 4); 34 | 35 | STAssertEquals(2.0, v.x, @"Invalid x coordinate of the vector"); 36 | STAssertEquals(3.0, v.y, @"Invalid y coordinate of the vector"); 37 | } 38 | 39 | - (void)testMakePerpendicularVector { 40 | FMTVect v = FMTMakeVect(1, 1, 3, 4); 41 | FMTVect n = FMTMakePerpendicularVect(v); 42 | 43 | STAssertEquals(3.0, n.x, @"Invalid x coordinate of the vector"); 44 | STAssertEquals(-2.0, n.y, @"Invalid y coordinate of the vector"); 45 | } 46 | 47 | - (void)testAbs { 48 | FMTVect v = FMTMakeVect(1, 1, 3, 3); 49 | STAssertEqualsWithAccuracy(2.82842712475, FMTAbsVect(v), 0.01, @"Invalid length of a vecotr"); 50 | } 51 | 52 | - (void)testPointDistance { 53 | NSPoint a = NSMakePoint(0, 0); 54 | NSPoint b = NSMakePoint(0, 4); 55 | NSPoint p = NSMakePoint(5, 3); 56 | 57 | STAssertEqualsWithAccuracy(5.0, FMTPointDistanceToLine(a, b, p), 0.01, @"Invalid point distance to vector"); 58 | } 59 | 60 | - (void)testAngleBetweenVects { 61 | FMTVect u = FMTMakeVect(0, 0, 0, 10); 62 | FMTVect v = FMTMakePerpendicularVect(u); 63 | 64 | STAssertEquals(90.0, FMTAngleBetweenVects(u, v), @"Invalid angle between vectors"); 65 | } 66 | 67 | - (void)testDirectionBetweenVects { 68 | FMTVect u = {0, 1}; 69 | FMTVect v = {1, 0}; 70 | 71 | STAssertEquals(kRightDirection, FMTDirectionBetweenVects(u, v), @"Invalid direction"); 72 | } 73 | 74 | @end 75 | -------------------------------------------------------------------------------- /ShiftIt/FMT Tests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ShiftIt/FMT Tests/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMT.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTDefines.h" 24 | #import "FMTHotKey+SRKeyCombo.h" 25 | #import "FMTHotKey.h" 26 | #import "FMTHotKeyManager.h" 27 | #import "FMTLoginItems.h" 28 | #import "FMTNSArray+Functional.h" 29 | #import "FMTNSDate+Extras.h" 30 | #import "FMTNSDictionary+Extras.h" 31 | #import "FMTNSError+Extras.h" 32 | #import "FMTUtils.h" 33 | #import "FMTGeometry.h" -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTHotKey+SRKeyCombo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Cocoa/Cocoa.h> 24 | 25 | #import <ShortcutRecorder/SRCommon.h> 26 | 27 | #import "FMTHotKey.h" 28 | 29 | @interface FMTHotKey (SRKeyCombo) 30 | 31 | + (FMTHotKey *)hotKey:(KeyCombo)keyCombo; 32 | - (KeyCombo)asKeyCombo; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTHotKey+SRKeyCombo.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTHotKey+SRKeyCombo.h" 24 | #import "FMTDefines.h" 25 | 26 | @implementation FMTHotKey (SRKeyCombo) 27 | 28 | + (FMTHotKey *)hotKey:(KeyCombo)keyCombo { 29 | FMTHotKey *hotKey = [[FMTHotKey alloc] initWithKeyCode:keyCombo.code modifiers:keyCombo.flags]; 30 | 31 | return hotKey; 32 | } 33 | 34 | - (KeyCombo)asKeyCombo { 35 | KeyCombo keyCombo = SRMakeKeyCombo(keyCode_, modifiers_); 36 | 37 | return keyCombo; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTHotKey.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Cocoa/Cocoa.h> 24 | #import <Carbon/Carbon.h> 25 | 26 | @interface FMTHotKey : NSObject { 27 | @private 28 | 29 | /** 30 | * The virtual key code for the keyboard key associated with the receiving key event. 31 | * 32 | * @see NSEvent keyCode 33 | */ 34 | NSInteger keyCode_; 35 | 36 | /** 37 | * Using the Cocoa modifiers 38 | * 39 | * @see NSEvent for NS*KeyMask (i.e.: NSCommandKeyMask) 40 | */ 41 | NSUInteger modifiers_; 42 | } 43 | 44 | @property (readonly) NSInteger keyCode; 45 | @property (readonly) NSUInteger modifiers; 46 | 47 | - (id)initWithKeyCode:(NSInteger)keyCode modifiers:(NSUInteger)modifiers; 48 | 49 | - (NSString *)description; 50 | - (BOOL)isEqualTo:(id)object; 51 | 52 | @end 53 | 54 | #pragma mark Key code and modifiers conversion methods 55 | 56 | NSString *FMTStringForCocoaModifiers(NSUInteger modifiers); 57 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTHotKey.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTHotKey.h" 24 | #import "FMTDefines.h" 25 | 26 | @implementation FMTHotKey 27 | 28 | @synthesize keyCode = keyCode_; 29 | @synthesize modifiers = modifiers_; 30 | 31 | - (id)initWithKeyCode:(NSInteger)keyCode modifiers:(NSUInteger)modifiers { 32 | 33 | if (![super init]) { 34 | return nil; 35 | } 36 | 37 | keyCode_ = keyCode; 38 | 39 | // TODO: assert that the code and modifiers make sense 40 | modifiers_ = modifiers; 41 | 42 | return self; 43 | } 44 | 45 | - (NSString *)description { 46 | return FMTStr(@"code: %d modifiers: %@ (%ld)", keyCode_, FMTStringForCocoaModifiers(modifiers_), modifiers_); 47 | } 48 | 49 | - (BOOL)isEqualTo:(id)object { 50 | 51 | if ([object isKindOfClass:[self class]] == NO) { 52 | return NO; 53 | } 54 | 55 | FMTHotKey *other = (FMTHotKey *) object; 56 | return (keyCode_ == [other keyCode] 57 | && modifiers_ == [other modifiers]); 58 | } 59 | 60 | // TODO: add hash 61 | 62 | @end 63 | 64 | #pragma mark Key code and modifiers conversion methods 65 | 66 | // this method is based on the SRStringForCocoaModifierFlags from SRCommon.m 67 | // in the ShortcutRecorder. The reason why it is duplicated here is to not to 68 | // have the dependency on ShortcutRecorder in FMTHotKey 69 | NSString *FMTStringForCocoaModifiers(NSUInteger modifiers) { 70 | NSString *modifiersString = [NSString stringWithFormat:@"%@%@%@%@", 71 | (modifiers & NSControlKeyMask ? [NSString stringWithFormat:@"%d", kControlUnicode] : @""), 72 | (modifiers & NSAlternateKeyMask ? [NSString stringWithFormat:@"%d", kOptionUnicode] : @""), 73 | (modifiers & NSShiftKeyMask ? [NSString stringWithFormat:@"%d", kShiftUnicode] : @""), 74 | (modifiers & NSCommandKeyMask ? [NSString stringWithFormat:@"%d", kCommandUnicode] : @"")]; 75 | 76 | return modifiersString; 77 | } -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTHotKeyManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Cocoa/Cocoa.h> 24 | #import <Carbon/Carbon.h> 25 | 26 | #import "FMTHotKey.h" 27 | 28 | @interface FMTHotKeyManager : NSObject { 29 | @private 30 | NSInteger hotKeyIdSequence_; 31 | } 32 | 33 | + (FMTHotKeyManager *)sharedHotKeyManager; 34 | 35 | - (void)unregisterHotKey:(FMTHotKey *)hotKey; 36 | - (void)registerHotKey:(FMTHotKey *)hotKey handler:(SEL)handler provider:(id)provider userData:(id)userData; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTLoginItems.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Cocoa/Cocoa.h> 24 | 25 | /** 26 | * Manages the login items - both global ones (system wide) and session ones (current user). 27 | */ 28 | @interface FMTLoginItems : NSObject { 29 | @private 30 | 31 | /** The type of the login items. This is internaly being called by the two subclasses 32 | * possible values: 33 | * 34 | * kLSSharedFileListGlobalLoginItems - system wide 35 | * kLSSharedFileListSessionLoginItems - current user only 36 | */ 37 | CFStringRef type_; 38 | } 39 | 40 | @property(readonly) CFStringRef type; 41 | 42 | /** Returns true iff an executable (application, unix executable, script) denoted by the path is present in the login items */ 43 | - (BOOL) isInLoginItemsApplicationWithPath:(NSString *)path; 44 | 45 | /** Toggle the presence of an executable (application, unix executable, script) denoted by the path in the login items */ 46 | - (void) toggleApplicationInLoginItemsWithPath:(NSString *)path enabled:(BOOL)enabled; 47 | 48 | /** Ge the global (system wide) login items */ 49 | + (FMTLoginItems *) sharedGlobalLoginItems; 50 | 51 | /** Ge the session (current user) login items */ 52 | + (FMTLoginItems *) sharedSessionLoginItems; 53 | 54 | @end 55 | 56 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSArray+Functional.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Foundation/Foundation.h> 24 | 25 | @interface NSArray (FMTNSArrayFunctional) 26 | 27 | - (id)find:(BOOL (^)(id))fun; 28 | 29 | - (NSUInteger)indexWhere:(BOOL (^)(id))fun; 30 | 31 | - (NSArray *)filter:(BOOL (^)(id))fun; 32 | 33 | - (NSArray *)map:(id(^)(id item))fun; 34 | 35 | - (void)foreachWithStop:(BOOL (^)(id))fun; 36 | 37 | - (void)foreach:(void (^)(id))fun; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSArray+Functional.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | @implementation NSArray (FMTNSArrayExtras) 24 | 25 | - (id)find:(BOOL (^)(id))fun { 26 | for (id item in self) { 27 | if (fun(item)) { 28 | return item; 29 | } 30 | } 31 | 32 | return nil; 33 | } 34 | 35 | - (NSUInteger)indexWhere:(BOOL (^)(id))fun { 36 | for (int i = 0; i < [self count]; i++) { 37 | if (fun([self objectAtIndex:i])) return i; 38 | } 39 | 40 | return -1; 41 | } 42 | 43 | - (NSArray *)filter:(BOOL (^)(id))fun { 44 | NSMutableArray *tmp = [NSMutableArray array]; 45 | 46 | for (id item in self) { 47 | if (fun(item)) { 48 | [tmp addObject:item]; 49 | } 50 | } 51 | 52 | return [tmp copy]; 53 | } 54 | 55 | - (NSArray *)map:(id(^)(id item))fun { 56 | NSMutableArray *tmp = [NSMutableArray arrayWithCapacity:[self count]]; 57 | 58 | for (id item in self) { 59 | [tmp addObject:fun(item)]; 60 | } 61 | 62 | return [tmp copy]; 63 | } 64 | 65 | - (void)foreachWithStop:(bool (^)(id))fun { 66 | for (id item in self) { 67 | if (!fun(item)) break; 68 | } 69 | } 70 | 71 | - (void)foreach:(void (^)(id))fun { 72 | for (id item in self) { 73 | fun(item); 74 | } 75 | } 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSDate+Extras.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Foundation/Foundation.h> 24 | 25 | @interface NSDate (FMTNSDate_Extras) 26 | 27 | - (NSDateComponents *) dateComponents; 28 | - (NSString *) stringWithFormat:(NSString *)format; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSDate+Extras.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTNSDate+Extras.h" 24 | 25 | @implementation NSDate (FMTNSDateExtras) 26 | 27 | - (NSDateComponents *) dateComponents { 28 | NSCalendar *cal = [NSCalendar currentCalendar]; 29 | return [cal components:(NSYearCalendarUnit 30 | | NSMonthCalendarUnit 31 | | NSDayCalendarUnit 32 | | NSHourCalendarUnit 33 | | NSMinuteCalendarUnit) fromDate:self]; 34 | } 35 | 36 | - (NSString *) stringWithFormat:(NSString *)format { 37 | NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 38 | [dateFormatter setDateFormat:format]; 39 | 40 | NSString *string = [dateFormatter stringFromDate:self]; 41 | 42 | [dateFormatter release]; 43 | 44 | return string; 45 | } 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSDictionary+Extras.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Foundation/Foundation.h> 24 | 25 | @interface NSDictionary (FMTNSDictionary_Extras) 26 | 27 | - (id) keyForObject:(id)object; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSDictionary+Extras.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTNSDictionary+Extras.h" 24 | #import "FMTDefines.h" 25 | 26 | @implementation NSDictionary (FMTNSDictionaryExtras) 27 | 28 | - (id) keyForObject:(id)object { 29 | FMTAssertNotNil(object); 30 | 31 | __block id theKey = nil; 32 | 33 | [self enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 34 | if (object == obj) { 35 | theKey = key; 36 | *stop = YES; 37 | } 38 | }]; 39 | 40 | return theKey; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSError+Extras.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Foundation/Foundation.h> 24 | 25 | @interface NSError (FMTNSErrorExtras) 26 | 27 | - (NSString *) fullDescription; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSError+Extras.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTNSError+Extras.h" 24 | 25 | @implementation NSError (FMTNSErrorExtras) 26 | 27 | - (NSString *) fullDescription { 28 | NSError *error = self; 29 | NSMutableString *desc = [NSMutableString stringWithCapacity:100]; 30 | 31 | [desc appendString:@"\nNSError stack trace:\n"]; 32 | do { 33 | [desc appendFormat:@"%@:%ld - %@", [error domain], [error code], [error localizedDescription]]; 34 | error = [[error userInfo] objectForKey:NSUnderlyingErrorKey]; 35 | if (error != nil) { 36 | [desc appendString:@"\n Caused-by: "]; 37 | } 38 | } while (error != nil); 39 | 40 | return [NSString stringWithString:desc]; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTNSFileManager+DirectoryLocations.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager+DirectoryLocations.h 3 | // 4 | // Created by Matt Gallagher on 06 May 2010 5 | // 6 | // This software is provided 'as-is', without any express or implied 7 | // warranty. In no event will the authors be held liable for any damages 8 | // arising from the use of this software. Permission is granted to anyone to 9 | // use this software for any purpose, including commercial applications, and to 10 | // alter it and redistribute it freely, subject to the following restrictions: 11 | // 12 | // 1. The origin of this software must not be misrepresented; you must not 13 | // claim that you wrote the original software. If you use this software 14 | // in a product, an acknowledgment in the product documentation would be 15 | // appreciated but is not required. 16 | // 2. Altered source versions must be plainly marked as such, and must not be 17 | // misrepresented as being the original software. 18 | // 3. This notice may not be removed or altered from any source 19 | // distribution. 20 | // 21 | 22 | #import <Foundation/Foundation.h> 23 | 24 | // 25 | // DirectoryLocations is a set of global methods for finding the fixed location 26 | // directoriess. 27 | // 28 | @interface NSFileManager (DirectoryLocations) 29 | 30 | - (NSString *)findOrCreateDirectory:(NSSearchPathDirectory)searchPathDirectory 31 | inDomain:(NSSearchPathDomainMask)domainMask 32 | appendPathComponent:(NSString *)appendComponent 33 | error:(NSError **)errorOut; 34 | 35 | - (NSString *)applicationSupportDirectory; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import <Cocoa/Cocoa.h> 24 | 25 | NSString *FMTGetBundleResourcePath(NSBundle *bundle, NSString *resourceName, NSString *resourceType); 26 | NSString *FMTGetMainBundleResourcePath(NSString *resourceName, NSString *resourceType); 27 | 28 | NSURL *FMTGetBundleResourceURL(NSBundle *bundle, NSString *resourceName, NSString *resourceType); 29 | NSURL *FMTGetMainBundleResourceURL(NSString *resourceName, NSString *resourceType); 30 | 31 | BOOL FMTOpenSystemPreferencePane(NSString *prefPaneId); 32 | 33 | BOOL FMTIsProcessWithBundleIdRunning(NSString *bundleId); 34 | 35 | NSInteger FMTNumberOfRunningProcessesWithBundleId(NSString *bundleId); 36 | 37 | NSError* FMTCreateError(NSString *erroDomain, NSInteger errorCode, NSString *fmt, ...); 38 | NSError* FMTCreateErrorWithCause(NSString *errorDomain, NSInteger errorCode, NSError *cause, NSString *fmt, ...); 39 | 40 | NSDictionary *FMTEncodeForSparkle(NSString *key, NSString *value, NSString *displayKey, NSString *displayValue); -------------------------------------------------------------------------------- /ShiftIt/FMT/FMTUtils.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTUtils.h" 24 | #import "FMTDefines.h" 25 | #import "GTMLogger.h" 26 | 27 | NSString *const kSystemPreferencesAppBundeId = @"com.apple.systempreferences"; 28 | 29 | NSString *FMTGetBundleResourcePath(NSBundle *bundle, NSString *resourceName, NSString *resourceType) { 30 | FMTAssertNotNil(bundle); 31 | FMTAssertNotNil(resourceName); 32 | FMTAssertNotNil(resourceType); 33 | 34 | NSString *path = [bundle pathForResource:resourceName ofType:resourceType]; 35 | if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 36 | return path; 37 | } else { 38 | return nil; 39 | } 40 | } 41 | 42 | NSString *FMTGetMainBundleResourcePath(NSString *resourceName, NSString *resourceType) { 43 | return FMTGetBundleResourcePath([NSBundle mainBundle], resourceName, resourceType); 44 | } 45 | 46 | NSURL *FMTGetBundleResourceURL(NSBundle *bundle, NSString *resourceName, NSString *resourceType) { 47 | NSString *path = FMTGetBundleResourcePath(bundle, resourceName, resourceType); 48 | 49 | if (path) { 50 | return [NSURL fileURLWithPath:path]; 51 | } else { 52 | return nil; 53 | } 54 | } 55 | 56 | NSURL *FMTGetMainBundleResourceURL(NSString *resourceName, NSString *resourceType) { 57 | return FMTGetBundleResourceURL([NSBundle mainBundle], resourceName, resourceType); 58 | } 59 | 60 | BOOL FMTOpenSystemPreferencePane(NSString *prefPaneId) { 61 | FMTAssertNotNil(prefPaneId); 62 | 63 | NSString *source = FMTStr(@"tell application \"System Preferences\"\n" 64 | "activate\n" 65 | "set current pane to pane \"%@\"\n" 66 | "end tell\n", prefPaneId); 67 | 68 | NSAppleScript *script = [[NSAppleScript alloc] initWithSource:source]; 69 | 70 | NSDictionary *dict = nil; 71 | NSAppleEventDescriptor *event = [script executeAndReturnError:&dict]; 72 | 73 | if (dict) { 74 | GTMLoggerError(@"Compilation of AppleScript: %@ failed: %@", source, dict); 75 | } 76 | 77 | [script release]; 78 | 79 | return event != nil; 80 | } 81 | 82 | NSInteger FMTNumberOfRunningProcessesWithBundleId(NSString *bundleId) { 83 | FMTAssertNotNil(bundleId); 84 | 85 | NSInteger n = 0; 86 | ProcessSerialNumber PSN = { kNoProcess, kNoProcess }; 87 | 88 | while (GetNextProcess(&PSN) == noErr) { 89 | NSDictionary *infoDict = (NSDictionary *)ProcessInformationCopyDictionary(&PSN, kProcessDictionaryIncludeAllInformationMask); 90 | if(infoDict) { 91 | NSString *processBundleID = [infoDict objectForKey:(NSString *)kCFBundleIdentifierKey]; 92 | if (processBundleID && [processBundleID isEqualToString:bundleId]) { 93 | n++; 94 | } 95 | 96 | CFMakeCollectable(infoDict); 97 | [infoDict release]; 98 | } 99 | } 100 | 101 | return n; 102 | } 103 | 104 | BOOL FMTIsProcessWithBundleIdRunning(NSString *bundleId) { 105 | return FMTNumberOfRunningProcessesWithBundleId(bundleId) >= 1; 106 | } 107 | 108 | NSDictionary *FMTEncodeForSparkle(NSString *key, NSString *value, NSString *displayKey, NSString *displayValue) { 109 | NSMutableDictionary *d = [NSMutableDictionary dictionary]; 110 | 111 | [d setObject:key forKey:@"key"]; 112 | [d setObject:value forKey:@"value"]; 113 | [d setObject:displayKey forKey:@"displayKey"]; 114 | [d setObject:displayValue forKey:@"displayValue"]; 115 | 116 | return [NSDictionary dictionaryWithDictionary:d]; 117 | } -------------------------------------------------------------------------------- /ShiftIt/FMT/Readme.md: -------------------------------------------------------------------------------- 1 | FMT 2 | ======== 3 | 4 | *Fikovnik's Mac Toolkit* 5 | 6 | A collection of utility classes and functions that I share across project. Some documentation is in the header files, but most of the time the names of the methods and functions are pretty self-explanatory. Here's the list of current functionalities: 7 | 8 | * `FMTHotkeys*` - manager and hot key class that allows for simple management of global hotkeys, compatible with the [ShortcutRecorder][1] 9 | * `FMTLoginItems` - manage the list of system/session wide login items 10 | * `FMTDefines` - basic assert and log macros (inspired by the [google-mac-toolbox][2]) 11 | * `FMTUtils` - some additional utility functions that might be handy 12 | 13 | Acknowledgement 14 | --------------- 15 | 16 | Some of the code has been inspired by [google-mac-toolbox][3] and [Growl project][4]. 17 | 18 | License (MIT) 19 | ------------- 20 | 21 | > Copyright (c) 2010 Filip Křikava 22 | > 23 | > Permission is hereby granted, free of charge, to any 24 | > person obtaining a copy of this software and associated 25 | > documentation files (the "Software"), to deal in the 26 | > Software without restriction, including without limitation 27 | > the rights to use, copy, modify, merge, publish, 28 | > distribute, sublicense, and/or sell copies of the 29 | > Software, and to permit persons to whom the Software is 30 | > furnished to do so, subject to the following conditions: 31 | > 32 | > The above copyright notice and this permission notice 33 | > shall be included in all copies or substantial portions of 34 | > the Software. 35 | > 36 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 37 | > KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 38 | > WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 39 | > PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS 40 | > OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 41 | > OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 42 | > OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 43 | > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 44 | 45 | [1]: http://code.google.com/p/shortcutrecorder/ 46 | [2]: http://code.google.com/p/google-toolbox-for-mac/ 47 | [3]: http://code.google.com/p/google-toolbox-for-mac/ 48 | [4]: http://growl.info/ 49 | -------------------------------------------------------------------------------- /ShiftIt/FMTError.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Filip Krikava on 21/05/2014. 3 | // 4 | 5 | #import <Foundation/Foundation.h> 6 | #import "FMT.h" 7 | 8 | NSError* FMTCreateError(NSString *errorDomain, NSInteger errorCode, NSString *fmt, ...); 9 | NSError* FMTCreateErrorWithCause(NSString *errorDomain, NSInteger errorCode, NSError *cause, NSString *fmt, ...); -------------------------------------------------------------------------------- /ShiftIt/FMTError.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Filip Krikava on 21/05/2014. 3 | // 4 | 5 | #import "FMTError.h" 6 | 7 | NSError* FMTCreateErrorWithCause_(NSString *errorDomain, NSInteger errorCode, NSError *cause, NSString *fmt, va_list args); 8 | 9 | inline NSError* FMTCreateError(NSString *errorDomain, NSInteger errorCode, NSString *fmt, ...) { 10 | NSError *error; 11 | va_list args; 12 | 13 | va_start(args, fmt); 14 | error = FMTCreateErrorWithCause_(errorDomain, errorCode, nil, fmt, args); 15 | va_end(args); 16 | 17 | return error; 18 | } 19 | 20 | inline NSError* FMTCreateErrorWithCause(NSString *errorDomain, NSInteger errorCode, NSError *cause, NSString *fmt, ...) { 21 | NSError *error; 22 | va_list args; 23 | 24 | va_start(args, fmt); 25 | error = FMTCreateErrorWithCause_(errorDomain, errorCode, cause, fmt, args); 26 | va_end(args); 27 | 28 | return error; 29 | } 30 | 31 | inline NSError* FMTCreateErrorWithCause_(NSString *errorDomain, NSInteger errorCode, NSError *cause, NSString *fmt, va_list args) { 32 | FMTAssertNotNil(fmt); 33 | 34 | NSString *msg = [[[NSString alloc] initWithFormat:fmt arguments:args] autorelease]; 35 | 36 | NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithCapacity:1]; 37 | [userInfo setObject:msg forKey:NSLocalizedDescriptionKey]; 38 | if (cause != nil) { 39 | [userInfo setObject:cause forKey:NSUnderlyingErrorKey]; 40 | } 41 | 42 | NSError *error = [NSError errorWithDomain:errorDomain code:errorCode userInfo:userInfo]; 43 | return error; 44 | } -------------------------------------------------------------------------------- /ShiftIt/FMTGeometry.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | #import <Foundation/Foundation.h> 23 | 24 | typedef struct FMTVect { 25 | CGFloat x; 26 | CGFloat y; 27 | } FMTVect; 28 | 29 | typedef enum { 30 | kLeftDirection = 1 << 0, 31 | kTopDirection = 1 << 1, 32 | kBottomDirection = 1 << 2, 33 | kRightDirection = 1 << 3 34 | } FMTDirection; 35 | 36 | 37 | FMTVect FMTMakeVect(CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2); 38 | 39 | FMTVect FMTMakeVectWithDirection(CGFloat x, CGFloat y, FMTDirection direction); 40 | 41 | FMTVect FMTMakePerpendicularVect(FMTVect v); 42 | 43 | CGFloat FMTDotVect(FMTVect u, FMTVect v); 44 | 45 | CGFloat FMTAbsVect(FMTVect v); 46 | 47 | CGFloat FMTAngleBetweenVects(FMTVect u, FMTVect v); 48 | 49 | FMTDirection FMTDirectionBetweenVects(FMTVect u, FMTVect v); 50 | 51 | CGFloat FMTPointDistanceToLine(NSPoint a, NSPoint b, NSPoint p); 52 | 53 | BOOL FMTIsRectInDirection(NSRect a, NSRect b, FMTDirection direction); -------------------------------------------------------------------------------- /ShiftIt/FMTGeometry.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010-2011 Filip Krikava 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #import "FMTGeometry.h" 24 | #import "FMTDefines.h" 25 | 26 | FMTVect FMTMakeVect(CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2) { 27 | FMTVect v = {x2 - x1, y2 - y1}; 28 | return v; 29 | } 30 | 31 | FMTVect FMTMakeVectWithDirection(CGFloat x, CGFloat y, FMTDirection direction) { 32 | switch (direction) { 33 | case kLeftDirection: 34 | return FMTMakeVect(x, y, x-1, y); 35 | case kTopDirection: 36 | return FMTMakeVect(x, y, x, y+1); 37 | case kBottomDirection: 38 | return FMTMakeVect(x, y, x, y-1); 39 | case kRightDirection: 40 | return FMTMakeVect(x, y, x+1, y); 41 | default: 42 | FMTAssert(NO, @"Unknown direction %d", direction); 43 | } 44 | } 45 | 46 | FMTVect FMTMakePerpendicularVect(FMTVect v) { 47 | FMTVect n = {v.y, - v.x}; 48 | return n; 49 | } 50 | 51 | CGFloat FMTDotVect(FMTVect u, FMTVect v) { 52 | return u.x * v.x + u.y * v.y; 53 | } 54 | 55 | CGFloat FMTAbsVect(FMTVect v) { 56 | return (CGFloat) sqrt(v.x * v.x + v.y * v.y); 57 | } 58 | 59 | CGFloat FMTAngleBetweenVects(FMTVect u, FMTVect v) { 60 | return (CGFloat) (acos(FMTDotVect(u, v) / FMTAbsVect(u) / FMTAbsVect(v)) * 180 / M_PI); 61 | } 62 | 63 | FMTDirection FMTDirectionBetweenVects(FMTVect u, FMTVect v) { 64 | switch ((int)FMTAngleBetweenVects(u, v)) { 65 | case 0: 66 | return kTopDirection; 67 | case 90: 68 | return kRightDirection; 69 | case 180: 70 | return kBottomDirection; 71 | case 270: 72 | return kLeftDirection; 73 | default: 74 | return kLeftDirection; 75 | } 76 | } 77 | 78 | CGFloat FMTPointDistanceToLine(NSPoint a, NSPoint b, NSPoint p) { 79 | FMTVect v = FMTMakeVect(a.x, a.y, b.x, b.y); 80 | FMTVect n = FMTMakePerpendicularVect(v); 81 | FMTVect r = FMTMakeVect(p.x, p.y, a.x, a.y); 82 | 83 | return (CGFloat) fabs(FMTDotVect(r,n)/FMTAbsVect(n)); 84 | } 85 | 86 | BOOL FMTIsRectInDirection(NSRect a, NSRect b, FMTDirection direction) { 87 | switch (direction) { 88 | case kLeftDirection: 89 | return a.origin.x < b.origin.x; 90 | case kTopDirection: 91 | return a.origin.y < b.origin.y; 92 | case kBottomDirection: 93 | return a.origin.y >= b.origin.y + b.size.height; 94 | case kRightDirection: 95 | return a.origin.x >= b.origin.x + b.size.width; 96 | default: 97 | FMTAssert(NO, @"Unknown direction %d", direction); 98 | } 99 | } -------------------------------------------------------------------------------- /ShiftIt/GHUnitTestMain.m: -------------------------------------------------------------------------------- 1 | // 2 | // GHUnitTestMain.m 3 | // GHUnit 4 | // 5 | // Created by Gabriel Handford on 2/22/09. 6 | // Copyright 2009. All rights reserved. 7 | // 8 | // Permission is hereby granted, free of charge, to any person 9 | // obtaining a copy of this software and associated documentation 10 | // files (the "Software"), to deal in the Software without 11 | // restriction, including without limitation the rights to use, 12 | // copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | // copies of the Software, and to permit persons to whom the 14 | // Software is furnished to do so, subject to the following 15 | // conditions: 16 | // 17 | // The above copyright notice and this permission notice shall be 18 | // included in all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | // OTHER DEALINGS IN THE SOFTWARE. 28 | // 29 | 30 | #import <Foundation/Foundation.h> 31 | 32 | #import <GHUnit/GHUnit.h> 33 | #import <GHUnit/GHTestApp.h> 34 | 35 | // Default exception handler 36 | void exceptionHandler(NSException *exception) { 37 | NSLog(@"%@\n%@", [exception reason], GHUStackTraceFromException(exception)); 38 | } 39 | 40 | int main(int argc, char *argv[]) { 41 | 42 | /*! 43 | Default: Set to: 44 | NSDebugEnabled NO "YES" 45 | NSZombieEnabled NO "YES" 46 | NSDeallocateZombies NO "YES" 47 | NSHangOnUncaughtException NO "YES" 48 | 49 | NSEnableAutoreleasePool YES "NO" 50 | NSAutoreleaseFreedObjectCheckEnabled NO "YES" 51 | NSAutoreleaseHighWaterMark 0 non-negative integer 52 | NSAutoreleaseHighWaterResolution 0 non-negative integer 53 | 54 | For info on these varaiables see NSDebug.h; http://theshadow.uw.hu/iPhoneSDKdoc/Foundation.framework/NSDebug.h.html 55 | 56 | For malloc debugging see: http://developer.apple.com/mac/library/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html 57 | */ 58 | NSSetUncaughtExceptionHandler(&exceptionHandler); 59 | 60 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 61 | 62 | // Register any special test case classes 63 | //[[GHTesting sharedInstance] registerClassName:@"GHSpecialTestCase"]; 64 | 65 | int retVal = 0; 66 | // If GHUNIT_CLI is set we are using the command line interface and run the tests 67 | // Otherwise load the GUI app 68 | if (getenv("GHUNIT_CLI")) { 69 | retVal = [GHTestRunner run]; 70 | } else { 71 | // To run all tests (from ENV) 72 | GHTestApp *app = [[GHTestApp alloc] init]; 73 | // To run a different test suite: 74 | //GHTestSuite *suite = [GHTestSuite suiteWithTestFilter:@"GHSlowTest,GHAsyncTestCaseTest"]; 75 | //GHTestApp *app = [[GHTestApp alloc] initWithSuite:suite]; 76 | // Or set global: 77 | //GHUnitTest = @"GHSlowTest"; 78 | [NSApp run]; 79 | [app release]; 80 | } 81 | [pool release]; 82 | return retVal; 83 | } 84 | -------------------------------------------------------------------------------- /ShiftIt/GTM/GTMGarbageCollection.h: -------------------------------------------------------------------------------- 1 | // 2 | // GTMGarbageCollection.h 3 | // 4 | // Copyright 2007-2008 Google Inc. 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not 7 | // use this file except in compliance with the License. You may obtain a copy 8 | // of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | // License for the specific language governing permissions and limitations under 16 | // the License. 17 | // 18 | 19 | #import <Foundation/Foundation.h> 20 | 21 | #import "GTMDefines.h" 22 | 23 | // This allows us to easily move our code from GC to non GC. 24 | // They are no-ops unless we are require Leopard or above. 25 | // See 26 | // http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/index.html 27 | // and 28 | // http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/Articles/gcCoreFoundation.html#//apple_ref/doc/uid/TP40006687-SW1 29 | // for details. 30 | 31 | #if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) && !GTM_IPHONE_SDK 32 | // General use would be to call this through GTMCFAutorelease 33 | // but there may be a reason the you want to make something collectable 34 | // but not autoreleased, especially in pure GC code where you don't 35 | // want to bother with the nop autorelease. Done as a define instead of an 36 | // inline so that tools like Clang's scan-build don't report code as leaking. 37 | #define GTMNSMakeCollectable(cf) ((id)NSMakeCollectable(cf)) 38 | 39 | // GTMNSMakeUncollectable is for global maps, etc. that we don't 40 | // want released ever. You should still retain these in non-gc code. 41 | GTM_INLINE void GTMNSMakeUncollectable(id object) { 42 | [[NSGarbageCollector defaultCollector] disableCollectorForPointer:object]; 43 | } 44 | 45 | // Hopefully no code really needs this, but GTMIsGarbageCollectionEnabled is 46 | // a common way to check at runtime if GC is on. 47 | // There are some places where GC doesn't work w/ things w/in Apple's 48 | // frameworks, so this is here so GTM unittests and detect it, and not run 49 | // individual tests to work around bugs in Apple's frameworks. 50 | GTM_INLINE BOOL GTMIsGarbageCollectionEnabled(void) { 51 | return ([NSGarbageCollector defaultCollector] != nil); 52 | } 53 | 54 | #else 55 | 56 | #define GTMNSMakeCollectable(cf) ((id)(cf)) 57 | 58 | GTM_INLINE void GTMNSMakeUncollectable(id object) { 59 | } 60 | 61 | GTM_INLINE BOOL GTMIsGarbageCollectionEnabled(void) { 62 | return NO; 63 | } 64 | 65 | #endif 66 | 67 | // GTMCFAutorelease makes a CF object collectable in GC mode, or adds it 68 | // to the autorelease pool in non-GC mode. Either way it is taken care 69 | // of. Done as a define instead of an inline so that tools like Clang's 70 | // scan-build don't report code as leaking. 71 | #define GTMCFAutorelease(cf) ([GTMNSMakeCollectable(cf) autorelease]) 72 | 73 | -------------------------------------------------------------------------------- /ShiftIt/PreferencesWindowController.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | 21 | #import <Cocoa/Cocoa.h> 22 | #import <ShortcutRecorder/ShortcutRecorder.h> 23 | 24 | @interface PreferencesWindowController : NSWindowController { 25 | @private 26 | NSString *selectedTabIdentifier_; 27 | NSString *debugLoggingFile_; 28 | 29 | IBOutlet NSTabView *tabView_; 30 | IBOutlet NSTextField *versionLabel_; 31 | 32 | IBOutlet NSButtonCell *showMenuIcon; 33 | 34 | IBOutlet NSTableView *hotkeysView_; 35 | IBOutlet NSTableColumn *hotkeyLabelColumn_; 36 | IBOutlet NSTableColumn *hotkeyColumn_; 37 | } 38 | 39 | @property BOOL shouldStartAtLogin; 40 | @property BOOL debugLogging; 41 | @property(copy) NSString *debugLoggingFile; 42 | 43 | -(void)updateRecorderCombos; 44 | -(IBAction)showPreferences:(id)sender; 45 | -(IBAction)revertDefaults:(id)sender; 46 | -(IBAction)reportIssue:(id)sender; 47 | -(IBAction)revealLogFileInFinder:(id)sender; 48 | -(IBAction)showMenuBarIconAction:(id)sender; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /ShiftIt/SIActionDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import "SIWindowContext.h" 21 | 22 | @protocol SIActionDelegate <NSObject> 23 | 24 | @required 25 | - (BOOL) execute:(id<SIWindowContext>)windowContext error:(NSError **)error; 26 | 27 | @end -------------------------------------------------------------------------------- /ShiftIt/SIAdjacentRectangles.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <Foundation/Foundation.h> 21 | #import "SIDefines.h" 22 | #import "FMT/FMT.h" 23 | 24 | @interface SIValueRect : NSObject 25 | 26 | @property(readonly) NSRect rect; 27 | @property(readonly) id value; 28 | 29 | - (id)initWithRect:(NSRect)rect value:(id)value; 30 | 31 | + (id)rect:(NSRect)rect withValue:(id)value; 32 | 33 | @end 34 | 35 | @interface SIDistanceValueRect : NSObject 36 | 37 | @property(readonly) CGFloat distance; 38 | @property(readonly) NSRect rect; 39 | @property(readonly) id value; 40 | 41 | - (id)initWithDistance:(CGFloat)distance rect:(NSRect)rect value:(id)value; 42 | 43 | @end 44 | 45 | @interface SIAdjacentRectangles : NSObject 46 | 47 | - (id)initWithRectValues:(NSArray *)rectValues; 48 | 49 | - (NSArray *)rectanglesInDirection:(FMTDirection)direction fromRect:(NSRect)rect; 50 | 51 | - (NSArray *)rectanglesInDirection:(FMTDirection)direction fromValue:(id)value; 52 | 53 | - (NSArray *)buildDirectionalPath:(const FMTDirection *)directions fromValue:(id)value; 54 | 55 | + (id)adjacentRect:(NSArray *)rectValues; 56 | 57 | @end -------------------------------------------------------------------------------- /ShiftIt/SIDefines.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import "SIScreen.h" 21 | 22 | // FCE prototypes 23 | extern short GetMBarHeight(void); 24 | 25 | extern NSString *const SIErrorDomain; 26 | extern NSInteger const kShiftItManagerFailureErrorCode; 27 | // TODO: change this to be the AX error specific 28 | extern NSInteger const kWindowManagerFailureErrorCode; 29 | extern NSInteger const kShiftItActionFailureErrorCode; 30 | 31 | extern NSString *const kMarginsEnabledPrefKey; 32 | extern NSString *const kLeftMarginPrefKey; 33 | extern NSString *const kTopMarginPrefKey; 34 | extern NSString *const kBottomMarginPrefKey; 35 | extern NSString *const kRightMarginPrefKey; 36 | 37 | #define POINT_STR(point) FMTStr(@"[%.1f %.1f]", (point).x, (point).y) 38 | #define SIZE_STR(size) FMTStr(@"[%.1f x %.1f]", (size).width, (size).height) 39 | #define RECT_STR(rect) FMTStr(@"[%.1f %.1f] [%.1f %.1f] [%.1f x %.1f]", (rect).origin.x, (rect).origin.y, (rect).origin.x+(rect).size.width, (rect).origin.y+(rect).size.height, (rect).size.width, (rect).size.height) 40 | #define COCOA_TO_SCREEN_COORDINATES(rect) (rect).origin.y = [[NSScreen primaryScreen] frame].size.height - (rect).size.height - (rect).origin.y 41 | 42 | #define SICreateError(errorCode, fmt, ...) FMTCreateError(SIErrorDomain, errorCode, fmt, ##__VA_ARGS__) 43 | #define SICreateErrorWithCause(errorCode, cause, fmt, ...) FMTCreateErrorWithCause(SIErrorDomain, errorCode, cause, fmt, ##__VA_ARGS__) 44 | 45 | static inline NSRect SIGCToScreenOrigin(NSRect rect, SIScreen *screen) { 46 | NSRect r = rect; 47 | r.origin.x -= [screen visibleRect].origin.x; 48 | r.origin.y -= [screen visibleRect].origin.y; 49 | return r; 50 | } 51 | 52 | static inline NSRect SIScreenToGCOrigin(NSRect rect, SIScreen *screen) { 53 | NSRect r = rect; 54 | r.origin.x += [screen visibleRect].origin.x; 55 | r.origin.y += [screen visibleRect].origin.y; 56 | return r; 57 | } 58 | 59 | // TODO: move to FMT 60 | static inline double SIDistanceBetweenPoints(NSPoint r, NSPoint s) { 61 | return sqrt((r.x-s.x)*(r.x-s.x) +(r.y-s.y)*(r.y-s.y)); 62 | } 63 | 64 | // TODO: move to FMT 65 | static inline double SIArea(NSSize s) { 66 | return s.width * s.height; 67 | } 68 | 69 | extern void GetAnchorMargin(int *leftMargin, int *topMargin, int *bottomMargin, int *rightMargin); -------------------------------------------------------------------------------- /ShiftIt/SIScreen.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <Foundation/Foundation.h> 21 | 22 | @interface SIScreen : NSObject 23 | 24 | @property (readonly) NSSize size; 25 | @property (readonly) NSRect visibleRect; 26 | @property (readonly) NSRect rect; 27 | @property (readonly) BOOL primary; 28 | 29 | + (SIScreen *) primaryScreen; 30 | + (NSArray *) screens; 31 | + (SIScreen *) screenFromNSScreen:(NSScreen *)screen; 32 | + (SIScreen *) screenForWindowGeometry:(NSRect)geometry; 33 | 34 | - (id) initWithNSScreen:(NSScreen *)screen; 35 | - (SIScreen *) previousScreen; 36 | - (SIScreen *) nextScreen; 37 | - (BOOL)isEqualToScreen:(SIScreen *)screen; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /ShiftIt/SIWindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import "SIScreen.h" 21 | 22 | @protocol SIWindow <NSObject> 23 | 24 | @required 25 | 26 | /** 27 | * @param geometry a pointer to a NSRect where the current geometry of a window will be stored. It can be nil in which case no information will be stored. 28 | * @param screen a pointer to a SIScreen where the current screen of a window will be stored. It can be nil in which case no information will be stored. 29 | * @param shall there be a problem obtaining the window geometry information the cause will be stored in this pointer if it is not nil. 30 | * 31 | * @returns YES on success, NO otherwise while setting the error parameter 32 | */ 33 | - (BOOL) getGeometry:(NSRect *)geometry screen:(SIScreen **)screen error:(NSError **)error; 34 | - (BOOL) setGeometry:(NSRect)geometry screen:(SIScreen *)screen error:(NSError **)error; 35 | - (BOOL) canMove:(BOOL *)flag error:(NSError **)error; 36 | - (BOOL) canResize:(BOOL *)flag error:(NSError **)error; 37 | - (BOOL) canZoom:(BOOL *)flag error:(NSError **)error; 38 | - (BOOL) canEnterFullScreen:(BOOL *)flag error:(NSError **)error; 39 | 40 | @optional 41 | - (BOOL) getWindowRect:(NSRect *)windowRect screen:(SIScreen **)screen drawersRect:(NSRect *)drawersRect error:(NSError **)error; 42 | - (BOOL) getFullScreen:(BOOL *)flag error:(NSError **)error; 43 | - (BOOL) toggleFullScreen:(NSError **)error; 44 | - (BOOL) toggleZoom:(NSError **)error; 45 | 46 | @end -------------------------------------------------------------------------------- /ShiftIt/SIWindowContext.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import "SIWindow.h" 21 | 22 | typedef struct _Margins { 23 | int left; 24 | int top; 25 | int bottom; 26 | int right; 27 | } Margins; 28 | 29 | @protocol SIWindowContext <NSObject> 30 | 31 | @required 32 | - (BOOL) getFocusedWindow:(id<SIWindow> *)window error:(NSError **)error; 33 | 34 | - (BOOL) anchorWindow:(id <SIWindow>)window to:(int)anchor error:(NSError **)error; 35 | 36 | - (void) getAnchorMargins:(Margins *)margins; 37 | @end -------------------------------------------------------------------------------- /ShiftIt/SIWindowDriver.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <Foundation/Foundation.h> 21 | #import "SIWindow.h" 22 | #import "SIWindowInfo.h" 23 | 24 | @protocol SIWindowDriver <NSObject> 25 | 26 | @required 27 | - (BOOL) findFocusedWindow:(id<SIWindow> *)window withInfo:(SIWindowInfo *)windowInfo error:(NSError **)error; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /ShiftIt/SIWindowInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | @interface SIWindowInfo : NSObject { 21 | @private 22 | pid_t pid_; 23 | CGWindowID wid_; 24 | NSRect rect_; 25 | } 26 | 27 | @property (readonly) pid_t pid; 28 | @property (readonly) CGWindowID wid; 29 | @property (readonly) NSRect rect; 30 | 31 | + (SIWindowInfo *) windowInfoFromCGWindowInfoDictionary:(NSDictionary *)windowInfo; 32 | 33 | @end -------------------------------------------------------------------------------- /ShiftIt/SIWindowManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | 21 | 22 | #import <Foundation/Foundation.h> 23 | #import "ShiftIt.h" 24 | 25 | @interface SIWindowManager : NSObject { 26 | @private 27 | NSArray *drivers_; 28 | } 29 | 30 | - (id) initWithDrivers:(NSArray *)drivers; 31 | - (BOOL) executeAction:(id<SIActionDelegate>)action error:(NSError **)error; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt Tests/SIAdjacentRectanglesTest.m: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <SenTestingKit/SenTestingKit.h> 21 | #import "SIAdjacentRectangles.h" 22 | 23 | @interface SIAdjacentRectanglesTest : SenTestCase 24 | @end 25 | 26 | @implementation SIAdjacentRectanglesTest 27 | 28 | - (void)setUp { 29 | [super setUp]; 30 | } 31 | 32 | - (void)tearDown { 33 | [super tearDown]; 34 | } 35 | 36 | - (void)testTwoRectangles { 37 | NSRect a = NSMakeRect(5, 5, 5, 5); 38 | NSRect b = NSMakeRect(11, 6, 3, 3); 39 | NSRect c = NSMakeRect(11, 15, 3, 3); 40 | NSRect d = NSMakeRect(14, 11, 3, 3); 41 | NSRect e = NSMakeRect(14, 6, 3, 3); 42 | NSRect f = NSMakeRect(6, 13, 3, 3); 43 | NSRect g = NSMakeRect(2, 13, 3, 3); 44 | NSRect h = NSMakeRect(4, 17, 3, 3); 45 | NSRect i = NSMakeRect(1, 8, 3, 3); 46 | NSRect j = NSMakeRect(1, 4, 3, 3); 47 | NSRect k = NSMakeRect(6, 1, 3, 3); 48 | 49 | NSArray *rectValues = [NSArray arrayWithObjects: 50 | [SIValueRect rect:a withValue:@"A"], 51 | [SIValueRect rect:b withValue:@"B"], 52 | [SIValueRect rect:c withValue:@"C"], 53 | [SIValueRect rect:d withValue:@"D"], 54 | [SIValueRect rect:e withValue:@"E"], 55 | [SIValueRect rect:f withValue:@"F"], 56 | [SIValueRect rect:g withValue:@"G"], 57 | [SIValueRect rect:h withValue:@"H"], 58 | [SIValueRect rect:i withValue:@"I"], 59 | [SIValueRect rect:j withValue:@"J"], 60 | [SIValueRect rect:k withValue:@"K"], 61 | nil 62 | ]; 63 | 64 | SIAdjacentRectangles *adjr = [SIAdjacentRectangles adjacentRect:rectValues]; 65 | FMTDirection directions[] = {kRightDirection, kBottomDirection, kLeftDirection, kTopDirection}; 66 | NSArray *path = [adjr buildDirectionalPath:directions fromValue:@"A"]; 67 | 68 | STAssertEquals((NSUInteger)11, [path count], @"There is only one rectangle in right direction from A"); 69 | NSLog(@"%@",path); 70 | } 71 | 72 | - (void)testDirectionalPath { 73 | NSRect a = NSMakeRect(5, 5, 5, 5); 74 | NSRect b = NSMakeRect(11, 6, 3, 3); 75 | 76 | NSArray *rectValues = [NSArray arrayWithObjects: 77 | [SIValueRect rect:a withValue:@"A"], 78 | [SIValueRect rect:b withValue:@"B"], 79 | nil 80 | ]; 81 | 82 | SIAdjacentRectangles *adjr = [SIAdjacentRectangles adjacentRect:rectValues]; 83 | 84 | } 85 | 86 | @end 87 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt Tests/ShiftIt Tests-Info.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>CFBundleDevelopmentRegion</key> 6 | <string>en</string> 7 | <key>CFBundleExecutable</key> 8 | <string>${EXECUTABLE_NAME}</string> 9 | <key>CFBundleIdentifier</key> 10 | <string>org.shiftitapp.shiftit.${PRODUCT_NAME:rfc1034identifier}</string> 11 | <key>CFBundleInfoDictionaryVersion</key> 12 | <string>6.0</string> 13 | <key>CFBundlePackageType</key> 14 | <string>BNDL</string> 15 | <key>CFBundleShortVersionString</key> 16 | <string>1.0</string> 17 | <key>CFBundleSignature</key> 18 | <string>????</string> 19 | <key>CFBundleVersion</key> 20 | <string>1</string> 21 | </dict> 22 | </plist> 23 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt Tests/ShiftIt Tests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'ShiftIt Tests' target in the 'ShiftIt Tests' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import <Cocoa/Cocoa.h> 7 | #endif 8 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt Tests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt Tests/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt-Info.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>CFBundleDevelopmentRegion</key> 6 | <string>English</string> 7 | <key>CFBundleExecutable</key> 8 | <string>${EXECUTABLE_NAME}</string> 9 | <key>CFBundleIconFile</key> 10 | <string>ShiftIt.icns</string> 11 | <key>CFBundleIdentifier</key> 12 | <string>org.shiftitapp.${PRODUCT_NAME:rfc1034identifier}</string> 13 | <key>CFBundleInfoDictionaryVersion</key> 14 | <string>6.0</string> 15 | <key>CFBundleName</key> 16 | <string>${PRODUCT_NAME}</string> 17 | <key>CFBundlePackageType</key> 18 | <string>APPL</string> 19 | <key>CFBundleShortVersionString</key> 20 | <string>1.6.6</string> 21 | <key>CFBundleSignature</key> 22 | <string>????</string> 23 | <key>CFBundleVersion</key> 24 | <string>1.6.6</string> 25 | <key>LSApplicationCategoryType</key> 26 | <string>public.app-category.utilities</string> 27 | <key>LSMinimumSystemVersion</key> 28 | <string>${MACOSX_DEPLOYMENT_TARGET}</string> 29 | <key>LSUIElement</key> 30 | <true/> 31 | <key>NSMainNibFile</key> 32 | <string>MainMenu</string> 33 | <key>NSPrincipalClass</key> 34 | <string>NSApplication</string> 35 | <key>SUEnableSystemProfiling</key> 36 | <true/> 37 | <key>SUFeedURL</key> 38 | <string>https://raw.github.com/fikovnik/ShiftIt/master/release/appcast.xml</string> 39 | <key>SUPublicDSAKeyFile</key> 40 | <string>dsa_pub.pem</string> 41 | </dict> 42 | </plist> 43 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import "FMTUtils.h" 21 | #import "FMTDefines.h" 22 | #import "FMTNSArray+Functional.h" 23 | #import "FMTNSError+Extras.h" 24 | 25 | #import "SIActionDelegate.h" 26 | #import "SIAdjacentRectangles.h" 27 | #import "SIDefines.h" 28 | #import "SIScreen.h" 29 | #import "SIWindow.h" 30 | #import "SIWindowContext.h" 31 | #import "SIWindowDriver.h" 32 | #import "SIWindowInfo.h" 33 | #import "SIWindowManager.h" 34 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShiftIt.icns -------------------------------------------------------------------------------- /ShiftIt/ShiftIt.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <Workspace 3 | version = "1.0"> 4 | <FileRef 5 | location = "self:ShiftIt.xcodeproj"> 6 | </FileRef> 7 | </Workspace> 8 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt.xcodeproj/xcshareddata/xcschemes/FMT Tests.xcscheme: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <Scheme 3 | LastUpgradeVersion = "0630" 4 | version = "1.3"> 5 | <BuildAction 6 | parallelizeBuildables = "YES" 7 | buildImplicitDependencies = "YES"> 8 | <BuildActionEntries> 9 | <BuildActionEntry 10 | buildForTesting = "YES" 11 | buildForRunning = "YES" 12 | buildForProfiling = "YES" 13 | buildForArchiving = "YES" 14 | buildForAnalyzing = "YES"> 15 | <BuildableReference 16 | BuildableIdentifier = "primary" 17 | BlueprintIdentifier = "2717BEAA14994C120012EF87" 18 | BuildableName = "FMT Tests.octest" 19 | BlueprintName = "FMT Tests" 20 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 21 | </BuildableReference> 22 | </BuildActionEntry> 23 | </BuildActionEntries> 24 | </BuildAction> 25 | <TestAction 26 | selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" 27 | selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" 28 | shouldUseLaunchSchemeArgsEnv = "YES" 29 | buildConfiguration = "Debug"> 30 | <Testables> 31 | <TestableReference 32 | skipped = "NO"> 33 | <BuildableReference 34 | BuildableIdentifier = "primary" 35 | BlueprintIdentifier = "2717BEAA14994C120012EF87" 36 | BuildableName = "FMT Tests.octest" 37 | BlueprintName = "FMT Tests" 38 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 39 | </BuildableReference> 40 | </TestableReference> 41 | </Testables> 42 | </TestAction> 43 | <LaunchAction 44 | selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" 45 | selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" 46 | launchStyle = "0" 47 | useCustomWorkingDirectory = "NO" 48 | buildConfiguration = "Debug" 49 | ignoresPersistentStateOnLaunch = "NO" 50 | debugDocumentVersioning = "YES" 51 | allowLocationSimulation = "YES"> 52 | <MacroExpansion> 53 | <BuildableReference 54 | BuildableIdentifier = "primary" 55 | BlueprintIdentifier = "2717BEAA14994C120012EF87" 56 | BuildableName = "FMT Tests.octest" 57 | BlueprintName = "FMT Tests" 58 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 59 | </BuildableReference> 60 | </MacroExpansion> 61 | <AdditionalOptions> 62 | </AdditionalOptions> 63 | </LaunchAction> 64 | <ProfileAction 65 | shouldUseLaunchSchemeArgsEnv = "YES" 66 | savedToolIdentifier = "" 67 | useCustomWorkingDirectory = "NO" 68 | buildConfiguration = "Release" 69 | debugDocumentVersioning = "YES"> 70 | </ProfileAction> 71 | <AnalyzeAction 72 | buildConfiguration = "Debug"> 73 | </AnalyzeAction> 74 | <ArchiveAction 75 | buildConfiguration = "Release" 76 | revealArchiveInOrganizer = "YES"> 77 | </ArchiveAction> 78 | </Scheme> 79 | -------------------------------------------------------------------------------- /ShiftIt/ShiftIt.xcodeproj/xcshareddata/xcschemes/ShiftIt NoX11.xcscheme: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <Scheme 3 | LastUpgradeVersion = "0630" 4 | version = "1.3"> 5 | <BuildAction 6 | parallelizeBuildables = "YES" 7 | buildImplicitDependencies = "YES"> 8 | <BuildActionEntries> 9 | <BuildActionEntry 10 | buildForTesting = "YES" 11 | buildForRunning = "YES" 12 | buildForProfiling = "YES" 13 | buildForArchiving = "YES" 14 | buildForAnalyzing = "YES"> 15 | <BuildableReference 16 | BuildableIdentifier = "primary" 17 | BlueprintIdentifier = "27160C4816C939FF002DA475" 18 | BuildableName = "ShiftIt.app" 19 | BlueprintName = "ShiftIt NoX11" 20 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 21 | </BuildableReference> 22 | </BuildActionEntry> 23 | </BuildActionEntries> 24 | </BuildAction> 25 | <TestAction 26 | selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" 27 | selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" 28 | shouldUseLaunchSchemeArgsEnv = "YES" 29 | buildConfiguration = "Debug"> 30 | <Testables> 31 | </Testables> 32 | <MacroExpansion> 33 | <BuildableReference 34 | BuildableIdentifier = "primary" 35 | BlueprintIdentifier = "27160C4816C939FF002DA475" 36 | BuildableName = "ShiftIt.app" 37 | BlueprintName = "ShiftIt NoX11" 38 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 39 | </BuildableReference> 40 | </MacroExpansion> 41 | </TestAction> 42 | <LaunchAction 43 | selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" 44 | selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" 45 | launchStyle = "0" 46 | useCustomWorkingDirectory = "NO" 47 | buildConfiguration = "Debug" 48 | ignoresPersistentStateOnLaunch = "NO" 49 | debugDocumentVersioning = "YES" 50 | allowLocationSimulation = "YES"> 51 | <BuildableProductRunnable 52 | runnableDebuggingMode = "0"> 53 | <BuildableReference 54 | BuildableIdentifier = "primary" 55 | BlueprintIdentifier = "27160C4816C939FF002DA475" 56 | BuildableName = "ShiftIt.app" 57 | BlueprintName = "ShiftIt NoX11" 58 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 59 | </BuildableReference> 60 | </BuildableProductRunnable> 61 | <AdditionalOptions> 62 | </AdditionalOptions> 63 | </LaunchAction> 64 | <ProfileAction 65 | shouldUseLaunchSchemeArgsEnv = "YES" 66 | savedToolIdentifier = "" 67 | useCustomWorkingDirectory = "NO" 68 | buildConfiguration = "Release" 69 | debugDocumentVersioning = "YES"> 70 | <BuildableProductRunnable 71 | runnableDebuggingMode = "0"> 72 | <BuildableReference 73 | BuildableIdentifier = "primary" 74 | BlueprintIdentifier = "27160C4816C939FF002DA475" 75 | BuildableName = "ShiftIt.app" 76 | BlueprintName = "ShiftIt NoX11" 77 | ReferencedContainer = "container:ShiftIt.xcodeproj"> 78 | </BuildableReference> 79 | </BuildableProductRunnable> 80 | </ProfileAction> 81 | <AnalyzeAction 82 | buildConfiguration = "Debug"> 83 | </AnalyzeAction> 84 | <ArchiveAction 85 | buildConfiguration = "Release" 86 | revealArchiveInOrganizer = "YES"> 87 | </ArchiveAction> 88 | </Scheme> 89 | -------------------------------------------------------------------------------- /ShiftIt/ShiftItApp.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import "FMT.h" 21 | #import "ShiftIt.h" 22 | 23 | extern NSString *const kShiftItAppBundleId; 24 | 25 | // indexed using the ShiftItAction identifier 26 | extern NSDictionary *allShiftActions; 27 | 28 | extern NSString *const kShiftItUserDefaults; 29 | 30 | extern NSString *const kKeyCodePrefKeySuffix; 31 | extern NSString *const kModifiersPrefKeySuffix; 32 | 33 | // preferences keys 34 | extern NSString *const kHasStartedBeforePrefKey; 35 | extern NSString *const kShowMenuPrefKey; 36 | extern NSString *const kSizeDeltaTypePrefKey; 37 | extern NSString *const kFixedSizeWidthDeltaPrefKey; 38 | extern NSString *const kFixedSizeHeightDeltaPrefKey; 39 | extern NSString *const kWindowSizeDeltaPrefKey; 40 | extern NSString *const kScreenSizeDeltaPrefKey; 41 | extern NSString *const kAXIncludeDrawersPrefKey; 42 | extern NSString *const kAXDriverConvergePrefKey; 43 | extern NSString *const kMutipleActionsCycleWindowSizes; 44 | 45 | typedef enum { 46 | kFixedSizeDeltaType = 3001, 47 | kWindowSizeDeltaType = 3002, 48 | kScreenSizeDeltaType = 3003 49 | } SizeDeltaType; 50 | 51 | // distributed notifications 52 | extern NSString *const kShowPreferencesRequestNotification; 53 | 54 | // local notifications 55 | extern NSString *const kDidFinishEditingHotKeysPrefNotification; 56 | extern NSString *const kDidStartEditingHotKeysPrefNotification; 57 | extern NSString *const kHotKeyChangedNotification; 58 | 59 | // kHotKeyChangedNotification userInfo keys 60 | extern NSString *const kActionIdentifierKey; 61 | extern NSString *const kHotKeyKeyCodeKey; 62 | extern NSString *const kHotKeyModifiersKey; 63 | 64 | extern NSInteger const kSIMenuUITagPrefix; 65 | extern NSInteger const kSISRUITagPrefix; 66 | 67 | extern NSString *const kSIIconName; 68 | extern NSString *const kSIIconType; 69 | extern NSString *const kSIMenuItemTitle; 70 | 71 | extern NSString *const SIAErrorDomain; 72 | 73 | @interface ShiftItAction : NSObject { 74 | @private 75 | NSString *identifier_; 76 | NSString *label_; 77 | NSInteger uiTag_; 78 | id<SIActionDelegate> delegate_; 79 | } 80 | 81 | @property (readonly) NSString *identifier; 82 | @property (readonly) NSString *label; 83 | @property (readonly) NSInteger uiTag; 84 | @property (readonly) id<SIActionDelegate> delegate; 85 | 86 | - (id) initWithIdentifier:(NSString *)identifier label:(NSString *)label uiTag:(NSInteger)uiTag delegate:(id <SIActionDelegate>)delegate; 87 | 88 | @end 89 | 90 | #define KeyCodePrefKey(identifier) FMTStr(@"%@%@", (identifier), kKeyCodePrefKeySuffix) 91 | #define ModifiersPrefKey(identifier) FMTStr(@"%@%@", (identifier), kModifiersPrefKeySuffix) 92 | 93 | #define SIACreateError(errorCode, fmt, ...) FMTCreateError(SIAErrorDomain, errorCode, fmt, __VA_ARGS__) 94 | #define SIACreateErrorWithCause(errorCode, cause, fmt, ...) FMTCreateErrorWithCause(SIAErrorDomain, errorCode, cause, fmt, __VA_ARGS__) 95 | -------------------------------------------------------------------------------- /ShiftIt/ShiftItAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | 21 | #import <Cocoa/Cocoa.h> 22 | 23 | @class SIWindowManager; 24 | @class PreferencesWindowController; 25 | @class FMTHotKeyManager; 26 | 27 | @interface ShiftItAppDelegate : NSObject { 28 | IBOutlet NSMenu *statusMenu_; 29 | } 30 | 31 | - (IBAction)showPreferences:(id)sender; 32 | 33 | @end -------------------------------------------------------------------------------- /ShiftIt/ShiftItConstants.h: -------------------------------------------------------------------------------- 1 | NSString *const kShiftItAppBundleId = @"org.shiftitapp.ShiftIt"; -------------------------------------------------------------------------------- /ShiftIt/ShiftItMenuIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShiftItMenuIcon.png -------------------------------------------------------------------------------- /ShiftIt/ShiftIt_Prefix.pch: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Resize windows with Hotkeys 3 | Copyright (C) 2010 Aravind 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #ifdef __OBJC__ 21 | #import <Cocoa/Cocoa.h> 22 | #endif 23 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/ShortcutRecorder: -------------------------------------------------------------------------------- 1 | Versions/Current/ShortcutRecorder -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Headers/SRKeyCodeTransformer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SRKeyCodeTransformer.h 3 | // ShortcutRecorder 4 | // 5 | // Copyright 2006-2007 Contributors. All rights reserved. 6 | // 7 | // License: BSD 8 | // 9 | // Contributors: 10 | // David Dauer 11 | // Jesper 12 | // Jamie Kirkpatrick 13 | 14 | #import <Cocoa/Cocoa.h> 15 | 16 | @interface SRKeyCodeTransformer : NSValueTransformer {} @end 17 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Headers/SRRecorderCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SRRecorderCell.h 3 | // ShortcutRecorder 4 | // 5 | // Copyright 2006-2007 Contributors. All rights reserved. 6 | // 7 | // License: BSD 8 | // 9 | // Contributors: 10 | // David Dauer 11 | // Jesper 12 | // Jamie Kirkpatrick 13 | 14 | #import <Cocoa/Cocoa.h> 15 | #import "SRCommon.h" 16 | 17 | #define SRMinWidth 50 18 | #define SRMaxHeight 22 19 | 20 | #define SRTransitionFPS 30.0f 21 | #define SRTransitionDuration 0.35f 22 | //#define SRTransitionDuration 2.35 23 | #define SRTransitionFrames (SRTransitionFPS*SRTransitionDuration) 24 | #define SRAnimationAxisIsY YES 25 | #define ShortcutRecorderNewStyleDrawing 26 | 27 | #define SRAnimationOffsetRect(X,Y) (SRAnimationAxisIsY ? NSOffsetRect(X,0.0f,-NSHeight(Y)) : NSOffsetRect(X,NSWidth(Y),0.0f)) 28 | 29 | @class SRRecorderControl, SRValidator; 30 | 31 | enum SRRecorderStyle { 32 | SRGradientBorderStyle = 0, 33 | SRGreyStyle = 1 34 | }; 35 | typedef enum SRRecorderStyle SRRecorderStyle; 36 | 37 | @interface SRRecorderCell : NSActionCell <NSCoding> 38 | { 39 | NSGradient *recordingGradient; 40 | NSString *autosaveName; 41 | 42 | BOOL isRecording; 43 | BOOL mouseInsideTrackingArea; 44 | BOOL mouseDown; 45 | 46 | SRRecorderStyle style; 47 | 48 | BOOL isAnimating; 49 | CGFloat transitionProgress; 50 | BOOL isAnimatingNow; 51 | BOOL isAnimatingTowardsRecording; 52 | BOOL comboJustChanged; 53 | 54 | NSTrackingRectTag removeTrackingRectTag; 55 | NSTrackingRectTag snapbackTrackingRectTag; 56 | 57 | KeyCombo keyCombo; 58 | BOOL hasKeyChars; 59 | NSString *keyChars; 60 | NSString *keyCharsIgnoringModifiers; 61 | 62 | NSUInteger allowedFlags; 63 | NSUInteger requiredFlags; 64 | NSUInteger recordingFlags; 65 | 66 | BOOL allowsKeyOnly; 67 | BOOL escapeKeysRecord; 68 | 69 | NSSet *cancelCharacterSet; 70 | 71 | SRValidator *validator; 72 | 73 | IBOutlet id delegate; 74 | BOOL globalHotKeys; 75 | void *hotKeyModeToken; 76 | } 77 | 78 | - (void)resetTrackingRects; 79 | 80 | #pragma mark *** Aesthetics *** 81 | 82 | + (BOOL)styleSupportsAnimation:(SRRecorderStyle)style; 83 | 84 | - (BOOL)animates; 85 | - (void)setAnimates:(BOOL)an; 86 | - (SRRecorderStyle)style; 87 | - (void)setStyle:(SRRecorderStyle)nStyle; 88 | 89 | #pragma mark *** Delegate *** 90 | 91 | - (id)delegate; 92 | - (void)setDelegate:(id)aDelegate; 93 | 94 | #pragma mark *** Responder Control *** 95 | 96 | - (BOOL)becomeFirstResponder; 97 | - (BOOL)resignFirstResponder; 98 | 99 | #pragma mark *** Key Combination Control *** 100 | 101 | - (BOOL)performKeyEquivalent:(NSEvent *)theEvent; 102 | - (void)flagsChanged:(NSEvent *)theEvent; 103 | 104 | - (NSUInteger)allowedFlags; 105 | - (void)setAllowedFlags:(NSUInteger)flags; 106 | 107 | - (NSUInteger)requiredFlags; 108 | - (void)setRequiredFlags:(NSUInteger)flags; 109 | 110 | - (BOOL)allowsKeyOnly; 111 | - (void)setAllowsKeyOnly:(BOOL)nAllowsKeyOnly escapeKeysRecord:(BOOL)nEscapeKeysRecord; 112 | - (BOOL)escapeKeysRecord; 113 | 114 | - (BOOL)canCaptureGlobalHotKeys; 115 | - (void)setCanCaptureGlobalHotKeys:(BOOL)inState; 116 | 117 | - (KeyCombo)keyCombo; 118 | - (void)setKeyCombo:(KeyCombo)aKeyCombo; 119 | 120 | #pragma mark *** Autosave Control *** 121 | 122 | - (NSString *)autosaveName; 123 | - (void)setAutosaveName:(NSString *)aName; 124 | 125 | // Returns the displayed key combination if set 126 | - (NSString *)keyComboString; 127 | 128 | - (NSString *)keyChars; 129 | - (NSString *)keyCharsIgnoringModifiers; 130 | 131 | @end 132 | 133 | // Delegate Methods 134 | @interface NSObject (SRRecorderCellDelegate) 135 | - (BOOL)shortcutRecorderCell:(SRRecorderCell *)aRecorderCell isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason; 136 | - (void)shortcutRecorderCell:(SRRecorderCell *)aRecorderCell keyComboDidChange:(KeyCombo)newCombo; 137 | @end 138 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Headers/SRRecorderControl.h: -------------------------------------------------------------------------------- 1 | // 2 | // SRRecorderControl.h 3 | // ShortcutRecorder 4 | // 5 | // Copyright 2006-2007 Contributors. All rights reserved. 6 | // 7 | // License: BSD 8 | // 9 | // Contributors: 10 | // David Dauer 11 | // Jesper 12 | // Jamie Kirkpatrick 13 | 14 | #import <Cocoa/Cocoa.h> 15 | #import "SRRecorderCell.h" 16 | 17 | @interface SRRecorderControl : NSControl 18 | { 19 | IBOutlet id delegate; 20 | } 21 | 22 | #pragma mark *** Aesthetics *** 23 | - (BOOL)animates; 24 | - (void)setAnimates:(BOOL)an; 25 | - (SRRecorderStyle)style; 26 | - (void)setStyle:(SRRecorderStyle)nStyle; 27 | 28 | #pragma mark *** Delegate *** 29 | - (id)delegate; 30 | - (void)setDelegate:(id)aDelegate; 31 | 32 | #pragma mark *** Key Combination Control *** 33 | 34 | - (NSUInteger)allowedFlags; 35 | - (void)setAllowedFlags:(NSUInteger)flags; 36 | 37 | - (BOOL)allowsKeyOnly; 38 | - (void)setAllowsKeyOnly:(BOOL)nAllowsKeyOnly escapeKeysRecord:(BOOL)nEscapeKeysRecord; 39 | - (BOOL)escapeKeysRecord; 40 | 41 | - (BOOL)canCaptureGlobalHotKeys; 42 | - (void)setCanCaptureGlobalHotKeys:(BOOL)inState; 43 | 44 | - (NSUInteger)requiredFlags; 45 | - (void)setRequiredFlags:(NSUInteger)flags; 46 | 47 | - (KeyCombo)keyCombo; 48 | - (void)setKeyCombo:(KeyCombo)aKeyCombo; 49 | 50 | - (NSString *)keyChars; 51 | - (NSString *)keyCharsIgnoringModifiers; 52 | 53 | #pragma mark *** Autosave Control *** 54 | 55 | - (NSString *)autosaveName; 56 | - (void)setAutosaveName:(NSString *)aName; 57 | 58 | #pragma mark - 59 | 60 | // Returns the displayed key combination if set 61 | - (NSString *)keyComboString; 62 | 63 | #pragma mark *** Conversion Methods *** 64 | 65 | - (NSUInteger)cocoaToCarbonFlags:(NSUInteger)cocoaFlags; 66 | - (NSUInteger)carbonToCocoaFlags:(NSUInteger)carbonFlags; 67 | 68 | #pragma mark *** Binding Methods *** 69 | 70 | - (NSDictionary *)objectValue; 71 | - (void)setObjectValue:(NSDictionary *)shortcut; 72 | 73 | @end 74 | 75 | // Delegate Methods 76 | @interface NSObject (SRRecorderDelegate) 77 | - (BOOL)shortcutRecorder:(SRRecorderControl *)aRecorder isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason; 78 | - (void)shortcutRecorder:(SRRecorderControl *)aRecorder keyComboDidChange:(KeyCombo)newKeyCombo; 79 | @end 80 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Headers/SRValidator.h: -------------------------------------------------------------------------------- 1 | // 2 | // SRValidator.h 3 | // ShortcutRecorder 4 | // 5 | // Copyright 2006-2007 Contributors. All rights reserved. 6 | // 7 | // License: BSD 8 | // 9 | // Contributors: 10 | // David Dauer 11 | // Jesper 12 | // Jamie Kirkpatrick 13 | 14 | #import <Cocoa/Cocoa.h> 15 | 16 | @interface SRValidator : NSObject { 17 | id delegate; 18 | } 19 | 20 | - (id) initWithDelegate:(id)theDelegate; 21 | 22 | - (BOOL) isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags error:(NSError **)error; 23 | - (BOOL) isKeyCode:(NSInteger)keyCode andFlags:(NSUInteger)flags takenInMenu:(NSMenu *)menu error:(NSError **)error; 24 | 25 | - (id) delegate; 26 | - (void) setDelegate: (id) theDelegate; 27 | 28 | @end 29 | 30 | #pragma mark - 31 | 32 | @interface NSObject( SRValidation ) 33 | - (BOOL) shortcutValidator:(SRValidator *)validator isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason; 34 | @end 35 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Headers/SR_LeopardView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SR_LeopardView.h 3 | // SR Leopard 4 | // 5 | // Created by Jesper on 2007-10-19. 6 | // Copyright 2007 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import <Cocoa/Cocoa.h> 10 | 11 | @interface SR_LeopardView : NSView { 12 | 13 | } 14 | 15 | @end -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Headers/ShortcutRecorder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShortcutRecorder.h 3 | // ShortcutRecorder 4 | // - 10.5 version only; master framework header 5 | // 6 | // Copyright 2007 Contributors. All rights reserved. 7 | // 8 | // License: BSD 9 | // 10 | // Contributors to this file: 11 | // Jesper 12 | 13 | #import <ShortcutRecorder/SRCommon.h> 14 | #import <ShortcutRecorder/SRKeyCodeTransformer.h> 15 | #import <ShortcutRecorder/SRValidator.h> 16 | #import <ShortcutRecorder/SRRecorderCell.h> 17 | #import <ShortcutRecorder/SRRecorderControl.h> 18 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>BuildMachineOSBuild</key> 6 | <string>11B26</string> 7 | <key>CFBundleDevelopmentRegion</key> 8 | <string>English</string> 9 | <key>CFBundleExecutable</key> 10 | <string>ShortcutRecorder</string> 11 | <key>CFBundleIdentifier</key> 12 | <string>net.wafflesoftware.ShortcutRecorder.framework.Leopard</string> 13 | <key>CFBundleInfoDictionaryVersion</key> 14 | <string>6.0</string> 15 | <key>CFBundlePackageType</key> 16 | <string>FMWK</string> 17 | <key>CFBundleSignature</key> 18 | <string>????</string> 19 | <key>CFBundleVersion</key> 20 | <string>1.0</string> 21 | <key>DTCompiler</key> 22 | <string>4.2</string> 23 | <key>DTPlatformBuild</key> 24 | <string>4B110</string> 25 | <key>DTPlatformVersion</key> 26 | <string>GM</string> 27 | <key>DTSDKBuild</key> 28 | <string>10J567</string> 29 | <key>DTSDKName</key> 30 | <string>macosx10.6</string> 31 | <key>DTXcode</key> 32 | <string>0410</string> 33 | <key>DTXcodeBuild</key> 34 | <string>4B110</string> 35 | </dict> 36 | </plist> 37 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>BuildMachineOSBuild</key> 6 | <string>11B26</string> 7 | <key>CFBundleDevelopmentRegion</key> 8 | <string>English</string> 9 | <key>CFBundleExecutable</key> 10 | <string>ShortcutRecorder</string> 11 | <key>CFBundleIdentifier</key> 12 | <string>net.wafflesoftware.ShortcutRecorder.IB.Leopard</string> 13 | <key>CFBundleInfoDictionaryVersion</key> 14 | <string>6.0</string> 15 | <key>CFBundleName</key> 16 | <string>ShortcutRecorder</string> 17 | <key>CFBundlePackageType</key> 18 | <string>BNDL</string> 19 | <key>CFBundleShortVersionString</key> 20 | <string>1.0</string> 21 | <key>CFBundleSignature</key> 22 | <string>????</string> 23 | <key>CFBundleVersion</key> 24 | <string>1</string> 25 | <key>DTCompiler</key> 26 | <string>4.2</string> 27 | <key>DTPlatformBuild</key> 28 | <string>4B110</string> 29 | <key>DTPlatformVersion</key> 30 | <string>GM</string> 31 | <key>DTSDKBuild</key> 32 | <string>10J567</string> 33 | <key>DTSDKName</key> 34 | <string>macosx10.6</string> 35 | <key>DTXcode</key> 36 | <string>0410</string> 37 | <key>DTXcodeBuild</key> 38 | <string>4B110</string> 39 | <key>NSPrincipalClass</key> 40 | <string>SR_Leopard</string> 41 | </dict> 42 | </plist> 43 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/MacOS/ShortcutRecorder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/MacOS/ShortcutRecorder -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/English.lproj/SR_LeopardInspector.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/English.lproj/SR_LeopardInspector.nib -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/English.lproj/SR_LeopardLibrary.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/English.lproj/SR_LeopardLibrary.nib -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/Resources/ShortcutRecorder.ibplugin/Contents/Resources/SRRecorderControl.classdescription: -------------------------------------------------------------------------------- 1 | { 2 | Actions = { 3 | }; 4 | Outlets = { 5 | delegate = id; 6 | }; 7 | ClassName = SRRecorderControl; 8 | SuperClass = NSControl; 9 | } 10 | -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/A/ShortcutRecorder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/ShortcutRecorder.framework/Versions/A/ShortcutRecorder -------------------------------------------------------------------------------- /ShiftIt/ShortcutRecorder.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Sparkle: -------------------------------------------------------------------------------- 1 | Versions/Current/Sparkle -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Headers/SUAppcast.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcast.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCAST_H 10 | #define SUAPPCAST_H 11 | 12 | @class SUAppcastItem; 13 | @interface SUAppcast : NSObject { 14 | NSArray *items; 15 | NSString *userAgentString; 16 | id delegate; 17 | NSMutableData *incrementalData; 18 | } 19 | 20 | - (void)fetchAppcastFromURL:(NSURL *)url; 21 | - (void)setDelegate:delegate; 22 | - (void)setUserAgentString:(NSString *)userAgentString; 23 | 24 | - (NSArray *)items; 25 | 26 | @end 27 | 28 | @interface NSObject (SUAppcastDelegate) 29 | - (void)appcastDidFinishLoading:(SUAppcast *)appcast; 30 | - (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error; 31 | @end 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcastItem.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCASTITEM_H 10 | #define SUAPPCASTITEM_H 11 | 12 | @interface SUAppcastItem : NSObject { 13 | NSString *title; 14 | NSDate *date; 15 | NSString *itemDescription; 16 | 17 | NSURL *releaseNotesURL; 18 | 19 | NSString *DSASignature; 20 | NSString *minimumSystemVersion; 21 | 22 | NSURL *fileURL; 23 | NSString *versionString; 24 | NSString *displayVersionString; 25 | 26 | NSDictionary *propertiesDictionary; 27 | } 28 | 29 | // Initializes with data from a dictionary provided by the RSS class. 30 | - initWithDictionary:(NSDictionary *)dict; 31 | 32 | - (NSString *)title; 33 | - (NSString *)versionString; 34 | - (NSString *)displayVersionString; 35 | - (NSDate *)date; 36 | - (NSString *)itemDescription; 37 | - (NSURL *)releaseNotesURL; 38 | - (NSURL *)fileURL; 39 | - (NSString *)DSASignature; 40 | - (NSString *)minimumSystemVersion; 41 | 42 | // Returns the dictionary provided in initWithDictionary; this might be useful later for extensions. 43 | - (NSDictionary *)propertiesDictionary; 44 | 45 | @end 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionComparisonProtocol.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H 10 | #define SUVERSIONCOMPARISONPROTOCOL_H 11 | 12 | /*! 13 | @protocol 14 | @abstract Implement this protocol to provide version comparison facilities for Sparkle. 15 | */ 16 | @protocol SUVersionComparison 17 | 18 | /*! 19 | @method 20 | @abstract An abstract method to compare two version strings. 21 | @discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent. 22 | */ 23 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; 24 | 25 | @end 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Headers/Sparkle.h: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07) 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SPARKLE_H 10 | #define SPARKLE_H 11 | 12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless 13 | // there are name-space collisions) so we can list all of them to start with: 14 | 15 | #import <Sparkle/SUUpdater.h> 16 | 17 | #import <Sparkle/SUAppcast.h> 18 | #import <Sparkle/SUAppcastItem.h> 19 | #import <Sparkle/SUVersionComparisonProtocol.h> 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>CFBundleDevelopmentRegion</key> 6 | <string>en</string> 7 | <key>CFBundleExecutable</key> 8 | <string>Sparkle</string> 9 | <key>CFBundleIdentifier</key> 10 | <string>org.andymatuschak.Sparkle</string> 11 | <key>CFBundleInfoDictionaryVersion</key> 12 | <string>6.0</string> 13 | <key>CFBundleName</key> 14 | <string>Sparkle</string> 15 | <key>CFBundlePackageType</key> 16 | <string>FMWK</string> 17 | <key>CFBundleShortVersionString</key> 18 | <string>1.5 Beta 6</string> 19 | <key>CFBundleSignature</key> 20 | <string>????</string> 21 | <key>CFBundleVersion</key> 22 | <string>313</string> 23 | </dict> 24 | </plist> 25 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006 Andy Matuschak 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>CLASS</key> 25 | <string>FirstResponder</string> 26 | <key>LANGUAGE</key> 27 | <string>ObjC</string> 28 | <key>SUPERCLASS</key> 29 | <string>NSObject</string> 30 | </dict> 31 | <dict> 32 | <key>CLASS</key> 33 | <string>NSObject</string> 34 | <key>LANGUAGE</key> 35 | <string>ObjC</string> 36 | </dict> 37 | <dict> 38 | <key>CLASS</key> 39 | <string>SUStatusController</string> 40 | <key>LANGUAGE</key> 41 | <string>ObjC</string> 42 | <key>OUTLETS</key> 43 | <dict> 44 | <key>actionButton</key> 45 | <string>NSButton</string> 46 | <key>progressBar</key> 47 | <string>NSProgressIndicator</string> 48 | </dict> 49 | <key>SUPERCLASS</key> 50 | <string>SUWindowController</string> 51 | </dict> 52 | </array> 53 | <key>IBVersion</key> 54 | <string>1</string> 55 | </dict> 56 | </plist> 57 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>10A96</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>658</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9C7010</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>18</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>10A96</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | <integer>41</integer> 15 | </array> 16 | <key>IBSystem Version</key> 17 | <string>10A96</string> 18 | <key>targetFramework</key> 19 | <string>IBCocoaFramework</string> 20 | </dict> 21 | </plist> 22 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>629</string> 7 | <key>IBOldestOS</key> 8 | <integer>5</integer> 9 | <key>IBOpenObjects</key> 10 | <array/> 11 | <key>IBSystem Version</key> 12 | <string>9D34</string> 13 | <key>targetFramework</key> 14 | <string>IBCocoaFramework</string> 15 | </dict> 16 | </plist> 17 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>629</string> 7 | <key>IBOldestOS</key> 8 | <integer>5</integer> 9 | <key>IBOpenObjects</key> 10 | <array/> 11 | <key>IBSystem Version</key> 12 | <string>9E17</string> 13 | <key>targetFramework</key> 14 | <string>IBCocoaFramework</string> 15 | </dict> 16 | </plist> 17 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>629</string> 7 | <key>IBOldestOS</key> 8 | <integer>5</integer> 9 | <key>IBOpenObjects</key> 10 | <array/> 11 | <key>IBSystem Version</key> 12 | <string>9E17</string> 13 | <key>targetFramework</key> 14 | <string>IBCocoaFramework</string> 15 | </dict> 16 | </plist> 17 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj: -------------------------------------------------------------------------------- 1 | /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/fr_CA.lproj: -------------------------------------------------------------------------------- 1 | /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>667</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>5</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9D34</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>629</string> 7 | <key>IBOldestOS</key> 8 | <integer>5</integer> 9 | <key>IBOpenObjects</key> 10 | <array> 11 | <integer>6</integer> 12 | </array> 13 | <key>IBSystem Version</key> 14 | <string>9D34</string> 15 | <key>targetFramework</key> 16 | <string>IBCocoaFramework</string> 17 | </dict> 18 | </plist> 19 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>629</string> 7 | <key>IBOldestOS</key> 8 | <integer>5</integer> 9 | <key>IBOpenObjects</key> 10 | <array/> 11 | <key>IBSystem Version</key> 12 | <string>9E17</string> 13 | <key>targetFramework</key> 14 | <string>IBCocoaFramework</string> 15 | </dict> 16 | </plist> 17 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>629</string> 7 | <key>IBOldestOS</key> 8 | <integer>5</integer> 9 | <key>IBOpenObjects</key> 10 | <array/> 11 | <key>IBSystem Version</key> 12 | <string>9E17</string> 13 | <key>targetFramework</key> 14 | <string>IBCocoaFramework</string> 15 | </dict> 16 | </plist> 17 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/relaunch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/relaunch -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9E17</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>CLASS</key> 17 | <string>NSApplication</string> 18 | <key>LANGUAGE</key> 19 | <string>ObjC</string> 20 | <key>SUPERCLASS</key> 21 | <string>NSResponder</string> 22 | </dict> 23 | <dict> 24 | <key>ACTIONS</key> 25 | <dict> 26 | <key>installUpdate</key> 27 | <string>id</string> 28 | <key>remindMeLater</key> 29 | <string>id</string> 30 | <key>skipThisVersion</key> 31 | <string>id</string> 32 | </dict> 33 | <key>CLASS</key> 34 | <string>SUUpdateAlert</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>OUTLETS</key> 38 | <dict> 39 | <key>delegate</key> 40 | <string>id</string> 41 | <key>description</key> 42 | <string>NSTextField</string> 43 | <key>releaseNotesView</key> 44 | <string>WebView</string> 45 | </dict> 46 | <key>SUPERCLASS</key> 47 | <string>SUWindowController</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>FirstResponder</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | <key>SUPERCLASS</key> 55 | <string>NSObject</string> 56 | </dict> 57 | <dict> 58 | <key>CLASS</key> 59 | <string>NSObject</string> 60 | <key>LANGUAGE</key> 61 | <string>ObjC</string> 62 | </dict> 63 | </array> 64 | <key>IBVersion</key> 65 | <string>1</string> 66 | </dict> 67 | </plist> 68 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>9E17</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>NSObject</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | </dict> 13 | <dict> 14 | <key>CLASS</key> 15 | <string>SUWindowController</string> 16 | <key>LANGUAGE</key> 17 | <string>ObjC</string> 18 | <key>SUPERCLASS</key> 19 | <string>NSWindowController</string> 20 | </dict> 21 | <dict> 22 | <key>ACTIONS</key> 23 | <dict> 24 | <key>finishPrompt</key> 25 | <string>id</string> 26 | <key>toggleMoreInfo</key> 27 | <string>id</string> 28 | </dict> 29 | <key>CLASS</key> 30 | <string>SUUpdatePermissionPrompt</string> 31 | <key>LANGUAGE</key> 32 | <string>ObjC</string> 33 | <key>OUTLETS</key> 34 | <dict> 35 | <key>delegate</key> 36 | <string>id</string> 37 | <key>descriptionTextField</key> 38 | <string>NSTextField</string> 39 | <key>moreInfoButton</key> 40 | <string>NSButton</string> 41 | <key>moreInfoView</key> 42 | <string>NSView</string> 43 | </dict> 44 | <key>SUPERCLASS</key> 45 | <string>SUWindowController</string> 46 | </dict> 47 | <dict> 48 | <key>CLASS</key> 49 | <string>FirstResponder</string> 50 | <key>LANGUAGE</key> 51 | <string>ObjC</string> 52 | <key>SUPERCLASS</key> 53 | <string>NSObject</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array/> 13 | <key>IBSystem Version</key> 14 | <string>9E17</string> 15 | <key>targetFramework</key> 16 | <string>IBCocoaFramework</string> 17 | </dict> 18 | </plist> 19 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>doNotInstall</key> 19 | <string>id</string> 20 | <key>installLater</key> 21 | <string>id</string> 22 | <key>installNow</key> 23 | <string>id</string> 24 | </dict> 25 | <key>CLASS</key> 26 | <string>SUAutomaticUpdateAlert</string> 27 | <key>LANGUAGE</key> 28 | <string>ObjC</string> 29 | <key>SUPERCLASS</key> 30 | <string>SUWindowController</string> 31 | </dict> 32 | <dict> 33 | <key>CLASS</key> 34 | <string>FirstResponder</string> 35 | <key>LANGUAGE</key> 36 | <string>ObjC</string> 37 | <key>SUPERCLASS</key> 38 | <string>NSObject</string> 39 | </dict> 40 | <dict> 41 | <key>CLASS</key> 42 | <string>NSObject</string> 43 | <key>LANGUAGE</key> 44 | <string>ObjC</string> 45 | </dict> 46 | </array> 47 | <key>IBVersion</key> 48 | <string>1</string> 49 | </dict> 50 | </plist> 51 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>10A96</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | { 2 | IBClasses = ( 3 | { 4 | CLASS = FirstResponder; 5 | LANGUAGE = ObjC; 6 | SUPERCLASS = NSObject; 7 | }, 8 | { 9 | CLASS = NSApplication; 10 | LANGUAGE = ObjC; 11 | SUPERCLASS = NSResponder; 12 | }, 13 | { 14 | CLASS = NSObject; 15 | LANGUAGE = ObjC; 16 | }, 17 | { 18 | ACTIONS = { 19 | installUpdate = id; 20 | remindMeLater = id; 21 | skipThisVersion = id; 22 | }; 23 | CLASS = SUUpdateAlert; 24 | LANGUAGE = ObjC; 25 | OUTLETS = { 26 | delegate = id; 27 | description = NSTextField; 28 | releaseNotesView = WebView; 29 | }; 30 | SUPERCLASS = SUWindowController; 31 | }, 32 | { 33 | CLASS = SUWindowController; 34 | LANGUAGE = ObjC; 35 | SUPERCLASS = NSWindowController; 36 | } 37 | ); 38 | IBVersion = 1; 39 | } -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBDocumentLocation</key> 6 | <string>69 14 356 240 0 0 1280 778 </string> 7 | <key>IBFramework Version</key> 8 | <string>489.0</string> 9 | <key>IBLastKnownRelativeProjectPath</key> 10 | <string>../Sparkle.xcodeproj</string> 11 | <key>IBOldestOS</key> 12 | <integer>5</integer> 13 | <key>IBSystem Version</key> 14 | <string>9D34</string> 15 | <key>targetFramework</key> 16 | <string>IBCocoaFramework</string> 17 | </dict> 18 | </plist> 19 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBClasses</key> 6 | <array> 7 | <dict> 8 | <key>CLASS</key> 9 | <string>SUWindowController</string> 10 | <key>LANGUAGE</key> 11 | <string>ObjC</string> 12 | <key>SUPERCLASS</key> 13 | <string>NSWindowController</string> 14 | </dict> 15 | <dict> 16 | <key>ACTIONS</key> 17 | <dict> 18 | <key>finishPrompt</key> 19 | <string>id</string> 20 | <key>toggleMoreInfo</key> 21 | <string>id</string> 22 | </dict> 23 | <key>CLASS</key> 24 | <string>SUUpdatePermissionPrompt</string> 25 | <key>LANGUAGE</key> 26 | <string>ObjC</string> 27 | <key>OUTLETS</key> 28 | <dict> 29 | <key>delegate</key> 30 | <string>id</string> 31 | <key>descriptionTextField</key> 32 | <string>NSTextField</string> 33 | <key>moreInfoButton</key> 34 | <string>NSButton</string> 35 | <key>moreInfoView</key> 36 | <string>NSView</string> 37 | </dict> 38 | <key>SUPERCLASS</key> 39 | <string>SUWindowController</string> 40 | </dict> 41 | <dict> 42 | <key>CLASS</key> 43 | <string>FirstResponder</string> 44 | <key>LANGUAGE</key> 45 | <string>ObjC</string> 46 | <key>SUPERCLASS</key> 47 | <string>NSObject</string> 48 | </dict> 49 | <dict> 50 | <key>CLASS</key> 51 | <string>NSObject</string> 52 | <key>LANGUAGE</key> 53 | <string>ObjC</string> 54 | </dict> 55 | </array> 56 | <key>IBVersion</key> 57 | <string>1</string> 58 | </dict> 59 | </plist> 60 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | <key>IBFramework Version</key> 6 | <string>670</string> 7 | <key>IBLastKnownRelativeProjectPath</key> 8 | <string>../Sparkle.xcodeproj</string> 9 | <key>IBOldestOS</key> 10 | <integer>5</integer> 11 | <key>IBOpenObjects</key> 12 | <array> 13 | <integer>6</integer> 14 | </array> 15 | <key>IBSystem Version</key> 16 | <string>10A96</string> 17 | <key>targetFramework</key> 18 | <string>IBCocoaFramework</string> 19 | </dict> 20 | </plist> 21 | -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/A/Sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/Sparkle.framework/Versions/A/Sparkle -------------------------------------------------------------------------------- /ShiftIt/Sparkle.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /ShiftIt/WindowGeometryShiftItAction.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | #import <Foundation/Foundation.h> 21 | #import "ShiftIt.h" 22 | 23 | typedef struct _AnchoredRect { 24 | NSRect rect; 25 | int anchor; 26 | } AnchoredRect; 27 | 28 | inline static AnchoredRect MakeAnchoredRect(NSRect rect, int anchor) { 29 | AnchoredRect r = { rect, anchor }; 30 | return r; 31 | } 32 | 33 | @interface AbstractWindowGeometryShiftItAction : NSObject<SIActionDelegate> 34 | 35 | - (AnchoredRect) shiftWindowRect:(NSRect)windowRect screenSize:(NSSize)screenSize withContext:(id<SIWindowContext>)windowContext; 36 | 37 | @end 38 | 39 | typedef AnchoredRect(^SimpleWindowGeometryChangeBlock)(NSRect, NSSize); 40 | 41 | @interface WindowGeometryShiftItAction : AbstractWindowGeometryShiftItAction { 42 | @private 43 | SimpleWindowGeometryChangeBlock block_; 44 | } 45 | 46 | - (id) initWithBlock:(SimpleWindowGeometryChangeBlock)block; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /ShiftIt/X11WindowDriver.h: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Window Organizer for OSX 3 | Copyright (c) 2010-2011 Filip Krikava 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | // make sure this does not collide with the Cursor from Carbon/Cocoa 21 | #define Cursor X11Cursor 22 | #import <X11/Xlib.h> 23 | #import <X11/Xatom.h> 24 | #import <X11/Xutil.h> 25 | #undef Cursor 26 | 27 | #import <Foundation/Foundation.h> 28 | #import "SIWindowDriver.h" 29 | 30 | @interface X11WindowDriver : NSObject<SIWindowDriver> { 31 | 32 | } 33 | 34 | - (id)initWithError:(NSError **)error; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /ShiftIt/dsa_pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIDOzCCAi0GByqGSM44BAEwggIgAoIBAQDjToUI2Y53evDHD8Pqy9IKwgK7Gwju 3 | YbrJl58URCzTJOTPkR/JKeLd3bbZxHY4OwN6PfBhWw2jwhURMncZA1WMgHpuTEfa 4 | eOyat0Xedv3o+Lcdf3Yy8KrKSjI9aobpULfYi7xJVbabbR781BN/Dtl3Mt7d3RSI 5 | rs32tT61JZL0Nq2jLjvSrm4pR/nV72y5vow3D8FAZV7x7+Lop3TieF98uuHuHcWF 6 | 1ot5FPOmO4JICAmeEBqkrUxFXUydjwk1AMjVcDBNT93c1Gtt6Y0MI+XeCpR8h1vZ 7 | XkLgeoNKJy74TGpITqSBRokbfufwd0raLzJ6VkXKGUNBfwrFRkwNFj9rAhUA1Izw 8 | Tb26hipCFo9yffpIbUtvajcCggEAGMfx9NmXW43ifLnjRTBIT52P9cPpHaC6+lNX 9 | utDpcCzWsb3h/95CytQQvw/MVJbwKMLLknn2zclKaKGzyDk8/GeZLmHeB59hCgu5 10 | Yt0d7UN8BXyj4+rBJ3+qbfh109a9tY5Lr7elWSZrCtuRwToAcKBuq4g42oDL+1pc 11 | Z3xwTpvk2oj1m5PMyTNcbopFFZrDbS3IcqeJim6oJNINnUGpO9/izGEzqrFYbewF 12 | ST8iXsykfGgpyWRxIRdjiNTu82QGNZLpOBuAOFMAAKMCRrzqqs6iTnudA6YayDkQ 13 | 2cv8uIm6Y36zMzufZ69rFRm2f74+yDC3J7zJOd7BuHsVlTZPbQOCAQYAAoIBAQCb 14 | 1fZo3Fc9gJCL4Oh1tZPXmA9IeINPAYKePfDP9y/PbE6SGSkRMmJ97ZgJxBn3hSDa 15 | KiWCXT5bZ0MnlxMMI4aFm21uM0feeMlukTxt3rM6OeYerCNdkPWCgrF6rhr2CPnB 16 | RjOBkukCqPDEscAv1UPMb4TMss72aVo71HLzjlZPgMHgEfdGorF/4ez+BCQrqHc5 17 | hHW+srToisGAzrKtzASCegjWcXiuarHfrh2jL6BZqk3+KISVg15v8ROK6pOJAzTl 18 | FuVk1tY8owm32lYPjpGGyeB5XdV2szpjiP7B+JaLh51+RboFXIz/qYPJZG2PGCb4 19 | c5r1ieqppZmRioMQ5OqP 20 | -----END PUBLIC KEY----- 21 | -------------------------------------------------------------------------------- /ShiftIt/ja.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | ShiftIt 4 | 5 | Created by Hiroyuki Kurosawa on 2013/11/16. 6 | 7 | */ 8 | 9 | "Left" = "左寄せ"; 10 | "Right" = "右寄せ"; 11 | "Top" = "上寄せ"; 12 | "Bottom" = "下寄せ"; 13 | "Top Left" = "左上寄せ"; 14 | "Top Right" = "右上寄せ"; 15 | "Bottom Left" = "左下寄せ"; 16 | "Bottom Right" = "右下寄せ"; 17 | "Center" = "センタリング"; 18 | "Toggle Zoom" = "ズームの切り替え"; 19 | "Maximize" = "最大化"; 20 | "Toggle Full Screen" = "フルスクリーンの切り替え"; 21 | "Increase" = "ウインドウの拡大"; 22 | "Reduce" = "ウインドウの縮小"; 23 | "Next Screen" = "次のスクリーン"; 24 | "Previous Screen" = "前のスクリーン"; 25 | 26 | "Authorization Required" = "許可が必要です"; 27 | "Recheck" = "再確認"; 28 | "Open System Preferences" = "システム環境設定を開く"; 29 | "Quit" = "終了"; 30 | "AUTHORIZATION_INFORMATIVE_TEXT_10_9" = "ShiftIt はアプリケーションウインドウの移動やリサイズをするためにアクセシビリティサービスの許可が必要です。\n\nこれはシステム環境設定 > セキュリティとプライバシー > プライバシー > アクセシビリティで設定が行えます。ShiftIt を許可アプリケーションのリストにドラッグ&ドロップして追加し、チェックボックスにチェックマークを付ける必要があるかもしれません。"; 31 | "AUTHORIZATION_INFORMATIVE_TEXT_10_8" = "ShiftIt はアプリケーションウインドウの移動やリサイズをするためにアクセシビリティサービスの許可が必要です。\n\nPlease \"Enable access for assistive devices\" in the システム環境設定 > ユニバーサルアクセスから\"補助装置にアクセスできるようにする\"を有効にした後、ShiftIt を再起動してください。"; 32 | 33 | "Start ShiftIt automatically?" = "ShiftIt を自動的に開きますか?"; 34 | "Would you like to have ShiftIt automatically started at a login time?" = "ログイン時に自動的に ShiftIt を開始しますか?"; 35 | "Yes" = "はい"; 36 | "No" = "いいえ"; 37 | -------------------------------------------------------------------------------- /ShiftIt/ja.lproj/MainMenu.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSMenuItem"; title = "Quit ShiftIt"; ObjectID = "546"; */ 2 | "546.title" = "ShiftItの終了"; 3 | 4 | /* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "558"; */ 5 | "558.title" = "環境設定..."; 6 | 7 | /* Class = "NSMenuItem"; title = "Check for Updates"; ObjectID = "761"; */ 8 | "761.title" = "アップデートの確認..."; -------------------------------------------------------------------------------- /ShiftIt/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | ShiftIt: Resize windows with Hotkeys 3 | Copyright (C) 2010 Aravind 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. 17 | 18 | */ 19 | 20 | 21 | #import <Cocoa/Cocoa.h> 22 | 23 | int main(int argc, char *argv[]) 24 | { 25 | return NSApplicationMain(argc, (const char **) argv); 26 | } 27 | -------------------------------------------------------------------------------- /ShiftIt/margin-background-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/ShiftIt/margin-background-image.png -------------------------------------------------------------------------------- /artwork/ShiftIt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/artwork/ShiftIt.png -------------------------------------------------------------------------------- /artwork/ShiftItLogo.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/artwork/ShiftItLogo.xcf -------------------------------------------------------------------------------- /artwork/ShiftItMenuIcon - source.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/artwork/ShiftItMenuIcon - source.xcf -------------------------------------------------------------------------------- /artwork/ShiftItMenuIcon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/artwork/ShiftItMenuIcon.xcf -------------------------------------------------------------------------------- /artwork/ShiftItMenuIconReversed - source.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/artwork/ShiftItMenuIconReversed - source.xcf -------------------------------------------------------------------------------- /artwork/ShiftItMenuIconReversed.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/artwork/ShiftItMenuIconReversed.xcf -------------------------------------------------------------------------------- /build/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/build/.gitkeep -------------------------------------------------------------------------------- /docs/schreenshot-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fikovnik/ShiftIt/fb7699aa491a6b81656f152f74b638bb6f9514eb/docs/schreenshot-menu.png -------------------------------------------------------------------------------- /release/appcast.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/"> 3 | <channel> 4 | <title>ShiftIt Changelog</title> 5 | <link>https://raw.github.com/fikovnik/ShiftIt/master/release/appcast.xml</link> 6 | <language>en</language> 7 | <item> 8 | <title>ShiftIt version 1.6.6</title> 9 | <sparkle:releaseNotesLink> 10 | http://htmlpreview.github.com/?https://raw.github.com/fikovnik/ShiftIt/master/release/release-notes-1.6.6.html 11 | </sparkle:releaseNotesLink> 12 | <pubDate>Thu, 01 Mar 2018 09:03:41 </pubDate> 13 | <enclosure url="https://github.com/fikovnik/ShiftIt/releases/download/version-1.6.6/ShiftIt-1.6.6.zip" sparkle:version="1.6.6" length="831603" type="application/octet-stream" sparkle:dsaSignature="MC0CFGHLkzBPqzjHMoLUJY4GyYMKyvtKAhUAoPc32TP0/w+dNECV1eU6uIN4s3c=" /> 14 | </item> 15 | </channel> 16 | </rss> -------------------------------------------------------------------------------- /release/release-notes-1.4.1.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <<<<<<< HEAD 5 | <h1>Version 1.4.1</h1> 6 | 7 | <h2>Changes</h2> 8 | <ul> 9 | <li></li> 10 | </ul> 11 | 12 | If you find any bug please report them in <a href="http://github.com/fikovnik/ShiftIt/issues">github</a> 13 | 14 | </body> 15 | </html> 16 | -------------------------------------------------------------------------------- /release/release-notes-1.5.1.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>Version 1.5.1</h1> 5 | 6 | <h2>Changes</h2> 7 | <ul> 8 | <li></li> 9 | </ul> 10 | 11 | If you find any bug please report them in <a href="http://github.com/fikovnik/ShiftIt/issues">github</a> 12 | 13 | </body> 14 | </html> 15 | -------------------------------------------------------------------------------- /release/release-notes-1.6.1.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6.1</h1> 5 | 6 | <h2>Issues closed</h2> 7 | <ul> 8 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/110"><b>#110</b></a> - Noteworthy change in 10.9 Permissions</li> 9 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/114"><b>#114</b></a> - App won't run in OSX 10.9 Mavericks</li> 10 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/128"><b>#128</b></a> - changed spelling 'me' to 'be'</li> 11 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/133"><b>#133</b></a> - Very Minor Typographical Error</li> 12 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/129"><b>#129</b></a> - typo in menu</li> 13 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/125"><b>#125</b></a> - Reworked the menu icon and added a retina version</li> 14 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/118"><b>#118</b></a> - Making ShiftIt work on OS X 10.9 Mavericks</li> 15 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/137"><b>#137</b></a> - Add ja localization to release/1.6.1 branch</li> 16 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/123"><b>#123</b></a> - Added Japanese localization</li> 17 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/139"><b>#139</b></a> - added ja localization for AUTHORIZATION_INFORMATIVE_TEXT_10_8 string</li> 18 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/140"><b>#140</b></a> - added ja localization for "Needs Auth" string for 10.8 or earlier. </li> 19 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/143"><b>#143</b></a> - Previous Window (base release/1.6.1)</li> 20 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/136"><b>#136</b></a> - Shiftit can't be started on OSX 10.10 (Yosemite)</li> 21 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/144"><b>#144</b></a> - Fix NoX11 build</li> 22 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/147"><b>#147</b></a> - Accessibility API be enabled</li> 23 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/158"><b>#158</b></a> - Fix menu icon for the dark mode in Yosemite</li> 24 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/151"><b>#151</b></a> - Add the trick to setup accessibility permission for ShiftIt using sqlite to README.md</li> 25 | </ul> 26 | 27 | More information about this release can be found on <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=3">github</a>. 28 | <br/><br/> 29 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 30 | </body> 31 | </html> -------------------------------------------------------------------------------- /release/release-notes-1.6.2.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6.2</h1> 5 | 6 | <h2>Issues closed</h2> 7 | <ul> 8 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/74"><b>#74</b></a> - Improve release script</li> 9 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/162"><b>#162</b></a> - Fix MacPorts paths</li> 10 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/120"><b>#120</b></a> - Remove dependency on X11</li> 11 | </ul> 12 | 13 | More information about this release can be found on <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=4">github</a>. 14 | <br/><br/> 15 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 16 | </body> 17 | </html> -------------------------------------------------------------------------------- /release/release-notes-1.6.3.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6.3</h1> 5 | 6 | <h2>Issues closed</h2> 7 | <ul> 8 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/160"><b>#160</b></a> - Next Screen not working</li> 9 | </ul> 10 | 11 | More information about this release can be found on <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=5">github</a>. 12 | <br/><br/> 13 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 14 | </body> 15 | </html> -------------------------------------------------------------------------------- /release/release-notes-1.6.4.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6.4</h1> 5 | 6 | <h2>Issues closed</h2> 7 | <ul> 8 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/169"><b>#169</b></a> - Add 10.8 fallback conditions (Issue #166)</li> 9 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/166"><b>#166</b></a> - Text showing up in Japanese</li> 10 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/170"><b>#170</b></a> - 'Authorization Required' screen even after enabling access for assistive devices</li> 11 | </ul> 12 | 13 | More information about this release can be found on <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=6">github</a>. 14 | <br/><br/> 15 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 16 | </body> 17 | </html> -------------------------------------------------------------------------------- /release/release-notes-1.6.5.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6.5</h1> 5 | 6 | <h2>Issues closed</h2> 7 | <ul> 8 | <li><a href="https://github.com/fikovnik/ShiftIt/pull/258"><b>#258</b></a> - Keeps the 1/2->1/3->2/3 window behavior, but resets the cycle anytime...</li> 9 | </ul> 10 | 11 | More information about this release can be found on <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=7">github</a>. 12 | <br/><br/> 13 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 14 | </body> 15 | </html> -------------------------------------------------------------------------------- /release/release-notes-1.6.6.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6.6</h1> 5 | 6 | 7 | More information about this release can be found on <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=8">github</a>. 8 | <br/><br/> 9 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 10 | </body> 11 | </html> -------------------------------------------------------------------------------- /release/release-notes-1.6.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 2 | <html> 3 | <body> 4 | <h1>ShiftIt version 1.6</h1> 5 | 6 | <b>This is a development release that is intended for testing purposes only!</b> 7 | 8 | <h2>Issues closed</h2> 9 | <ul> 10 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/36"><b>#36</b></a> - Crashes when X11 is not installed on the system</li> 11 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/25"><b>#25</b></a> - Doesn't take drawers into account</li> 12 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/60"><b>#60</b></a> - Support OSX 10.6 - (was: Can't build ShiftIt 1.6 on OSX Snow Leopard)</li> 13 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/58"><b>#58</b></a> - Merge back the X11 support</li> 14 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/55"><b>#55</b></a> - Check if AX option is readonly</li> 15 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/56"><b>#56</b></a> - Disable actions for windows in fullscreen mode</li> 16 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/57"><b>#57</b></a> - Make distinctions between window zooming, filling the screen and fullscreen actions</li> 17 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/59"><b>#59</b></a> - Quirks with vertical dual screen</li> 18 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/32"><b>#32</b></a> - Added code for incremental sizing</li> 19 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/19"><b>#19</b></a> - Multiple Monitor Support (sending windows to other screens)</li> 20 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/67"><b>#67</b></a> - Building on OS X Lion + XCode 4.2 from scratch</li> 21 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/70"><b>#70</b></a> - The geometry changing actions should respect window anchor</li> 22 | <li><a href="https://github.com/fikovnik/ShiftIt/issues/73"><b>#73</b></a> - Add anonymous statistics gathering</li> 23 | </ul> 24 | 25 | More information about this release can be found on the <a href="https://github.com/fikovnik/ShiftIt/issues?milestone=1">here</a>. 26 | <br/><br/> 27 | If you find any bugs please report them on <a href="http://github.com/fikovnik/ShiftIt/issues">github</a>. 28 | 29 | </body> 30 | </html> --------------------------------------------------------------------------------