Changeset 104
- Timestamp:
- 08/11/07 10:16:51 (1 year ago)
- Files:
-
- branches/robert/Controller.m (modified) (2 diffs)
- branches/robert/English.lproj/MainMenu.nib/classes.nib (modified) (1 diff)
- branches/robert/English.lproj/MainMenu.nib/info.nib (modified) (2 diffs)
- branches/robert/English.lproj/MainMenu.nib/objects.nib (modified) (previous)
- branches/robert/English.lproj/Preferences.nib/classes.nib (modified) (2 diffs)
- branches/robert/English.lproj/Preferences.nib/info.nib (modified) (1 diff)
- branches/robert/English.lproj/Preferences.nib/keyedobjects.nib (modified) (previous)
- branches/robert/English.lproj/Preferences.nib/objects.nib (modified) (previous)
- branches/robert/GrowlNotificationController.h (added)
- branches/robert/GrowlNotificationController.m (added)
- branches/robert/GrowlView.h (added)
- branches/robert/GrowlView.m (added)
- branches/robert/Info.plist (modified) (1 diff)
- branches/robert/PreferenceController.h (modified) (2 diffs)
- branches/robert/PreferenceController.m (modified) (2 diffs)
- branches/robert/SSHKeychain.sdef (added)
- branches/robert/SSHKeychain.xcodeproj/project.pbxproj (modified) (16 diffs)
- branches/robert/TunnelController.h (modified) (1 diff)
- branches/robert/TunnelController.m (modified) (3 diffs)
- branches/robert/preference_growl.tiff (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/robert/Controller.m
r99 r104 60 60 @"30", 61 61 @"0", 62 @"NO", 63 @"NO", 62 64 nil 63 65 ] … … 78 80 CheckScreensaverIntervalString, 79 81 KeyTimeoutString, 82 UseGrowlString, 83 DisableDialogNotificationsWhenUsingGrowlString, 80 84 nil 81 85 ] branches/robert/English.lproj/MainMenu.nib/classes.nib
r18 r104 50 50 {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 51 51 { 52 CLASS = GrowlNotificationController; 53 LANGUAGE = ObjC; 54 OUTLETS = {}; 55 SUPERCLASS = NSObject; 56 }, 57 { 58 ACTIONS = {toggleTunnel = id; }; 52 59 CLASS = TunnelController; 53 60 LANGUAGE = ObjC; 54 61 OUTLETS = { 55 62 dockMenuTunnelsItem = id; 63 growlNotificationController = id; 56 64 mainMenuTunnelsItem = id; 57 65 statusbarMenuTunnelsItem = id; branches/robert/English.lproj/MainMenu.nib/info.nib
r18 r104 4 4 <dict> 5 5 <key>IBDocumentLocation</key> 6 <string>1 7 395 582 332 0 0 1024 746</string>6 <string>193 265 613 333 0 0 1440 878 </string> 7 7 <key>IBEditorPositions</key> 8 8 <dict> … … 15 15 </dict> 16 16 <key>IBFramework Version</key> 17 <string> 364.0</string>17 <string>446.1</string> 18 18 <key>IBSystem Version</key> 19 <string> 7R28</string>19 <string>8R2218</string> 20 20 </dict> 21 21 </plist> branches/robert/English.lproj/Preferences.nib/classes.nib
r64 r104 28 28 LANGUAGE = ObjC; 29 29 OUTLETS = {checkForUpdatesOnStartup = id; socketPath = id; sshToolsPath = id; }; 30 SUPERCLASS = PreferenceView; 31 }, 32 { 33 CLASS = GrowlView; 34 LANGUAGE = ObjC; 35 OUTLETS = {disableDialogNotificationsWhenUsingGrowl = id; useGrowl = id; }; 30 36 SUPERCLASS = PreferenceView; 31 37 }, … … 62 68 environmentController = PreferenceView; 63 69 generalController = PreferenceView; 70 growlController = PreferenceView; 64 71 keysController = PreferenceView; 65 72 securityController = PreferenceView; branches/robert/English.lproj/Preferences.nib/info.nib
r99 r104 4 4 <dict> 5 5 <key>IBDocumentLocation</key> 6 <string> 32 390 388 356 0 0 1024 746</string>6 <string>7 363 388 356 0 0 1440 878 </string> 7 7 <key>IBEditorPositions</key> 8 8 <dict> 9 9 <key>1065</key> 10 <string>512 580 416 112 0 0 1440 938 </string> 10 <string>439 441 416 112 0 0 1440 878 </string> 11 <key>1144</key> 12 <string>510 529 416 112 0 0 1440 878 </string> 11 13 <key>640</key> 12 <string>47 2 473 495 343 0 0 1440 938 </string>14 <string>470 413 495 343 0 0 1440 878 </string> 13 15 <key>722</key> 14 16 <string>446 468 495 234 0 0 1440 878 </string> 15 17 <key>750</key> 16 <string> 487500 412 169 0 0 1440 878 </string>18 <string>512 500 412 169 0 0 1440 878 </string> 17 19 <key>758</key> 18 <string> 494534 399 102 0 0 1440 878 </string>20 <string>518 534 399 102 0 0 1440 878 </string> 19 21 <key>778</key> 20 <string> 479448 429 274 0 0 1440 878 </string>22 <string>503 448 429 274 0 0 1440 878 </string> 21 23 <key>836</key> 22 <string> 494 537398 96 0 0 1440 878 </string>24 <string>554 438 398 96 0 0 1440 878 </string> 23 25 <key>872</key> 24 <string>4 46478 495 214 0 0 1440 878 </string>26 <string>470 478 495 214 0 0 1440 878 </string> 25 27 <key>893</key> 26 <string>4 46468 495 234 0 0 1440 878 </string>28 <string>470 468 495 234 0 0 1440 878 </string> 27 29 <key>909</key> 28 <string>47 2 519 495 234 0 0 1440 938 </string>30 <string>470 468 495 234 0 0 1440 878 </string> 29 31 </dict> 30 32 <key>IBFramework Version</key> 31 <string>44 3.0</string>33 <string>446.1</string> 32 34 <key>IBOpenObjects</key> 33 35 <array> 34 <integer>1065</integer> 35 <integer>909</integer> 36 <integer>640</integer> 36 <integer>1144</integer> 37 37 </array> 38 38 <key>IBSystem Version</key> 39 <string>8 P135</string>39 <string>8R2218</string> 40 40 </dict> 41 41 </plist> branches/robert/Info.plist
r103 r104 25 25 <key>NSAppleScriptEnabled</key> 26 26 <string>YES</string> 27 <key>OSAScriptingDefinition</key> 28 <string>SSHKeychain.sdef</string> 27 29 </dict> 28 30 </plist> branches/robert/PreferenceController.h
r64 r104 20 20 extern NSString *KeyTimeoutString; 21 21 extern NSString *AddInteractivePasswordString; 22 /* Growl support */ 23 extern NSString *UseGrowlString; 24 extern NSString *DisableDialogNotificationsWhenUsingGrowlString; 22 25 23 26 @interface PreferenceController : NSObject … … 29 32 30 33 IBOutlet PreferenceView *generalController, *displayController, *keysController, *tunnelsController, *securityController, *environmentController; 34 35 /* Growl support */ 36 IBOutlet PreferenceView *growlController; 31 37 32 38 NSView *blankView; branches/robert/PreferenceController.m
r99 r104 17 17 NSString *CheckScreensaverIntervalString = @"Check Screensaver Interval"; 18 18 NSString *KeyTimeoutString = @"Key Timeout"; 19 /* Growl support */ 20 NSString *UseGrowlString = @"Use Growl"; 21 NSString *DisableDialogNotificationsWhenUsingGrowlString = @"Disable Dialog Notifications When Using Growl"; 22 19 23 20 24 PreferenceController *sharedPreferenceController = nil; … … 78 82 [NSArray arrayWithObjects:@"preference_tunnels", tunnelsController, local(@"Tunnels"), nil], @"Tunnels", 79 83 [NSArray arrayWithObjects:@"preference_security", securityController, local(@"Security"), nil], @"Security", 84 [NSArray arrayWithObjects:@"preference_growl", growlController, local(@"Growl"), nil], @"Growl", 80 85 nil] 81 86 retain]; 82 87 83 88 /* Define the precedence of the sections. */ 84 preferenceItemsKeys = [[NSArray arrayWithObjects:@"General", @"Display", @"SSH Keys", @"Tunnels", @"Security", @"Environment", nil] retain];89 preferenceItemsKeys = [[NSArray arrayWithObjects:@"General", @"Display", @"SSH Keys", @"Tunnels", @"Security", @"Environment", @"Growl", nil] retain]; 85 90 86 91 toolbar = [[NSToolbar alloc] initWithIdentifier:@"preferenceToolbar"]; branches/robert/SSHKeychain.xcodeproj/project.pbxproj
r99 r104 74 74 CCE66DE406B15AEA002A5BEE /* TunnelsView.h in Headers */ = {isa = PBXBuildFile; fileRef = CCE66DE206B15AEA002A5BEE /* TunnelsView.h */; }; 75 75 CCE66DE506B15AEA002A5BEE /* TunnelsView.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE66DE306B15AEA002A5BEE /* TunnelsView.m */; }; 76 E1CF47F20C6C7F4E00B3F162 /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1CF47F10C6C7F4E00B3F162 /* Growl.framework */; }; 77 E1CF47F70C6C7F7F00B3F162 /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E1CF47F10C6C7F4E00B3F162 /* Growl.framework */; }; 78 E1CF48110C6D05DA00B3F162 /* GrowlNotificationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E1CF480F0C6D05DA00B3F162 /* GrowlNotificationController.m */; }; 79 E1CF48120C6D05DA00B3F162 /* GrowlNotificationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E1CF48100C6D05DA00B3F162 /* GrowlNotificationController.h */; }; 80 E1D38B2F0C6D1D3800C6F351 /* preference_growl.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E1D38B2E0C6D1D3800C6F351 /* preference_growl.tiff */; }; 81 E1D38B4D0C6D1F5A00C6F351 /* GrowlView.h in Headers */ = {isa = PBXBuildFile; fileRef = E1D38B4B0C6D1F5A00C6F351 /* GrowlView.h */; }; 82 E1D38B4E0C6D1F5A00C6F351 /* GrowlView.m in Sources */ = {isa = PBXBuildFile; fileRef = E1D38B4C0C6D1F5A00C6F351 /* GrowlView.m */; }; 83 E1D38C390C6D33C500C6F351 /* SSHKeychain.sdef in Resources */ = {isa = PBXBuildFile; fileRef = E1D38C380C6D33C500C6F351 /* SSHKeychain.sdef */; }; 76 84 /* End PBXBuildFile section */ 77 78 /* Begin PBXBuildStyle section */79 CCE37CF00C606DDA0073E776 /* Development */ = {80 isa = PBXBuildStyle;81 buildSettings = {82 COPY_PHASE_STRIP = NO;83 };84 name = Development;85 };86 CCE37CF10C606DDA0073E776 /* Deployment */ = {87 isa = PBXBuildStyle;88 buildSettings = {89 COPY_PHASE_STRIP = YES;90 };91 name = Deployment;92 };93 /* End PBXBuildStyle section */94 85 95 86 /* Begin PBXContainerItemProxy section */ … … 109 100 }; 110 101 /* End PBXContainerItemProxy section */ 102 103 /* Begin PBXCopyFilesBuildPhase section */ 104 E1CF47F50C6C7F6700B3F162 /* CopyFiles */ = { 105 isa = PBXCopyFilesBuildPhase; 106 buildActionMask = 2147483647; 107 dstPath = ""; 108 dstSubfolderSpec = 10; 109 files = ( 110 E1CF47F70C6C7F7F00B3F162 /* Growl.framework in CopyFiles */, 111 ); 112 runOnlyForDeploymentPostprocessing = 0; 113 }; 114 /* End PBXCopyFilesBuildPhase section */ 111 115 112 116 /* Begin PBXFileReference section */ … … 201 205 CCE66DE206B15AEA002A5BEE /* TunnelsView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = TunnelsView.h; path = PreferenceViews/TunnelsView.h; sourceTree = "<group>"; usesTabs = 1; }; 202 206 CCE66DE306B15AEA002A5BEE /* TunnelsView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = TunnelsView.m; path = PreferenceViews/TunnelsView.m; sourceTree = "<group>"; usesTabs = 1; }; 207 E1CF47F10C6C7F4E00B3F162 /* Growl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Growl.framework; path = "../Growl SDK/Frameworks/Growl.framework"; sourceTree = SOURCE_ROOT; }; 208 E1CF480F0C6D05DA00B3F162 /* GrowlNotificationController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GrowlNotificationController.m; sourceTree = "<group>"; }; 209 E1CF48100C6D05DA00B3F162 /* GrowlNotificationController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GrowlNotificationController.h; sourceTree = "<group>"; }; 210 E1D38B2E0C6D1D3800C6F351 /* preference_growl.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = preference_growl.tiff; sourceTree = "<group>"; }; 211 E1D38B4B0C6D1F5A00C6F351 /* GrowlView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GrowlView.h; sourceTree = "<group>"; }; 212 E1D38B4C0C6D1F5A00C6F351 /* GrowlView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GrowlView.m; sourceTree = "<group>"; }; 213 E1D38C380C6D33C500C6F351 /* SSHKeychain.sdef */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.sdef; path = SSHKeychain.sdef; sourceTree = "<group>"; }; 203 214 /* End PBXFileReference section */ 204 215 … … 212 223 CCC9E42B06A6763F00422E9E /* Security.framework in Frameworks */, 213 224 0A7F549B07676F2400E1C1E4 /* Carbon.framework in Frameworks */, 225 E1CF47F20C6C7F4E00B3F162 /* Growl.framework in Frameworks */, 214 226 ); 215 227 runOnlyForDeploymentPostprocessing = 0; … … 241 253 CCCDD4AB06A576CF00B68ED1 /* TunnelController.m */, 242 254 CC6C191407421C8700CB0A18 /* UpdateController.m */, 255 E1CF480F0C6D05DA00B3F162 /* GrowlNotificationController.m */, 256 E1CF48100C6D05DA00B3F162 /* GrowlNotificationController.h */, 243 257 ); 244 258 name = Classes; … … 308 322 isa = PBXGroup; 309 323 children = ( 324 E1D38C380C6D33C500C6F351 /* SSHKeychain.sdef */, 325 E1D38B2E0C6D1D3800C6F351 /* preference_growl.tiff */, 310 326 CC604C2306AE6B1700B9CEBB /* preference_tunnels.tiff */, 311 327 CC341D0B06AD012C00E32630 /* preference_environment.tiff */, … … 332 348 isa = PBXGroup; 333 349 children = ( 350 E1CF47F10C6C7F4E00B3F162 /* Growl.framework */, 334 351 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 335 352 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, … … 341 358 isa = PBXGroup; 342 359 children = ( 360 E1D38B4B0C6D1F5A00C6F351 /* GrowlView.h */, 361 E1D38B4C0C6D1F5A00C6F351 /* GrowlView.m */, 343 362 CC586C4F06C3D56A00D73261 /* SecurityView.h */, 344 363 CC586C5006C3D56A00D73261 /* SecurityView.m */, … … 403 422 0A7F549007676EB500E1C1E4 /* Utilities.h in Headers */, 404 423 0A7F555007677DCC00E1C1E4 /* NSMenu_Additions.h in Headers */, 424 E1CF48120C6D05DA00B3F162 /* GrowlNotificationController.h in Headers */, 425 E1D38B4D0C6D1F5A00C6F351 /* GrowlView.h in Headers */, 405 426 ); 406 427 runOnlyForDeploymentPostprocessing = 0; … … 432 453 8D11072E0486CEB800E47090 /* Frameworks */, 433 454 0A5AAA7E075F690B007668AB /* ShellScript */, 455 E1CF47F50C6C7F6700B3F162 /* CopyFiles */, 434 456 ); 435 457 buildRules = ( … … 484 506 isa = PBXProject; 485 507 buildConfigurationList = CC39D6370921118A00FE3BC5 /* Build configuration list for PBXProject "SSHKeychain" */; 486 buildSettings = {487 };488 buildStyles = (489 CCE37CF00C606DDA0073E776 /* Development */,490 CCE37CF10C606DDA0073E776 /* Deployment */,491 );492 508 hasScannedForEncodings = 1; 493 509 knownRegions = ( … … 535 551 0A33105A0830A54500A9B20E /* BUGS in Resources */, 536 552 0A3310660830A68B00A9B20E /* version.plist in Resources */, 553 E1D38B2F0C6D1D3800C6F351 /* preference_growl.tiff in Resources */, 554 E1D38C390C6D33C500C6F351 /* SSHKeychain.sdef in Resources */, 537 555 ); 538 556 runOnlyForDeploymentPostprocessing = 0; … … 581 599 0A7F549107676EB500E1C1E4 /* Utilities.m in Sources */, 582 600 0A7F555107677DCC00E1C1E4 /* NSMenu_Additions.m in Sources */, 601 E1CF48110C6D05DA00B3F162 /* GrowlNotificationController.m in Sources */, 602 E1D38B4E0C6D1F5A00C6F351 /* GrowlView.m in Sources */, 583 603 ); 584 604 runOnlyForDeploymentPostprocessing = 0; … … 828 848 COPY_PHASE_STRIP = NO; 829 849 DEBUGGING_SYMBOLS = YES; 850 FRAMEWORK_SEARCH_PATHS = ( 851 "$(inherited)", 852 "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", 853 ); 854 FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/../Growl SDK/Frameworks\""; 830 855 GCC_DYNAMIC_NO_PIC = NO; 831 856 GCC_ENABLE_FIX_AND_CONTINUE = YES; … … 861 886 buildSettings = { 862 887 COPY_PHASE_STRIP = YES; 888 FRAMEWORK_SEARCH_PATHS = ( 889 "$(inherited)", 890 "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", 891 ); 892 FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/../Growl SDK/Frameworks\""; 863 893 GCC_ENABLE_FIX_AND_CONTINUE = NO; 864 894 GCC_ENABLE_TRIGRAPHS = NO; … … 890 920 isa = XCBuildConfiguration; 891 921 buildSettings = { 922 FRAMEWORK_SEARCH_PATHS = ( 923 "$(inherited)", 924 "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", 925 ); 926 FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/../Growl SDK/Frameworks\""; 892 927 GCC_ENABLE_TRIGRAPHS = NO; 893 928 GCC_GENERATE_DEBUGGING_SYMBOLS = NO; branches/robert/TunnelController.h
r29 r104 6 6 /* Tunnels Menu Item. */ 7 7 IBOutlet id mainMenuTunnelsItem, dockMenuTunnelsItem, statusbarMenuTunnelsItem; 8 9 /* Growl support */ 10 IBOutlet id growlNotificationController; 8 11 9 12 NSMutableArray *tunnels; branches/robert/TunnelController.m
r99 r104 6 6 #import "Utilities.h" 7 7 #import "NSMenu_Additions.h" 8 #import "GrowlNotificationController.h" 8 9 9 10 #ifndef NSAppKitVersionNumber10_3 … … 538 539 539 540 [self setToolTipForActiveTunnels]; 541 542 [growlNotificationController tunnelOpened]; 540 543 } 541 544 /* Either the dictionary has it, or it didn't work and we don't want it. */ … … 553 556 [dict setObject:message forKey:(NSString *)kCFUserNotificationAlertMessageKey]; 554 557 555 CFUserNotificationCreate(nil, 30, CFUserNotificationSecureTextField(0), nil, (CFDictionaryRef)dict); 558 /* Growl support */ 559 [growlNotificationController warningWithTitle:title andMessage:message]; 560 561 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 562 if ( 563 ([prefs boolForKey:UseGrowlString] == NO) 564 || ([prefs boolForKey:DisableDialogNotificationsWhenUsingGrowlString] == NO)) 565 { 566 CFUserNotificationCreate(nil, 30, CFUserNotificationSecureTextField(0), nil, (CFDictionaryRef)dict); 567 } 556 568 } 557 569
