diff --git a/ShiftIt/DefaultShiftItActions.h b/ShiftIt/DefaultShiftItActions.h index 0433c551..952e90bd 100644 --- a/ShiftIt/DefaultShiftItActions.h +++ b/ShiftIt/DefaultShiftItActions.h @@ -20,6 +20,27 @@ #import #import "WindowGeometryShiftItAction.h" #import "ShiftIt.h" +const extern SimpleWindowGeometryChangeBlock shiftItNineOne; +const extern SimpleWindowGeometryChangeBlock shiftItNineTwo; +const extern SimpleWindowGeometryChangeBlock shiftItNineThree; +const extern SimpleWindowGeometryChangeBlock shiftItNineFour; +const extern SimpleWindowGeometryChangeBlock shiftItNineFive; +const extern SimpleWindowGeometryChangeBlock shiftItNineSix; +const extern SimpleWindowGeometryChangeBlock shiftItNineSeven; +const extern SimpleWindowGeometryChangeBlock shiftItNineEight; +const extern SimpleWindowGeometryChangeBlock shiftItNineNine; + + +const extern SimpleWindowGeometryChangeBlock shiftItSixOne; +const extern SimpleWindowGeometryChangeBlock shiftItSixTwo; +const extern SimpleWindowGeometryChangeBlock shiftItSixThree; +const extern SimpleWindowGeometryChangeBlock shiftItSixFour; +const extern SimpleWindowGeometryChangeBlock shiftItSixFive; +const extern SimpleWindowGeometryChangeBlock shiftItSixSix; + +const extern SimpleWindowGeometryChangeBlock shiftItThreeLeft; +const extern SimpleWindowGeometryChangeBlock shiftItThreeCenter; +const extern SimpleWindowGeometryChangeBlock shiftItThreeRight; const extern SimpleWindowGeometryChangeBlock shiftItLeft; const extern SimpleWindowGeometryChangeBlock shiftItRight; diff --git a/ShiftIt/DefaultShiftItActions.m b/ShiftIt/DefaultShiftItActions.m index 5fe711e4..366d9701 100644 --- a/ShiftIt/DefaultShiftItActions.m +++ b/ShiftIt/DefaultShiftItActions.m @@ -21,98 +21,431 @@ // TODO: extract this to be out of here #import "ShiftItApp.h" -const SimpleWindowGeometryChangeBlock shiftItLeft = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { +const SimpleWindowGeometryChangeBlock shiftItNineOne = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor1 = [defaults doubleForKey:kSplitNineHorOne]; + double ver1 = [defaults doubleForKey:kSplitNineVerOne]; + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = 0; + r.origin.y = 0; + + r.size.width = screenSize.width * ver1; + r.size.height = screenSize.height * hor1; + + return MakeAnchoredRect(r, 0); +}; +const SimpleWindowGeometryChangeBlock shiftItNineTwo = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor1 = [defaults doubleForKey:kSplitNineHorOne]; + double ver1 = [defaults doubleForKey:kSplitNineVerOne]; + double ver2 = [defaults doubleForKey:kSplitNineVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver1; + r.origin.y = 0; + + r.size.width = screenSize.width * (ver2-ver1); + r.size.height = screenSize.height * hor1; + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItNineThree = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor1 = [defaults doubleForKey:kSplitNineHorOne]; + double ver2 = [defaults doubleForKey:kSplitNineVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver2; + r.origin.y = 0; + + r.size.width = screenSize.width * (1.0-ver2); + r.size.height = screenSize.height * hor1; + + return MakeAnchoredRect(r, 0); +}; + + +const SimpleWindowGeometryChangeBlock shiftItNineFour = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor1 = [defaults doubleForKey:kSplitNineHorOne]; + double ver1 = [defaults doubleForKey:kSplitNineVerOne]; + double hor2 = [defaults doubleForKey:kSplitNineHorTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = 0; + r.origin.y = screenSize.height *hor1; + + r.size.width = screenSize.width * ver1; + r.size.height = screenSize.height * (hor2-hor1); + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItNineFive = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor1 = [defaults doubleForKey:kSplitNineHorOne]; + double ver1 = [defaults doubleForKey:kSplitNineVerOne]; + double hor2 = [defaults doubleForKey:kSplitNineHorTwo]; + double ver2 = [defaults doubleForKey:kSplitNineVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver1; + r.origin.y = screenSize.height *hor1; + + r.size.width = screenSize.width * (ver2-ver1); + r.size.height = screenSize.height * (hor2-hor1); + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItNineSix = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor1 = [defaults doubleForKey:kSplitNineHorOne]; + double hor2 = [defaults doubleForKey:kSplitNineHorTwo]; + double ver2 = [defaults doubleForKey:kSplitNineVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver2; + r.origin.y = screenSize.height *hor1; + + r.size.width = screenSize.width * (1.0-ver2); + r.size.height = screenSize.height * (hor2-hor1); + + return MakeAnchoredRect(r, 0); +}; + + +const SimpleWindowGeometryChangeBlock shiftItNineSeven = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double ver1 = [defaults doubleForKey:kSplitNineVerOne]; + double hor2 = [defaults doubleForKey:kSplitNineHorTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = 0; + r.origin.y = screenSize.height * hor2; + + r.size.width = screenSize.width * ver1; + r.size.height = screenSize.height * (1.0-hor2); + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItNineEight = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double ver1 = [defaults doubleForKey:kSplitNineVerOne]; + double hor2 = [defaults doubleForKey:kSplitNineHorTwo]; + double ver2 = [defaults doubleForKey:kSplitNineVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver1; + r.origin.y = screenSize.height * hor2; + + r.size.width = screenSize.width * (ver2-ver1); + r.size.height = screenSize.height * (1.0-hor2); + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItNineNine = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor2 = [defaults doubleForKey:kSplitNineHorTwo]; + double ver2 = [defaults doubleForKey:kSplitNineVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver2; + r.origin.y = screenSize.height * hor2; + + r.size.width = screenSize.width * (1.0-ver2); + r.size.height = screenSize.height * (1.0-hor2); + + return MakeAnchoredRect(r, 0); +}; + + +const SimpleWindowGeometryChangeBlock shiftItSixOne = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitSixHorOne]; + double ver1 = [defaults doubleForKey:kSplitSixVerOne]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + r.origin.x = 0; r.origin.y = 0; + + r.size.width = screenSize.width * ver1; + r.size.height = screenSize.height * hor; + + return MakeAnchoredRect(r, 0); +}; - r.size.width = screenSize.width / 2; +const SimpleWindowGeometryChangeBlock shiftItSixTwo = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitSixHorOne]; + double ver1 = [defaults doubleForKey:kSplitSixVerOne]; + double ver2 = [defaults doubleForKey:kSplitSixVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver1; + r.origin.y = 0; + + r.size.width = screenSize.width * (ver2-ver1); + r.size.height = screenSize.height * hor; + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItSixThree = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitSixHorOne]; + double ver2 = [defaults doubleForKey:kSplitSixVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver2; + r.origin.y = 0; + + r.size.width = screenSize.width * (1.0-ver2); + r.size.height = screenSize.height * hor; + + return MakeAnchoredRect(r, 0); +}; + + +const SimpleWindowGeometryChangeBlock shiftItSixFour = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitSixHorOne]; + double ver1 = [defaults doubleForKey:kSplitSixVerOne]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = 0; + r.origin.y = screenSize.height * hor; + + r.size.width = screenSize.width * ver1; + r.size.height = screenSize.height * (1-hor); + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItSixFive = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitSixHorOne]; + double ver1 = [defaults doubleForKey:kSplitSixVerOne]; + double ver2 = [defaults doubleForKey:kSplitSixVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver1; + r.origin.y = screenSize.height * hor; + + r.size.width = screenSize.width * (ver2-ver1); + r.size.height = screenSize.height * (1-hor); + + return MakeAnchoredRect(r, 0); +}; + +const SimpleWindowGeometryChangeBlock shiftItSixSix = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitSixHorOne]; + double ver2 = [defaults doubleForKey:kSplitSixVerTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver2; + r.origin.y = screenSize.height * hor; + + r.size.width = screenSize.width * (1.0-ver2); + r.size.height = screenSize.height * (1-hor); + + return MakeAnchoredRect(r, 0); +}; + + + + +const SimpleWindowGeometryChangeBlock shiftItThreeLeft = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double ver1 = [defaults doubleForKey:kSplitThreeOne]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = 0; + r.origin.y = 0; + + r.size.width = screenSize.width * ver1; + r.size.height = screenSize.height; + + return MakeAnchoredRect(r, kLeftDirection); +}; + +const SimpleWindowGeometryChangeBlock shiftItThreeCenter = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double ver1 = [defaults doubleForKey:kSplitThreeOne]; + double ver2 = [defaults doubleForKey:kSplitThreeTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver1; + r.origin.y = 0; + + r.size.width = screenSize.width * (ver2-ver1); + r.size.height = screenSize.height; + + return MakeAnchoredRect(r, kTopDirection); +}; + +const SimpleWindowGeometryChangeBlock shiftItThreeRight = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double ver2 = [defaults doubleForKey:kSplitThreeTwo]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = screenSize.width * ver2; + r.origin.y = 0; + + r.size.width = screenSize.width * (1.0-ver2); r.size.height = screenSize.height; + + return MakeAnchoredRect(r, kRightDirection); +}; + + + +const SimpleWindowGeometryChangeBlock shiftItLeft = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double coef = [defaults doubleForKey:kSplitHalfVertical]; + + NSRect r = NSMakeRect(0, 0, 0, 0); + + r.origin.x = 0; + r.origin.y = 0; + + r.size.width = screenSize.width * coef; + r.size.height = screenSize.height; + return MakeAnchoredRect(r, kLeftDirection); }; + const SimpleWindowGeometryChangeBlock shiftItRight = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double coef = [defaults doubleForKey:kSplitHalfVertical]; + NSRect r = NSMakeRect(0, 0, 0, 0); - r.origin.x = screenSize.width / 2; + r.origin.x = screenSize.width * coef; r.origin.y = 0; - r.size.width = screenSize.width / 2; + r.size.width = screenSize.width * (1.0 - coef); r.size.height = screenSize.height; return MakeAnchoredRect(r, kRightDirection); }; const SimpleWindowGeometryChangeBlock shiftItTop = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double coef = [defaults doubleForKey:kSplitHalfHorizontal]; + NSRect r = NSMakeRect(0, 0, 0, 0); r.origin.x = 0; r.origin.y = 0; r.size.width = screenSize.width; - r.size.height = screenSize.height / 2; + r.size.height = screenSize.height * coef; return MakeAnchoredRect(r, kTopDirection); }; const SimpleWindowGeometryChangeBlock shiftItBottom = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double coef = [defaults doubleForKey:kSplitHalfHorizontal]; + NSRect r = NSMakeRect(0, 0, 0, 0); r.origin.x = 0; - r.origin.y = screenSize.height / 2; + r.origin.y = screenSize.height * coef; r.size.width = screenSize.width; - r.size.height = screenSize.height / 2; + r.size.height = screenSize.height *(1.0-coef); return MakeAnchoredRect(r, kBottomDirection); }; const SimpleWindowGeometryChangeBlock shiftItTopLeft = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitQuarterHorizontal]; + double ver = [defaults doubleForKey:kSplitQuarterVertical]; + NSRect r = NSMakeRect(0, 0, 0, 0); r.origin.x = 0; r.origin.y = 0; - r.size.width = screenSize.width / 2; - r.size.height = screenSize.height / 2; + r.size.width = screenSize.width * ver; + r.size.height = screenSize.height * hor; return MakeAnchoredRect(r, kTopDirection | kLeftDirection); }; const SimpleWindowGeometryChangeBlock shiftItTopRight = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitQuarterHorizontal]; + double ver = [defaults doubleForKey:kSplitQuarterVertical]; + NSRect r = NSMakeRect(0, 0, 0, 0); - r.origin.x = screenSize.width / 2; + r.origin.x = screenSize.width * ver; r.origin.y = 0; - r.size.width = screenSize.width / 2; - r.size.height = screenSize.height / 2; + r.size.width = screenSize.width * (1.0-ver); + r.size.height = screenSize.height * hor; return MakeAnchoredRect(r, kTopDirection | kRightDirection); }; const SimpleWindowGeometryChangeBlock shiftItBottomLeft = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitQuarterHorizontal]; + double ver = [defaults doubleForKey:kSplitQuarterVertical]; + NSRect r = NSMakeRect(0, 0, 0, 0); r.origin.x = 0; - r.origin.y = screenSize.height / 2; + r.origin.y = screenSize.height * hor; - r.size.width = screenSize.width / 2; - r.size.height = screenSize.height / 2; + r.size.width = screenSize.width * ver; + r.size.height = screenSize.height * (1.0-hor); return MakeAnchoredRect(r, kBottomDirection | kLeftDirection); }; const SimpleWindowGeometryChangeBlock shiftItBottomRight = ^AnchoredRect(NSRect windowRect, NSSize screenSize) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + double hor = [defaults doubleForKey:kSplitQuarterHorizontal]; + double ver = [defaults doubleForKey:kSplitQuarterVertical]; + NSRect r = NSMakeRect(0, 0, 0, 0); - r.origin.x = screenSize.width / 2; - r.origin.y = screenSize.height / 2; + r.origin.x = screenSize.width * ver; + r.origin.y = screenSize.height * hor; - r.size.width = screenSize.width / 2; - r.size.height = screenSize.height / 2; + r.size.width = screenSize.width * (1.0-ver); + r.size.height = screenSize.height * (1.0-hor); return MakeAnchoredRect(r, kBottomDirection | kRightDirection); }; diff --git a/ShiftIt/PreferencesWindow.xib b/ShiftIt/PreferencesWindow.xib index 5a0b7f68..7233417d 100644 --- a/ShiftIt/PreferencesWindow.xib +++ b/ShiftIt/PreferencesWindow.xib @@ -1,4493 +1,1662 @@ - - - - 1060 - 11C74 - 1938 - 1138.23 - 567.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1938 - - - NSStepper - NSStepperCell - NSNumberFormatter - NSCustomView - NSButton - NSTextFieldCell - NSButtonCell - NSImageView - NSImageCell - NSTabView - NSMatrix - NSCustomObject - NSTabViewItem - NSView - NSWindowTemplate - NSTextField - NSUserDefaultsController - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - PreferencesWindowController - - - FirstResponder - - - NSApplication - - - 3 - 2 - {{488, 105}, {367, 496}} - 544735232 - Preferences - NSWindow - - - - - 256 - - - - 12 - {{13, 5}, {341, 480}} - - - - - - general - - - 256 - - - - 268 - {{47, 41}, {190, 32}} - - - YES - - 67239424 - 134217728 - Check For Updates Now - - LucidaGrande - 13 - 1044 - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{125, 384}, {127, 29}} - - - YES - - 68288064 - 272630784 - ShiftIt App - - LucidaGrande - 24 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{152, 371}, {73, 17}} - - - YES - - 68288064 - 138413056 - version - - - - - - - - - 268 - {{74, 9}, {136, 32}} - - YES - - 67239424 - 134217728 - Quit ShiftIt - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {{35, 353}, {80, 80}} - - - YES - - 130560 - 33554432 - - NSImage - ShiftIt-logo - - 0 - 0 - 0 - NO - - YES - - - - 256 - {{26, 243}, {233, 102}} - - - YES - 4 - 1 - - - -2080244224 - 0 - Show Icon In Menu Bar - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - -2080244224 - 0 - Open At Login - - - 1211912703 - 2 - - - - - 200 - 25 - - - -2080244224 - 0 - Automatically Check For Updates - - - 1211912703 - 2 - - - - - 200 - 25 - - - -2080244224 - 0 - Include Window Drawers - - - 1211912703 - 2 - - - - - 200 - 25 - - - {233, 21} - {0, 6} - -2080366592 - - - -2080244224 - 0 - Show Icon In Menu Bar - - 1211912703 - 2 - - - 200 - 25 - - -1 - -1 - - - - - - 268 - {{44, 165}, {218, 70}} - - - _NS:360 - {250, 750} - YES - - 67239424 - 272760832 - It should work fine in most cases, but eventually you might experience some weird behavior with drawers. Please, before reporting a new issue, check the list if there is not already one. - - LucidaGrande - 11 - 3100 - - _NS:360 - - - - - - - - 268 - {{67, 73}, {150, 32}} - - - _NS:687 - YES - - 67239424 - 134217728 - Report New Issue - - _NS:687 - - -2038284033 - 129 - - - 200 - 25 - - - - {{32, 7}, {299, 460}} - - - General - - - - - hotKeys - - - 256 - - - - 268 - {{55, 423}, {65, 17}} - - - 100 - YES - - 68288064 - 71304192 - Left - - - - - - - - - 268 - {{56, 399}, {65, 17}} - - - YES - - 68288064 - 71304192 - Right - - - - - - - - - 268 - {{56, 375}, {65, 17}} - - - YES - - 68288064 - 71304192 - Top - - - - - - - - - 268 - {{56, 351}, {65, 17}} - - - YES - - 68288064 - 71304192 - Bottom - - - - - - - - - 268 - {{55, 321}, {65, 17}} - - - YES - - 68288064 - 71304192 - Top Left - - - - - - - - - 268 - {{55, 297}, {66, 17}} - - - YES - - 68288064 - 71304192 - Top Right - - - - - - - - - 268 - {{43, 273}, {78, 17}} - - - YES - - 68288064 - 71304192 - Bottom Left - - - - - - - - - 268 - {{34, 249}, {87, 17}} - - - YES - - 68288064 - 71304192 - Bottom Right - - - - - - - - - 268 - {{74, 217}, {46, 17}} - - - YES - - 68288064 - 71304192 - Center - - - - - - - - - 268 - {{0, 143}, {120, 17}} - - - YES - - 68288064 - 71304192 - Toggle Full Screen - - - - - - - - - 268 - {{28, 110}, {92, 17}} - - - YES - - 68288064 - 71304192 - Increase - - - - - - - - - 268 - {{35, 86}, {86, 17}} - - - YES - - 68288064 - 71304192 - Reduce - - - - - - - - - 288 - {{58, 9}, {169, 32}} - - YES - - 67239424 - 134217728 - Restore defaults - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{126, 421}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 396}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 371}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 346}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 318}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 294}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 270}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 246}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 214}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{29, 192}, {91, 17}} - - - YES - - 68288064 - 71304192 - Toggle Zoom - - - - - - - - - 268 - {{126, 189}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{54, 167}, {65, 17}} - - - YES - - 68288064 - 71304192 - Maximize - - - - - - - - - 268 - {{126, 164}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 140}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 107}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{126, 83}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - - 268 - {{27, 56}, {92, 17}} - - - YES - - 68288064 - 71304192 - Next screen - - - - - - - - - 268 - {{126, 53}, {160, 22}} - - - _NS:499 - SRRecorderControl - - - {{32, 7}, {299, 460}} - - - Hotkeys - - - - - incred - - - 256 - - - - 268 - {{7, 426}, {38, 17}} - - - YES - - 68288064 - 272630784 - Size: - - - - - - - - - 268 - {{22, 327}, {76, 91}} - - - YES - 3 - 1 - - - -2080244224 - 0 - Fixed - - - 3001 - 1211912703 - 0 - - NSRadioButton - - - - 200 - 25 - - - 67239424 - 0 - Window - - - 3002 - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw -cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA -AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA -BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA -AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA -AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 -cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD -AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH -SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF -hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8 -vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt -7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq -Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo -aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e -n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX -2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW -FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O -Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6 -ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt -rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA -AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA -AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl -A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq -DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU -HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8 -MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v -UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/ -eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj -rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn -5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh -AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK -CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY -GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95 -MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S -UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2 -d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV -pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK -0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf// -AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw -BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA -FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H -LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh -Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ -h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp -svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb -1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX -8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE -AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg -QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - - 67239424 - 0 - Screen - - - 3003 - 1211912703 - 0 - - 400 - 75 - - - {76, 29} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - 3 - MQA - - - - - - 268 - {{147, 360}, {19, 27}} - - - YES - - 917024 - 0 - - 1 - 0.25 - 100 - 0.25 - YES - - - - - 268 - {{147, 326}, {19, 27}} - - - YES - - 917024 - 0 - - 0.20000000000000001 - 0.20000000000000001 - 100 - 0.25 - YES - - - - - 268 - {{98, 394}, {45, 22}} - - - YES - - -1804468671 - 272630784 - - - - - - - - - - - - -∞ - - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - 6 - System - textBackgroundColor - - - - 6 - System - textColor - - - - - - - 268 - {{98, 363}, {45, 22}} - - - YES - - -1804468671 - 272630784 - - - - - - - - - - -∞ - - - +∞ - - #,##0.### - #,##0.### - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - YES - NO - YES - - - YES - - - - - - - 268 - {{98, 329}, {44, 22}} - - - YES - - -1804468671 - 272630784 - - - - - - - - - -∞ - - - +∞ - - #,##0.### - #,##0.### - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - YES - NO - YES - - - YES - - - - - - - 268 - {{168, 368}, {13, 17}} - - - YES - - 68288064 - 272630784 - % - - - - - - - - - 268 - {{168, 334}, {13, 17}} - - YES - - 68288064 - 272630784 - % - - - - - - - - - 268 - {{147, 391}, {19, 27}} - - - YES - - -2146566624 - 0 - - 999 - 1 - YES - - - - - 268 - {{197, 394}, {41, 22}} - - - YES - - -1804468671 - 272630784 - - - - - - - - - -∞ - - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - - - - - 268 - {{243, 391}, {19, 27}} - - - YES - - 917024 - 0 - - 999 - 1 - YES - - - - - 268 - {{168, 399}, {21, 17}} - - - YES - - 68288064 - 272630784 - px - - - - - - - - - 268 - {{264, 399}, {21, 17}} - - - YES - - 68288064 - 272630784 - px - - - - - - - - - 268 - {{100, 419}, {29, 11}} - - - YES - - 68288064 - 272892928 - width - - LucidaGrande - 9 - 3614 - - - - - - - - - 268 - {{196, 419}, {32, 11}} - - - YES - - 68288064 - 272892928 - height - - - - - - - - {{32, 7}, {299, 460}} - - - Increase/Reduce - - - - - anchors - - - 256 - - - - 268 - {{9, 427}, {120, 18}} - - - YES - - -2080244224 - 0 - Enable Anchors - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{130, 372}, {37, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - - - - - - - -∞ - - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - - - - - 268 - {{28, 318}, {37, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - - - - - - -∞ - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - - - - - 268 - {{131, 264}, {37, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - - - - - - -∞ - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - - - - - 268 - {{217, 318}, {37, 22}} - - - YES - - -1804468671 - -1874852864 - - - - - - - - - - -∞ - - +∞ - - # - # - - - - - - - - NaN - - - - - - 3 - YES - YES - YES - - . - , - NO - NO - YES - - - YES - - - - - - - 268 - {{8, 139}, {282, 98}} - - YES - - 67239424 - 205656064 - Anchors define margins of a screen. If a window is inside one of these margins it will me automatically anchored to the respective side with next actions that is executed. This is useful especially for application like Terminal.app or other that do not change their sizes continously, but rather in a descrete steps. - - - - - - - - - 274 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {{94, 265}, {110, 129}} - - - YES - - 130560 - 33554432 - - NSImage - margin-background-image - - 0 - 0 - 0 - NO - - YES - - - - 268 - {{172, 369}, {19, 27}} - - - YES - - 917024 - 0 - - 2 - 100 - 1 - YES - - - - - 268 - {{172, 261}, {19, 27}} - - - YES - - -2146566624 - 0 - - 1 - 100 - 1 - YES - - - - - 268 - {{70, 315}, {19, 27}} - - - YES - - 917024 - 0 - - 100 - 1 - YES - - - - - 268 - {{248, 315}, {19, 27}} - - - YES - - -2146566624 - 0 - - 1 - 100 - 1 - YES - - - - {{32, 7}, {299, 460}} - - - Anchors - - - - - advanced - - - 256 - - - - 268 - {{11, 323}, {277, 32}} - - - - _NS:161 - YES - - 67239424 - 134217728 - Enable debug logging - - _NS:161 - - 914505983 - 129 - - - 200 - 25 - - - - - 268 - {{14, 359}, {271, 84}} - - - - _NS:3596 - YES - - 67239424 - 205651968 - If you experience any problems, allowing this extra logging output might help trace it down more easily. Once on, all logging will be redirected to a file that appears below. Please attach the logging file to any issue you are reporting on github.com. - - _NS:3596 - - - - - - - - 268 - {{14, 249}, {271, 62}} - - - - _NS:3936 - YES - - 67239424 - 138547200 - Label - - _NS:3936 - - YES - - - - - - - 268 - {{72, 201}, {140, 32}} - - - - _NS:687 - YES - - 67239424 - 134217728 - Reveal In Finder - - _NS:687 - - -2038284033 - 129 - - - 200 - 25 - - - - {{32, 7}, {299, 460}} - - - - - Advanced - - - - - - - 1 - YES - YES - - - - - - {367, 496} - - - - - {{0, 0}, {1680, 1028}} - {10000000000000, 10000000000000} - YES - - - SUUpdater - - - YES - - - - - - - terminate: - - - - 816 - - - - window - - - - 242 - - - - tabView_ - - - - 588 - - - - versionLabel_ - - - - 589 - - - - revertDefaults: - - - - 610 - - - - srLeft_ - - - - 900 - - - - srRight_ - - - - 901 - - - - srTop_ - - - - 902 - - - - srBottom_ - - - - 903 - - - - srBL_ - - - - 917 - - - - srBR_ - - - - 918 - - - - srIncrease_ - - - - 920 - - - - srReduce_ - - - - 922 - - - - srTL_ - - - - 923 - - - - srTR_ - - - - 924 - - - - srCenter_ - - - - 948 - - - - srFullScreen_ - - - - 949 - - - - srZoom_ - - - - 950 - - - - srMaximize_ - - - - 951 - - - - srNextScreen_ - - - - 1826 - - - - reportIssue: - - - - 1834 - - - - revealLogFileInFinder: - - - - 1841 - - - - initialFirstResponder - - - - 327 - - - - selectedIdentifier: selectedTabIdentifier_ - - - - - - selectedIdentifier: selectedTabIdentifier_ - selectedIdentifier - selectedTabIdentifier_ - 2 - - - 614 - - - - delegate - - - - 908 - - - - value: shouldStartAtLogin - - - - - - value: shouldStartAtLogin - value - shouldStartAtLogin - 2 - - - 834 - - - - value: automaticallyChecksForUpdates - - - - - - value: automaticallyChecksForUpdates - value - automaticallyChecksForUpdates - 2 - - - 73 - - - - checkForUpdates: - - - - 255 - - - - value: values.shiftItshowMenu - - - - - - value: values.shiftItshowMenu - value - values.shiftItshowMenu - 2 - - - 833 - - - - nextKeyView - - - - 757 - - - - selectedTag: values.sizeDeltaType - - - - - - selectedTag: values.sizeDeltaType - selectedTag - values.sizeDeltaType - 2 - - - 789 - - - - nextKeyView - - - - 758 - - - - value: values.fixedSizeWidthDelta - - - - - - value: values.fixedSizeWidthDelta - value - values.fixedSizeWidthDelta - 2 - - - 809 - - - - nextKeyView - - - - 759 - - - - value: values.windowSizeDelta - - - - - - value: values.windowSizeDelta - value - values.windowSizeDelta - 2 - - - 783 - - - - nextKeyView - - - - 760 - - - - value: values.screenSizeDelta - - - - - - value: values.screenSizeDelta - value - values.screenSizeDelta - 2 - - - 784 - - - - value: values.fixedSizeDelta - - - - - - value: values.fixedSizeDelta - value - values.fixedSizeDelta - 2 - - - 785 - - - - nextKeyView - - - - 811 - - - - nextKeyView - - - - 762 - - - - value: values.windowSizeDelta - - - - - - value: values.windowSizeDelta - value - values.windowSizeDelta - 2 - - - 786 - - - - value: values.screenSizeDelta - - - - - - value: values.screenSizeDelta - value - values.screenSizeDelta - 2 - - - 788 - - - - value: values.fixedSizeHeightDelta - - - - - - value: values.fixedSizeHeightDelta - value - values.fixedSizeHeightDelta - 2 - - - 810 - - - - nextKeyView - - - - 812 - - - - nextKeyView - - - - 798 - - - - value: values.fixedSizeDelta - - - - - - value: values.fixedSizeDelta - value - values.fixedSizeDelta - 2 - - - 800 - - - - value: values.includeDrawers - - - - - - value: values.includeDrawers - value - values.includeDrawers - 2 - - - 832 - - - - value: debugLogging - - - - - - value: debugLogging - value - debugLogging - 2 - - - 927 - - - - value: debugLoggingFile - - - - - - value: debugLoggingFile - value - debugLoggingFile - 2 - - - 936 - - - - hidden: debugLogging - - - - - - hidden: debugLogging - hidden - debugLogging - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 937 - - - - toolTip: debugLoggingFile - - - - - - toolTip: debugLoggingFile - toolTip - debugLoggingFile - 2 - - - 939 - - - - delegate - - - - 904 - - - - delegate - - - - 905 - - - - delegate - - - - 906 - - - - delegate - - - - 907 - - - - delegate - - - - 909 - - - - delegate - - - - 910 - - - - delegate - - - - 911 - - - - delegate - - - - 912 - - - - delegate - - - - 913 - - - - delegate - - - - 914 - - - - delegate - - - - 915 - - - - delegate - - - - 916 - - - - delegate - - - - 943 - - - - delegate - - - - 947 - - - - nextKeyView - - - - 1083 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1102 - - - - value: values.rightMargin - - - - - - value: values.rightMargin - value - values.rightMargin - 2 - - - 1109 - - - - nextKeyView - - - - 1084 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1096 - - - - value: values.leftMargin - - - - - - value: values.leftMargin - value - values.leftMargin - 2 - - - 1110 - - - - value: values.bottomMargin - - - - - - value: values.bottomMargin - value - values.bottomMargin - 2 - - - 1099 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1094 - - - - nextKeyView - - - - 1082 - - - - value: values.topMargin - - - - - - value: values.topMargin - value - values.topMargin - 2 - - - 1114 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1117 - - - - nextKeyView - - - - 1081 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1115 - - - - value: values.rightMargin - - - - - - value: values.rightMargin - value - values.rightMargin - - NSContinuouslyUpdatesValue - - - 2 - - - 1105 - - - - nextKeyView - - - - 1080 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1108 - - - - value: values.bottomMargin - - - - - - value: values.bottomMargin - value - values.bottomMargin - - NSContinuouslyUpdatesValue - - - 2 - - - 1101 - - - - nextKeyView - - - - 1079 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1118 - - - - value: values.leftMargin - - - - - - value: values.leftMargin - value - values.leftMargin - - NSContinuouslyUpdatesValue - - - 2 - - - 1111 - - - - nextKeyView - - - - 1078 - - - - value: values.topMargin - - - - - - value: values.topMargin - value - values.topMargin - - NSContinuouslyUpdatesValue - - - 2 - - - 1103 - - - - enabled: values.marginsEnabled - - - - - - enabled: values.marginsEnabled - enabled - values.marginsEnabled - 2 - - - 1095 - - - - nextKeyView - - - - 1077 - - - - value: values.marginsEnabled - - - - - - value: values.marginsEnabled - value - values.marginsEnabled - 2 - - - 1112 - - - - delegate - - - - 1825 - - - - hidden: debugLogging - - - - - - hidden: debugLogging - hidden - debugLogging - - NSValueTransformerName - NSNegateBoolean - - 2 - - - 1840 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - 69 - - - - - 191 - - - - - 3 - - - - - - - - - - - - 394 - - - - - - - - 395 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 541 - - - - - - - - 542 - - - - - 540 - - - - - - - - 543 - - - - - 539 - - - - - - - - 544 - - - - - 538 - - - - - - - - 545 - - - - - 517 - - - - - - - - 518 - - - - - 519 - - - - - - - - 520 - - - - - 521 - - - - - - - - 524 - - - - - 522 - - - - - - - - 523 - - - - - 5 - - - - - - - - 6 - - - - - - - - - - - - - - - 66 - - - - - - - - 67 - - - - - 554 - - - - - - - - 561 - - - - - 555 - - - - - - - - 560 - - - - - 582 - - - - - - - - 583 - - - - - 584 - - - - - - - - 585 - - - - - 606 - - - - - - - - 607 - - - - - 619 - - - - - - - - 620 - - - - - - - - 621 - - - - - 622 - - - - - 632 - - - - - - - - 633 - - - - - - - - - - - - - - - - - - - - - - - 729 - - - - - - - - 730 - - - - - 731 - - - - - - - - - - - 732 - - - - - 733 - - - - - 734 - - - - - 735 - - - - - 736 - - - - - - - - 737 - - - - - - - - 738 - - - - - 739 - - - - - - - - 740 - - - - - - - - 741 - - - - - 742 - - - - - - - - 743 - - - - - - - - 744 - - - - - 747 - - - - - - - - 748 - - - - - 749 - - - - - - - - 750 - - - - - 751 - - - - - - - - 752 - - - - - 753 - - - - - - - - 754 - - - - - 755 - - - - - - - - 756 - - - - - 790 - - - - - - - - 792 - - - - - - - - 793 - - - - - 795 - - - - - - - - 796 - - - - - 801 - - - - - - - - 802 - - - - - 803 - - - - - - - - 804 - - - - - 805 - - - - - - - - 806 - - - - - 807 - - - - - - - - 808 - - - - - 813 - - - - - - - - 814 - - - - - 817 - - - - - - - - 818 - - - - - 823 - - - - - - - - - - - - 828 - - - - - 820 - - - - - 65 - - - - - 63 - - - - - 257 - - - - - 837 - - - - - - - - 838 - - - - - - - - - - - 861 - - - - - - - - 862 - - - - - 863 - - - - - - - - 864 - - - - - 865 - - - - - - - - 866 - - - - - 867 - - - sr_left - - - 868 - - - sr_right - - - 869 - - - sr_top - - - 870 - - - sr_bottom - - - 871 - - - sr_tl - - - 872 - - - sr_tr - - - 873 - - - sr_bl - - - 874 - - - sr_br - - - 875 - - - sr_center - - - 876 - - - sr_fullScreen - - - 877 - - - - sr_increment - - - 878 - - - sr_decrement - - - 940 - - - - - - - - 941 - - - sr_zoom - - - 942 - - - - - 944 - - - - - - - - 945 - - - sr_maximize - - - 946 - - - - - 1010 - - - - - - - - 1011 - - - - - - - - - - - - - - - - - - 1038 - - - - - - - - 1037 - - - - - - - - 1026 - - - - - - - - 1025 - - - - - - - - 1024 - - - - - - - - 1023 - - - - - - - - 1022 - - - - - - - - 1021 - - - - - - - - 1020 - - - - - - - - 1019 - - - - - - - - 1018 - - - - - - - - 1069 - - - - - 1068 - - - - - 1067 - - - - - 1066 - - - - - 1065 - - - - - 1063 - - - - - - - - 1064 - - - - - 1061 - - - - - - - - 1062 - - - - - 1059 - - - - - - - - 1060 - - - - - 1057 - - - - - - - - 1058 - - - - - 1040 - - - - - 1039 - - - - - 1817 - - - - - - - - 1819 - - - sr_nextscreen - - - 1822 - - - - - 1827 - - - - - - - - 1828 - - - - - 1832 - - - - - - - - 1833 - - - - - 1836 - - - - - - - - 1837 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{827, 487}, {334, 439}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - InitialTabViewItem - - InitialTabViewItem - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 1841 - - - - - PreferencesWindowController - NSWindowController - - id - id - id - id - - - - reportIssue: - id - - - revealLogFileInFinder: - id - - - revertDefaults: - id - - - showPreferences: - id - - - - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - SRRecorderControl - NSTabView - NSTextField - - - - srBL_ - SRRecorderControl - - - srBR_ - SRRecorderControl - - - srBottom_ - SRRecorderControl - - - srCenter_ - SRRecorderControl - - - srFullScreen_ - SRRecorderControl - - - srIncrease_ - SRRecorderControl - - - srLeft_ - SRRecorderControl - - - srMaximize_ - SRRecorderControl - - - srNextScreen_ - SRRecorderControl - - - srReduce_ - SRRecorderControl - - - srRight_ - SRRecorderControl - - - srTL_ - SRRecorderControl - - - srTR_ - SRRecorderControl - - - srTop_ - SRRecorderControl - - - srZoom_ - SRRecorderControl - - - tabView_ - NSTabView - - - versionLabel_ - NSTextField - - - - IBProjectSource - ./Classes/PreferencesWindowController.h - - - - SRRecorderControl - NSControl - - delegate - id - - - delegate - - delegate - id - - - - IBProjectSource - ./Classes/SRRecorderControl.h - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - IBProjectSource - ./Classes/SUUpdater.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {15, 15} - {512, 512} - {150, 96} - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + It should work fine in most cases, but eventually you might experience some weird behavior with drawers. Please, before reporting a new issue, check the list if there is not already one. + + + + + + + + + + + If you experience any problems, allowing this extra logging output might help trace it down more easily. Once on, all logging will be redirected to a file that appears below. Please attach the logging file to any issue you are reporting on github.com. + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Anchors define margins of a screen. If a window is inside one of these margins it will me automatically anchored to the respective side with next actions that is executed. This is useful especially for application like Terminal.app or other that do not change their sizes continously, but rather in a descrete steps. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ShiftIt/PreferencesWindowController.h b/ShiftIt/PreferencesWindowController.h index 8c2cddd3..08ea8142 100644 --- a/ShiftIt/PreferencesWindowController.h +++ b/ShiftIt/PreferencesWindowController.h @@ -29,7 +29,28 @@ IBOutlet NSTabView *tabView_; IBOutlet NSTextField *versionLabel_; - + + IBOutlet SRRecorderControl *srNineOne_; + IBOutlet SRRecorderControl *srNineTwo_; + IBOutlet SRRecorderControl *srNineThree_; + IBOutlet SRRecorderControl *srNineFour_; + IBOutlet SRRecorderControl *srNineFive_; + IBOutlet SRRecorderControl *srNineSix_; + IBOutlet SRRecorderControl *srNineSeven_; + IBOutlet SRRecorderControl *srNineEight_; + IBOutlet SRRecorderControl *srNineNine_; + + IBOutlet SRRecorderControl *srSixOne_; + IBOutlet SRRecorderControl *srSixTwo_; + IBOutlet SRRecorderControl *srSixThree_; + IBOutlet SRRecorderControl *srSixFour_; + IBOutlet SRRecorderControl *srSixFive_; + IBOutlet SRRecorderControl *srSixSix_; + + IBOutlet SRRecorderControl *srThreeleft_; + IBOutlet SRRecorderControl *srThreecenter_; + IBOutlet SRRecorderControl *srThreeright_; + IBOutlet SRRecorderControl *srLeft_; IBOutlet SRRecorderControl *srRight_; IBOutlet SRRecorderControl *srTop_; diff --git a/ShiftIt/PreferencesWindowController.m b/ShiftIt/PreferencesWindowController.m index d7193173..92e209dd 100644 --- a/ShiftIt/PreferencesWindowController.m +++ b/ShiftIt/PreferencesWindowController.m @@ -85,7 +85,25 @@ -(void)awakeFromNib { [self setDebugLoggingFile:@""]; // This is just temporary here - till new version - NSArray *controls = [NSArray arrayWithObjects:srLeft_, + NSArray *controls = [NSArray arrayWithObjects:srNineOne_, + srNineTwo_, + srNineThree_, + srNineFour_, + srNineFive_, + srNineSix_, + srNineSeven_, + srNineEight_, + srNineNine_, + srSixOne_, + srSixTwo_, + srSixThree_, + srSixFour_, + srSixFive_, + srSixSix_, + srThreeleft_, + srThreecenter_, + srThreeright_, + srLeft_, srBottom_, srTop_, srRight_, @@ -101,7 +119,25 @@ -(void)awakeFromNib { srReduce_, srNextScreen_, nil]; - NSArray *keys = [NSArray arrayWithObjects:@"left", + NSArray *keys = [NSArray arrayWithObjects:@"nineone", + @"ninetwo", + @"ninethree", + @"ninefour", + @"ninefive", + @"ninesix", + @"nineseven", + @"nineeight", + @"ninenine", + @"sixone", + @"sixtwo", + @"sixthree", + @"sixfour", + @"sixfive", + @"sixsix", + @"threeleft", + @"threecenter", + @"threeright", + @"left", @"bottom", @"top", @"right", diff --git a/ShiftIt/ShiftIt-defaults.plist b/ShiftIt/ShiftIt-defaults.plist index 864fcd75..3e9c61cf 100644 --- a/ShiftIt/ShiftIt-defaults.plist +++ b/ShiftIt/ShiftIt-defaults.plist @@ -10,7 +10,83 @@ blKeyCode 20 - blModifiers + threeleftKeyCode + 89 + threeleftModifiers + 1835008 + threecenterKeyCode + 91 + threecenterModifiers + 1835008 + threerightKeyCode + 92 + threerightModifiers + 1835008 + sixoneKeyCode + 86 + sixoneModifiers + 1835008 + sixtwoKeyCode + 87 + sixtwoModifiers + 1835008 + sixthreeKeyCode + 88 + sixthreeModifiers + 1835008 + sixfourKeyCode + 83 + sixfourModifiers + 1835008 + sixfiveKeyCode + 84 + sixfiveModifiers + 1835008 + sixsixKeyCode + 85 + sixsixModifiers + 1835008 + +nineoneKeyCode +89 +nineoneModifiers +3932160 +ninetwoKeyCode +91 +ninetwoModifiers +3932160 +ninethreeKeyCode +92 +ninethreeModifiers +3932160 + +ninefourKeyCode +86 +ninefourModifiers +3932160 +ninefiveKeyCode +87 +ninefiveModifiers +3932160 +ninesixKeyCode +88 +ninesixModifiers +3932160 + +ninesevenKeyCode +83 +ninesevenModifiers +3932160 +nineeightKeyCode +84 +nineeightModifiers +3932160 +ninenineKeyCode +85 +ninenineModifiers +3932160 + + blModifiers 1835008 bottomKeyCode 125 @@ -85,10 +161,36 @@ zoomKeyCode 6 zoomModifiers - 1835008 - nextscreenKeyCode - 45 - nextscreenModifiers 1835008 + nextscreenKeyCode + 45 + nextscreenModifiers + 1835008 + splitHalfHorizontal + 0.3 + splitHalfVertical + 0.4 + splitQuarterHorizontal + 0.3 + splitQuarterVertical + 0.4 + splitThreeOne + 0.3 + splitThreeTwo + 0.7 + splitSixVerOne + 0.3 + splitSixVerTwo + 0.7 + splitSixHorOne + 0.3 + splitNineVerOne + 0.3 + splitNineVerTwo + 0.7 + splitNineHorOne + 0.3 + splitNineHorTwo + 0.7 diff --git a/ShiftIt/ShiftIt.xcodeproj/project.pbxproj b/ShiftIt/ShiftIt.xcodeproj/project.pbxproj index 872e5074..9baa0fe7 100644 --- a/ShiftIt/ShiftIt.xcodeproj/project.pbxproj +++ b/ShiftIt/ShiftIt.xcodeproj/project.pbxproj @@ -76,6 +76,10 @@ 27F4FD4D12730F2F00A65750 /* FMTHotKeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F4FD4A12730F2F00A65750 /* FMTHotKeyManager.m */; }; 27F4FD5612730F4600A65750 /* FMTLoginItems.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F4FD5312730F4600A65750 /* FMTLoginItems.m */; }; 27F4FD5712730F4600A65750 /* FMTUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F4FD5512730F4600A65750 /* FMTUtils.m */; }; + 3850B1E01835080A005A0834 /* red.png in Resources */ = {isa = PBXBuildFile; fileRef = 3850B1DF1835080A005A0834 /* red.png */; }; + 3850B1E11835080A005A0834 /* red.png in Resources */ = {isa = PBXBuildFile; fileRef = 3850B1DF1835080A005A0834 /* red.png */; }; + 3850B1E318351C46005A0834 /* mac.png in Resources */ = {isa = PBXBuildFile; fileRef = 3850B1E218351C46005A0834 /* mac.png */; }; + 3850B1E418351C46005A0834 /* mac.png in Resources */ = {isa = PBXBuildFile; fileRef = 3850B1E218351C46005A0834 /* mac.png */; }; 83E55ED5125A5FCF00FC49BF /* ShiftIt-menuIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 83E55ED3125A5FCF00FC49BF /* ShiftIt-menuIcon.png */; }; 83E55ED6125A5FCF00FC49BF /* ShiftIt.icns in Resources */ = {isa = PBXBuildFile; fileRef = 83E55ED4125A5FCF00FC49BF /* ShiftIt.icns */; }; 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; @@ -196,6 +200,8 @@ 27F4FD5412730F4600A65750 /* FMTUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FMTUtils.h; path = FMT/FMTUtils.h; sourceTree = ""; }; 27F4FD5512730F4600A65750 /* FMTUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FMTUtils.m; path = FMT/FMTUtils.m; sourceTree = ""; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 3850B1DF1835080A005A0834 /* red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = red.png; sourceTree = ""; }; + 3850B1E218351C46005A0834 /* mac.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mac.png; sourceTree = ""; }; 83E55ED3125A5FCF00FC49BF /* ShiftIt-menuIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ShiftIt-menuIcon.png"; sourceTree = ""; }; 83E55ED4125A5FCF00FC49BF /* ShiftIt.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = ShiftIt.icns; sourceTree = ""; }; 8D1107310486CEB800E47090 /* ShiftIt-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "ShiftIt-Info.plist"; sourceTree = ""; }; @@ -500,7 +506,9 @@ 270EC26A12FF1965002A5F22 /* ShiftIt-logo.png */, 271D2EB912FC6B3A00A4D0BF /* margin-background-image.png */, 27A14EBF1269EC1500E68263 /* ShiftIt-defaults.plist */, + 3850B1E218351C46005A0834 /* mac.png */, 83E55ED3125A5FCF00FC49BF /* ShiftIt-menuIcon.png */, + 3850B1DF1835080A005A0834 /* red.png */, 83E55ED4125A5FCF00FC49BF /* ShiftIt.icns */, 8D1107310486CEB800E47090 /* ShiftIt-Info.plist */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, @@ -614,7 +622,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0460; + LastUpgradeCheck = 0500; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ShiftIt" */; compatibilityVersion = "Xcode 3.2"; @@ -647,9 +655,11 @@ 27160C4A16C939FF002DA475 /* InfoPlist.strings in Resources */, 27160C4B16C939FF002DA475 /* MainMenu.xib in Resources */, 27160C4C16C939FF002DA475 /* PreferencesWindow.xib in Resources */, + 3850B1E11835080A005A0834 /* red.png in Resources */, 27160C4D16C939FF002DA475 /* ShiftIt-menuIcon.png in Resources */, 27160C4E16C939FF002DA475 /* ShiftIt.icns in Resources */, 27160C4F16C939FF002DA475 /* ShiftIt-defaults.plist in Resources */, + 3850B1E418351C46005A0834 /* mac.png in Resources */, 27160C5016C939FF002DA475 /* margin-background-image.png in Resources */, 27160C5116C939FF002DA475 /* ShiftIt-logo.png in Resources */, ); @@ -678,9 +688,11 @@ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, F2DC1A321133829D009BDCA5 /* PreferencesWindow.xib in Resources */, + 3850B1E01835080A005A0834 /* red.png in Resources */, 83E55ED5125A5FCF00FC49BF /* ShiftIt-menuIcon.png in Resources */, 83E55ED6125A5FCF00FC49BF /* ShiftIt.icns in Resources */, 27A14EC01269EC1500E68263 /* ShiftIt-defaults.plist in Resources */, + 3850B1E318351C46005A0834 /* mac.png in Resources */, 271D2EBB12FC6B3A00A4D0BF /* margin-background-image.png in Resources */, 270EC26C12FF1965002A5F22 /* ShiftIt-logo.png in Resources */, ); @@ -848,6 +860,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = .; GCC_DYNAMIC_NO_PIC = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -862,6 +875,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = .; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ShiftIt_Prefix.pch; @@ -874,6 +888,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(DEVELOPER_LIBRARY_DIR)/Frameworks", "\"$(SRCROOT)\"", @@ -894,6 +909,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(DEVELOPER_LIBRARY_DIR)/Frameworks", "\"$(SRCROOT)\"", @@ -953,6 +969,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = .; GCC_DYNAMIC_NO_PIC = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; @@ -979,6 +996,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = .; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ShiftIt_Prefix.pch; @@ -1002,7 +1020,6 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; FRAMEWORK_SEARCH_PATHS = .; @@ -1029,7 +1046,7 @@ INSTALL_PATH = /Applications; LD_RUNPATH_SEARCH_PATHS = ""; MACOSX_DEPLOYMENT_TARGET = 10.6; - ONLY_ACTIVE_ARCH = NO; + ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-DDEBUG"; OTHER_LDFLAGS = "-ldl"; WARNING_CFLAGS = "-Wall"; @@ -1039,7 +1056,6 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES; FRAMEWORK_SEARCH_PATHS = .; diff --git a/ShiftIt/ShiftItApp.h b/ShiftIt/ShiftItApp.h index d660d2b0..3f4e2be4 100644 --- a/ShiftIt/ShiftItApp.h +++ b/ShiftIt/ShiftItApp.h @@ -40,6 +40,20 @@ extern NSString *const kWindowSizeDeltaPrefKey; extern NSString *const kScreenSizeDeltaPrefKey; extern NSString *const kAXIncludeDrawersPrefKey; extern NSString *const kAXDriverConvergePrefKey; +extern NSString *const kAXDriverConvergePrefKey; +extern NSString *const kSplitHalfHorizontal; +extern NSString *const kSplitHalfVertical; +extern NSString *const kSplitQuarterHorizontal; +extern NSString *const kSplitQuarterVertical; +extern NSString *const kSplitThreeOne; +extern NSString *const kSplitThreeTwo; +extern NSString *const kSplitSixVerOne; +extern NSString *const kSplitSixVerTwo; +extern NSString *const kSplitSixHorOne; +extern NSString *const kSplitNineVerOne; +extern NSString *const kSplitNineVerTwo; +extern NSString *const kSplitNineHorOne; +extern NSString *const kSplitNineHorTwo; typedef enum { kFixedSizeDeltaType = 3001, diff --git a/ShiftIt/ShiftItAppDelegate.m b/ShiftIt/ShiftItAppDelegate.m index 46b628e4..ce305c2c 100644 --- a/ShiftIt/ShiftItAppDelegate.m +++ b/ShiftIt/ShiftItAppDelegate.m @@ -50,6 +50,19 @@ NSString *const kFixedSizeHeightDeltaPrefKey = @"fixedSizeHeightDelta"; NSString *const kWindowSizeDeltaPrefKey = @"windowSizeDelta"; NSString *const kScreenSizeDeltaPrefKey = @"screenSizeDelta"; +NSString *const kSplitHalfHorizontal = @"splitHalfHorizontal"; +NSString *const kSplitHalfVertical = @"splitHalfVertical"; +NSString *const kSplitQuarterHorizontal = @"splitQuarterHorizontal"; +NSString *const kSplitQuarterVertical = @"splitQuarterVertical"; +NSString *const kSplitThreeOne = @"splitThreeOne"; +NSString *const kSplitThreeTwo = @"splitThreeTwo"; +NSString *const kSplitSixVerOne = @"splitSixVerOne"; +NSString *const kSplitSixVerTwo = @"splitSixVerTwo"; +NSString *const kSplitSixHorOne = @"splitSixHorOne"; +NSString *const kSplitNineVerOne = @"splitNineVerOne"; +NSString *const kSplitNineVerTwo = @"splitNineVerTwo"; +NSString *const kSplitNineHorOne = @"splitNineHorOne"; +NSString *const kSplitNineHorTwo = @"splitNineHorTwo"; // AX Driver Options NSString *const kAXIncludeDrawersPrefKey = @"axdriver_includeDrawers"; @@ -122,7 +135,7 @@ - (id)initFromFile:(NSString *)path { FMTLogInfo(@"Loaded usage statistics from: %@", path); statistics_ = [[NSMutableDictionary dictionaryWithDictionary:d] retain]; } else { - FMTLogError(@"Error reading usage statistics: %@ from: %@ format: %d", errorDesc, path, NSPropertyListBinaryFormat_v1_0); + FMTLogError(@"Error reading usage statistics: %@ from: %@ format: %d", errorDesc, path, (int) NSPropertyListBinaryFormat_v1_0); statistics_ = [[NSMutableDictionary dictionary] retain]; } } @@ -484,23 +497,25 @@ - (void)updateStatusMenuShortcutForAction_:(ShiftItAction *)action keyCode:(NSIn FMTLogDebug(@"updateStatusMenuShortcutForAction_:%@ keyCode:%ld modifiers:%ld", [action identifier], keyCode, modifiers); NSMenuItem *menuItem = [statusMenu_ itemWithTag:kSIMenuUITagPrefix + [action uiTag]]; - FMTAssertNotNil(menuItem); - - [menuItem setTitle:[action label]]; - [menuItem setRepresentedObject:[action identifier]]; - [menuItem setAction:@selector(shiftItMenuAction_:)]; - - if (keyCode != -1) { - NSString *keyCodeString = SRStringForKeyCode(keyCode); - if (!keyCodeString) { - FMTLogInfo(@"Unable to get string representation for a key code: %ld", keyCode); - keyCodeString = @""; + if(menuItem != nil){ + FMTAssertNotNil(menuItem); + + [menuItem setTitle:[action label]]; + [menuItem setRepresentedObject:[action identifier]]; + [menuItem setAction:@selector(shiftItMenuAction_:)]; + + if (keyCode != -1) { + NSString *keyCodeString = SRStringForKeyCode(keyCode); + if (!keyCodeString) { + FMTLogInfo(@"Unable to get string representation for a key code: %ld", keyCode); + keyCodeString = @""; + } + [menuItem setKeyEquivalent:[keyCodeString lowercaseString]]; + [menuItem setKeyEquivalentModifierMask:modifiers]; + } else { + [menuItem setKeyEquivalent:@""]; + [menuItem setKeyEquivalentModifierMask:0]; } - [menuItem setKeyEquivalent:[keyCodeString lowercaseString]]; - [menuItem setKeyEquivalentModifierMask:modifiers]; - } else { - [menuItem setKeyEquivalent:@""]; - [menuItem setKeyEquivalentModifierMask:0]; } } @@ -532,6 +547,27 @@ - (void)initializeActions_ { REGISTER_ACTION(dict, @"reduce", @"Reduce", 14, [[[IncreaseReduceShiftItAction alloc] initWithMode:NO] autorelease]); REGISTER_ACTION(dict, @"nextscreen", @"Next Screen", 15, [[[ScreenChangeShiftItAction alloc] initWithMode:YES] autorelease]); + REGISTER_ACTION(dict, @"threeleft", @"Three Left", 16, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItThreeLeft] autorelease]); + REGISTER_ACTION(dict, @"threecenter", @"Three Center", 17, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItThreeCenter] autorelease]); + REGISTER_ACTION(dict, @"threeright", @"Three Right", 18, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItThreeRight] autorelease]); + + REGISTER_ACTION(dict, @"sixone", @"Six Top Left", 16, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItSixOne] autorelease]); + REGISTER_ACTION(dict, @"sixtwo", @"Six Top Center", 17, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItSixTwo] autorelease]); + REGISTER_ACTION(dict, @"sixthree", @"Six Top Right", 18, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItSixThree] autorelease]); + REGISTER_ACTION(dict, @"sixfour", @"Six Bottom Left", 16, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItSixFour] autorelease]); + REGISTER_ACTION(dict, @"sixfive", @"Six Bottom Center", 17, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItSixFive] autorelease]); + REGISTER_ACTION(dict, @"sixsix", @"Six Bottom Right", 18, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItSixSix] autorelease]); + + REGISTER_ACTION(dict, @"nineone", @"Nine Top Left", 16, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineOne] autorelease]); + REGISTER_ACTION(dict, @"ninetwo", @"Nine Top Center", 17, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineTwo] autorelease]); + REGISTER_ACTION(dict, @"ninethree", @"Nine Top Right", 18, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineThree] autorelease]); + REGISTER_ACTION(dict, @"ninefour", @"Nine Center Left", 16, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineFour] autorelease]); + REGISTER_ACTION(dict, @"ninefive", @"Nine Center Center", 17, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineFive] autorelease]); + REGISTER_ACTION(dict, @"ninesix", @"Nine Center Right", 18, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineSix] autorelease]); + REGISTER_ACTION(dict, @"nineseven", @"Nine Bottom Left", 16, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineSeven] autorelease]); + REGISTER_ACTION(dict, @"nineeight", @"Nine Bottom Center", 17, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineEight] autorelease]); + REGISTER_ACTION(dict, @"ninenine", @"Nine Bottom Right", 18, [[[WindowGeometryShiftItAction alloc] initWithBlock:shiftItNineNine] autorelease]); + #undef REGISTER_ACTION allShiftActions = [[NSDictionary dictionaryWithDictionary:dict] retain]; diff --git a/ShiftIt/mac.png b/ShiftIt/mac.png new file mode 100644 index 00000000..cf7e6bc4 Binary files /dev/null and b/ShiftIt/mac.png differ diff --git a/ShiftIt/mac.psd b/ShiftIt/mac.psd new file mode 100644 index 00000000..209b24ac Binary files /dev/null and b/ShiftIt/mac.psd differ diff --git a/ShiftIt/red.png b/ShiftIt/red.png new file mode 100644 index 00000000..19464583 Binary files /dev/null and b/ShiftIt/red.png differ