• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

BathyScapheで画像のインラインプレビューを可能にするプラグイン


Commit MetaInfo

Revision49215d493b426b23f09ac77cc806b60794c3faef (tree)
Time2010-08-22 16:31:46
Authormasakih <masakih@user...>
Commitermasakih

Log Message

initial import.

git-svn-id: svn+ssh://macmini/usr/local/svnrepos/BSInlinePreviewer/BSInlinePreviewer@2 7fee4f74-e693-48a2-b912-3ead09a14818

Change Summary

Incremental Difference

--- /dev/null
+++ b/BSILinkInfomation.h
@@ -0,0 +1,22 @@
1+//
2+// BSILinkInfomation.h
3+// BSInlinePreviewer
4+//
5+// Created by Hori,Masaki on 10/08/21.
6+// Copyright 2010 masakih. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+
12+@interface BSILinkInfomation : NSObject
13+{
14+ NSString *urlString;
15+ NSRange range;
16+ NSImage *image;
17+}
18+
19+@property (nonatomic, retain) NSString *urlString;
20+@property (nonatomic) NSRange range;
21+@property (nonatomic, retain) NSImage *image;
22+@end
--- /dev/null
+++ b/BSILinkInfomation.m
@@ -0,0 +1,23 @@
1+//
2+// BSILinkInfomation.m
3+// BSInlinePreviewer
4+//
5+// Created by Hori,Masaki on 10/08/21.
6+// Copyright 2010 masakih. All rights reserved.
7+//
8+
9+#import "BSILinkInfomation.h"
10+
11+
12+@implementation BSILinkInfomation
13+
14+@synthesize urlString, range, image;
15+
16+- (id)description
17+{
18+ return [NSString stringWithFormat:@"URL String -> %@\nRange -> %@\nImage -> %@",
19+ urlString,
20+ NSStringFromRange(range),
21+ image];
22+}
23+@end
--- /dev/null
+++ b/BSImagePreviewerInterface.h
@@ -0,0 +1,42 @@
1+//
2+// BSImagePreviewerInterface.h
3+// BathyScaphe
4+//
5+// Created by Tsutomu Sawada on 05/10/15, Last Modified on 07/10/24.
6+// Copyright 2005-2007 BathyScaphe Project. All rights reserved.
7+// encoding="UTF-8"
8+//
9+
10+@class AppDefaults;
11+
12+@protocol BSImagePreviewerProtocol
13+// Designated Initializer
14+- (id)initWithPreferences:(AppDefaults *)prefs;
15+// Accessor
16+- (AppDefaults *)preferences;
17+- (void)setPreferences:(AppDefaults *)aPreferences;
18+// Action
19+- (BOOL)showImageWithURL:(NSURL *)imageURL;
20+- (BOOL)validateLink:(NSURL *)anURL;
21+@end
22+
23+@interface NSObject(BSImagePreviewerInformalProtocol)
24+// MeteorSweeper Addition - optional method information
25+// このメソッドはプロトコル定義には含まれませんが、BathyScaphe 1.3 以降でプラグインの Principal class に
26+// このメソッドを実装しておくと、BathyScaphe の「ウインドウ」>「プレビュー」メニュー項目が有効になります。
27+// BathyScaphe は「ウインドウ」>「プレビュー」が選択されると、プラグインに対してこのメソッドを実行するようメッセージを送信します。
28+- (IBAction)togglePreviewPanel:(id)sender;
29+
30+// Available in BathyScaphe 1.6 and later.
31+- (BOOL)showImagesWithURLs:(NSArray *)urls;
32+- (IBAction)showPreviewerPreferences:(id)sender;
33+@end
34+
35+@interface NSObject(IPPAdditions)
36+// Storage for plugin-specific settings
37+- (NSMutableDictionary *)imagePreviewerPrefsDict;
38+
39+// Accessor for useful BathyScaphe global settings
40+- (BOOL)openInBg;
41+- (BOOL)isOnlineMode;
42+@end
--- /dev/null
+++ b/BSInlinePreviewer.h
@@ -0,0 +1,45 @@
1+//
2+// BSInlinePreviewer.h
3+// BSInlinePreviewer
4+//
5+// Created by Hori,Masaki on 08/08/14.
6+// Copyright 2008 masakih. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+#import "BSImagePreviewerInterface.h"
11+
12+#import "BSPreviewPluginInterface.h"
13+
14+@interface BSInlinePreviewer : NSObject <BSImagePreviewerProtocol, BSLinkPreviewing>
15+{
16+ AppDefaults *preference;
17+
18+ id threadView;
19+ NSTextStorage *textStrage;
20+ unsigned actionIndex;
21+
22+ id previewAttributes;
23+
24+ IBOutlet NSWindow *progressPanel;
25+ IBOutlet NSProgressIndicator *progress;
26+
27+ NSUInteger totalDownloads;
28+ NSUInteger remainder;
29+}
30+
31+@property (nonatomic) NSUInteger totalDownloads;
32+@property (nonatomic) NSUInteger remainder;
33+
34+- (NSSize)previewSize;
35+- (void)setTargetThreadView:(id)view;
36+- (id)targetThreadView;
37+- (void)setTargetTextStorage:(NSTextStorage *)ts;
38+- (NSTextStorage *)targetTextStorage;
39+- (void)setActionIndex:(unsigned)p;
40+- (unsigned)actionIndex;
41+- (BOOL)prepareTarget;
42+
43+- (id)previewAttributes;
44+
45+@end
--- /dev/null
+++ b/BSInlinePreviewer.m
@@ -0,0 +1,467 @@
1+//
2+// BSInlinePreviewer.m
3+// BSInlinePreviewer
4+//
5+// Created by Hori,Masaki on 08/08/14.
6+// Copyright 2008 masakih. All rights reserved.
7+//
8+
9+#import "BSInlinePreviewer.h"
10+#import "BSILinkInfomation.h"
11+
12+
13+@interface BSInlinePreviewer(Private)
14+- (NSRange)linkRange;
15+- (NSImage *)downloadImageURL:(NSURL *)imageURL;
16+- (NSAttributedString *)attachmentAttributedStringWithImage:(NSImage *)image;
17+- (NSImage *)notFoundImage;
18+- (NSImage *)fitImage:(NSImage *)image toSize:(NSSize)targetSize;
19+
20+- (void)showProgressPanel;
21+- (void)closeProgressPanel;
22+@end
23+
24+@interface NSObject(BSInlinePreviewerDummy)
25+- (id)threadLayout;
26+
27+- (float)messageHeadIndent;
28+@end
29+
30+@implementation BSInlinePreviewer
31+
32+static NSString *const BSInlinePreviewerPreviewed = @"BSInlinePreviewerPreviewed";
33+const unsigned alreadyPreviewed = NSNotFound - 1;
34+
35+@synthesize totalDownloads, remainder;
36+
37+#pragma mark ## BSImagePreviewerProtocol
38+// Designated Initializer
39+- (id)initWithPreferences:(AppDefaults *)prefs
40+{
41+ if(self = [super init]) {
42+ [self setPreferences:prefs];
43+ }
44+
45+ return self;
46+}
47+// Accessor
48+- (AppDefaults *)preferences
49+{
50+ return preference;
51+}
52+- (void)setPreferences:(AppDefaults *)aPreferences
53+{
54+ preference = aPreferences;
55+}
56+// Action
57+- (BOOL)showImageWithURL:(NSURL *)imageURL
58+{
59+ return [self previewLink:imageURL];
60+}
61+- (BOOL)previewLink:(NSURL *)url
62+{
63+ // get document.
64+ if(![self prepareTarget]) {
65+ NSLog(@"%@ can not prepared.", NSStringFromClass([self class]));
66+ return NO;
67+ }
68+
69+ // get insert position.
70+ NSRange linkRange = [self linkRange];
71+ if(linkRange.location == NSNotFound) {
72+ NSLog(@"con not found insert position.");
73+ return NO;
74+ }
75+ if(linkRange.location == alreadyPreviewed) return NO;
76+ unsigned insertIndex = linkRange.location;
77+
78+ // download image.
79+ self.totalDownloads = self.remainder = 1;
80+ [self showProgressPanel];
81+ NSImage *image = [self downloadImageURL:url];
82+ self.remainder = 0;
83+ [self closeProgressPanel];
84+ if(!image) { NSBeep(); return NO; }
85+
86+ // insert image.
87+ NSTextStorage *ts = [self targetTextStorage];
88+ [ts beginEditing];
89+ {
90+ [ts addAttribute:BSInlinePreviewerPreviewed
91+ value:[NSNumber numberWithBool:YES]
92+ range:linkRange];
93+
94+ id newInsertion = [self attachmentAttributedStringWithImage:image];
95+ [ts insertAttributedString:newInsertion atIndex:insertIndex];
96+ }
97+ [ts endEditing];
98+
99+ return YES;
100+}
101+
102+- (BOOL)previewLinks:(NSArray *)urls
103+{
104+ // get document.
105+ if(![self prepareTarget]) {
106+ NSLog(@"%@ can not prepared.", NSStringFromClass([self class]));
107+ return NO;
108+ }
109+
110+ // get insert position.
111+ NSMutableArray *links = [NSMutableArray array];
112+
113+ NSRange selectedRange = [threadView selectedRange];
114+ NSTextStorage *ts = [self targetTextStorage];
115+
116+ NSUInteger selectionMax = NSMaxRange(selectedRange);
117+ id attr = nil;
118+ BOOL didChecked = NO;
119+ NSUInteger location = selectedRange.location;
120+ NSRange longest;
121+ NSRange range = selectedRange;
122+ do {
123+ attr = [ts attribute:NSLinkAttributeName
124+ atIndex:location
125+ longestEffectiveRange:&longest
126+ inRange:range];
127+ didChecked = ([ts attribute:BSInlinePreviewerPreviewed
128+ atIndex:location
129+ longestEffectiveRange:NULL
130+ inRange:range]) ? YES : NO;
131+ if(!didChecked && attr
132+ && ![attr hasPrefix:@"cmonar"]
133+ && ![attr hasPrefix:@"cmbe"]
134+ && ![attr hasPrefix:@"mailto"]) {
135+ BSILinkInfomation *link = [[[BSILinkInfomation alloc] init] autorelease];
136+ link.urlString = attr;
137+ link.range = longest;
138+ [links addObject:link];
139+ }
140+ location = range.location = NSMaxRange(longest);
141+ range.length - longest.length;
142+ } while(location < selectionMax);
143+
144+ // download images.
145+ self.totalDownloads = self.remainder = [links count];
146+
147+ [self showProgressPanel];
148+ for(BSILinkInfomation *link in links) {
149+ NSURL *url = [NSURL URLWithString:link.urlString];
150+ if([self validateLink:url]) {
151+ link.image = [self downloadImageURL:url];
152+ }
153+ self.remainder--;
154+ [progressPanel displayIfNeeded];
155+ }
156+ [self closeProgressPanel];
157+
158+
159+ // insert images.
160+// [ts beginEditing];
161+ NSUInteger linkOffset = 0;
162+ for(BSILinkInfomation *link in links) {
163+ if(!link.image) continue;
164+ NSRange linkRange = link.range;
165+ linkRange.location += linkOffset;
166+ [ts addAttribute:BSInlinePreviewerPreviewed
167+ value:[NSNumber numberWithBool:YES]
168+ range:linkRange];
169+
170+ id newInsertion = [self attachmentAttributedStringWithImage:link.image];
171+ [ts insertAttributedString:newInsertion atIndex:linkRange.location];
172+
173+ linkOffset += [newInsertion length];
174+ [[threadView window] displayIfNeeded];
175+ }
176+// [ts endEditing];
177+
178+ return YES;
179+}
180+
181+- (BOOL)validateLink:(NSURL *)anURL
182+{
183+ NSArray *imageExtensions;
184+ NSString *extension;
185+
186+ extension = [[[anURL path] pathExtension] lowercaseString];
187+ if(!extension) return NO;
188+
189+ imageExtensions = [NSImage imageFileTypes];
190+
191+ return [imageExtensions containsObject:extension];
192+}
193+
194+#pragma mark ## Accessor
195+- (void)loadProgressPanel
196+{
197+ if(progressPanel) return;
198+
199+ NSBundle *bundle = [NSBundle bundleForClass:[self class]];
200+ [bundle loadNibFile:@"Panel"
201+ externalNameTable:[NSDictionary dictionaryWithObject:self forKey:NSNibOwner]
202+ withZone:[self zone]];
203+
204+ [progress setUsesThreadedAnimation:YES];
205+}
206+- (void)showProgressPanel
207+{
208+ [self loadProgressPanel];
209+
210+ NSWindow *mainWindow = [NSApp mainWindow];
211+ if(!mainWindow) {
212+ NSBeep();NSBeep();
213+ [NSThread sleepForTimeInterval:0.01];
214+ mainWindow = [NSApp mainWindow];
215+ }
216+ [NSApp beginSheet:progressPanel
217+ modalForWindow:mainWindow
218+ modalDelegate:nil
219+ didEndSelector:Nil
220+ contextInfo:NULL];
221+ [progress startAnimation:self];
222+}
223+- (void)closeProgressPanel
224+{
225+ [progress stopAnimation:self];
226+ [progressPanel orderOut:self];
227+ [NSApp endSheet:progressPanel];
228+}
229+- (NSSize)previewSize
230+{
231+ return NSMakeSize(100.0, 100.0);
232+}
233+- (NSTimeInterval)timeoutInterval
234+{
235+ return 20.0;
236+}
237+- (id)previewAttributes
238+{
239+ if (!previewAttributes) {
240+ float indent_;
241+ NSMutableParagraphStyle *messageParagraphStyle_;
242+
243+ indent_ = [[self preferences] messageHeadIndent];
244+
245+ messageParagraphStyle_ = [[[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy] autorelease];
246+ [messageParagraphStyle_ setFirstLineHeadIndent:indent_];
247+ [messageParagraphStyle_ setHeadIndent:indent_];
248+
249+ previewAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
250+ messageParagraphStyle_, NSParagraphStyleAttributeName,
251+ nil];
252+ [previewAttributes retain];
253+ }
254+ return previewAttributes;
255+}
256+
257+- (void)setTargetThreadView:(id)view
258+{
259+ static Class theCMRThreadViewClass = NULL;
260+ if(!theCMRThreadViewClass) {
261+ theCMRThreadViewClass = NSClassFromString(@"CMRThreadView");
262+ }
263+
264+ if(!view) {
265+ threadView = nil;
266+ return;
267+ }
268+ if(![view isKindOfClass:theCMRThreadViewClass]) return;
269+
270+ threadView = view;
271+}
272+- (id)targetThreadView
273+{
274+ return threadView;
275+}
276+- (void)setTargetTextStorage:(NSTextStorage *)ts
277+{
278+ textStrage = ts;
279+}
280+- (NSTextStorage *)targetTextStorage
281+{
282+ return textStrage;
283+}
284+- (void)setActionIndex:(unsigned)p
285+{
286+ actionIndex = p;
287+}
288+- (unsigned)actionIndex
289+{
290+ return actionIndex;
291+}
292+- (NSImage *)notFoundImage
293+{
294+ NSBundle *myBundle = [NSBundle bundleForClass:[self class]];
295+ NSString *path = [myBundle pathForImageResource:@"notFound"];
296+ NSImage *image;
297+
298+ if(!path) return nil;
299+
300+ image = [[[NSImage alloc] initWithContentsOfFile:path] autorelease];
301+
302+ return [self fitImage:image toSize:[self previewSize]];
303+}
304+#pragma mark ## Prepare
305+- (BOOL)prepareTarget
306+{
307+ [self setTargetThreadView:nil];
308+ [self setTargetTextStorage:nil];
309+
310+ id window = [NSApp keyWindow];
311+ id firstResponder = [window firstResponder];
312+
313+// NSLog(@"first responder -> %@", firstResponder);
314+ // firstresponder is CMRThreadView.
315+
316+ [self setTargetThreadView:firstResponder];
317+ if(![self targetThreadView]) return NO;
318+
319+
320+ id layout = [firstResponder threadLayout];
321+ NSTextStorage *ts = [layout textStorage];
322+ [self setTargetTextStorage:ts];
323+
324+
325+ NSEvent *event = [window currentEvent];
326+ NSPoint mouseLocation_;
327+ unsigned charIndex_;
328+
329+ mouseLocation_ = [event locationInWindow];
330+ mouseLocation_ = [window convertBaseToScreen:mouseLocation_];
331+ charIndex_ = [firstResponder characterIndexForPoint:mouseLocation_];
332+ [self setActionIndex:charIndex_];
333+
334+ return YES;
335+}
336+
337+#pragma mark-
338+
339+- (NSAttributedString *)attachmentAttributedStringWithImage:(NSImage *)image
340+{
341+ NSTextAttachment *attachment_;
342+ NSMutableAttributedString *attrs_ = nil;
343+ id<NSTextAttachmentCell> cell_;
344+ Class aClass = NSClassFromString(@"CMXImageAttachmentCell");
345+ if(!aClass) return nil;
346+
347+ // 画像リソースをNSTextAttachmentにする。
348+ attachment_ = [[[NSTextAttachment alloc] init] autorelease];
349+ cell_ = [[[aClass alloc] initImageCell:image] autorelease];
350+ [attachment_ setAttachmentCell:cell_];
351+
352+ attrs_ = (NSMutableAttributedString *)[NSMutableAttributedString attributedStringWithAttachment:attachment_];
353+ [attrs_ appendAttributedString:[[[NSAttributedString alloc] initWithString:@"\n"] autorelease]];
354+ [attrs_ addAttributes:[self previewAttributes]
355+ range:NSMakeRange(0, [attrs_ length])];
356+
357+ return attrs_;
358+}
359+
360+- (NSRange)linkRange
361+{
362+ unsigned charIndex_ = [self actionIndex];
363+ NSTextStorage *ts = [self targetTextStorage];
364+
365+ NSRange limit;
366+ NSRange longest;
367+ if(charIndex_ > 100) {
368+ limit = NSMakeRange(charIndex_ - 100, 200);
369+ } else {
370+ limit = NSMakeRange(0, 200);
371+ }
372+ unsigned over = NSMaxRange(limit) - [ts length];
373+ if(over > 0) {
374+ limit.length -= over;
375+ }
376+
377+ id attr = nil;
378+ id checked = nil;
379+ @try {
380+ attr = [ts attribute:NSLinkAttributeName
381+ atIndex:charIndex_
382+ longestEffectiveRange:&longest
383+ inRange:limit];
384+ // NSLog(@"link attr -> %@", attr);
385+ // NSLog(@"attr range -> %@", NSStringFromRange(longest));
386+
387+ checked = [ts attribute:BSInlinePreviewerPreviewed
388+ atIndex:charIndex_
389+ longestEffectiveRange:NULL
390+ inRange:limit];
391+ }
392+ @catch(NSException *ex) {
393+ if([[ex name] isEqualToString:NSRangeException]) {
394+ longest.location = NSNotFound;
395+ } else {
396+ @throw;
397+ }
398+ }
399+
400+ if(!attr) {
401+ longest.location = NSNotFound;
402+ }
403+ if(checked) {
404+ longest.location = alreadyPreviewed;
405+ }
406+
407+ return longest;
408+}
409+
410+- (NSImage *)fitImage:(NSImage *)image toSize:(NSSize)targetSize
411+{
412+ if(!image) return nil;
413+
414+ NSSize imageSize = [image size];
415+
416+ float targetAspect = targetSize.width / targetSize.height;
417+ float imageAspect = imageSize.width / imageSize.height;
418+ float ratio;
419+ if(targetAspect > imageAspect) {
420+ ratio = targetSize.height / imageSize.height;
421+ } else {
422+ ratio = targetSize.width / imageSize.width;
423+ }
424+ imageSize.width *= ratio;
425+ imageSize.height *= ratio;
426+
427+ [image setScalesWhenResized:YES];
428+ [image setSize:imageSize];
429+
430+ return image;
431+}
432+
433+- (NSImage *)downloadImageURL:(NSURL *)imageURL
434+{
435+ NSURLRequest *req;
436+
437+ req = [NSURLRequest requestWithURL:imageURL
438+ cachePolicy:NSURLRequestUseProtocolCachePolicy
439+ timeoutInterval:[self timeoutInterval]];
440+
441+ NSData *imageData;
442+ NSURLResponse *res = NULL;
443+ NSError *err = NULL;
444+ imageData = [NSURLConnection sendSynchronousRequest:req
445+ returningResponse:&res
446+ error:&err];
447+ if(err) {
448+ NSLog(@"Fail download. reason(%@)", [err localizedDescription]);
449+ return [self notFoundImage];
450+ }
451+ if(res) {
452+ if(![[res MIMEType] hasPrefix:@"image/"]) {
453+ NSLog(@"Fail download. reason(target type is %@)", [res MIMEType]);
454+ return [self notFoundImage];
455+ }
456+ }
457+
458+ NSImage *image = [[[NSImage alloc] initWithData:imageData] autorelease];
459+ if(!image) {
460+ NSLog(@"Can not create image.");
461+ return [self notFoundImage];
462+ }
463+
464+ return [self fitImage:image toSize:[self previewSize]];
465+}
466+
467+@end
--- /dev/null
+++ b/BSInlinePreviewer.xcodeproj/project.pbxproj
@@ -0,0 +1,313 @@
1+// !$*UTF8*$!
2+{
3+ archiveVersion = 1;
4+ classes = {
5+ };
6+ objectVersion = 44;
7+ objects = {
8+
9+/* Begin PBXBuildFile section */
10+ 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
11+ 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
12+ F468C5C912201875009EFA3E /* BSILinkInfomation.m in Sources */ = {isa = PBXBuildFile; fileRef = F468C5C812201875009EFA3E /* BSILinkInfomation.m */; };
13+ F468C69D1220CA07009EFA3E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F468C69C1220CA07009EFA3E /* WebKit.framework */; };
14+ F4C8070C0E53CCB000BF4144 /* BSInlinePreviewer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C8070B0E53CCB000BF4144 /* BSInlinePreviewer.m */; };
15+ F4F1DC700E546EC800055177 /* notFound.png in Resources */ = {isa = PBXBuildFile; fileRef = F4F1DC6F0E546EC800055177 /* notFound.png */; };
16+ F4FE88A010F772DD0076B366 /* Panel.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4FE889E10F772DD0076B366 /* Panel.xib */; };
17+/* End PBXBuildFile section */
18+
19+/* Begin PBXFileReference section */
20+ 089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
21+ 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
22+ 089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
23+ 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
24+ 32DBCF630370AF2F00C91783 /* BSInlinePreviewer_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSInlinePreviewer_Prefix.pch; sourceTree = "<group>"; };
25+ 8D5B49B6048680CD000E48DA /* BSInlinePreviewer.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BSInlinePreviewer.plugin; sourceTree = BUILT_PRODUCTS_DIR; };
26+ 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
27+ D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
28+ F468C45612200CA2009EFA3E /* BSPreviewPluginInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSPreviewPluginInterface.h; sourceTree = "<group>"; };
29+ F468C5C712201875009EFA3E /* BSILinkInfomation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSILinkInfomation.h; sourceTree = "<group>"; };
30+ F468C5C812201875009EFA3E /* BSILinkInfomation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BSILinkInfomation.m; sourceTree = "<group>"; };
31+ F468C69C1220CA07009EFA3E /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
32+ F4C807090E53CBE500BF4144 /* BSImagePreviewerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSImagePreviewerInterface.h; sourceTree = "<group>"; };
33+ F4C8070A0E53CCB000BF4144 /* BSInlinePreviewer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSInlinePreviewer.h; sourceTree = "<group>"; };
34+ F4C8070B0E53CCB000BF4144 /* BSInlinePreviewer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BSInlinePreviewer.m; sourceTree = "<group>"; };
35+ F4F1DC6F0E546EC800055177 /* notFound.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = notFound.png; sourceTree = "<group>"; };
36+ F4FE889F10F772DD0076B366 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Japanese; path = Japanese.lproj/Panel.xib; sourceTree = "<group>"; };
37+/* End PBXFileReference section */
38+
39+/* Begin PBXFrameworksBuildPhase section */
40+ 8D5B49B3048680CD000E48DA /* Frameworks */ = {
41+ isa = PBXFrameworksBuildPhase;
42+ buildActionMask = 2147483647;
43+ files = (
44+ 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
45+ F468C69D1220CA07009EFA3E /* WebKit.framework in Frameworks */,
46+ );
47+ runOnlyForDeploymentPostprocessing = 0;
48+ };
49+/* End PBXFrameworksBuildPhase section */
50+
51+/* Begin PBXGroup section */
52+ 089C166AFE841209C02AAC07 /* BSInlinePreviewer */ = {
53+ isa = PBXGroup;
54+ children = (
55+ F468C45612200CA2009EFA3E /* BSPreviewPluginInterface.h */,
56+ F4C807090E53CBE500BF4144 /* BSImagePreviewerInterface.h */,
57+ 08FB77AFFE84173DC02AAC07 /* Classes */,
58+ 32C88E010371C26100C91783 /* Other Sources */,
59+ 089C167CFE841241C02AAC07 /* Resources */,
60+ 089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
61+ 19C28FB8FE9D52D311CA2CBB /* Products */,
62+ );
63+ name = BSInlinePreviewer;
64+ sourceTree = "<group>";
65+ };
66+ 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
67+ isa = PBXGroup;
68+ children = (
69+ 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */,
70+ 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */,
71+ );
72+ name = "Frameworks and Libraries";
73+ sourceTree = "<group>";
74+ };
75+ 089C167CFE841241C02AAC07 /* Resources */ = {
76+ isa = PBXGroup;
77+ children = (
78+ F4FE889E10F772DD0076B366 /* Panel.xib */,
79+ F4F1DC6F0E546EC800055177 /* notFound.png */,
80+ 8D5B49B7048680CD000E48DA /* Info.plist */,
81+ 089C167DFE841241C02AAC07 /* InfoPlist.strings */,
82+ );
83+ name = Resources;
84+ sourceTree = "<group>";
85+ };
86+ 08FB77AFFE84173DC02AAC07 /* Classes */ = {
87+ isa = PBXGroup;
88+ children = (
89+ F4C8070A0E53CCB000BF4144 /* BSInlinePreviewer.h */,
90+ F4C8070B0E53CCB000BF4144 /* BSInlinePreviewer.m */,
91+ F468C5C712201875009EFA3E /* BSILinkInfomation.h */,
92+ F468C5C812201875009EFA3E /* BSILinkInfomation.m */,
93+ );
94+ name = Classes;
95+ sourceTree = "<group>";
96+ };
97+ 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
98+ isa = PBXGroup;
99+ children = (
100+ 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
101+ );
102+ name = "Linked Frameworks";
103+ sourceTree = "<group>";
104+ };
105+ 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
106+ isa = PBXGroup;
107+ children = (
108+ 089C167FFE841241C02AAC07 /* AppKit.framework */,
109+ D2F7E65807B2D6F200F64583 /* CoreData.framework */,
110+ 089C1672FE841209C02AAC07 /* Foundation.framework */,
111+ F468C69C1220CA07009EFA3E /* WebKit.framework */,
112+ );
113+ name = "Other Frameworks";
114+ sourceTree = "<group>";
115+ };
116+ 19C28FB8FE9D52D311CA2CBB /* Products */ = {
117+ isa = PBXGroup;
118+ children = (
119+ 8D5B49B6048680CD000E48DA /* BSInlinePreviewer.plugin */,
120+ );
121+ name = Products;
122+ sourceTree = "<group>";
123+ };
124+ 32C88E010371C26100C91783 /* Other Sources */ = {
125+ isa = PBXGroup;
126+ children = (
127+ 32DBCF630370AF2F00C91783 /* BSInlinePreviewer_Prefix.pch */,
128+ );
129+ name = "Other Sources";
130+ sourceTree = "<group>";
131+ };
132+/* End PBXGroup section */
133+
134+/* Begin PBXNativeTarget section */
135+ 8D5B49AC048680CD000E48DA /* BSInlinePreviewer */ = {
136+ isa = PBXNativeTarget;
137+ buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "BSInlinePreviewer" */;
138+ buildPhases = (
139+ 8D5B49AF048680CD000E48DA /* Resources */,
140+ 8D5B49B1048680CD000E48DA /* Sources */,
141+ 8D5B49B3048680CD000E48DA /* Frameworks */,
142+ F4C8073C0E53CFBD00BF4144 /* ShellScript */,
143+ );
144+ buildRules = (
145+ );
146+ dependencies = (
147+ );
148+ name = BSInlinePreviewer;
149+ productInstallPath = "$(HOME)/Library/Bundles";
150+ productName = BSInlinePreviewer;
151+ productReference = 8D5B49B6048680CD000E48DA /* BSInlinePreviewer.plugin */;
152+ productType = "com.apple.product-type.bundle";
153+ };
154+/* End PBXNativeTarget section */
155+
156+/* Begin PBXProject section */
157+ 089C1669FE841209C02AAC07 /* Project object */ = {
158+ isa = PBXProject;
159+ buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "BSInlinePreviewer" */;
160+ compatibilityVersion = "Xcode 3.0";
161+ hasScannedForEncodings = 1;
162+ mainGroup = 089C166AFE841209C02AAC07 /* BSInlinePreviewer */;
163+ projectDirPath = "";
164+ projectRoot = "";
165+ targets = (
166+ 8D5B49AC048680CD000E48DA /* BSInlinePreviewer */,
167+ );
168+ };
169+/* End PBXProject section */
170+
171+/* Begin PBXResourcesBuildPhase section */
172+ 8D5B49AF048680CD000E48DA /* Resources */ = {
173+ isa = PBXResourcesBuildPhase;
174+ buildActionMask = 2147483647;
175+ files = (
176+ 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */,
177+ F4F1DC700E546EC800055177 /* notFound.png in Resources */,
178+ F4FE88A010F772DD0076B366 /* Panel.xib in Resources */,
179+ );
180+ runOnlyForDeploymentPostprocessing = 0;
181+ };
182+/* End PBXResourcesBuildPhase section */
183+
184+/* Begin PBXShellScriptBuildPhase section */
185+ F4C8073C0E53CFBD00BF4144 /* ShellScript */ = {
186+ isa = PBXShellScriptBuildPhase;
187+ buildActionMask = 12;
188+ files = (
189+ );
190+ inputPaths = (
191+ );
192+ outputPaths = (
193+ );
194+ runOnlyForDeploymentPostprocessing = 0;
195+ shellPath = /bin/sh;
196+ shellScript = "dest=\"/Users/masaki/Library/Application support/BathyScaphe/PlugIns/\"\nsrcname=${PRODUCT_NAME}.${WRAPPER_EXTENSION}\n\ncp -r ${CONFIGURATION_BUILD_DIR}/${srcname} \"${dest}\"\n";
197+ showEnvVarsInLog = 0;
198+ };
199+/* End PBXShellScriptBuildPhase section */
200+
201+/* Begin PBXSourcesBuildPhase section */
202+ 8D5B49B1048680CD000E48DA /* Sources */ = {
203+ isa = PBXSourcesBuildPhase;
204+ buildActionMask = 2147483647;
205+ files = (
206+ F4C8070C0E53CCB000BF4144 /* BSInlinePreviewer.m in Sources */,
207+ F468C5C912201875009EFA3E /* BSILinkInfomation.m in Sources */,
208+ );
209+ runOnlyForDeploymentPostprocessing = 0;
210+ };
211+/* End PBXSourcesBuildPhase section */
212+
213+/* Begin PBXVariantGroup section */
214+ 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
215+ isa = PBXVariantGroup;
216+ children = (
217+ 089C167EFE841241C02AAC07 /* English */,
218+ );
219+ name = InfoPlist.strings;
220+ sourceTree = "<group>";
221+ };
222+ F4FE889E10F772DD0076B366 /* Panel.xib */ = {
223+ isa = PBXVariantGroup;
224+ children = (
225+ F4FE889F10F772DD0076B366 /* Japanese */,
226+ );
227+ name = Panel.xib;
228+ sourceTree = "<group>";
229+ };
230+/* End PBXVariantGroup section */
231+
232+/* Begin XCBuildConfiguration section */
233+ 1DEB913B08733D840010E9CD /* Debug */ = {
234+ isa = XCBuildConfiguration;
235+ buildSettings = {
236+ COPY_PHASE_STRIP = NO;
237+ GCC_DYNAMIC_NO_PIC = NO;
238+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
239+ GCC_MODEL_TUNING = G5;
240+ GCC_OPTIMIZATION_LEVEL = 0;
241+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
242+ GCC_PREFIX_HEADER = BSInlinePreviewer_Prefix.pch;
243+ INFOPLIST_FILE = Info.plist;
244+ INSTALL_PATH = "$(HOME)/Library/Bundles";
245+ PRODUCT_NAME = BSInlinePreviewer;
246+ WRAPPER_EXTENSION = plugin;
247+ ZERO_LINK = YES;
248+ };
249+ name = Debug;
250+ };
251+ 1DEB913C08733D840010E9CD /* Release */ = {
252+ isa = XCBuildConfiguration;
253+ buildSettings = {
254+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
255+ GCC_MODEL_TUNING = G5;
256+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
257+ GCC_PREFIX_HEADER = BSInlinePreviewer_Prefix.pch;
258+ INFOPLIST_FILE = Info.plist;
259+ INSTALL_PATH = "$(HOME)/Library/Bundles";
260+ PRODUCT_NAME = BSInlinePreviewer;
261+ WRAPPER_EXTENSION = plugin;
262+ };
263+ name = Release;
264+ };
265+ 1DEB913F08733D840010E9CD /* Debug */ = {
266+ isa = XCBuildConfiguration;
267+ buildSettings = {
268+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
269+ GCC_WARN_UNUSED_VARIABLE = YES;
270+ PREBINDING = NO;
271+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
272+ };
273+ name = Debug;
274+ };
275+ 1DEB914008733D840010E9CD /* Release */ = {
276+ isa = XCBuildConfiguration;
277+ buildSettings = {
278+ ARCHS = (
279+ ppc,
280+ i386,
281+ );
282+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
283+ GCC_WARN_UNUSED_VARIABLE = YES;
284+ PREBINDING = NO;
285+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
286+ };
287+ name = Release;
288+ };
289+/* End XCBuildConfiguration section */
290+
291+/* Begin XCConfigurationList section */
292+ 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "BSInlinePreviewer" */ = {
293+ isa = XCConfigurationList;
294+ buildConfigurations = (
295+ 1DEB913B08733D840010E9CD /* Debug */,
296+ 1DEB913C08733D840010E9CD /* Release */,
297+ );
298+ defaultConfigurationIsVisible = 0;
299+ defaultConfigurationName = Release;
300+ };
301+ 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "BSInlinePreviewer" */ = {
302+ isa = XCConfigurationList;
303+ buildConfigurations = (
304+ 1DEB913F08733D840010E9CD /* Debug */,
305+ 1DEB914008733D840010E9CD /* Release */,
306+ );
307+ defaultConfigurationIsVisible = 0;
308+ defaultConfigurationName = Release;
309+ };
310+/* End XCConfigurationList section */
311+ };
312+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
313+}
--- /dev/null
+++ b/BSInlinePreviewer_Prefix.pch
@@ -0,0 +1,7 @@
1+//
2+// Prefix header for all source files of the 'BSInlinePreviewer' target in the 'BSInlinePreviewer' project.
3+//
4+
5+#ifdef __OBJC__
6+ #import <Cocoa/Cocoa.h>
7+#endif
--- /dev/null
+++ b/BSPreviewPluginInterface.h
@@ -0,0 +1,40 @@
1+//
2+// BSPreviewPluginInterface.h
3+// BathyScaphe
4+//
5+// Created by Tsutomu Sawada on 10/03/21.
6+// Copyright 2010 BathyScaphe Project. All rights reserved.
7+// encoding="UTF-8"
8+//
9+
10+@class AppDefaults, CMRThreadViewer;
11+
12+@protocol BSLinkPreviewing
13+// Designated Initializer
14+- (id)initWithPreferences:(AppDefaults *)prefs;
15+
16+// Action
17+- (BOOL)previewLink:(NSURL *)url;
18+- (BOOL)validateLink:(NSURL *)url;
19+
20+@optional
21+//- (BOOL)previewLink:(NSURL *)url atThread:(CMRThreadViewer *)threadViewer;
22+//- (BOOL)previewLink:(NSURL *)url atThread:(CMRThreadViewer *)threadViewer mouseLocation:(NSPoint)point linkBounds:(NSRect)bounds;
23+//- (BOOL)validateLink:(NSURL *)url atThread:(CMRThreadViewer *)threadViewer;
24+- (BOOL)previewLinks:(NSArray *)urls;
25+//- (BOOL)previewLinks:(NSArray *)urls atThread:(CMRThreadViewer *)threadViewer;
26+//- (BOOL)previewLinks:(NSArray *)urls atThread:(CMRThreadViewer *)threadViewer linksBounds:(NSRect)bounds;
27+- (IBAction)togglePreviewPanel:(id)sender;
28+- (IBAction)showPreviewerPreferences:(id)sender;
29+@end
30+
31+
32+@interface NSObject(BSPreviewPluginAdditions)
33+// Storage for plugin-specific settings
34+- (NSMutableDictionary *)previewerPrefsDict;
35+
36+// Accessor for useful BathyScaphe global settings
37+- (BOOL)openInBg;
38+- (BOOL)isOnlineMode;
39+- (NSString *)linkDownloaderDestination; // 「リンク先のファイルをダウンロード」時の「保存先」
40+@end
--- /dev/null
+++ b/English.lproj/InfoPlist.strings
@@ -0,0 +1,12 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+<plist version="1.0">
4+<dict>
5+ <key>BSPreviewerDisplayName</key>
6+ <string>BSInlinePreviewer</string>
7+ <key>CFBundleGetInfoString</key>
8+ <string>BSInlinePreviewer 2.0</string>
9+ <key>NSHumanReadableCopyright</key>
10+ <string>© masakih, 2008,2010</string>
11+</dict>
12+</plist>
--- /dev/null
+++ b/Info.plist
@@ -0,0 +1,28 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+<plist version="1.0">
4+<dict>
5+ <key>CFBundleDevelopmentRegion</key>
6+ <string>English</string>
7+ <key>CFBundleExecutable</key>
8+ <string>${EXECUTABLE_NAME}</string>
9+ <key>CFBundleIconFile</key>
10+ <string></string>
11+ <key>CFBundleIdentifier</key>
12+ <string>com.masakih.BSInlinePreviewer</string>
13+ <key>CFBundleInfoDictionaryVersion</key>
14+ <string>6.0</string>
15+ <key>CFBundleName</key>
16+ <string>${PRODUCT_NAME}</string>
17+ <key>CFBundlePackageType</key>
18+ <string>BNDL</string>
19+ <key>CFBundleShortVersionString</key>
20+ <string>1.1</string>
21+ <key>CFBundleSignature</key>
22+ <string>????</string>
23+ <key>CFBundleVersion</key>
24+ <string>2.0</string>
25+ <key>NSPrincipalClass</key>
26+ <string>BSInlinePreviewer</string>
27+</dict>
28+</plist>
--- /dev/null
+++ b/Japanese.lproj/Panel.xib
@@ -0,0 +1,868 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
3+ <data>
4+ <int key="IBDocument.SystemTarget">1050</int>
5+ <string key="IBDocument.SystemVersion">10F569</string>
6+ <string key="IBDocument.InterfaceBuilderVersion">788</string>
7+ <string key="IBDocument.AppKitVersion">1038.29</string>
8+ <string key="IBDocument.HIToolboxVersion">461.00</string>
9+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
10+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
11+ <string key="NS.object.0">788</string>
12+ </object>
13+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
14+ <bool key="EncodedWithXMLCoder">YES</bool>
15+ <integer value="4"/>
16+ </object>
17+ <object class="NSArray" key="IBDocument.PluginDependencies">
18+ <bool key="EncodedWithXMLCoder">YES</bool>
19+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
20+ </object>
21+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
22+ <bool key="EncodedWithXMLCoder">YES</bool>
23+ <object class="NSArray" key="dict.sortedKeys" id="0">
24+ <bool key="EncodedWithXMLCoder">YES</bool>
25+ </object>
26+ <object class="NSMutableArray" key="dict.values">
27+ <bool key="EncodedWithXMLCoder">YES</bool>
28+ </object>
29+ </object>
30+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
31+ <bool key="EncodedWithXMLCoder">YES</bool>
32+ <object class="NSCustomObject" id="1001">
33+ <string key="NSClassName">BSInlinePreviewer</string>
34+ </object>
35+ <object class="NSCustomObject" id="1003">
36+ <string key="NSClassName">FirstResponder</string>
37+ </object>
38+ <object class="NSCustomObject" id="1004">
39+ <string key="NSClassName">NSApplication</string>
40+ </object>
41+ <object class="NSWindowTemplate" id="142754705">
42+ <int key="NSWindowStyleMask">31</int>
43+ <int key="NSWindowBacking">2</int>
44+ <string key="NSWindowRect">{{162, 373}, {246, 106}}</string>
45+ <int key="NSWTFlags">-461897728</int>
46+ <string key="NSWindowTitle">Window</string>
47+ <string key="NSWindowClass">NSPanel</string>
48+ <nil key="NSViewClass"/>
49+ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
50+ <object class="NSView" key="NSWindowView" id="299369692">
51+ <reference key="NSNextResponder"/>
52+ <int key="NSvFlags">256</int>
53+ <object class="NSMutableArray" key="NSSubviews">
54+ <bool key="EncodedWithXMLCoder">YES</bool>
55+ <object class="NSProgressIndicator" id="707824324">
56+ <reference key="NSNextResponder" ref="299369692"/>
57+ <int key="NSvFlags">1292</int>
58+ <object class="NSPSMatrix" key="NSDrawMatrix"/>
59+ <string key="NSFrame">{{18, 41}, {210, 20}}</string>
60+ <reference key="NSSuperview" ref="299369692"/>
61+ <int key="NSpiFlags">16394</int>
62+ <double key="NSMaxValue">100</double>
63+ </object>
64+ <object class="NSTextField" id="864997461">
65+ <reference key="NSNextResponder" ref="299369692"/>
66+ <int key="NSvFlags">268</int>
67+ <string key="NSFrame">{{17, 69}, {212, 17}}</string>
68+ <reference key="NSSuperview" ref="299369692"/>
69+ <bool key="NSEnabled">YES</bool>
70+ <object class="NSTextFieldCell" key="NSCell" id="590038331">
71+ <int key="NSCellFlags">68288064</int>
72+ <int key="NSCellFlags2">272630784</int>
73+ <string key="NSContents">ファイルをダウンロードしています</string>
74+ <object class="NSFont" key="NSSupport">
75+ <string key="NSName">HiraKakuProN-W3</string>
76+ <double key="NSSize">13</double>
77+ <int key="NSfFlags">16</int>
78+ </object>
79+ <reference key="NSControlView" ref="864997461"/>
80+ <object class="NSColor" key="NSBackgroundColor" id="546576217">
81+ <int key="NSColorSpace">6</int>
82+ <string key="NSCatalogName">System</string>
83+ <string key="NSColorName">controlColor</string>
84+ <object class="NSColor" key="NSColor">
85+ <int key="NSColorSpace">3</int>
86+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
87+ </object>
88+ </object>
89+ <object class="NSColor" key="NSTextColor" id="933503949">
90+ <int key="NSColorSpace">6</int>
91+ <string key="NSCatalogName">System</string>
92+ <string key="NSColorName">controlTextColor</string>
93+ <object class="NSColor" key="NSColor">
94+ <int key="NSColorSpace">3</int>
95+ <bytes key="NSWhite">MAA</bytes>
96+ </object>
97+ </object>
98+ </object>
99+ </object>
100+ <object class="NSTextField" id="742096612">
101+ <reference key="NSNextResponder" ref="299369692"/>
102+ <int key="NSvFlags">288</int>
103+ <string key="NSFrame">{{88, 20}, {70, 17}}</string>
104+ <reference key="NSSuperview" ref="299369692"/>
105+ <bool key="NSEnabled">YES</bool>
106+ <object class="NSTextFieldCell" key="NSCell" id="21590895">
107+ <int key="NSCellFlags">68288064</int>
108+ <int key="NSCellFlags2">138413056</int>
109+ <string key="NSContents">Label----</string>
110+ <object class="NSFont" key="NSSupport">
111+ <string key="NSName">LucidaGrande</string>
112+ <double key="NSSize">13</double>
113+ <int key="NSfFlags">1044</int>
114+ </object>
115+ <reference key="NSControlView" ref="742096612"/>
116+ <reference key="NSBackgroundColor" ref="546576217"/>
117+ <reference key="NSTextColor" ref="933503949"/>
118+ </object>
119+ </object>
120+ </object>
121+ <string key="NSFrameSize">{246, 106}</string>
122+ <reference key="NSSuperview"/>
123+ </object>
124+ <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
125+ <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
126+ </object>
127+ </object>
128+ <object class="IBObjectContainer" key="IBDocument.Objects">
129+ <object class="NSMutableArray" key="connectionRecords">
130+ <bool key="EncodedWithXMLCoder">YES</bool>
131+ <object class="IBConnectionRecord">
132+ <object class="IBOutletConnection" key="connection">
133+ <string key="label">progress</string>
134+ <reference key="source" ref="1001"/>
135+ <reference key="destination" ref="707824324"/>
136+ </object>
137+ <int key="connectionID">8</int>
138+ </object>
139+ <object class="IBConnectionRecord">
140+ <object class="IBOutletConnection" key="connection">
141+ <string key="label">progressPanel</string>
142+ <reference key="source" ref="1001"/>
143+ <reference key="destination" ref="142754705"/>
144+ </object>
145+ <int key="connectionID">9</int>
146+ </object>
147+ <object class="IBConnectionRecord">
148+ <object class="IBBindingConnection" key="connection">
149+ <string key="label">displayPatternValue1: remainder</string>
150+ <reference key="source" ref="742096612"/>
151+ <reference key="destination" ref="1001"/>
152+ <object class="NSNibBindingConnector" key="connector" id="640733573">
153+ <reference key="NSSource" ref="742096612"/>
154+ <reference key="NSDestination" ref="1001"/>
155+ <string key="NSLabel">displayPatternValue1: remainder</string>
156+ <string key="NSBinding">displayPatternValue1</string>
157+ <string key="NSKeyPath">remainder</string>
158+ <object class="NSDictionary" key="NSOptions">
159+ <string key="NS.key.0">NSDisplayPattern</string>
160+ <string key="NS.object.0">%{value1}@/%{value2}@</string>
161+ </object>
162+ <int key="NSNibBindingConnectorVersion">2</int>
163+ </object>
164+ </object>
165+ <int key="connectionID">15</int>
166+ </object>
167+ <object class="IBConnectionRecord">
168+ <object class="IBBindingConnection" key="connection">
169+ <string key="label">displayPatternValue2: totalDownloads</string>
170+ <reference key="source" ref="742096612"/>
171+ <reference key="destination" ref="1001"/>
172+ <object class="NSNibBindingConnector" key="connector">
173+ <reference key="NSSource" ref="742096612"/>
174+ <reference key="NSDestination" ref="1001"/>
175+ <string key="NSLabel">displayPatternValue2: totalDownloads</string>
176+ <string key="NSBinding">displayPatternValue2</string>
177+ <string key="NSKeyPath">totalDownloads</string>
178+ <object class="NSDictionary" key="NSOptions">
179+ <string key="NS.key.0">NSDisplayPattern</string>
180+ <string key="NS.object.0">%{value1}@/%{value2}@</string>
181+ </object>
182+ <reference key="NSPreviousConnector" ref="640733573"/>
183+ <int key="NSNibBindingConnectorVersion">2</int>
184+ </object>
185+ </object>
186+ <int key="connectionID">16</int>
187+ </object>
188+ </object>
189+ <object class="IBMutableOrderedSet" key="objectRecords">
190+ <object class="NSArray" key="orderedObjects">
191+ <bool key="EncodedWithXMLCoder">YES</bool>
192+ <object class="IBObjectRecord">
193+ <int key="objectID">0</int>
194+ <reference key="object" ref="0"/>
195+ <reference key="children" ref="1000"/>
196+ <nil key="parent"/>
197+ </object>
198+ <object class="IBObjectRecord">
199+ <int key="objectID">-2</int>
200+ <reference key="object" ref="1001"/>
201+ <reference key="parent" ref="0"/>
202+ <string key="objectName">File's Owner</string>
203+ </object>
204+ <object class="IBObjectRecord">
205+ <int key="objectID">-1</int>
206+ <reference key="object" ref="1003"/>
207+ <reference key="parent" ref="0"/>
208+ <string key="objectName">First Responder</string>
209+ </object>
210+ <object class="IBObjectRecord">
211+ <int key="objectID">-3</int>
212+ <reference key="object" ref="1004"/>
213+ <reference key="parent" ref="0"/>
214+ <string key="objectName">Application</string>
215+ </object>
216+ <object class="IBObjectRecord">
217+ <int key="objectID">3</int>
218+ <reference key="object" ref="142754705"/>
219+ <object class="NSMutableArray" key="children">
220+ <bool key="EncodedWithXMLCoder">YES</bool>
221+ <reference ref="299369692"/>
222+ </object>
223+ <reference key="parent" ref="0"/>
224+ </object>
225+ <object class="IBObjectRecord">
226+ <int key="objectID">4</int>
227+ <reference key="object" ref="299369692"/>
228+ <object class="NSMutableArray" key="children">
229+ <bool key="EncodedWithXMLCoder">YES</bool>
230+ <reference ref="864997461"/>
231+ <reference ref="707824324"/>
232+ <reference ref="742096612"/>
233+ </object>
234+ <reference key="parent" ref="142754705"/>
235+ </object>
236+ <object class="IBObjectRecord">
237+ <int key="objectID">5</int>
238+ <reference key="object" ref="707824324"/>
239+ <reference key="parent" ref="299369692"/>
240+ </object>
241+ <object class="IBObjectRecord">
242+ <int key="objectID">6</int>
243+ <reference key="object" ref="864997461"/>
244+ <object class="NSMutableArray" key="children">
245+ <bool key="EncodedWithXMLCoder">YES</bool>
246+ <reference ref="590038331"/>
247+ </object>
248+ <reference key="parent" ref="299369692"/>
249+ </object>
250+ <object class="IBObjectRecord">
251+ <int key="objectID">7</int>
252+ <reference key="object" ref="590038331"/>
253+ <reference key="parent" ref="864997461"/>
254+ </object>
255+ <object class="IBObjectRecord">
256+ <int key="objectID">10</int>
257+ <reference key="object" ref="742096612"/>
258+ <object class="NSMutableArray" key="children">
259+ <bool key="EncodedWithXMLCoder">YES</bool>
260+ <reference ref="21590895"/>
261+ </object>
262+ <reference key="parent" ref="299369692"/>
263+ </object>
264+ <object class="IBObjectRecord">
265+ <int key="objectID">11</int>
266+ <reference key="object" ref="21590895"/>
267+ <reference key="parent" ref="742096612"/>
268+ </object>
269+ </object>
270+ </object>
271+ <object class="NSMutableDictionary" key="flattenedProperties">
272+ <bool key="EncodedWithXMLCoder">YES</bool>
273+ <object class="NSArray" key="dict.sortedKeys">
274+ <bool key="EncodedWithXMLCoder">YES</bool>
275+ <string>-1.IBPluginDependency</string>
276+ <string>-2.IBPluginDependency</string>
277+ <string>-3.IBPluginDependency</string>
278+ <string>10.IBPluginDependency</string>
279+ <string>11.IBPluginDependency</string>
280+ <string>3.IBEditorWindowLastContentRect</string>
281+ <string>3.IBPluginDependency</string>
282+ <string>3.IBWindowTemplateEditedContentRect</string>
283+ <string>3.NSWindowTemplate.visibleAtLaunch</string>
284+ <string>4.IBPluginDependency</string>
285+ <string>5.IBPluginDependency</string>
286+ <string>6.IBPluginDependency</string>
287+ <string>7.IBPluginDependency</string>
288+ </object>
289+ <object class="NSMutableArray" key="dict.values">
290+ <bool key="EncodedWithXMLCoder">YES</bool>
291+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
292+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
293+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
294+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
295+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
296+ <string>{{196, 585}, {246, 106}}</string>
297+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
298+ <string>{{196, 585}, {246, 106}}</string>
299+ <boolean value="NO"/>
300+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
301+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
302+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
303+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
304+ </object>
305+ </object>
306+ <object class="NSMutableDictionary" key="unlocalizedProperties">
307+ <bool key="EncodedWithXMLCoder">YES</bool>
308+ <reference key="dict.sortedKeys" ref="0"/>
309+ <object class="NSMutableArray" key="dict.values">
310+ <bool key="EncodedWithXMLCoder">YES</bool>
311+ </object>
312+ </object>
313+ <nil key="activeLocalization"/>
314+ <object class="NSMutableDictionary" key="localizations">
315+ <bool key="EncodedWithXMLCoder">YES</bool>
316+ <reference key="dict.sortedKeys" ref="0"/>
317+ <object class="NSMutableArray" key="dict.values">
318+ <bool key="EncodedWithXMLCoder">YES</bool>
319+ </object>
320+ </object>
321+ <nil key="sourceID"/>
322+ <int key="maxID">16</int>
323+ </object>
324+ <object class="IBClassDescriber" key="IBDocument.Classes">
325+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
326+ <bool key="EncodedWithXMLCoder">YES</bool>
327+ <object class="IBPartialClassDescription">
328+ <string key="className">BSInlinePreviewer</string>
329+ <string key="superclassName">NSObject</string>
330+ <object class="NSMutableDictionary" key="outlets">
331+ <bool key="EncodedWithXMLCoder">YES</bool>
332+ <object class="NSArray" key="dict.sortedKeys">
333+ <bool key="EncodedWithXMLCoder">YES</bool>
334+ <string>previewAttributes</string>
335+ <string>progress</string>
336+ <string>progressPanel</string>
337+ <string>threadView</string>
338+ </object>
339+ <object class="NSMutableArray" key="dict.values">
340+ <bool key="EncodedWithXMLCoder">YES</bool>
341+ <string>id</string>
342+ <string>NSProgressIndicator</string>
343+ <string>NSWindow</string>
344+ <string>id</string>
345+ </object>
346+ </object>
347+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
348+ <bool key="EncodedWithXMLCoder">YES</bool>
349+ <object class="NSArray" key="dict.sortedKeys">
350+ <bool key="EncodedWithXMLCoder">YES</bool>
351+ <string>previewAttributes</string>
352+ <string>progress</string>
353+ <string>progressPanel</string>
354+ <string>threadView</string>
355+ </object>
356+ <object class="NSMutableArray" key="dict.values">
357+ <bool key="EncodedWithXMLCoder">YES</bool>
358+ <object class="IBToOneOutletInfo">
359+ <string key="name">previewAttributes</string>
360+ <string key="candidateClassName">id</string>
361+ </object>
362+ <object class="IBToOneOutletInfo">
363+ <string key="name">progress</string>
364+ <string key="candidateClassName">NSProgressIndicator</string>
365+ </object>
366+ <object class="IBToOneOutletInfo">
367+ <string key="name">progressPanel</string>
368+ <string key="candidateClassName">NSWindow</string>
369+ </object>
370+ <object class="IBToOneOutletInfo">
371+ <string key="name">threadView</string>
372+ <string key="candidateClassName">id</string>
373+ </object>
374+ </object>
375+ </object>
376+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
377+ <string key="majorKey">IBProjectSource</string>
378+ <string key="minorKey">BSInlinePreviewer.h</string>
379+ </object>
380+ </object>
381+ <object class="IBPartialClassDescription">
382+ <string key="className">NSObject</string>
383+ <object class="NSMutableDictionary" key="actions">
384+ <bool key="EncodedWithXMLCoder">YES</bool>
385+ <object class="NSArray" key="dict.sortedKeys">
386+ <bool key="EncodedWithXMLCoder">YES</bool>
387+ <string>showPreviewerPreferences:</string>
388+ <string>togglePreviewPanel:</string>
389+ </object>
390+ <object class="NSMutableArray" key="dict.values">
391+ <bool key="EncodedWithXMLCoder">YES</bool>
392+ <string>id</string>
393+ <string>id</string>
394+ </object>
395+ </object>
396+ <object class="NSMutableDictionary" key="actionInfosByName">
397+ <bool key="EncodedWithXMLCoder">YES</bool>
398+ <object class="NSArray" key="dict.sortedKeys">
399+ <bool key="EncodedWithXMLCoder">YES</bool>
400+ <string>showPreviewerPreferences:</string>
401+ <string>togglePreviewPanel:</string>
402+ </object>
403+ <object class="NSMutableArray" key="dict.values">
404+ <bool key="EncodedWithXMLCoder">YES</bool>
405+ <object class="IBActionInfo">
406+ <string key="name">showPreviewerPreferences:</string>
407+ <string key="candidateClassName">id</string>
408+ </object>
409+ <object class="IBActionInfo">
410+ <string key="name">togglePreviewPanel:</string>
411+ <string key="candidateClassName">id</string>
412+ </object>
413+ </object>
414+ </object>
415+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
416+ <string key="majorKey">IBProjectSource</string>
417+ <string key="minorKey">BSImagePreviewerInterface.h</string>
418+ </object>
419+ </object>
420+ <object class="IBPartialClassDescription">
421+ <string key="className">NSObject</string>
422+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
423+ <string key="majorKey">IBProjectSource</string>
424+ <string key="minorKey">BSPreviewPluginInterface.h</string>
425+ </object>
426+ </object>
427+ </object>
428+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
429+ <bool key="EncodedWithXMLCoder">YES</bool>
430+ <object class="IBPartialClassDescription">
431+ <string key="className">NSActionCell</string>
432+ <string key="superclassName">NSCell</string>
433+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
434+ <string key="majorKey">IBFrameworkSource</string>
435+ <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
436+ </object>
437+ </object>
438+ <object class="IBPartialClassDescription">
439+ <string key="className">NSApplication</string>
440+ <string key="superclassName">NSResponder</string>
441+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="718377512">
442+ <string key="majorKey">IBFrameworkSource</string>
443+ <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
444+ </object>
445+ </object>
446+ <object class="IBPartialClassDescription">
447+ <string key="className">NSApplication</string>
448+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="93635389">
449+ <string key="majorKey">IBFrameworkSource</string>
450+ <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
451+ </object>
452+ </object>
453+ <object class="IBPartialClassDescription">
454+ <string key="className">NSApplication</string>
455+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="605819039">
456+ <string key="majorKey">IBFrameworkSource</string>
457+ <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
458+ </object>
459+ </object>
460+ <object class="IBPartialClassDescription">
461+ <string key="className">NSApplication</string>
462+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
463+ <string key="majorKey">IBFrameworkSource</string>
464+ <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
465+ </object>
466+ </object>
467+ <object class="IBPartialClassDescription">
468+ <string key="className">NSApplication</string>
469+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
470+ <string key="majorKey">IBFrameworkSource</string>
471+ <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
472+ </object>
473+ </object>
474+ <object class="IBPartialClassDescription">
475+ <string key="className">NSApplication</string>
476+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
477+ <string key="majorKey">IBFrameworkSource</string>
478+ <string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
479+ </object>
480+ </object>
481+ <object class="IBPartialClassDescription">
482+ <string key="className">NSCell</string>
483+ <string key="superclassName">NSObject</string>
484+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
485+ <string key="majorKey">IBFrameworkSource</string>
486+ <string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
487+ </object>
488+ </object>
489+ <object class="IBPartialClassDescription">
490+ <string key="className">NSControl</string>
491+ <string key="superclassName">NSView</string>
492+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="538402723">
493+ <string key="majorKey">IBFrameworkSource</string>
494+ <string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
495+ </object>
496+ </object>
497+ <object class="IBPartialClassDescription">
498+ <string key="className">NSFormatter</string>
499+ <string key="superclassName">NSObject</string>
500+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
501+ <string key="majorKey">IBFrameworkSource</string>
502+ <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
503+ </object>
504+ </object>
505+ <object class="IBPartialClassDescription">
506+ <string key="className">NSMenu</string>
507+ <string key="superclassName">NSObject</string>
508+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="896802280">
509+ <string key="majorKey">IBFrameworkSource</string>
510+ <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
511+ </object>
512+ </object>
513+ <object class="IBPartialClassDescription">
514+ <string key="className">NSObject</string>
515+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
516+ <string key="majorKey">IBFrameworkSource</string>
517+ <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
518+ </object>
519+ </object>
520+ <object class="IBPartialClassDescription">
521+ <string key="className">NSObject</string>
522+ <reference key="sourceIdentifier" ref="718377512"/>
523+ </object>
524+ <object class="IBPartialClassDescription">
525+ <string key="className">NSObject</string>
526+ <reference key="sourceIdentifier" ref="93635389"/>
527+ </object>
528+ <object class="IBPartialClassDescription">
529+ <string key="className">NSObject</string>
530+ <reference key="sourceIdentifier" ref="605819039"/>
531+ </object>
532+ <object class="IBPartialClassDescription">
533+ <string key="className">NSObject</string>
534+ <reference key="sourceIdentifier" ref="538402723"/>
535+ </object>
536+ <object class="IBPartialClassDescription">
537+ <string key="className">NSObject</string>
538+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
539+ <string key="majorKey">IBFrameworkSource</string>
540+ <string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
541+ </object>
542+ </object>
543+ <object class="IBPartialClassDescription">
544+ <string key="className">NSObject</string>
545+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
546+ <string key="majorKey">IBFrameworkSource</string>
547+ <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
548+ </object>
549+ </object>
550+ <object class="IBPartialClassDescription">
551+ <string key="className">NSObject</string>
552+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
553+ <string key="majorKey">IBFrameworkSource</string>
554+ <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
555+ </object>
556+ </object>
557+ <object class="IBPartialClassDescription">
558+ <string key="className">NSObject</string>
559+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
560+ <string key="majorKey">IBFrameworkSource</string>
561+ <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
562+ </object>
563+ </object>
564+ <object class="IBPartialClassDescription">
565+ <string key="className">NSObject</string>
566+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
567+ <string key="majorKey">IBFrameworkSource</string>
568+ <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
569+ </object>
570+ </object>
571+ <object class="IBPartialClassDescription">
572+ <string key="className">NSObject</string>
573+ <reference key="sourceIdentifier" ref="896802280"/>
574+ </object>
575+ <object class="IBPartialClassDescription">
576+ <string key="className">NSObject</string>
577+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
578+ <string key="majorKey">IBFrameworkSource</string>
579+ <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
580+ </object>
581+ </object>
582+ <object class="IBPartialClassDescription">
583+ <string key="className">NSObject</string>
584+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
585+ <string key="majorKey">IBFrameworkSource</string>
586+ <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
587+ </object>
588+ </object>
589+ <object class="IBPartialClassDescription">
590+ <string key="className">NSObject</string>
591+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
592+ <string key="majorKey">IBFrameworkSource</string>
593+ <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
594+ </object>
595+ </object>
596+ <object class="IBPartialClassDescription">
597+ <string key="className">NSObject</string>
598+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
599+ <string key="majorKey">IBFrameworkSource</string>
600+ <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
601+ </object>
602+ </object>
603+ <object class="IBPartialClassDescription">
604+ <string key="className">NSObject</string>
605+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
606+ <string key="majorKey">IBFrameworkSource</string>
607+ <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
608+ </object>
609+ </object>
610+ <object class="IBPartialClassDescription">
611+ <string key="className">NSObject</string>
612+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
613+ <string key="majorKey">IBFrameworkSource</string>
614+ <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
615+ </object>
616+ </object>
617+ <object class="IBPartialClassDescription">
618+ <string key="className">NSObject</string>
619+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="468383869">
620+ <string key="majorKey">IBFrameworkSource</string>
621+ <string key="minorKey">AppKit.framework/Headers/NSView.h</string>
622+ </object>
623+ </object>
624+ <object class="IBPartialClassDescription">
625+ <string key="className">NSObject</string>
626+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
627+ <string key="majorKey">IBFrameworkSource</string>
628+ <string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
629+ </object>
630+ </object>
631+ <object class="IBPartialClassDescription">
632+ <string key="className">NSObject</string>
633+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
634+ <string key="majorKey">IBFrameworkSource</string>
635+ <string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
636+ </object>
637+ </object>
638+ <object class="IBPartialClassDescription">
639+ <string key="className">NSObject</string>
640+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
641+ <string key="majorKey">IBFrameworkSource</string>
642+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
643+ </object>
644+ </object>
645+ <object class="IBPartialClassDescription">
646+ <string key="className">NSObject</string>
647+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
648+ <string key="majorKey">IBFrameworkSource</string>
649+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
650+ </object>
651+ </object>
652+ <object class="IBPartialClassDescription">
653+ <string key="className">NSObject</string>
654+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
655+ <string key="majorKey">IBFrameworkSource</string>
656+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
657+ </object>
658+ </object>
659+ <object class="IBPartialClassDescription">
660+ <string key="className">NSObject</string>
661+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
662+ <string key="majorKey">IBFrameworkSource</string>
663+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
664+ </object>
665+ </object>
666+ <object class="IBPartialClassDescription">
667+ <string key="className">NSObject</string>
668+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
669+ <string key="majorKey">IBFrameworkSource</string>
670+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
671+ </object>
672+ </object>
673+ <object class="IBPartialClassDescription">
674+ <string key="className">NSObject</string>
675+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
676+ <string key="majorKey">IBFrameworkSource</string>
677+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
678+ </object>
679+ </object>
680+ <object class="IBPartialClassDescription">
681+ <string key="className">NSObject</string>
682+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
683+ <string key="majorKey">IBFrameworkSource</string>
684+ <string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
685+ </object>
686+ </object>
687+ <object class="IBPartialClassDescription">
688+ <string key="className">NSObject</string>
689+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
690+ <string key="majorKey">IBFrameworkSource</string>
691+ <string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
692+ </object>
693+ </object>
694+ <object class="IBPartialClassDescription">
695+ <string key="className">NSObject</string>
696+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
697+ <string key="majorKey">IBFrameworkSource</string>
698+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
699+ </object>
700+ </object>
701+ <object class="IBPartialClassDescription">
702+ <string key="className">NSObject</string>
703+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
704+ <string key="majorKey">IBFrameworkSource</string>
705+ <string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
706+ </object>
707+ </object>
708+ <object class="IBPartialClassDescription">
709+ <string key="className">NSObject</string>
710+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
711+ <string key="majorKey">IBFrameworkSource</string>
712+ <string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
713+ </object>
714+ </object>
715+ <object class="IBPartialClassDescription">
716+ <string key="className">NSObject</string>
717+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
718+ <string key="majorKey">IBFrameworkSource</string>
719+ <string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
720+ </object>
721+ </object>
722+ <object class="IBPartialClassDescription">
723+ <string key="className">NSObject</string>
724+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
725+ <string key="majorKey">IBFrameworkSource</string>
726+ <string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
727+ </object>
728+ </object>
729+ <object class="IBPartialClassDescription">
730+ <string key="className">NSObject</string>
731+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
732+ <string key="majorKey">IBFrameworkSource</string>
733+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
734+ </object>
735+ </object>
736+ <object class="IBPartialClassDescription">
737+ <string key="className">NSObject</string>
738+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
739+ <string key="majorKey">IBFrameworkSource</string>
740+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
741+ </object>
742+ </object>
743+ <object class="IBPartialClassDescription">
744+ <string key="className">NSObject</string>
745+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
746+ <string key="majorKey">IBFrameworkSource</string>
747+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
748+ </object>
749+ </object>
750+ <object class="IBPartialClassDescription">
751+ <string key="className">NSObject</string>
752+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
753+ <string key="majorKey">IBFrameworkSource</string>
754+ <string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
755+ </object>
756+ </object>
757+ <object class="IBPartialClassDescription">
758+ <string key="className">NSPanel</string>
759+ <string key="superclassName">NSWindow</string>
760+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
761+ <string key="majorKey">IBFrameworkSource</string>
762+ <string key="minorKey">AppKit.framework/Headers/NSPanel.h</string>
763+ </object>
764+ </object>
765+ <object class="IBPartialClassDescription">
766+ <string key="className">NSProgressIndicator</string>
767+ <string key="superclassName">NSView</string>
768+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
769+ <string key="majorKey">IBFrameworkSource</string>
770+ <string key="minorKey">AppKit.framework/Headers/NSProgressIndicator.h</string>
771+ </object>
772+ </object>
773+ <object class="IBPartialClassDescription">
774+ <string key="className">NSResponder</string>
775+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
776+ <string key="majorKey">IBFrameworkSource</string>
777+ <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
778+ </object>
779+ </object>
780+ <object class="IBPartialClassDescription">
781+ <string key="className">NSResponder</string>
782+ <string key="superclassName">NSObject</string>
783+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
784+ <string key="majorKey">IBFrameworkSource</string>
785+ <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
786+ </object>
787+ </object>
788+ <object class="IBPartialClassDescription">
789+ <string key="className">NSTextField</string>
790+ <string key="superclassName">NSControl</string>
791+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
792+ <string key="majorKey">IBFrameworkSource</string>
793+ <string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
794+ </object>
795+ </object>
796+ <object class="IBPartialClassDescription">
797+ <string key="className">NSTextFieldCell</string>
798+ <string key="superclassName">NSActionCell</string>
799+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
800+ <string key="majorKey">IBFrameworkSource</string>
801+ <string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
802+ </object>
803+ </object>
804+ <object class="IBPartialClassDescription">
805+ <string key="className">NSView</string>
806+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
807+ <string key="majorKey">IBFrameworkSource</string>
808+ <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
809+ </object>
810+ </object>
811+ <object class="IBPartialClassDescription">
812+ <string key="className">NSView</string>
813+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
814+ <string key="majorKey">IBFrameworkSource</string>
815+ <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
816+ </object>
817+ </object>
818+ <object class="IBPartialClassDescription">
819+ <string key="className">NSView</string>
820+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
821+ <string key="majorKey">IBFrameworkSource</string>
822+ <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
823+ </object>
824+ </object>
825+ <object class="IBPartialClassDescription">
826+ <string key="className">NSView</string>
827+ <string key="superclassName">NSResponder</string>
828+ <reference key="sourceIdentifier" ref="468383869"/>
829+ </object>
830+ <object class="IBPartialClassDescription">
831+ <string key="className">NSWindow</string>
832+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
833+ <string key="majorKey">IBFrameworkSource</string>
834+ <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
835+ </object>
836+ </object>
837+ <object class="IBPartialClassDescription">
838+ <string key="className">NSWindow</string>
839+ <string key="superclassName">NSResponder</string>
840+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
841+ <string key="majorKey">IBFrameworkSource</string>
842+ <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
843+ </object>
844+ </object>
845+ <object class="IBPartialClassDescription">
846+ <string key="className">NSWindow</string>
847+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
848+ <string key="majorKey">IBFrameworkSource</string>
849+ <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
850+ </object>
851+ </object>
852+ </object>
853+ </object>
854+ <int key="IBDocument.localizationMode">0</int>
855+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
856+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
857+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
858+ <integer value="1050" key="NS.object.0"/>
859+ </object>
860+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
861+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
862+ <integer value="3000" key="NS.object.0"/>
863+ </object>
864+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
865+ <string key="IBDocument.LastKnownRelativeProjectPath">../BSInlinePreviewer.xcodeproj</string>
866+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
867+ </data>
868+</archive>
Binary files /dev/null and b/notFound.png differ
--- /dev/null
+++ b/svn-commit.tmp
@@ -0,0 +1,4 @@
1+initial import.
2+--This line, and those below, will be ignored--
3+
4+A .