├── .gitignore ├── .gitmodules ├── .rbenv-version ├── CHANGES_FROM_UPSTREAM.md ├── LICENSE ├── README.md ├── Slate.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── Slate ├── ASCIIToCode.plist ├── ASCIIToCode_Azerty.plist ├── ASCIIToCode_Colemak.plist ├── ASCIIToCode_Dvorak.plist ├── AccessibilityWrapper.h ├── AccessibilityWrapper.m ├── ActivateSnapshotOperation.h ├── ActivateSnapshotOperation.m ├── ApplicationOptions.h ├── ApplicationOptions.m ├── Binding.h ├── Binding.m ├── ChainOperation.h ├── ChainOperation.m ├── ConfigurationHelperView.h ├── ConfigurationHelperView.m ├── Constants.h ├── Constants.m ├── CornerOperation.h ├── CornerOperation.m ├── DeleteSnapshotOperation.h ├── DeleteSnapshotOperation.m ├── ExpressionPoint.h ├── ExpressionPoint.m ├── FocusOperation.h ├── FocusOperation.m ├── GridCellView.h ├── GridCellView.m ├── GridOperation.h ├── GridOperation.m ├── GridView.h ├── GridView.m ├── GridWindow.h ├── GridWindow.m ├── HintOperation.h ├── HintOperation.m ├── HintView.h ├── HintView.m ├── HintWindow.h ├── HintWindow.m ├── JSApplicationWrapper.h ├── JSApplicationWrapper.m ├── JSController.h ├── JSController.m ├── JSInfoWrapper.h ├── JSInfoWrapper.m ├── JSOperation.h ├── JSOperation.m ├── JSOperationWrapper.h ├── JSOperationWrapper.m ├── JSScreenWrapper.h ├── JSScreenWrapper.m ├── JSWindowWrapper.h ├── JSWindowWrapper.m ├── JSWrapperUtils.h ├── JSWrapperUtils.m ├── Layout.h ├── Layout.m ├── LayoutOperation.h ├── LayoutOperation.m ├── MathUtils.h ├── MathUtils.m ├── MoveOperation.h ├── MoveOperation.m ├── NSFileManager+ApplicationSupport.h ├── NSFileManager+ApplicationSupport.m ├── NSString+Indicies.h ├── NSString+Indicies.m ├── NSString+Levenshtein.h ├── NSString+Levenshtein.m ├── NudgeOperation.h ├── NudgeOperation.m ├── Operation.h ├── Operation.m ├── PushOperation.h ├── PushOperation.m ├── RelaunchOperation.h ├── RelaunchOperation.m ├── ResizeOperation.h ├── ResizeOperation.m ├── RunningApplications.h ├── RunningApplications.m ├── ScreenState.h ├── ScreenState.m ├── ScreenWrapper.h ├── ScreenWrapper.m ├── SequenceOperation.h ├── SequenceOperation.m ├── ShellOperation.h ├── ShellOperation.m ├── ShellUtils.h ├── ShellUtils.m ├── Slate-Info.plist ├── Slate-Prefix.pch ├── SlateAppDelegate.h ├── SlateAppDelegate.m ├── SlateConfig.h ├── SlateConfig.m ├── SlateLogger.h ├── Snapshot.h ├── Snapshot.m ├── SnapshotList.h ├── SnapshotList.m ├── SnapshotOperation.h ├── SnapshotOperation.m ├── StringTokenizer.h ├── StringTokenizer.m ├── SwitchAppQuittingOverlayView.h ├── SwitchAppQuittingOverlayView.m ├── SwitchAppView.h ├── SwitchAppView.m ├── SwitchOperation.h ├── SwitchOperation.m ├── SwitchView.h ├── SwitchView.m ├── SwitchWindow.h ├── SwitchWindow.m ├── ThrowOperation.h ├── ThrowOperation.m ├── UndoOperation.h ├── UndoOperation.m ├── VisibilityOperation.h ├── VisibilityOperation.m ├── WindowInfoView.h ├── WindowInfoView.m ├── WindowSnapshot.h ├── WindowSnapshot.m ├── WindowState.h ├── WindowState.m ├── default.slate ├── en.lproj │ ├── Credits.rtf │ ├── InfoPlist.strings │ └── MainMenu.xib ├── icon.icns ├── initialize.js ├── main.m ├── slate-mock.js ├── slate-test.html ├── status.pdf ├── statusActive.pdf ├── underscore.js └── utils.js ├── SlateTests ├── SlateTests-Info.plist ├── SlateTests-Prefix.pch ├── SlateTests.h ├── SlateTests.m ├── TestExpressionPoint.h ├── TestExpressionPoint.m ├── TestMathUtils.h ├── TestMathUtils.m ├── TestNSString+Indicies.h ├── TestNSString+Indicies.m ├── TestNSString+Levenshtein.h ├── TestNSString+Levenshtein.m ├── TestShellUtils.h ├── TestShellUtils.m ├── TestStringTokenizer.h ├── TestStringTokenizer.m └── en.lproj │ └── InfoPlist.strings ├── 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 ├── VERSION ├── build └── dmg_background.png ├── doc ├── Makefile ├── configuration.md ├── directive-alias.md ├── directive-bind.md ├── directive-config.md ├── directive-default.md ├── directive-layout.md ├── directive-source.md ├── github.css ├── installation.md ├── js-configuration.md ├── js-defaults.md ├── js-layouts.md ├── js-object-application.md ├── js-object-screen.md ├── js-object-window.md └── keys.md ├── icons ├── Contact.txt ├── IMG │ ├── icon_1024.png │ ├── icon_128.png │ ├── icon_256.png │ ├── icon_32.png │ ├── icon_512.png │ ├── status-bar-icon_18.png │ └── status-bar-icon_20.png ├── PREVIEW.png └── PSD │ ├── icon_1024.psd │ ├── status-bar icon 1.psd │ ├── status-bar icon 2.psd │ └── status-bar icon 3.psd └── script └── slate.rb /.gitignore: -------------------------------------------------------------------------------- 1 | build/Slate.build 2 | build/Release/Slate.app.dSYM 3 | build/debug_paths.json 4 | build/release_paths.json 5 | build/output 6 | build/Release/*.tar.gz 7 | build/Release/VERSION 8 | build/Release/appcast.xml 9 | Slate.xcodeproj/jigish.mode1v3 10 | Slate.xcodeproj/jigish.pbxuser 11 | Slate.xcodeproj/project.xcworkspace/xcuserdata/jigish.xcuserdatad/ 12 | Slate.xcodeproj/xcuserdata/jigish.xcuserdatad/ 13 | # don't version xcode artifacts 14 | *.xcuserdatad 15 | tmp 16 | doc/*.html 17 | .DS_Store 18 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "script/create-dmg"] 2 | path = script/create-dmg 3 | url = https://github.com/andreyvit/yoursway-create-dmg.git 4 | -------------------------------------------------------------------------------- /.rbenv-version: -------------------------------------------------------------------------------- 1 | 1.9.3-p286 2 | -------------------------------------------------------------------------------- /CHANGES_FROM_UPSTREAM.md: -------------------------------------------------------------------------------- 1 | As this is a fork of [jigish/slate](https://github.com/jigish/slate), I want to keep track of what pull requests and issues from that repository have been fixed/merged so I don't have to do double work: 2 | 3 | #414 4 | #395 5 | #393 6 | #387 7 | #362 8 | #351 9 | #344 10 | #371 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WARNING # 2 | 3 | This repository is unmaintained and unsupported as of May 2017. I appreciate you using this extension of @jigish's original work. If you need a replacement, [Hammerspoon](https://github.com/Hammerspoon/hammerspoon) is the suggested replacement. 4 | 5 | # About Slate # 6 | 7 | Slate is a window management application similar to Divvy and SizeUp (except better and free!). Originally written to replace them due to some limitations in how each work, it attempts to overcome them by simply being extremely configurable. As a result, it may be a bit daunting to get configured, but once it is done, the benefit is huge. 8 | 9 | Slate currently works on Mac OS X 10.8 and above. 10 | 11 | # Summary of Features # 12 | 13 | * Highly customizable 14 | * Bind keystrokes to: 15 | * move and/or resize windows 16 | * directionally focus windows 17 | * activate preset layouts 18 | * create, delete, and activate snapshots of the current state of windows 19 | * Set default layouts for different monitor configurations which will activate when that configuration is detected. 20 | * Window Hints: an intuitive way to change window focus 21 | * \[Beta\] A better, more customizable, application switcher. 22 | 23 | # Manual # 24 | 25 | * [Installing Slate](doc/installation.md) 26 | * [Configuring Slate](doc/configuration.md) 27 | 28 | # Useful Stuff # 29 | 30 | * [kvs](https://github.com/kvs) has created a [Sublime Text 2](http://www.sublimetext.com/2) preference for `.slate` files [here](https://github.com/kvs/ST2Slate). 31 | * [trishume](https://github.com/trishume) has done a really nice writeup on getting started with Slate [here](http://thume.ca/howto/2012/11/19/using-slate/) 32 | 33 | # Credits # 34 | 35 | Big thanks to [philc](https://github.com/philc) for the Window Hints idea (and initial implementation) as well as plenty of other suggestions and improvement ideas. 36 | 37 | # Contact # 38 | 39 | Please [create a github issue](https://github.com/mattr-/slate/issues/new) for any questions, bug reports, suggestions, or general commentary. 40 | -------------------------------------------------------------------------------- /Slate.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Slate/ActivateSnapshotOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ActivateSnapshotOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/1/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | @interface ActivateSnapshotOperation : Operation { 24 | @private 25 | NSString *name; 26 | BOOL del; 27 | } 28 | 29 | @property NSString *name; 30 | @property (assign) BOOL del; 31 | 32 | - (id)initWithName:(NSString *)theName options:(NSString *)options; 33 | 34 | + (BOOL)activateSnapshot:(NSString *)name remove:(BOOL)del; 35 | 36 | + (id)activateSnapshotOperation; 37 | + (id)activateSnapshotOperationFromString:(NSString *)activateSnapshotOperation; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Slate/ApplicationOptions.h: -------------------------------------------------------------------------------- 1 | // 2 | // ApplicationOptions.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/14/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface ApplicationOptions : NSObject { 25 | @private 26 | BOOL ignoreFail; 27 | BOOL repeat; 28 | BOOL repeatLast; 29 | BOOL mainFirst; 30 | BOOL mainLast; 31 | BOOL sortTitle; 32 | NSArray *titleOrder; 33 | NSArray *titleOrderRegex; 34 | } 35 | 36 | @property (assign) BOOL ignoreFail; 37 | @property (assign) BOOL repeat; 38 | @property (assign) BOOL repeatLast; 39 | @property (assign) BOOL mainFirst; 40 | @property (assign) BOOL mainLast; 41 | @property (assign) BOOL sortTitle; 42 | @property NSArray *titleOrder; 43 | @property NSArray *titleOrderRegex; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Slate/ApplicationOptions.m: -------------------------------------------------------------------------------- 1 | // 2 | // ApplicationOptions.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/14/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "ApplicationOptions.h" 22 | 23 | 24 | @implementation ApplicationOptions 25 | 26 | @synthesize ignoreFail; 27 | @synthesize repeat; 28 | @synthesize repeatLast; 29 | @synthesize mainFirst; 30 | @synthesize mainLast; 31 | @synthesize sortTitle; 32 | @synthesize titleOrder; 33 | @synthesize titleOrderRegex; 34 | 35 | - (id)init { 36 | self = [super init]; 37 | if (self) { 38 | [self setIgnoreFail:NO]; 39 | [self setRepeat:NO]; 40 | [self setRepeatLast:NO]; 41 | [self setMainFirst:NO]; 42 | [self setMainLast:NO]; 43 | [self setSortTitle:NO]; 44 | [self setTitleOrder:nil]; 45 | [self setTitleOrderRegex:nil]; 46 | } 47 | return self; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Slate/Binding.h: -------------------------------------------------------------------------------- 1 | // 2 | // Binding.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import 23 | 24 | @class Operation; 25 | 26 | @interface Binding : NSObject { 27 | @private 28 | Operation *op; 29 | UInt32 keyCode; 30 | UInt32 modifiers; 31 | NSNumber *modalKey; 32 | EventHotKeyRef hotKeyRef; 33 | BOOL repeat; 34 | BOOL toggle; 35 | } 36 | 37 | @property Operation *op; 38 | @property (assign) UInt32 keyCode; 39 | @property (assign) UInt32 modifiers; 40 | @property NSNumber *modalKey; 41 | @property (assign) EventHotKeyRef hotKeyRef; 42 | @property (assign) BOOL repeat; 43 | @property (assign) BOOL toggle; 44 | 45 | + (NSDictionary *)asciiToCodeDict; 46 | - (id)initWithString:(NSString *)binding; 47 | - (id)initWithKeystroke:(NSString*)keystroke operation:(Operation*)op_ repeat:(BOOL)repeat_; 48 | - (BOOL)doOperation; 49 | - (NSString *)modalHashKey; 50 | + (NSArray *)modalHashKeyToKeyAndModifiers:(NSString *)modalHashKey; 51 | + (NSArray *)getKeystrokeFromString:(NSString *)keystroke; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /Slate/ChainOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChainOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/28/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import "Operation.h" 23 | 24 | @interface ChainOperation : Operation { 25 | @private 26 | NSArray *operations; 27 | NSMutableDictionary *currentOp; 28 | } 29 | 30 | @property NSArray *operations; 31 | @property NSMutableDictionary *currentOp; 32 | 33 | - (BOOL)testOperation:(NSInteger)op; 34 | - (void)afterComplete:(AccessibilityWrapper *)aw opRun:(NSInteger)op ; 35 | - (id)initWithArray:(NSArray *)opArray; 36 | - (NSInteger)getNextOperation:(AccessibilityWrapper *)aw; 37 | - (void)setNextOperation:(AccessibilityWrapper *)aw nextOp:(NSNumber *)op; 38 | 39 | + (id)chainOperation; 40 | + (id)chainOperationFromString:(NSString *)chainOperation; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Slate/ConfigurationHelperView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigurationHelperView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/5/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface ConfigurationHelperView : NSView { 24 | @private 25 | NSTextField *directiveLabel; 26 | NSPopUpButton *directive; 27 | NSButton *save; 28 | NSMutableDictionary *configs; 29 | } 30 | 31 | @property NSTextField *directiveLabel; 32 | @property NSPopUpButton *directive; 33 | @property NSButton *save; 34 | @property NSMutableDictionary *configs; 35 | 36 | - (void)directiveChanged; 37 | - (void)updateDirectiveSpecificUI:(NSString *)str; 38 | - (void)addDirectiveSpecificUIs; 39 | - (void)addConfigUI; 40 | - (void)hideAll:(NSArray *)theThings; 41 | - (void)showAll:(NSArray *)theThings; 42 | - (void)hide:(NSTextField *)theThings; 43 | - (void)show:(NSTextField *)theThings; 44 | - (void)saveToConfig; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Slate/CornerOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // CornerOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/20/13. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "MoveOperation.h" 22 | 23 | @interface CornerOperation : MoveOperation 24 | 25 | + (id)cornerOperation; 26 | + (id)cornerOperationFromString:(NSString *)cornerOperation; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/DeleteSnapshotOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // DeleteSnapshotOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 2/28/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | @interface DeleteSnapshotOperation : Operation { 24 | @private 25 | NSString *name; 26 | BOOL pop; 27 | } 28 | 29 | @property NSString *name; 30 | @property (assign) BOOL pop; 31 | 32 | - (id)initWithName:(NSString *)theName options:(NSString *)options; 33 | 34 | + (id)deleteSnapshotOperation; 35 | + (id)deleteSnapshotOperationFromString:(NSString *)deleteSnapshotOperation; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Slate/ExpressionPoint.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExpressionPoint.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface ExpressionPoint : NSObject { 25 | @private 26 | NSString *x; 27 | NSString *y; 28 | } 29 | 30 | @property (copy) NSString *x; 31 | @property (copy) NSString *y; 32 | 33 | - (id)initWithX:(NSString *)xVal y:(NSString *)yVal; 34 | 35 | - (NSPoint)getPointWithDict:(NSDictionary *)values; 36 | - (NSSize)getSizeWithDict:(NSDictionary *)values; 37 | 38 | + (float)expToFloat:(NSString *)exp withDict:(NSDictionary *)values; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Slate/FocusOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // FocusOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/21/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import "Operation.h" 23 | 24 | 25 | @interface FocusOperation : Operation { 26 | @private 27 | NSInteger direction; 28 | NSString *app; 29 | } 30 | 31 | @property (assign) NSInteger direction; 32 | @property NSString *app; 33 | 34 | - (id)initWithDirectionOrApp:(NSString *)s; 35 | 36 | + (id)focusOperation; 37 | + (id)focusOperationFromString:(NSString *)focusOperation; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Slate/GridCellView.h: -------------------------------------------------------------------------------- 1 | // 2 | // GridCellView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 9/10/12. 6 | // 7 | // This program is free software: you can redistribute it and/or modify 8 | // it under the terms of the GNU General Public License as published by 9 | // the Free Software Foundation, either version 3 of the License, or 10 | // (at your option) any later version. 11 | // 12 | // This program is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | // GNU General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU General Public License 18 | // along with this program. If not, see http://www.gnu.org/licenses 19 | 20 | #import 21 | 22 | @interface GridCellView : NSView 23 | 24 | @property NSColor *inactiveBg; 25 | @property NSColor *activeBg; 26 | @property NSColor *bg; 27 | @property float cornerSize; 28 | 29 | - (void)activate; 30 | - (void)deactivate; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Slate/GridOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // GridOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 9/7/12. 6 | // 7 | // This program is free software: you can redistribute it and/or modify 8 | // it under the terms of the GNU General Public License as published by 9 | // the Free Software Foundation, either version 3 of the License, or 10 | // (at your option) any later version. 11 | // 12 | // This program is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | // GNU General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU General Public License 18 | // along with this program. If not, see http://www.gnu.org/licenses 19 | 20 | #import 21 | #import "Operation.h" 22 | 23 | @class ExpressionPoint; 24 | 25 | @interface GridOperation : Operation { 26 | NSDictionary *screenConfigs; 27 | NSMutableArray *grids; 28 | EventHotKeyRef escHotKeyRef; 29 | AccessibilityWrapper *focusedWindow; 30 | NSInteger padding; 31 | } 32 | 33 | @property NSDictionary *screenConfigs; 34 | @property NSMutableArray *grids; 35 | @property AccessibilityWrapper *focusedWindow; 36 | @property NSInteger padding; 37 | 38 | - (id)initWithScreenConfigs:(NSDictionary *)myScreenConfigs padding:(NSInteger)myPadding; 39 | - (void)killGrids; 40 | - (void)activateGridKey:(NSInteger)hintId; 41 | - (void)activateLayoutWithOrigin:(ExpressionPoint *)origin size:(ExpressionPoint *)size screenId:(NSInteger)screenId; 42 | 43 | + (id)gridOperation; 44 | + (id)gridOperationFromString:(NSString *) gridOperation; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Slate/GridView.h: -------------------------------------------------------------------------------- 1 | // 2 | // GridView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 9/7/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class GridOperation; 24 | 25 | @interface GridView : NSView 26 | 27 | @property GridOperation *op; 28 | @property NSInteger width; 29 | @property NSInteger height; 30 | @property float padding; 31 | @property float cellWidth; 32 | @property float cellHeight; 33 | @property NSMutableArray *grid; 34 | @property NSRect previousActiveRect; 35 | 36 | - (void)addGridWithWidth:(NSInteger)width height:(NSInteger)height padding:(float)myPadding; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Slate/GridWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // GridWindow.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 9/7/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface GridWindow : NSWindow 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Slate/GridWindow.m: -------------------------------------------------------------------------------- 1 | // 2 | // GridWindow.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 9/7/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "GridWindow.h" 22 | 23 | @implementation GridWindow 24 | 25 | - (BOOL)canBecomeKeyWindow { 26 | return YES; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Slate/HintOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // HintOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/2/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | #import "Operation.h" 24 | 25 | @interface HintOperation : Operation { 26 | @private 27 | NSMutableDictionary *hints; 28 | NSMutableDictionary *windows; 29 | NSMutableDictionary *apps; 30 | NSMutableArray *hotkeyRefs; 31 | NSMutableArray *frames; 32 | NSTimer *hideTimer; 33 | AccessibilityWrapper *currentWindow; 34 | NSInteger currentHint; 35 | NSString *hintCharacters; 36 | BOOL ignoreHidden; 37 | 38 | BOOL spreadOnCollision; 39 | NSUInteger spreadSearchWidth; 40 | NSUInteger spreadSearchHeight; 41 | NSUInteger spreadPadding; 42 | } 43 | 44 | @property NSMutableDictionary *hints; 45 | @property NSMutableDictionary *windows; 46 | @property NSMutableDictionary *apps; 47 | @property NSMutableArray *frames; 48 | @property NSMutableArray *hotkeyRefs; 49 | @property NSTimer *hideTimer; 50 | @property AccessibilityWrapper *currentWindow; 51 | @property NSInteger currentHint; 52 | @property NSString *hintCharacters; 53 | 54 | - (id)initWithCharacters:(NSString *)characters; 55 | - (void)killHints; 56 | - (void)activateHintKey:(NSInteger)hintId; 57 | - (BOOL)collidesWithExistingHint:(NSPoint)origin; 58 | 59 | + (id)hintOperation; 60 | + (id)hintOperationFromString:(NSString *)hintOperation; 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /Slate/HintView.h: -------------------------------------------------------------------------------- 1 | // 2 | // HintView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/3/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface HintView : NSView { 24 | @private 25 | NSString *text; 26 | NSImage *icon; 27 | } 28 | 29 | - (void)setIconFromAppRef:(AXUIElementRef)appRef; 30 | 31 | @property NSString *text; 32 | @property NSImage *icon; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Slate/HintWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // HintWindow.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/3/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface HintWindow : NSWindow 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Slate/HintWindow.m: -------------------------------------------------------------------------------- 1 | // 2 | // HintWindow.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/3/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "HintWindow.h" 22 | 23 | @implementation HintWindow 24 | 25 | - (BOOL)canBecomeKeyWindow { 26 | return YES; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Slate/JSApplicationWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSApplicationWrapper.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/21/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class AccessibilityWrapper; 24 | @class ScreenWrapper; 25 | 26 | @interface JSApplicationWrapper : NSObject { 27 | AccessibilityWrapper *aw; 28 | ScreenWrapper *sw; 29 | NSRunningApplication *app; 30 | } 31 | @property (strong) AccessibilityWrapper *aw; 32 | @property (strong) ScreenWrapper *sw; 33 | @property (strong) NSRunningApplication *app; 34 | - (id)initWithAccessibilityWrapper:(AccessibilityWrapper *)_aw screenWrapper:(ScreenWrapper *)_sw; 35 | - (id)initWithRunningApplication:(NSRunningApplication *)_app screenWrapper:(ScreenWrapper *)_sw; 36 | - (NSString *)toString; 37 | @end 38 | -------------------------------------------------------------------------------- /Slate/JSController.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSController.h 3 | // Slate 4 | // 5 | // Created by Alex Morega on 2013-01-16. 6 | // 7 | // This program is free software: you can redistribute it and/or modify 8 | // it under the terms of the GNU General Public License as published by 9 | // the Free Software Foundation, either version 3 of the License, or 10 | // (at your option) any later version. 11 | // 12 | // This program is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | // GNU General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU General Public License 18 | // along with this program. If not, see http://www.gnu.org/licenses 19 | 20 | #import 21 | #import 22 | #import "Operation.h" 23 | 24 | @interface JSController : NSObject { 25 | WebView *webView; 26 | WebScriptObject *scriptObject; 27 | NSMutableDictionary *functions; 28 | BOOL inited; 29 | NSMutableDictionary *eventCallbacks; 30 | } 31 | @property NSMutableDictionary *functions; 32 | @property NSMutableDictionary *eventCallbacks; 33 | 34 | - (BOOL)loadConfigFileWithPath:(NSString *)path; 35 | - (void)runCallbacks:(NSString *)what payload:(id)payload; 36 | - (NSString *)addCallableFunction:(WebScriptObject *)function; 37 | - (id)runCallableFunction:(NSString *)key; 38 | - (id)runFunction:(WebScriptObject*)function; 39 | - (id)runFunction:(WebScriptObject *)function withArg:(id)arg; 40 | - (id)unmarshall:(id)obj; 41 | - (id)marshall:(id)obj; 42 | - (NSString *)jsTypeof:(WebScriptObject *)obj; 43 | + (JSController *)getInstance; 44 | 45 | @end -------------------------------------------------------------------------------- /Slate/JSInfoWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSInfoWrapper.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/21/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | @class ScreenWrapper; 23 | @class AccessibilityWrapper; 24 | 25 | @interface JSInfoWrapper : NSObject { 26 | ScreenWrapper *sw; 27 | AccessibilityWrapper *aw; 28 | } 29 | 30 | @property (strong) ScreenWrapper *sw; 31 | @property (strong) AccessibilityWrapper *aw; 32 | 33 | - (id)initWithAccessibilityWrapper:(AccessibilityWrapper *)_aw screenWrapper:(ScreenWrapper *)_sw; 34 | 35 | + (JSInfoWrapper *)getInstance; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Slate/JSOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/22/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import 23 | #import "Operation.h" 24 | 25 | @interface JSOperation : Operation { 26 | WebScriptObject *function; 27 | } 28 | 29 | @property (strong) WebScriptObject *function; 30 | 31 | - (id)initWithFunction:(WebScriptObject *)_function; 32 | + (id)jsOperationWithFunction:(WebScriptObject *)function; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Slate/JSOperationWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSOperationWrapper.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/25/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import 23 | 24 | @class AccessibilityWrapper; 25 | @class ScreenWrapper; 26 | @class Operation; 27 | 28 | @interface JSOperationWrapper : NSObject { 29 | Operation *op; 30 | } 31 | 32 | @property (strong) Operation *op; 33 | 34 | - (BOOL)run; 35 | - (JSOperationWrapper *)dup:(WebScriptObject *)opts; 36 | - (BOOL)doOperation; 37 | - (BOOL)doOperationWithAccessibilityWrapper:(AccessibilityWrapper *)aw screenWrapper:(ScreenWrapper *)sw; 38 | 39 | + (JSOperationWrapper *)operation:(NSString*)name options:(WebScriptObject *)opts; 40 | + (JSOperationWrapper *)operationFromString:(NSString *)opString; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Slate/JSScreenWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSScreenWrapper.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/21/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class AccessibilityWrapper; 24 | @class ScreenWrapper; 25 | 26 | @interface JSScreenWrapper : NSObject { 27 | ScreenWrapper *sw; 28 | NSInteger screenId; 29 | } 30 | 31 | @property (strong) ScreenWrapper *sw; 32 | @property NSInteger screenId; 33 | 34 | - (id)initWithScreenId:(NSInteger)_id screenWrapper:(ScreenWrapper *)_sw; 35 | - (NSString *)toString; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Slate/JSWindowWrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSWindowWrapper.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/21/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class AccessibilityWrapper; 24 | @class ScreenWrapper; 25 | 26 | @interface JSWindowWrapper : NSObject { 27 | ScreenWrapper *sw; 28 | AccessibilityWrapper *aw; 29 | } 30 | 31 | @property (strong) ScreenWrapper *sw; 32 | @property (strong) AccessibilityWrapper *aw; 33 | 34 | - (id)initWithAccessibilityWrapper:(AccessibilityWrapper *)_aw screenWrapper:(ScreenWrapper *)_sw; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Slate/JSWrapperUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // JSWrapperUtils.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/22/13. 6 | // Copyright 2013 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class AccessibilityWrapper; 24 | @class ScreenWrapper; 25 | 26 | @interface JSWrapperUtils : NSObject 27 | 28 | + (NSDictionary *)screenAndWindowValues:(NSString *)screen aw:(AccessibilityWrapper *)aw sw:(ScreenWrapper *)sw; 29 | + (NSValue *)pointFromDict:(id)dict aw:(AccessibilityWrapper *)aw sw:(ScreenWrapper *)sw; 30 | + (NSValue *)sizeFromDict:(id)dict aw:(AccessibilityWrapper *)aw sw:(ScreenWrapper *)sw; 31 | + (NSValue *)rectFromDict:(id)dict aw:(AccessibilityWrapper *)aw sw:(ScreenWrapper *)sw; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Slate/Layout.h: -------------------------------------------------------------------------------- 1 | // 2 | // Layout.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/13/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface Layout : NSObject { 25 | @private 26 | NSString *name; 27 | NSMutableDictionary *appStates; 28 | NSMutableDictionary *appOptions; 29 | NSMutableArray *appOrder; 30 | NSMutableArray *before; 31 | NSMutableArray *after; 32 | } 33 | 34 | @property (copy) NSString *name; 35 | @property NSMutableDictionary *appStates; 36 | @property NSMutableDictionary *appOptions; 37 | @property NSMutableArray *appOrder; 38 | @property NSMutableArray *before; 39 | @property NSMutableArray *after; 40 | 41 | - (id)initWithString:(NSString *)layout; 42 | - (id)initWithName:(NSString *)name dict:(NSDictionary *)dict; 43 | - (void)addWithString:(NSString *)layout; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Slate/LayoutOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // LayoutOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/14/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import "Operation.h" 23 | 24 | 25 | @interface LayoutOperation : Operation { 26 | @private 27 | NSString *name; 28 | } 29 | 30 | @property (copy) NSString *name; 31 | 32 | - (id)initWithName:(NSString *)theName; 33 | - (BOOL)testOperation:(Operation *)op; 34 | 35 | + (BOOL)activateLayout:(NSString *)name; 36 | + (BOOL)activateLayout:(NSString *)name screenWrapper:(ScreenWrapper *)sw; 37 | + (id)layoutOperation; 38 | + (id)layoutOperationFromString:(NSString *)layoutOperation; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Slate/MathUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // MathUtils.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/22/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface MathUtils : NSObject {} 25 | 26 | + (BOOL)isRect:(NSRect)rect1 biggerThan:(NSRect)rect2; 27 | + (NSRect)flipYCoordinateOfRect:(NSRect)original withReference:(NSRect)reference; 28 | + (NSRect)scaleRect:(NSRect)rect factor:(double)factor; 29 | + (NSRect)weightedIntersectionOf:(NSRect)rect1 and:(NSRect)rect2 weight:(double)weight; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Slate/MathUtils.m: -------------------------------------------------------------------------------- 1 | // 2 | // MathUtils.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/22/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "MathUtils.h" 22 | 23 | 24 | @implementation MathUtils 25 | 26 | + (BOOL)isRect:(NSRect)rect1 biggerThan:(NSRect)rect2 { 27 | return rect1.size.width*rect1.size.height > rect2.size.width*rect2.size.height; 28 | } 29 | 30 | // I understand that the following method is stupidly written. Apple apparently enjoys keeping 31 | // multiple types of coordinate spaces. NSScreen.origin returns bottom-left while we need 32 | // top-left for window moving. Go figure. 33 | + (NSRect)flipYCoordinateOfRect:(NSRect)original withReference:(NSRect)reference { 34 | return NSMakeRect(original.origin.x, 35 | reference.size.height - (reference.origin.y + original.origin.y + original.size.height), 36 | original.size.width, 37 | original.size.height); 38 | } 39 | 40 | + (NSRect)scaleRect:(NSRect)rect factor:(double)factor { 41 | return NSMakeRect(rect.origin.x, rect.origin.y, rect.size.width*factor, rect.size.height*factor); 42 | } 43 | 44 | + (NSRect)weightedIntersectionOf:(NSRect)rect1 and:(NSRect)rect2 weight:(double)weight { 45 | NSRect intersection = NSIntersectionRect(rect1, rect2); 46 | if (NSEqualRects(intersection, NSZeroRect)) return NSZeroRect; 47 | return [MathUtils scaleRect:intersection factor:weight]; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Slate/MoveOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MoveOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import "Operation.h" 23 | #import "ExpressionPoint.h" 24 | 25 | 26 | @interface MoveOperation : Operation { 27 | @private 28 | ExpressionPoint *topLeft; 29 | ExpressionPoint *dimensions; 30 | NSString *monitor; 31 | NSInteger screenId; 32 | } 33 | 34 | @property ExpressionPoint *topLeft; 35 | @property ExpressionPoint *dimensions; 36 | @property NSString *monitor; 37 | @property NSInteger screenId; 38 | 39 | - (id)initWithTopLeft:(NSString *)tl dimensions:(NSString *)dim monitor:(NSString *)mon; 40 | - (id)initWithTopLeftEP:(ExpressionPoint *)tl dimensionsEP:(ExpressionPoint *)dim screenId:(NSInteger)myScreenId; 41 | - (NSPoint)getTopLeftWithCurrentWindowRect:(NSRect)cWindowRect newSize:(NSSize)nSize screenWrapper:(ScreenWrapper *)sw; 42 | - (NSSize)getDimensionsWithCurrentWindowRect:(NSRect)cWindowRect screenWrapper:(ScreenWrapper *)sw; 43 | 44 | + (id)moveOperation; 45 | + (id)moveOperationFromString:(NSString *)moveOperation; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Slate/NSFileManager+ApplicationSupport.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager+ApplicationSupport.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 4/23/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface NSFileManager (ApplicationSupport) 24 | 25 | - (NSURL *)applicationSupportDirectory; 26 | - (NSURL *)findOrCreateDirectory:(NSSearchPathDirectory)searchPathDirectory inDomain:(NSSearchPathDomainMask)domainMask append:(NSString *)appendComponent error:(NSError **)errorOut; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/NSFileManager+ApplicationSupport.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager+ApplicationSupport.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 4/23/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "NSFileManager+ApplicationSupport.h" 22 | 23 | @implementation NSFileManager (ApplicationSupport) 24 | 25 | - (NSURL *)applicationSupportDirectory { 26 | return [self findOrCreateDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask append:[[NSBundle mainBundle] bundleIdentifier] error:nil]; 27 | } 28 | 29 | - (NSURL *)findOrCreateDirectory:(NSSearchPathDirectory)searchPathDirectory inDomain:(NSSearchPathDomainMask)domainMask append:(NSString *)appendComponent error:(NSError **)errorOut { 30 | NSArray *urls = [self URLsForDirectory:searchPathDirectory inDomains:domainMask]; 31 | if ([urls count] == 0) return nil; 32 | NSURL *url = [urls objectAtIndex:0]; 33 | 34 | if (appendComponent) { 35 | url = [url URLByAppendingPathComponent:appendComponent]; 36 | } 37 | NSError *error; 38 | // need to use AtPath if < 10.7 because AtURL is 10.7 only 39 | BOOL success = [self createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:&error]; 40 | if (!success) { 41 | if (errorOut) *errorOut = error; 42 | return nil; 43 | } 44 | if (errorOut) *errorOut = nil; 45 | return url; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Slate/NSString+Indicies.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Indicies.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/1/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface NSString (Indicies) 24 | 25 | - (NSInteger)indexOfString:(NSString *)str; 26 | - (NSInteger)indexOfChar:(const unichar)c; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/NSString+Indicies.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Indicies.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/1/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "NSString+Indicies.h" 22 | 23 | @implementation NSString (Indicies) 24 | 25 | - (NSInteger)indexOfString:(NSString *)str { 26 | NSRange range = [self rangeOfString:str]; 27 | if ( range.length > 0 ) { 28 | return range.location; 29 | } else { 30 | return -1; 31 | } 32 | } 33 | 34 | - (NSInteger)indexOfChar:(const unichar) c { 35 | NSRange range = [self rangeOfString:[NSString stringWithCharacters:&c length:1]]; 36 | if ( range.length > 0 ) { 37 | return range.location; 38 | } else { 39 | return -1; 40 | } 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Slate/NSString+Levenshtein.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Levenshtein.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/1/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface NSString (Levenshtein) 24 | 25 | - (float) levenshteinDistance: (NSString *) stringB; 26 | - (float) sequentialDistance: (NSString *) stringB; 27 | 28 | - (int) smallestOf: (int) a andOf: (int) b andOf: (int) c; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Slate/NudgeOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // NudgeOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/20/13. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "MoveOperation.h" 22 | 23 | @interface NudgeOperation : MoveOperation 24 | 25 | + (id)nudgeOperation; 26 | + (id)nudgeOperationFromString:(NSString *)nudgeOperation; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/Operation.h: -------------------------------------------------------------------------------- 1 | // 2 | // Operation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import "AccessibilityWrapper.h" 23 | #import "ScreenWrapper.h" 24 | 25 | 26 | @interface Operation : NSObject { 27 | NSString *opName; 28 | NSMutableDictionary *options; 29 | NSMutableDictionary *dynamicOptions; 30 | } 31 | 32 | @property NSString *opName; 33 | @property NSMutableDictionary *options; 34 | @property NSMutableDictionary *dynamicOptions; 35 | 36 | - (BOOL)doOperation; 37 | - (BOOL)doOperationWithAccessibilityWrapper:(AccessibilityWrapper *)aw screenWrapper:(ScreenWrapper *)sw; 38 | - (BOOL)testOperation; 39 | - (BOOL)testOperationWithAccessibilityWrapper:(AccessibilityWrapper *)aw screenWrapper:(ScreenWrapper *)sw; 40 | - (BOOL)shouldTakeUndoSnapshot; 41 | - (NSArray *)requiredOptions; 42 | - (NSString *)checkRequiredOptions:(NSDictionary *)_options; 43 | - (void)beforeInitOptions; 44 | - (void)initOptions:(NSDictionary *)_options; 45 | - (void)parseOption:(NSString *)name value:(id)value; 46 | - (void)evalOptionsWithAccessibilityWrapper:(AccessibilityWrapper *)aw screenWrapper:(ScreenWrapper *)sw; 47 | - (void)afterEvalOptions; 48 | - (id)dup:(NSDictionary *)_options; 49 | 50 | + (id)operationFromString:(NSString *)opString; 51 | + (id)operationWithName:(NSString *)op options:(NSDictionary *)options; 52 | + (BOOL)isRepeatOnHoldOp:(NSString *)op; 53 | + (BOOL)doOperation:(NSString *)op options:(NSDictionary *)options aw:(AccessibilityWrapper *)aw sw:(ScreenWrapper *)sw; 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Slate/PushOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // PushOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/20/13. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "MoveOperation.h" 22 | 23 | @interface PushOperation : MoveOperation 24 | 25 | + (id)pushOperation; 26 | + (id)pushOperationFromString:(NSString *)pushOperation; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/RelaunchOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // RelaunchOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/11/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | @interface RelaunchOperation : Operation 24 | 25 | + (id)relaunchOperation; 26 | + (id)relaunchOperationFromString:(NSString *)unused; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/RelaunchOperation.m: -------------------------------------------------------------------------------- 1 | // 2 | // RelaunchOperation.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/11/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "RelaunchOperation.h" 22 | #import "SlateLogger.h" 23 | #import "SlateAppDelegate.h" 24 | 25 | @implementation RelaunchOperation 26 | 27 | - (id)init { 28 | self = [super init]; 29 | return self; 30 | } 31 | 32 | - (BOOL)doOperation { 33 | SlateLogger(@"----------------- Begin Relaunch Operation -----------------"); 34 | // We don't use the passed in AccessibilityWrapper or ScreenWrapper so they are nil. No need to waste time creating them here. 35 | BOOL success = [self doOperationWithAccessibilityWrapper:nil screenWrapper:nil]; 36 | SlateLogger(@"----------------- End Relaunch Operation -----------------"); 37 | return success; 38 | } 39 | 40 | - (BOOL)doOperationWithAccessibilityWrapper:(AccessibilityWrapper *)iamnil screenWrapper:(ScreenWrapper *)iamalsonil { 41 | [(SlateAppDelegate *)[NSApp delegate] relaunch]; 42 | return YES; 43 | } 44 | 45 | - (BOOL)testOperation { 46 | return YES; 47 | } 48 | 49 | + (id)relaunchOperation { 50 | return [[RelaunchOperation alloc] init]; 51 | } 52 | 53 | + (id)relaunchOperationFromString:(NSString *)unused { 54 | return [RelaunchOperation relaunchOperation]; 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /Slate/ResizeOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ResizeOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/26/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | #import "Operation.h" 23 | 24 | 25 | @interface ResizeOperation : Operation { 26 | @private 27 | NSInteger anchor; 28 | NSString *xResize; 29 | NSString *yResize; 30 | } 31 | 32 | @property (assign) NSInteger anchor; 33 | @property (copy) NSString *xResize; 34 | @property (copy) NSString *yResize; 35 | 36 | - (id)initWithAnchor:(NSString *)a xResize:(NSString *)x yResize:(NSString *)y; 37 | - (NSPoint)getTopLeftWithCurrentWindow:(NSRect)cWindowRect newSize:(NSSize)nSize; 38 | - (NSSize)getDimensionsWithCurrentWindow:(NSRect)cWindowRect screenWrapper:(ScreenWrapper *)sw; 39 | - (NSInteger)resizeStringToInt:(NSString *)resize withValue:(NSInteger) val; 40 | 41 | + (id)resizeOperation; 42 | + (id)resizeOperationFromString:(NSString *)resizeOperation; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Slate/RunningApplications.h: -------------------------------------------------------------------------------- 1 | // 2 | // RunningApplications.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/22/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface RunningApplications : NSObject { 24 | NSMutableArray *apps; 25 | NSMutableDictionary *appNameToApp; 26 | NSMutableArray *windows; 27 | NSMutableDictionary *appToWindows; 28 | NSMutableDictionary *titleToWindow; 29 | NSInteger nextWindowNumber; 30 | NSMutableArray *unusedWindowNumbers; 31 | NSMutableDictionary *pidToObserver; 32 | } 33 | 34 | @property NSMutableArray *apps; 35 | @property NSMutableDictionary *appNameToApp; 36 | @property NSMutableArray *windows; 37 | @property NSMutableDictionary *appToWindows; 38 | @property NSMutableDictionary *titleToWindow; 39 | @property (assign) NSInteger nextWindowNumber; 40 | @property NSMutableArray *unusedWindowNumbers; 41 | @property NSMutableDictionary *pidToObserver; 42 | 43 | + (RunningApplications *)getInstance; 44 | + (BOOL)isAppSelectable:(NSRunningApplication *)app; 45 | + (NSRunningApplication *)focusedApp; 46 | 47 | - (void)pruneWindows; 48 | - (NSArray *)windowIdsForTitle:(NSString *)title; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Slate/ScreenState.h: -------------------------------------------------------------------------------- 1 | // 2 | // ScreenState.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/19/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface ScreenState : NSObject { 25 | @private 26 | id layout; 27 | NSInteger type; 28 | NSInteger count; 29 | NSMutableArray *resolutions; 30 | } 31 | 32 | @property id layout; 33 | @property (assign) NSInteger type; 34 | @property (assign) NSInteger count; 35 | @property NSMutableArray *resolutions; 36 | 37 | - (id)initWithString:(NSString *)state; 38 | - (id)initWithConfig:(id)screenConfig layout:(id)_layout; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Slate/SequenceOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // SequenceOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/5/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | @interface SequenceOperation : Operation { 24 | NSArray *operations; // Array of arrays 25 | } 26 | 27 | @property NSArray *operations; 28 | 29 | - (id)initWithArray:(NSArray *)opArray; 30 | 31 | + (id)sequenceOperation; 32 | + (id)sequenceOperationFromString:(NSString *)sequenceOperation; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Slate/ShellOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShellOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/17/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | @interface ShellOperation : Operation { 24 | NSString *command; 25 | NSArray *args; 26 | NSString *currentPath; 27 | BOOL waitForExit; 28 | } 29 | 30 | @property NSString *command; 31 | @property NSArray *args; 32 | @property NSString *currentPath; 33 | @property BOOL waitForExit; 34 | 35 | - (id)initWithCommand:(NSString *)theCommand args:(NSArray *)theArgs waitForExit:(BOOL)theWaitForExit currentPath:(NSString *)theCurrentPath; 36 | 37 | + (id)shellOperation; 38 | + (id)shellOperationFromString:(NSString *)shellOperation; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Slate/ShellUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // ShellUtils.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/17/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface ShellUtils : NSObject 24 | 25 | + (BOOL)commandExists:(NSString *)command; 26 | + (NSTask *)run:(NSString *)command args:(NSArray *)args wait:(BOOL)wait path:(NSString *)path; 27 | + (NSString *)run:(NSString *)commandAndArgs wait:(BOOL)wait path:(NSString *)path; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Slate/Slate-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | icon.icns 11 | CFBundleIdentifier 12 | com.slate.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.2 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.2.0 25 | LSApplicationCategoryType 26 | public.app-category.utilities 27 | LSBackgroundOnly 28 | 29 | LSMinimumSystemVersion 30 | ${MACOSX_DEPLOYMENT_TARGET} 31 | LSUIElement 32 | 33 | NSMainNibFile 34 | MainMenu 35 | NSPrincipalClass 36 | NSApplication 37 | SUFeedURL 38 | https://www.ninjamonkeysoftware.com/slate/appcast.xml 39 | 40 | 41 | -------------------------------------------------------------------------------- /Slate/Slate-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Slate' target in the 'Slate' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Slate/SlateLogger.h: -------------------------------------------------------------------------------- 1 | // 2 | // SlateLogger.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/5/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #ifndef Slate_SlateLogger_h 22 | #define Slate_SlateLogger_h 23 | 24 | #ifdef DEBUG 25 | #define SlateLogger(...) NSLog(__VA_ARGS__) 26 | #else 27 | #define SlateLogger(...) 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Slate/Snapshot.h: -------------------------------------------------------------------------------- 1 | // 2 | // Snapshot.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 2/28/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class WindowSnapshot; 24 | 25 | @interface Snapshot : NSObject { 26 | @private 27 | NSMutableDictionary *apps; 28 | } 29 | 30 | @property NSMutableDictionary *apps; 31 | 32 | - (void)addWindow:(WindowSnapshot *)windowSnapshot app:(NSString *)appName; 33 | - (NSDictionary *)toDictionary; 34 | + (Snapshot *)snapshotFromDictionary:(NSDictionary *)dict; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Slate/SnapshotList.h: -------------------------------------------------------------------------------- 1 | // 2 | // SnapshotList.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 2/28/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class Snapshot; 24 | 25 | @interface SnapshotList : NSObject { 26 | @private 27 | NSMutableArray *snapshots; 28 | NSString *name; 29 | BOOL saveToDisk; 30 | BOOL isStack; 31 | NSInteger stackSize; 32 | } 33 | 34 | @property NSMutableArray *snapshots; 35 | @property NSString *name; 36 | @property (assign) BOOL saveToDisk; 37 | @property (assign) BOOL isStack; 38 | @property (assign) NSInteger stackSize; 39 | 40 | - (id)initWithName:(NSString *)theName saveToDisk:(BOOL)theSaveToDisk isStack:(BOOL)theIsStack; 41 | - (void)addSnapshot:(Snapshot *)snapshot; 42 | - (Snapshot *)popSnapshot:(BOOL)remove; 43 | - (NSDictionary *)toDictionary; 44 | + (SnapshotList *)snapshotListFromDictionary:(NSDictionary *)dict; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Slate/SnapshotOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // SnapshotOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 2/28/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | @interface SnapshotOperation : Operation { 24 | @private 25 | NSString *name; 26 | BOOL saveToDisk; 27 | BOOL isStack; 28 | NSInteger stackSize; 29 | } 30 | 31 | @property NSString *name; 32 | @property (assign) BOOL saveToDisk; 33 | @property (assign) BOOL isStack; 34 | @property (assign) NSInteger stackSize; 35 | 36 | - (id)initWithName:(NSString *)theName options:(NSString *)options; 37 | 38 | + (id)snapshotOperation; 39 | + (id)snapshotOperationFromString:(NSString *)snapshotOperation; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /Slate/StringTokenizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // StringTokenizer.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/26/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface StringTokenizer : NSObject {} 25 | 26 | + (BOOL)isSpaceChar:(unichar)c; 27 | + (BOOL)isQuoteChar:(unichar)c quoteChars:(NSCharacterSet *)quoteChars; 28 | + (void)tokenize:(NSString *)s into:(NSMutableArray *)array; 29 | + (void)tokenize:(NSString *)s into:(NSMutableArray *)array quoteChars:(NSCharacterSet *)quotes; 30 | + (void)tokenize:(NSString *)s into:(NSMutableArray *)array maxTokens:(NSInteger)maxTokens; 31 | + (void)tokenize:(NSString *)s into:(NSMutableArray *)array maxTokens:(NSInteger)maxTokens quoteChars:(NSCharacterSet *)quotes; 32 | + (void)firstToken:(NSString *)s into:(NSMutableString *)token; 33 | + (NSString *)removeQuotes:(NSString *)s quoteChars:(NSCharacterSet *)quoteChars; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Slate/SwitchAppQuittingOverlayView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchAppQuittingOverlayView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/22/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface SwitchAppQuittingOverlayView : NSView { 24 | BOOL force; 25 | } 26 | 27 | @property BOOL force; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Slate/SwitchAppView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchAppView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/22/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @class SwitchAppQuittingOverlayView; 24 | 25 | @interface SwitchAppView : NSView { 26 | BOOL selected; 27 | BOOL hidden; 28 | BOOL quitting; 29 | BOOL forceQuitting; 30 | NSRunningApplication *app; 31 | NSImageView *iconView; 32 | NSTextField *textField; 33 | SwitchAppQuittingOverlayView *quittingView; 34 | } 35 | 36 | @property (assign) BOOL selected; 37 | @property (assign) BOOL hidden; 38 | @property (assign) BOOL quitting; 39 | @property (assign) BOOL forceQuitting; 40 | @property NSRunningApplication *app; 41 | @property NSImageView *iconView; 42 | @property NSTextField *textField; 43 | @property SwitchAppQuittingOverlayView *quittingView; 44 | 45 | - (void)updateSelected:(BOOL)theSelected; 46 | - (void)updateApp:(NSRunningApplication *)theApp; 47 | - (void)updateHidden:(BOOL)theHidden; 48 | - (void)updateQuitting:(BOOL)theQuitting; 49 | - (void)updateForceQuitting:(BOOL)theForceQuitting; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Slate/SwitchOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/9/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | #import 23 | 24 | @interface SwitchOperation : Operation { 25 | NSMutableArray *switchers; 26 | NSMutableArray *switchersToViews; 27 | UInt32 modifiers; 28 | UInt32 backKeyCode; 29 | EventHotKeyRef backHotKeyRef; 30 | UInt32 quitKeyCode; 31 | EventHotKeyRef quitHotKeyRef; 32 | UInt32 fquitKeyCode; 33 | EventHotKeyRef fquitHotKeyRef; 34 | UInt32 hideKeyCode; 35 | EventHotKeyRef hideHotKeyRef; 36 | } 37 | 38 | @property (assign) UInt32 modifiers; 39 | 40 | - (void)activateSwitchKey:(EventHotKeyID)key isRepeat:(BOOL)isRepeat; 41 | - (BOOL)modifiersChanged:(UInt32)was new:(UInt32)new; 42 | 43 | + (id)switchOperation; 44 | + (id)switchOperationFromString:(NSString *)switchOperation; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Slate/SwitchView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/9/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface SwitchView : NSView 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Slate/SwitchView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchView.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/9/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "SwitchView.h" 22 | #import "SlateConfig.h" 23 | #import "Constants.h" 24 | 25 | @implementation SwitchView 26 | 27 | - (id)initWithFrame:(NSRect)frame { 28 | self = [super initWithFrame:frame]; 29 | if (self) [self setWantsLayer:YES]; 30 | return self; 31 | } 32 | 33 | - (void)drawRect:(NSRect)dirtyRect { 34 | NSArray *bgColorArr = [[SlateConfig getInstance] getArrayConfig:SWITCH_BACKGROUND_COLOR]; 35 | if ([bgColorArr count] < 4) bgColorArr = [SWITCH_BACKGROUND_COLOR_DEFAULT componentsSeparatedByString:SEMICOLON]; 36 | NSColor *backgroundColor = [NSColor colorWithDeviceRed:[[bgColorArr objectAtIndex:0] floatValue]/255.0 37 | green:[[bgColorArr objectAtIndex:1] floatValue]/255.0 38 | blue:[[bgColorArr objectAtIndex:2] floatValue]/255.0 39 | alpha:[[bgColorArr objectAtIndex:3] floatValue]]; 40 | [backgroundColor set]; 41 | float cornerSize = [[SlateConfig getInstance] getFloatConfig:SWITCH_ROUNDED_CORNER_SIZE]; 42 | NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:cornerSize yRadius:cornerSize]; 43 | [path fill]; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Slate/SwitchWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchWindow.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/9/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface SwitchWindow : NSWindow 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Slate/SwitchWindow.m: -------------------------------------------------------------------------------- 1 | // 2 | // SwitchWindow.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 3/9/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "SwitchWindow.h" 22 | 23 | @implementation SwitchWindow 24 | 25 | - (BOOL)canBecomeKeyWindow { 26 | return YES; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Slate/ThrowOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ThrowOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 1/20/13. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "MoveOperation.h" 22 | 23 | @interface ThrowOperation : MoveOperation 24 | 25 | + (id)throwOperation; 26 | + (id)throwOperationFromString:(NSString *)throwOperation; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/UndoOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // UndoOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 11/27/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "ActivateSnapshotOperation.h" 22 | 23 | @interface UndoOperation : ActivateSnapshotOperation 24 | 25 | + (id)undoOperation; 26 | + (id)undoOperationFromString:(NSString *)unused; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Slate/UndoOperation.m: -------------------------------------------------------------------------------- 1 | // 2 | // UndoOperation.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 11/27/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "UndoOperation.h" 22 | #import "Constants.h" 23 | #import "SlateAppDelegate.h" 24 | 25 | @implementation UndoOperation 26 | 27 | - (NSArray *)requiredOptions { 28 | return [NSArray array]; 29 | } 30 | 31 | + (id)undoOperation { 32 | [(SlateAppDelegate *)[NSApp delegate] setHasUndoOperation:YES]; 33 | return [[UndoOperation alloc] initWithName:UNDO_SNAPSHOT options:DELETE]; 34 | } 35 | 36 | + (id)undoOperationFromString:(NSString *)unused { 37 | return [UndoOperation undoOperation]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Slate/VisibilityOperation.h: -------------------------------------------------------------------------------- 1 | // 2 | // VisibilityOperation.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/7/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "Operation.h" 22 | 23 | typedef enum { 24 | VisibilityOperationTypeUnknown, 25 | VisibilityOperationTypeShow, 26 | VisibilityOperationTypeHide, 27 | VisibilityOperationTypeToggle 28 | } VisibilityOperationType; 29 | 30 | @interface VisibilityOperation : Operation { 31 | @private 32 | VisibilityOperationType type; 33 | NSArray *apps; 34 | } 35 | 36 | @property (assign) VisibilityOperationType type; 37 | @property NSArray *apps; 38 | 39 | - (id)initWithType:(VisibilityOperationType)theType apps:(NSArray *)theApps; 40 | - (void)applyVisibilityToApp:(NSRunningApplication *)app; 41 | 42 | + (id)visibilityOperation; 43 | + (id)visibilityOperationFromString:(NSString *)visibilityOperation; 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Slate/WindowInfoView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WindowInfoView.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 2/27/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface WindowInfoView : NSTextView { 24 | NSDate *lastDraw; 25 | } 26 | - (void)genText; 27 | @end 28 | -------------------------------------------------------------------------------- /Slate/WindowSnapshot.h: -------------------------------------------------------------------------------- 1 | // 2 | // WindowSnapshot.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 2/28/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface WindowSnapshot : NSObject { 24 | @private 25 | NSString *appName; 26 | NSString *title; 27 | NSPoint topLeft; 28 | NSSize size; 29 | } 30 | 31 | @property NSString *appName; 32 | @property NSString *title; 33 | @property (assign) NSPoint topLeft; 34 | @property (assign) NSSize size; 35 | 36 | - (id)initWithAppName:(NSString *)theAppName title:(NSString *)theTitle topLeft:(NSPoint)theTopLeft size:(NSSize)theSize; 37 | - (NSDictionary *)toDictionary; 38 | + (WindowSnapshot *)windowSnapshotFromDictionary:(NSDictionary *)dict; 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Slate/WindowState.h: -------------------------------------------------------------------------------- 1 | // 2 | // WindowState.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/13/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface WindowState : NSObject { 25 | @private 26 | pid_t appPID; 27 | NSSize size; 28 | NSPoint topLeft; 29 | } 30 | 31 | @property (assign) pid_t appPID; 32 | @property (assign) NSSize size; 33 | @property (assign) NSPoint topLeft; 34 | 35 | - (id)init:(AccessibilityWrapper *)aw; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Slate/WindowState.m: -------------------------------------------------------------------------------- 1 | // 2 | // WindowState.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 6/13/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "AccessibilityWrapper.h" 22 | #import "WindowState.h" 23 | 24 | 25 | @implementation WindowState 26 | 27 | @synthesize appPID; 28 | @synthesize size; 29 | @synthesize topLeft; 30 | 31 | - (id)init { 32 | self = [super init]; 33 | if (self) { 34 | } 35 | return self; 36 | } 37 | 38 | - (id)init:(AccessibilityWrapper *)aw { 39 | self = [self init]; 40 | if (self && [aw inited]) { 41 | [self setAppPID:[AccessibilityWrapper processIdentifierOfUIElement:[aw window]]]; 42 | [self setSize:[aw getCurrentSize]]; 43 | [self setTopLeft:[aw getCurrentTopLeft]]; 44 | } 45 | return self; 46 | } 47 | 48 | - (id)copyWithZone:(NSZone *)zone { 49 | WindowState *other = [[WindowState alloc] init]; 50 | [other setAppPID:[self appPID]]; 51 | [other setSize:[self size]]; 52 | [other setTopLeft:[self topLeft]]; 53 | return other; 54 | } 55 | 56 | - (BOOL)isEqual:(NSObject *)other { 57 | if ([other isKindOfClass:[WindowState class]]) { 58 | return [(WindowState *)other appPID] == [self appPID] && NSEqualSizes([(WindowState *)other size],[self size]) && NSEqualPoints([(WindowState *)other topLeft], [self topLeft]); 59 | } 60 | return NO; 61 | } 62 | 63 | - (NSUInteger)hash { 64 | NSUInteger prime = 31; 65 | NSUInteger result = prime * 1 + [self appPID]; 66 | result = prime * result + [self size].width; 67 | result = prime * result + [self size].height; 68 | result = prime * result + [self topLeft].x; 69 | result = prime * result + [self topLeft].y; 70 | return result; 71 | } 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /Slate/default.slate: -------------------------------------------------------------------------------- 1 | # This is the default .slate file. 2 | # If no ~/.slate file exists this is the file that will be used. 3 | 4 | config defaultToCurrentScreen true 5 | config nudgePercentOf screenSize 6 | config resizePercentOf screenSize 7 | 8 | # Resize Bindings 9 | bind right:alt resize +10% +0 10 | bind left:alt resize -10% +0 11 | bind up:alt resize +0 -10% 12 | bind down:alt resize +0 +10% 13 | bind right:ctrl;alt resize -10% +0 bottom-right 14 | bind left:ctrl;alt resize +10% +0 bottom-right 15 | bind up:ctrl;alt resize +0 +10% bottom-right 16 | bind down:ctrl;alt resize +0 -10% bottom-right 17 | 18 | # Push Bindings 19 | bind right:ctrl;cmd push right bar-resize:screenSizeX/3 20 | bind left:ctrl;cmd push left bar-resize:screenSizeX/3 21 | bind up:ctrl;cmd push up bar-resize:screenSizeY/2 22 | bind down:ctrl;cmd push down bar-resize:screenSizeY/2 23 | 24 | # Nudge Bindings 25 | bind right:shift;alt nudge +10% +0 26 | bind left:shift;alt nudge -10% +0 27 | bind up:shift;alt nudge +0 -10% 28 | bind down:shift;alt nudge +0 +10% 29 | 30 | # Throw Bindings 31 | bind 1:ctrl;alt throw 0 resize 32 | bind 2:ctrl;alt throw 1 resize 33 | bind 3:ctrl;alt throw 2 resize 34 | bind right:ctrl;alt;cmd throw right resize 35 | bind left:ctrl;alt;cmd throw left resize 36 | bind up:ctrl;alt;cmd throw up resize 37 | bind down:ctrl;alt;cmd throw down resize 38 | 39 | # Focus Bindings 40 | bind right:cmd focus right 41 | bind left:cmd focus left 42 | bind up:cmd focus up 43 | bind down:cmd focus down 44 | bind up:cmd;alt focus behind 45 | bind down:cmd;alt focus behind 46 | 47 | # Window Hints 48 | bind esc:cmd hint -------------------------------------------------------------------------------- /Slate/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf510 2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | \vieww10800\viewh8400\viewkind0 5 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 6 | 7 | \f0\b\fs24 \cf0 Links\ 8 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural 9 | {\field{\*\fldinst{HYPERLINK "https://github.com/jigish/slate"}}{\fldrslt 10 | \b0 \cf0 Home Page}} 11 | \b0 \ 12 | {\field{\*\fldinst{HYPERLINK "https://github.com/jigish/slate/wiki/JavaScript-Configs"}}{\fldrslt JavaScript Configs}} 13 | \b \ 14 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 15 | \cf0 \ 16 | Development 17 | \b0 \ 18 | Jigish Patel & {\field{\*\fldinst{HYPERLINK "https://github.com/jigish/slate/graphs/contributors"}}{\fldrslt Contributors\ 19 | \ 20 | }} 21 | \b Utilising{\field{\*\fldinst{HYPERLINK "https://github.com/jigish/slate/graphs/contributors"}}{\fldrslt 22 | \b0 \ 23 | JSONKit\ 24 | Sparkle}} 25 | \b0 \ 26 | \ 27 | 28 | \b Licensing 29 | \b0 \ 30 | GPLv3 \'a9 Jigish Patel 2011} -------------------------------------------------------------------------------- /Slate/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Slate/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Slate/icon.icns -------------------------------------------------------------------------------- /Slate/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | int main(int argc, char *argv[]) { 24 | return NSApplicationMain(argc, (const char **)argv); 25 | } 26 | -------------------------------------------------------------------------------- /Slate/slate-mock.js: -------------------------------------------------------------------------------- 1 | var opNum = 0; 2 | window._controller = { 3 | log : function(msg) { 4 | console.log(msg); 5 | }, 6 | bindFunction : function(k, c, r) { 7 | console.log("Mock bind function "+callback+" to "+k+" with repeat "+r); 8 | }, 9 | bindNative : function(k, c, r) { 10 | console.log("Mock bind operation "+callback+" to "+k+" with repeat "+r); 11 | }, 12 | configFunction : function(k, c) { 13 | console.log("Mock config function "+k+" = "+c); 14 | }, 15 | configNative : function(k, c) { 16 | console.log("Mock config native "+k+" = "+c); 17 | }, 18 | doOperation : function(op) { 19 | console.log("Mock do operation "+op); 20 | return true; 21 | }, 22 | operation : function(op, opts) { 23 | console.log("Mock create operation "+op+" with opts "+opts); 24 | opNum++; 25 | return "javascript:operation["+opNum+"]"; 26 | }, 27 | operationFromString : function(str) { 28 | opNum++; 29 | return "javascript:operation["+opNum+"]"; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Slate/slate-test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Slate/status.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Slate/status.pdf -------------------------------------------------------------------------------- /Slate/statusActive.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Slate/statusActive.pdf -------------------------------------------------------------------------------- /Slate/utils.js: -------------------------------------------------------------------------------- 1 | (function(controller) { 2 | for (key in _) { 3 | window["_"+key+"_"] = _[key]; 4 | } 5 | 6 | var _typeof_ = window._typeof_ = function(obj) { 7 | if (_.isString(obj)) { return "string"; } 8 | if (_.isArray(obj)) { return "array"; } 9 | if (_.isFunction(obj)) { return "function"; } 10 | if (_.isObject(obj)) { return "object"; } 11 | if (_.isNumber(obj)) { return "number"; } 12 | if (_.isBoolean(obj)) { return "boolean"; } 13 | return "unknown"; 14 | } 15 | 16 | var _array_ = window._array_ = function() { return []; } 17 | var _array_with_ = window._array_with_ = function() { return Array.prototype.slice.call(arguments, 0); } 18 | var _hash_ = window._hash_ = function() { return {}; } 19 | })(window._controller); -------------------------------------------------------------------------------- /SlateTests/SlateTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.slate.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /SlateTests/SlateTests-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'SlateTests' target in the 'SlateTests' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /SlateTests/SlateTests.h: -------------------------------------------------------------------------------- 1 | // 2 | // SlateTests.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | 24 | @interface SlateTests : XCTestCase { 25 | @private 26 | 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /SlateTests/SlateTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SlateTests.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 5/18/11. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "SlateTests.h" 22 | 23 | 24 | @implementation SlateTests 25 | 26 | - (void)setUp 27 | { 28 | [super setUp]; 29 | 30 | // Set-up code here. 31 | } 32 | 33 | - (void)tearDown 34 | { 35 | // Tear-down code here. 36 | 37 | [super tearDown]; 38 | } 39 | 40 | - (void)testExample 41 | { 42 | XCTAssertTrue(true, @"Unit tests are not implemented yet in SlateTests"); 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /SlateTests/TestExpressionPoint.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestExpressionPoint.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/16/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface TestExpressionPoint : XCTestCase 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlateTests/TestMathUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestMathUtils.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/16/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface TestMathUtils : XCTestCase 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlateTests/TestNSString+Indicies.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestNSString+Indicies.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/1/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface TestNSString_Indicies : XCTestCase 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlateTests/TestNSString+Indicies.m: -------------------------------------------------------------------------------- 1 | // 2 | // TestNSString+Indicies.m 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/1/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import "TestNSString+Indicies.h" 22 | #import "NSString+Indicies.h" 23 | 24 | @implementation TestNSString_Indicies 25 | 26 | - (void)testIndexOfString { 27 | NSString *test = @"hello&i%am-a$test#string"; 28 | XCTAssertEqual([test indexOfString:@"&"], (NSInteger)5, @"index of & should be 5"); 29 | XCTAssertEqual([test indexOfString:@"0"], (NSInteger)-1, @"index of 0 should be -1"); 30 | XCTAssertEqual([test indexOfString:@"hello"], (NSInteger)0, @"index of hello should be 0"); 31 | XCTAssertEqual([test indexOfString:@"g"], (NSInteger)([test length]-1), @"index of 0 should be ld", [test length]-1); 32 | } 33 | 34 | - (void)testIndexOfChar { 35 | NSString *test = @"hello&i%am-a$test#string"; 36 | XCTAssertEqual([test indexOfChar:'&'], (NSInteger)5, @"index of & should be 5"); 37 | XCTAssertEqual([test indexOfChar:'0'], (NSInteger)-1, @"index of 0 should be -1"); 38 | XCTAssertEqual([test indexOfChar:'h'], (NSInteger)0, @"index of h should be 0"); 39 | XCTAssertEqual([test indexOfChar:'g'], (NSInteger)([test length]-1), @"index of g should be %ld", [test length]-1); 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /SlateTests/TestNSString+Levenshtein.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestNSString+Levenshtein.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/16/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface TestNSString_Levenshtein : XCTestCase 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlateTests/TestShellUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestShellUtils.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/17/12. 6 | // Copyright 2012 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface TestShellUtils : XCTestCase 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlateTests/TestStringTokenizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // TestStringTokenizer.h 3 | // Slate 4 | // 5 | // Created by Jigish Patel on 10/16/12. 6 | // Copyright 2011 Jigish Patel. All rights reserved. 7 | // 8 | // This program is free software: you can redistribute it and/or modify 9 | // it under the terms of the GNU General Public License as published by 10 | // the Free Software Foundation, either version 3 of the License, or 11 | // (at your option) any later version. 12 | // 13 | // This program is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | // GNU General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU General Public License 19 | // along with this program. If not, see http://www.gnu.org/licenses 20 | 21 | #import 22 | 23 | @interface TestStringTokenizer : XCTestCase 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlateTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Sparkle.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Sparkle.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Sparkle.framework/Sparkle: -------------------------------------------------------------------------------- 1 | Versions/Current/Sparkle -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 16 | 17 | #import 18 | #import 19 | #import 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | Sparkle 9 | CFBundleIdentifier 10 | org.andymatuschak.Sparkle 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Sparkle 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.5 Beta 6 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 313 23 | 24 | 25 | -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | CLASS 25 | FirstResponder 26 | LANGUAGE 27 | ObjC 28 | SUPERCLASS 29 | NSObject 30 | 31 | 32 | CLASS 33 | NSObject 34 | LANGUAGE 35 | ObjC 36 | 37 | 38 | CLASS 39 | SUStatusController 40 | LANGUAGE 41 | ObjC 42 | OUTLETS 43 | 44 | actionButton 45 | NSButton 46 | progressBar 47 | NSProgressIndicator 48 | 49 | SUPERCLASS 50 | SUWindowController 51 | 52 | 53 | IBVersion 54 | 1 55 | 56 | 57 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 658 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9C7010 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 18 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 41 15 | 16 | IBSystem Version 17 | 10A96 18 | targetFramework 19 | IBCocoaFramework 20 | 21 | 22 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9D34 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj: -------------------------------------------------------------------------------- 1 | /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/fr_CA.lproj: -------------------------------------------------------------------------------- 1 | /Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 667 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 5 14 | 15 | IBSystem Version 16 | 9D34 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | 6 12 | 13 | IBSystem Version 14 | 9D34 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 629 7 | IBOldestOS 8 | 5 9 | IBOpenObjects 10 | 11 | IBSystem Version 12 | 9E17 13 | targetFramework 14 | IBCocoaFramework 15 | 16 | 17 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/relaunch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/relaunch -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9E17 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | CLASS 17 | NSApplication 18 | LANGUAGE 19 | ObjC 20 | SUPERCLASS 21 | NSResponder 22 | 23 | 24 | ACTIONS 25 | 26 | installUpdate 27 | id 28 | remindMeLater 29 | id 30 | skipThisVersion 31 | id 32 | 33 | CLASS 34 | SUUpdateAlert 35 | LANGUAGE 36 | ObjC 37 | OUTLETS 38 | 39 | delegate 40 | id 41 | description 42 | NSTextField 43 | releaseNotesView 44 | WebView 45 | 46 | SUPERCLASS 47 | SUWindowController 48 | 49 | 50 | CLASS 51 | FirstResponder 52 | LANGUAGE 53 | ObjC 54 | SUPERCLASS 55 | NSObject 56 | 57 | 58 | CLASS 59 | NSObject 60 | LANGUAGE 61 | ObjC 62 | 63 | 64 | IBVersion 65 | 1 66 | 67 | 68 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 9E17 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | NSObject 10 | LANGUAGE 11 | ObjC 12 | 13 | 14 | CLASS 15 | SUWindowController 16 | LANGUAGE 17 | ObjC 18 | SUPERCLASS 19 | NSWindowController 20 | 21 | 22 | ACTIONS 23 | 24 | finishPrompt 25 | id 26 | toggleMoreInfo 27 | id 28 | 29 | CLASS 30 | SUUpdatePermissionPrompt 31 | LANGUAGE 32 | ObjC 33 | OUTLETS 34 | 35 | delegate 36 | id 37 | descriptionTextField 38 | NSTextField 39 | moreInfoButton 40 | NSButton 41 | moreInfoView 42 | NSView 43 | 44 | SUPERCLASS 45 | SUWindowController 46 | 47 | 48 | CLASS 49 | FirstResponder 50 | LANGUAGE 51 | ObjC 52 | SUPERCLASS 53 | NSObject 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | IBSystem Version 14 | 9E17 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | doNotInstall 19 | id 20 | installLater 21 | id 22 | installNow 23 | id 24 | 25 | CLASS 26 | SUAutomaticUpdateAlert 27 | LANGUAGE 28 | ObjC 29 | SUPERCLASS 30 | SUWindowController 31 | 32 | 33 | CLASS 34 | FirstResponder 35 | LANGUAGE 36 | ObjC 37 | SUPERCLASS 38 | NSObject 39 | 40 | 41 | CLASS 42 | NSObject 43 | LANGUAGE 44 | ObjC 45 | 46 | 47 | IBVersion 48 | 1 49 | 50 | 51 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBDocumentLocation 6 | 69 14 356 240 0 0 1280 778 7 | IBFramework Version 8 | 489.0 9 | IBLastKnownRelativeProjectPath 10 | ../Sparkle.xcodeproj 11 | IBOldestOS 12 | 5 13 | IBSystem Version 14 | 9D34 15 | targetFramework 16 | IBCocoaFramework 17 | 18 | 19 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBClasses 6 | 7 | 8 | CLASS 9 | SUWindowController 10 | LANGUAGE 11 | ObjC 12 | SUPERCLASS 13 | NSWindowController 14 | 15 | 16 | ACTIONS 17 | 18 | finishPrompt 19 | id 20 | toggleMoreInfo 21 | id 22 | 23 | CLASS 24 | SUUpdatePermissionPrompt 25 | LANGUAGE 26 | ObjC 27 | OUTLETS 28 | 29 | delegate 30 | id 31 | descriptionTextField 32 | NSTextField 33 | moreInfoButton 34 | NSButton 35 | moreInfoView 36 | NSView 37 | 38 | SUPERCLASS 39 | SUWindowController 40 | 41 | 42 | CLASS 43 | FirstResponder 44 | LANGUAGE 45 | ObjC 46 | SUPERCLASS 47 | NSObject 48 | 49 | 50 | CLASS 51 | NSObject 52 | LANGUAGE 53 | ObjC 54 | 55 | 56 | IBVersion 57 | 1 58 | 59 | 60 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IBFramework Version 6 | 670 7 | IBLastKnownRelativeProjectPath 8 | ../Sparkle.xcodeproj 9 | IBOldestOS 10 | 5 11 | IBOpenObjects 12 | 13 | 6 14 | 15 | IBSystem Version 16 | 10A96 17 | targetFramework 18 | IBCocoaFramework 19 | 20 | 21 | -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Sparkle.framework/Versions/A/Sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/Sparkle.framework/Versions/A/Sparkle -------------------------------------------------------------------------------- /Sparkle.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /build/dmg_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/build/dmg_background.png -------------------------------------------------------------------------------- /doc/Makefile: -------------------------------------------------------------------------------- 1 | MDFILES := $(wildcard *.md) 2 | HTMLFILES := $(patsubst %.md,%.html,$(MDFILES)) 3 | 4 | .PHONY: all 5 | all: $(HTMLFILES) $(MAKEFILE_LIST) 6 | 7 | %.html: %.md $(MAKEFILE_LIST) 8 | pandoc $< --output=$@ --from=markdown_github --to=html5 --css=github.css 9 | perl -i -ple 's/href="([^"]+).md([#"])/href="$$1.html$$2/g' $@ 10 | 11 | .PHONY: clean 12 | clean: $(MAKEFILE_LIST) 13 | rm -f $(HTMLFILES) 14 | -------------------------------------------------------------------------------- /doc/directive-alias.md: -------------------------------------------------------------------------------- 1 | # The `alias` Directive # 2 | 3 | The `alias` directive follows the following format: 4 | 5 | ``` 6 | alias name value 7 | ``` 8 | 9 | When you set an alias, you can refer to it in any directive (sequentially after that alias directive) by referencing like `${name}`. 10 | 11 | Example: 12 | 13 | ``` 14 | alias bot-right-2nd-mon move screenOriginX+2*screenSizeX/3;screenOriginY+screenSizeY/2 screenSizeX/3;screenSizeY/2 1 15 | ``` 16 | 17 | Will allow you to use `${bot-right-2nd-mon}` as a reference to `move screenOriginX+2*screenSizeX/3;screenOriginY+screenSizeY/2 screenSizeX/3;screenSizeY/2 1` in any directive following the alias (including other alias directives) 18 | -------------------------------------------------------------------------------- /doc/directive-default.md: -------------------------------------------------------------------------------- 1 | # The `default` Directive # 2 | 3 | The `default` directive follows the following format (tokens may be separated by any number of spaces): 4 | 5 | ``` 6 | default layout-or-snapshot-name screen-configuration 7 | ``` 8 | 9 | Where: 10 | 11 | * `layout-or-snapshot-name` is the name of the layout or snapshot you want to default to 12 | * `screen-configuration` is either `count:NUMBER_OF_SCREENS` or `resolutions:SEMICOLON_SEPARATED_LIST_OF_RESOLUTIONS` 13 | 14 | This directive will cause any screen configuration change (add monitor, remove monitor, screen resolution change) to trigger a search for a default layout or snapshot. If the screen configuration matches one of the defaults set, the layout or snapshot matching `layout-or-snapshot-name` will be triggered. For example: 15 | 16 | ``` 17 | default myLayout count:2 18 | ``` 19 | 20 | Will trigger `myLayout` anytime the screen configuration changes to have 2 monitors. Also: 21 | 22 | ``` 23 | default myLayout2 resolutions:1440x900;1024x768;1680x1050 24 | ``` 25 | 26 | Will trigger `myLayout2` anytime the screen configuration changes to have exactly 3 monitors with resolutions `1440x900`, `1024x768`, and `1680x1050`. 27 | -------------------------------------------------------------------------------- /doc/directive-source.md: -------------------------------------------------------------------------------- 1 | # The `source` Directive # 2 | 3 | The source directive follows the following format (tokens may be separated by any number of spaces): 4 | 5 | ``` 6 | source filename optional:if_exists 7 | ``` 8 | 9 | Where `filename` is the name of a file containing any of the directives above (including source). If no absolute path is specified, the user's home directory will be prepended to `filename`. If the user specifies the option `if_exists` as the second argument, Slate will not complain if it cannot find the file. 10 | 11 | For Example: 12 | 13 | ``` 14 | source ~/.slate.test if_exists 15 | ``` 16 | 17 | Will append all of the configurations from the file `~/.slate.test` to the current configuration if the file `~/.slate.test` exists. 18 | 19 | **Note:** You may use any aliases, layouts, etc that you specify before the source directive in the file you source. Any aliases, layouts, etc specified after cannot be used. Additionally, any aliases, layouts, etc that you specify in the file you source can be used after the source directive. 20 | -------------------------------------------------------------------------------- /doc/installation.md: -------------------------------------------------------------------------------- 1 | # Installing Slate # 2 | 3 | **Note:** You must turn on the Accessibility API! 4 | 5 | When *Slate* starts it asks you if it can enable access for assistive devices. It may fail to do so. You can manually set this by checking System Preferences > Universal Access > Enable access for assistive devices. If you are on Mavericks or Yosemite, you must turn it on by checking *Slate* in System Preferences > Security & Privacy > Privacy > Accessibility. 6 | 7 | ## Homebrew Cask ## 8 | 9 | If you use [Homebrew Cask](http://caskroom.io/), install the `mattr-slate` cask: 10 | 11 | ```console 12 | $ brew cask install mattr-slate 13 | ``` 14 | 15 | ## Manual Install ## 16 | 17 | Get the [latest `Slate.app`](https://github.com/mattr-/slate/releases/latest) as a _zip_ file. 18 | 19 | ## Build from Source ## 20 | 21 | 1. Install XCode. 22 | 2. In the terminal, run: `git clone https://github.com/mattr-/slate.git ~/Slate`. 23 | 3. Open `~/Slate/Slate.xcodeproj` with XCode. 24 | 4. Go to **Product** → **Archive** and wait a minute. 25 | 5. Once the Archive Organizer pops up, choose the most recently created Slate export. (It should be selected by default.) 26 | 6. Click **Export** (on the right). 27 | 7. Select **Export as a Mac Application** and click **Next**. 28 | 8. Choose where you want to save Slate.app. 29 | 9. Run Slate by opening the Finder to where you saved it and double clicking `Slate.app`. 30 | -------------------------------------------------------------------------------- /doc/js-object-application.md: -------------------------------------------------------------------------------- 1 | # The Slate Application Object # 2 | 3 | The application object is returned by various Slate API functions. This page describes it in detail. 4 | 5 | ## Description ## 6 | 7 | The application object represents a currently running application. 8 | 9 | ## Functions ## 10 | 11 | ### pid() ### 12 | 13 | Return the Process Identifier of the application. 14 | 15 | ```javascript 16 | // app is an application object 17 | var pid = app.pid(); 18 | ``` 19 | 20 | ### name() ### 21 | 22 | Return the name of the application. 23 | 24 | ```javascript 25 | // app is an application object 26 | var name = app.name(); 27 | ``` 28 | 29 | ### eachWindow() ### 30 | 31 | **Alias:** `ewindow` 32 | 33 | Loop over each [window](js-object-window.md) within the application and run a function for each one. 34 | 35 | ```javascript 36 | // app is an application object 37 | var name = app.eachWindow(function(windowObject) { 38 | // do something with windowObject 39 | }); 40 | ``` 41 | 42 | * `windowObject` is a [window object](js-object-window.md) representing the current window within the callback function. 43 | 44 | ### mainWindow() ### 45 | 46 | **Alias:** `mwindow` 47 | 48 | Return the main [window](js-object-window.md) of the application or `undefined` if there is none. 49 | 50 | ```javascript 51 | // app is an application object 52 | var mainWindow = app.mainWindow(); 53 | ``` 54 | -------------------------------------------------------------------------------- /doc/js-object-screen.md: -------------------------------------------------------------------------------- 1 | # The Slate Screen Object # 2 | 3 | The screen object is returned by various Slate API functions. This page describes it in detail. 4 | 5 | ## Description ## 6 | 7 | The screen object represents a screen. It can be used to reference screens in operations. 8 | 9 | ## Functions ## 10 | 11 | ### id() ### 12 | 13 | Return the ID of the screen. This can be used to reference the screen in operations. 14 | 15 | ```javascript 16 | // screen is a screen object 17 | var screenId = screen.id(); 18 | ``` 19 | 20 | ### rect() ### 21 | 22 | Return the rectangle that represents this screen's location and size. 23 | 24 | ```javascript 25 | // screen is a screen object 26 | var rect = screen.rect(); 27 | var topLeftX = rect.x; 28 | var topLeftY = rect.y; 29 | var width = rect.width; 30 | var height = rect.height; 31 | ``` 32 | 33 | ### visibleRect() ### 34 | 35 | **Alias:** `vrect` 36 | 37 | Return the rectangle that represents this screen's visible location and size. This takes the menu bar and dock into account and will return the size and location of the screen without those components. 38 | 39 | ```javascript 40 | // screen is a screen object 41 | var rect = screen.visibleRect(); 42 | var topLeftX = rect.x; 43 | var topLeftY = rect.y; 44 | var width = rect.width; 45 | var height = rect.height; 46 | ``` 47 | 48 | ### isMain() ### 49 | 50 | **Alias:** `main` 51 | 52 | Returns `true` if this screen is the main screen, `false` otherwise. 53 | 54 | ```javascript 55 | // screen is a screen object 56 | var isMain = screen.isMain(); 57 | ``` 58 | -------------------------------------------------------------------------------- /doc/keys.md: -------------------------------------------------------------------------------- 1 | # Allowed Keys # 2 | 3 | **Note:** If you bind anything to cmd-tab or cmd-shift-tab, Slate will completely disable the default Mac OS X Application switcher! 4 | 5 | * Letters 6 | * `a` 7 | * `b` 8 | * `c` 9 | * `d` 10 | * `e` 11 | * `f` 12 | * `g` 13 | * `h` 14 | * `i` 15 | * `j` 16 | * `k` 17 | * `l` 18 | * `m` 19 | * `n` 20 | * `o` 21 | * `p` 22 | * `q` 23 | * `r` 24 | * `s` 25 | * `t` 26 | * `u` 27 | * `v` 28 | * `w` 29 | * `x` 30 | * `y` 31 | * `z` 32 | * Numbers 33 | * `0` 34 | * `1` 35 | * `2` 36 | * `3` 37 | * `4` 38 | * `5` 39 | * `6` 40 | * `7` 41 | * `8` 42 | * `9` 43 | * Symbols 44 | * `-` 45 | * `,` 46 | * `;` 47 | * `.` 48 | * `'` 49 | * `[` 50 | * `]` 51 | * `/` 52 | * ` 53 | * `=` 54 | * `backslash` 55 | * Navigation Keys 56 | * `up` 57 | * `down` 58 | * `left` 59 | * `right` 60 | * `home` 61 | * `end` 62 | * `pageUp` 63 | * `pageDown` 64 | * Function Keys 65 | * `f1` 66 | * `f2` 67 | * `f3` 68 | * `f4` 69 | * `f5` 70 | * `f6` 71 | * `f7` 72 | * `f8` 73 | * `f9` 74 | * `f10` 75 | * `f11` 76 | * `f12` 77 | * `f13` 78 | * `f14` 79 | * `f15` 80 | * `f16` 81 | * `f17` 82 | * `f18` 83 | * `f19` 84 | * `f20` 85 | * Keypad Keys 86 | * `pad0` 87 | * `pad1` 88 | * `pad2` 89 | * `pad3` 90 | * `pad4` 91 | * `pad5` 92 | * `pad6` 93 | * `pad7` 94 | * `pad8` 95 | * `pad9` 96 | * `pad.` 97 | * `pad+` 98 | * `pad-` 99 | * `pad*` 100 | * `pad/` 101 | * `pad=` 102 | * `padClear` 103 | * `padEnter` 104 | * Other Non-Printable Keys 105 | * `caps` 106 | * `delete` 107 | * `esc` 108 | * `help` 109 | * `mute` 110 | * `rdelete` 111 | * `return` 112 | * `space` 113 | * `tab` 114 | -------------------------------------------------------------------------------- /icons/Contact.txt: -------------------------------------------------------------------------------- 1 | Gianluca Aiello 2 | 3 | email: gianluca369@gmail.com 4 | skype: gianluka369 5 | dribbble: http://dribbble.com/G369 -------------------------------------------------------------------------------- /icons/IMG/icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/icon_1024.png -------------------------------------------------------------------------------- /icons/IMG/icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/icon_128.png -------------------------------------------------------------------------------- /icons/IMG/icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/icon_256.png -------------------------------------------------------------------------------- /icons/IMG/icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/icon_32.png -------------------------------------------------------------------------------- /icons/IMG/icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/icon_512.png -------------------------------------------------------------------------------- /icons/IMG/status-bar-icon_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/status-bar-icon_18.png -------------------------------------------------------------------------------- /icons/IMG/status-bar-icon_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/IMG/status-bar-icon_20.png -------------------------------------------------------------------------------- /icons/PREVIEW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/PREVIEW.png -------------------------------------------------------------------------------- /icons/PSD/icon_1024.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/PSD/icon_1024.psd -------------------------------------------------------------------------------- /icons/PSD/status-bar icon 1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/PSD/status-bar icon 1.psd -------------------------------------------------------------------------------- /icons/PSD/status-bar icon 2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/PSD/status-bar icon 2.psd -------------------------------------------------------------------------------- /icons/PSD/status-bar icon 3.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattr-/slate/84675306064dfa6f8f2bd6606a261818f83d39ee/icons/PSD/status-bar icon 3.psd --------------------------------------------------------------------------------