Revision: 3696
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3696&view=rev
Author:   hofman
Date:     2008-04-10 08:12:02 -0700 (Thu, 10 Apr 2008)

Log Message:
-----------
Implement draggingsource protocol in line well. Use proper  global strings for 
dragged line info.

Modified Paths:
--------------
    trunk/SKLineWell.m
    trunk/SKPDFView.m

Modified: trunk/SKLineWell.m
===================================================================
--- trunk/SKLineWell.m  2008-04-10 14:58:02 UTC (rev 3695)
+++ trunk/SKLineWell.m  2008-04-10 15:12:02 UTC (rev 3696)
@@ -371,10 +371,10 @@
                     NSPasteboard *pboard = [NSPasteboard 
pasteboardWithName:NSDragPboard];
                     [pboard declareTypes:[NSArray 
arrayWithObjects:SKLineStylePboardType, nil] owner:nil];
                     NSMutableDictionary *dict = [NSMutableDictionary 
dictionaryWithObjectsAndKeys:
-                        [NSNumber numberWithFloat:lineWidth], 
SKLineWellLineWidthKey, [NSNumber numberWithInt:style], SKLineWellStyleKey, 
dashPattern, SKLineWellDashPatternKey, nil];
+                        [NSNumber numberWithFloat:lineWidth], 
SKLineInspectorLineWidthKey, [NSNumber numberWithInt:style], 
SKLineInspectorStyleKey, dashPattern, SKLineInspectorDashPatternKey, nil];
                     if ([self displayStyle] == SKLineWellDisplayStyleLine) {
-                        [dict setObject:[NSNumber 
numberWithInt:startLineStyle] forKey:SKLineWellStartLineStyleKey];
-                        [dict setObject:[NSNumber numberWithInt:endLineStyle] 
forKey:SKLineWellEndLineStyleKey];
+                        [dict setObject:[NSNumber 
numberWithInt:startLineStyle] forKey:SKLineInspectorStartLineStyleKey];
+                        [dict setObject:[NSNumber numberWithInt:endLineStyle] 
forKey:SKLineInspectorEndLineStyleKey];
                     }
                     [pboard setPropertyList:dict 
forType:SKLineStylePboardType];
                     
@@ -749,6 +749,12 @@
        return info;
 }
 
+#pragma mark NSDraggingSource protocol 
+
+- (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal {
+    return NSDragOperationGeneric;
+}
+
 #pragma mark NSDraggingDestination protocol 
 
 - (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
@@ -778,15 +784,15 @@
     NSDictionary *dict = [pboard propertyListForType:SKLineStylePboardType];
     NSNumber *number;
     
-    if (number = [dict objectForKey:SKLineWellLineWidthKey])
+    if (number = [dict objectForKey:SKLineInspectorLineWidthKey])
         [self setLineWidth:[number floatValue]];
-    if (number = [dict objectForKey:SKLineWellStyleKey])
+    if (number = [dict objectForKey:SKLineInspectorStyleKey])
         [self setStyle:[number intValue]];
-    [self setDashPattern:[dict objectForKey:SKLineWellDashPatternKey]];
+    [self setDashPattern:[dict objectForKey:SKLineInspectorDashPatternKey]];
     if ([self displayStyle] == SKLineWellDisplayStyleLine) {
-        if (number = [dict objectForKey:SKLineWellStartLineStyleKey])
+        if (number = [dict objectForKey:SKLineInspectorStartLineStyleKey])
             [self setStartLineStyle:[number intValue]];
-        if (number = [dict objectForKey:SKLineWellEndLineStyleKey])
+        if (number = [dict objectForKey:SKLineInspectorEndLineStyleKey])
             [self setEndLineStyle:[number intValue]];
     }
     [self sendAction:[self action] to:[self target]];

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2008-04-10 14:58:02 UTC (rev 3695)
+++ trunk/SKPDFView.m   2008-04-10 15:12:02 UTC (rev 3696)
@@ -60,6 +60,7 @@
 #import "PDFSelection_SKExtensions.h"
 #import "NSBezierPath_BDSKExtensions.h"
 #import "SKLineWell.h"
+#import "SKLineInspector.h"
 #import <Carbon/Carbon.h>
 #import "NSGeometry_SKExtensions.h"
 #import "SKTypeSelectHelper.h"
@@ -1579,20 +1580,23 @@
         if (highlightAnnotation) {
             NSString *type = [highlightAnnotation type];
             if ([pboardType isEqualToString:NSColorPboardType]) {
-                [highlightAnnotation setColor:[NSColor 
colorFromPasteboard:pboard]];
+                if ((GetCurrentKeyModifiers() & optionKey) && 
[[highlightAnnotation type] respondsToSelector:@selector(setInteriorColor)])
+                    [(id)highlightAnnotation setInteriorColor:[NSColor 
colorFromPasteboard:pboard]];
+                else
+                    [highlightAnnotation setColor:[NSColor 
colorFromPasteboard:pboard]];
                 performedDrag = YES;
             } else if ([type isEqualToString:SKFreeTextString] || [type 
isEqualToString:SKCircleString] || [type isEqualToString:SKSquareString] || 
[type isEqualToString:SKLineString]) {
                 NSDictionary *dict = [pboard 
propertyListForType:SKLineStylePboardType];
                 NSNumber *number;
-                if (number = [dict objectForKey:@"lineWidth"])
+                if (number = [dict objectForKey:SKLineInspectorLineWidthKey])
                     [highlightAnnotation setLineWidth:[number floatValue]];
-                [highlightAnnotation setDashPattern:[dict 
objectForKey:@"dashPattern"]];
-                if (number = [dict objectForKey:@"style"])
+                [highlightAnnotation setDashPattern:[dict 
objectForKey:SKLineInspectorDashPatternKey]];
+                if (number = [dict objectForKey:SKLineInspectorStyleKey])
                     [highlightAnnotation setBorderStyle:[number intValue]];
                 if ([type isEqualToString:SKLineString]) {
-                    if (number = [dict objectForKey:@"startLineStyle"])
+                    if (number = [dict 
objectForKey:SKLineInspectorStartLineStyleKey])
                         [(SKPDFAnnotationLine *)highlightAnnotation 
setStartLineStyle:[number intValue]];
-                    if (number = [dict objectForKey:@"endLineStyle"])
+                    if (number = [dict 
objectForKey:SKLineInspectorEndLineStyleKey])
                         [(SKPDFAnnotationLine *)highlightAnnotation 
setEndLineStyle:[number intValue]];
                 }
                 performedDrag = YES;


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 the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to