Revision: 2933
          http://skim-app.svn.sourceforge.net/skim-app/?rev=2933&view=rev
Author:   hofman
Date:     2007-09-17 11:19:33 -0700 (Mon, 17 Sep 2007)

Log Message:
-----------
Make file icon available for templates. Use in RTFD template. Add RTFD template 
to shared support.

Modified Paths:
--------------
    trunk/NSString_SKExtensions.h
    trunk/NSString_SKExtensions.m
    trunk/NSURL_SKExtensions.h
    trunk/NSURL_SKExtensions.m
    trunk/Skim.xcodeproj/project.pbxproj

Modified: trunk/NSString_SKExtensions.h
===================================================================
--- trunk/NSString_SKExtensions.h       2007-09-17 17:45:28 UTC (rev 2932)
+++ trunk/NSString_SKExtensions.h       2007-09-17 18:19:33 UTC (rev 2933)
@@ -86,4 +86,8 @@
 - (NSString *)stringByPrependingFullStopAndSpaceIfNotEmpty;
 - (NSString *)parenthesizedStringIfNotEmpty;
 
+- (NSURL *)url;
+- (NSAttributedString *)icon;
+- (NSAttributedString *)smallIcon;
+
 @end

Modified: trunk/NSString_SKExtensions.m
===================================================================
--- trunk/NSString_SKExtensions.m       2007-09-17 17:45:28 UTC (rev 2932)
+++ trunk/NSString_SKExtensions.m       2007-09-17 18:19:33 UTC (rev 2933)
@@ -39,6 +39,7 @@
 #import "NSString_SKExtensions.h"
 #import "NSScanner_SKExtensions.h"
 #import "NSCharacterSet_SKExtensions.h"
+#import "NSURL_SKExtensions.h"
 #import <Carbon/Carbon.h>
 
 
@@ -382,4 +383,21 @@
     return [self isEqualToString:@""] ? self : [NSString 
stringWithFormat:@"(%@)", self];
 }
 
+- (NSURL *)url {
+    NSURL *url = nil;
+    if ([self rangeOfString:@"://"].location != NSNotFound)
+        url = [NSURL URLWithString:self];
+    else
+        url = [NSURL fileURLWithPath:[self stringByExpandingTildeInPath]];
+    return url;
+}
+
+- (NSAttributedString *)icon {
+    return [[self url] icon];
+}
+
+- (NSAttributedString *)smallIcon {
+    return [[self url] smallIcon];
+}
+
 @end

Modified: trunk/NSURL_SKExtensions.h
===================================================================
--- trunk/NSURL_SKExtensions.h  2007-09-17 17:45:28 UTC (rev 2932)
+++ trunk/NSURL_SKExtensions.h  2007-09-17 18:19:33 UTC (rev 2933)
@@ -41,5 +41,10 @@
 extern NSString *SKWeblocFilePboardType;
 
 @interface NSURL (SKExtensions)
+
 + (NSURL *)URLFromPasteboardAnyType:(NSPasteboard *)pasteboard;
+
+- (NSAttributedString *)icon;
+- (NSAttributedString *)smallIcon;
+
 @end

Modified: trunk/NSURL_SKExtensions.m
===================================================================
--- trunk/NSURL_SKExtensions.m  2007-09-17 17:45:28 UTC (rev 2932)
+++ trunk/NSURL_SKExtensions.m  2007-09-17 18:19:33 UTC (rev 2933)
@@ -66,4 +66,45 @@
     return theURL;
 }
 
+- (NSAttributedString *)icon {
+    NSAttributedString *attrString = nil;
+    
+    NSString *name = [self isFileURL] ? [self path] : [self relativeString];
+    if (name) {
+        NSImage *image = [[NSWorkspace sharedWorkspace] iconForFile:name];
+        name = [[[name lastPathComponent] stringByDeletingPathExtension] 
stringByAppendingPathExtension:@"tiff"];
+        
+        NSFileWrapper *wrapper = [[NSFileWrapper alloc] 
initRegularFileWithContents:[image TIFFRepresentation]];
+        [wrapper setFilename:name];
+        [wrapper setPreferredFilename:name];
+
+        NSTextAttachment *attachment = [[NSTextAttachment alloc] 
initWithFileWrapper:wrapper];
+        [wrapper release];
+        attrString = [NSAttributedString 
attributedStringWithAttachment:attachment];
+        [attachment release];
+    }
+    return attrString;
+}
+
+- (NSAttributedString *)smallIcon {
+    NSAttributedString *attrString = nil;
+    
+    NSString *name = [self isFileURL] ? [self path] : [self relativeString];
+    if (name) {
+        NSImage *image = [[NSWorkspace sharedWorkspace] iconForFile:name];
+        [image setSize:NSMakeSize(16, 16)];
+        name = [[[name lastPathComponent] stringByDeletingPathExtension] 
stringByAppendingPathExtension:@"tiff"];
+        
+        NSFileWrapper *wrapper = [[NSFileWrapper alloc] 
initRegularFileWithContents:[image TIFFRepresentation]];
+        [wrapper setFilename:name];
+        [wrapper setPreferredFilename:name];
+
+        NSTextAttachment *attachment = [[NSTextAttachment alloc] 
initWithFileWrapper:wrapper];
+        [wrapper release];
+        attrString = [NSAttributedString 
attributedStringWithAttachment:attachment];
+        [attachment release];
+    }
+    return attrString;
+}
+
 @end

Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj        2007-09-17 17:45:28 UTC (rev 
2932)
+++ trunk/Skim.xcodeproj/project.pbxproj        2007-09-17 18:19:33 UTC (rev 
2933)
@@ -64,6 +64,7 @@
                CE2093910C5F9A8D009D3EFB /* BDSKGradientView.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE20938F0C5F9A8D009D3EFB /* BDSKGradientView.m 
*/; };
                CE209FAA0C9D38C6007C72F9 /* SKProgressController.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CE209FA80C9D38C6007C72F9 /* 
SKProgressController.m */; };
                CE20AC9C0C9EF2F9007C72F9 /* notesTemplate.rtfd in Resources */ 
= {isa = PBXBuildFile; fileRef = CE20AC990C9EF2F9007C72F9 /* notesTemplate.rtfd 
*/; };
+               CE20B1600C9EFC29007C72F9 /* notesTemplate.rtfd in CopyFiles */ 
= {isa = PBXBuildFile; fileRef = CE20AC990C9EF2F9007C72F9 /* notesTemplate.rtfd 
*/; };
                CE2BD83E0BD4132B00A5F4DB /* Sparkle.framework in Frameworks */ 
= {isa = PBXBuildFile; fileRef = CE2BD82A0BD4132B00A5F4DB /* Sparkle.framework 
*/; };
                CE2BD8450BD4135600A5F4DB /* Sparkle.framework in CopyFiles */ = 
{isa = PBXBuildFile; fileRef = CE2BD82A0BD4132B00A5F4DB /* Sparkle.framework 
*/; };
                CE2DE4920B85D48F00D0DA12 /* SKThumbnail.m in Sources */ = {isa 
= PBXBuildFile; fileRef = CE2DE4910B85D48F00D0DA12 /* SKThumbnail.m */; };
@@ -153,7 +154,6 @@
                CE9DC2EA0B9F131900D64F28 /* ToolbarHighlightNote.tiff in 
Resources */ = {isa = PBXBuildFile; fileRef = CE9DC2E80B9F131800D64F28 /* 
ToolbarHighlightNote.tiff */; };
                CEA182280C92E3300061A6D4 /* NSData_SKExtensions.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CEA182260C92E3300061A6D4 /* 
NSData_SKExtensions.m */; };
                CEA1CD1B0C9864470061A6D4 /* Security.framework in Frameworks */ 
= {isa = PBXBuildFile; fileRef = CEA1CCE60C9864470061A6D4 /* Security.framework 
*/; };
-               CEA1D6E90C9984400061A6D4 /* SKTextWithIconCell.h in CopyFiles 
*/ = {isa = PBXBuildFile; fileRef = CEA1D6E70C9984400061A6D4 /* 
SKTextWithIconCell.h */; };
                CEA1D6EA0C9984400061A6D4 /* SKTextWithIconCell.m in Sources */ 
= {isa = PBXBuildFile; fileRef = CEA1D6E80C9984400061A6D4 /* 
SKTextWithIconCell.m */; };
                CEA1D7810C99953C0061A6D4 /* SmallFolder.tiff in Resources */ = 
{isa = PBXBuildFile; fileRef = CEA1D7800C99953B0061A6D4 /* SmallFolder.tiff */; 
};
                CEA575CE0B9206E60003D2E7 /* SKNoteOutlineView.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CEA575CD0B9206E60003D2E7 /* SKNoteOutlineView.m 
*/; };
@@ -176,7 +176,6 @@
                CEB735A20C4A8CD6000350F9 /* TransitionShading.tiff in Resources 
*/ = {isa = PBXBuildFile; fileRef = CEB735A10C4A8CD6000350F9 /* 
TransitionShading.tiff */; };
                CEBD51D70C9BF68100FBF6A4 /* ToolbarNewFolder.tiff in Resources 
*/ = {isa = PBXBuildFile; fileRef = CEBD51D50C9BF68100FBF6A4 /* 
ToolbarNewFolder.tiff */; };
                CEBD51D80C9BF68100FBF6A4 /* ToolbarNewSeparator.tiff in 
Resources */ = {isa = PBXBuildFile; fileRef = CEBD51D60C9BF68100FBF6A4 /* 
ToolbarNewSeparator.tiff */; };
-               CEBD52EC0C9C0AE500FBF6A4 /* SKBookmark.h in CopyFiles */ = {isa 
= PBXBuildFile; fileRef = CEBD52EA0C9C0AE500FBF6A4 /* SKBookmark.h */; };
                CEBD52ED0C9C0AE500FBF6A4 /* SKBookmark.m in Sources */ = {isa = 
PBXBuildFile; fileRef = CEBD52EB0C9C0AE500FBF6A4 /* SKBookmark.m */; };
                CECDC4FF0C5966A80026AAEC /* NSImage_SKExtensions.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = CECDC4FD0C5966A80026AAEC /* 
NSImage_SKExtensions.m */; };
                CECDD2990C5B68580026AAEC /* SKCenteredTextFieldCell.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CECDD2970C5B68580026AAEC /* 
SKCenteredTextFieldCell.m */; };
@@ -274,8 +273,6 @@
                        dstSubfolderSpec = 10;
                        files = (
                                CE2BD8450BD4135600A5F4DB /* Sparkle.framework 
in CopyFiles */,
-                               CEA1D6E90C9984400061A6D4 /* 
SKTextWithIconCell.h in CopyFiles */,
-                               CEBD52EC0C9C0AE500FBF6A4 /* SKBookmark.h in 
CopyFiles */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
@@ -287,8 +284,9 @@
                        files = (
                                CEE22EA30BFB8672002B746B /* displayline in 
CopyFiles */,
                                CEE22EA40BFB8684002B746B /* skimnotes in 
CopyFiles */,
-                               CE48BC320C08B58700A166C6 /* notesTemplate.rtf 
in CopyFiles */,
                                CE48BC330C08B58700A166C6 /* notesTemplate.txt 
in CopyFiles */,
+                               CE48BC320C08B58700A166C6 /* notesTemplate.rtf 
in CopyFiles */,
+                               CE20B1600C9EFC29007C72F9 /* notesTemplate.rtfd 
in CopyFiles */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };


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: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to