Revision: 3167
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3167&view=rev
Author:   hofman
Date:     2007-11-06 16:27:29 -0800 (Tue, 06 Nov 2007)

Log Message:
-----------
Toggle line inspector and notes panel rather than just showing them.

Modified Paths:
--------------
    trunk/SKApplication.h
    trunk/SKApplication.m
    trunk/SKLineInspector.h
    trunk/SKLineInspector.m
    trunk/SKNotesPanelController.h
    trunk/SKNotesPanelController.m

Modified: trunk/SKApplication.h
===================================================================
--- trunk/SKApplication.h       2007-11-06 19:09:30 UTC (rev 3166)
+++ trunk/SKApplication.h       2007-11-07 00:27:29 UTC (rev 3167)
@@ -42,6 +42,7 @@
 
 @interface SKApplication : NSApplication
 - (IBAction)orderFrontLineInspector:(id)sender;
+- (IBAction)orderFrontNotesPanel:(id)sender;
 @end
 
 

Modified: trunk/SKApplication.m
===================================================================
--- trunk/SKApplication.m       2007-11-06 19:09:30 UTC (rev 3166)
+++ trunk/SKApplication.m       2007-11-07 00:27:29 UTC (rev 3167)
@@ -41,6 +41,7 @@
 #import "SKPDFSynchronizer.h"
 #import "SKPDFView.h"
 #import "SKLineInspector.h"
+#import "SKNotesPanelController.h"
 #import "NSString_SKExtensions.h"
 
 NSString *SKApplicationStartsTerminatingNotification = 
@"SKApplicationStartsTerminatingNotification";
@@ -53,9 +54,39 @@
 @implementation SKApplication
 
 - (IBAction)orderFrontLineInspector:(id)sender {
-    [[[SKLineInspector sharedLineInspector] window] orderFront:sender];
+    if ([SKLineInspector sharedLineInspectorExists] && [[[SKLineInspector 
sharedLineInspector] window] isVisible])
+        [[[SKLineInspector sharedLineInspector] window] orderFront:sender];
+    else
+        [[[SKLineInspector sharedLineInspector] window] orderOut:sender];
 }
 
+- (IBAction)orderFrontNotesPanel:(id)sender {
+    if ([SKNotesPanelController sharedControllerExists] && 
[[[SKNotesPanelController sharedController] window] isVisible])
+        [[[SKNotesPanelController sharedController] window] orderFront:sender];
+    else
+        [[[SKNotesPanelController sharedController] window] orderOut:sender];
+}
+
+- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
+    SEL action = [menuItem action];
+    if (action == @selector(orderFrontLineInspector:)) {
+        if ([SKLineInspector sharedLineInspectorExists] && [[[SKLineInspector 
sharedLineInspector] window] isVisible])
+            [menuItem setTitle:NSLocalizedString(@"Hide Lines", @"Menu item 
title")];
+        else
+            [menuItem setTitle:NSLocalizedString(@"Show Lines", @"Menu item 
title")];
+        return YES;
+    } else if (action == @selector(orderFrontNotesPanel:)) {
+        if ([SKNotesPanelController sharedControllerExists] && 
[[[SKNotesPanelController sharedController] window] isVisible])
+            [menuItem setTitle:NSLocalizedString(@"Hide Notes", @"Menu item 
title")];
+        else
+            [menuItem setTitle:NSLocalizedString(@"Show Notes", @"Menu item 
title")];
+        return YES;
+    } else if ([[SKApplication superclass] respondsToSelector:_cmd]) {
+        return [super validateMenuItem:menuItem];
+    }
+    return YES;
+}
+
 - (void)sendEvent:(NSEvent *)anEvent {
     if ([anEvent type] == NSScrollWheel && [anEvent modifierFlags] & 
NSAlternateKeyMask) {
         id target = [self targetForAction:@selector(magnifyWheel:)];

Modified: trunk/SKLineInspector.h
===================================================================
--- trunk/SKLineInspector.h     2007-11-06 19:09:30 UTC (rev 3166)
+++ trunk/SKLineInspector.h     2007-11-07 00:27:29 UTC (rev 3167)
@@ -64,6 +64,7 @@
 }
 
 + (id)sharedLineInspector;
++ (BOOL)sharedLineInspectorExists;
 
 - (float)lineWidth;
 - (void)setLineWidth:(float)width;

Modified: trunk/SKLineInspector.m
===================================================================
--- trunk/SKLineInspector.m     2007-11-06 19:09:30 UTC (rev 3166)
+++ trunk/SKLineInspector.m     2007-11-07 00:27:29 UTC (rev 3167)
@@ -58,6 +58,10 @@
     return sharedLineInspector;
 }
 
++ (BOOL)sharedLineInspectorExists {
+    return sharedLineInspector != nil;
+}
+
 + (id)allocWithZone:(NSZone *)zone {
     if (sharedLineInspector == nil)
         return [super allocWithZone:[self zone]];

Modified: trunk/SKNotesPanelController.h
===================================================================
--- trunk/SKNotesPanelController.h      2007-11-06 19:09:30 UTC (rev 3166)
+++ trunk/SKNotesPanelController.h      2007-11-07 00:27:29 UTC (rev 3167)
@@ -41,10 +41,6 @@
 
 @interface SKNotesPanelController : NSWindowController
 + (id)sharedController;
++ (BOOL)sharedControllerExists;
 - (IBAction)addNote:(id)sender;
 @end
-
-
[EMAIL PROTECTED] NSApplication (SKNotesPanelControllerExtensions)
-- (IBAction)orderFrontNotesPanel:(id)sender;
[EMAIL PROTECTED]

Modified: trunk/SKNotesPanelController.m
===================================================================
--- trunk/SKNotesPanelController.m      2007-11-06 19:09:30 UTC (rev 3166)
+++ trunk/SKNotesPanelController.m      2007-11-07 00:27:29 UTC (rev 3167)
@@ -51,6 +51,10 @@
     return sharedController;
 }
 
++ (BOOL)sharedControllerExists {
+    return sharedController != nil;
+}
+
 + (id)allocWithZone:(NSZone *)zone {
     if (sharedController == nil)
         return [super allocWithZone:[self zone]];
@@ -89,10 +93,3 @@
 }
 
 @end
-
-
[EMAIL PROTECTED] NSApplication (SKNotesPanelControllerExtensions)
-- (IBAction)orderFrontNotesPanel:(id)sender {
-    [[[SKNotesPanelController sharedController] window] orderFront:sender];
-}
[EMAIL PROTECTED]


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to