• 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

Revision26287b46fa09cbace268713d0ca6b8a68cb805f1 (tree)
Zeit2009-02-16 21:30:39
Autormasakih <masakih@user...>
Commitermasakih

Log Message

initial import.

git-svn-id: svn+ssh://macmini/usr/local/svnrepos/BSLinkConductor/BSLinkConductor@2 061f2d1e-a732-4c5b-b008-8f2f835f3f04

Ändern Zusammenfassung

Diff

--- /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/BSLCPreferences.h
@@ -0,0 +1,30 @@
1+//
2+// BSLCPreferences.h
3+// BSLinkConductor
4+//
5+// Created by Hori,Masaki on 09/02/13.
6+// Copyright 2009 masakih. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+
12+@interface BSLCPreferences : NSWindowController
13+{
14+ NSMutableArray *items;
15+
16+ IBOutlet NSTableView *tableView;
17+ IBOutlet NSArrayController *itemsController;
18+}
19+
20++ (id)sharedInstance;
21+- (void)setItems:(NSMutableArray *)inItems;
22+
23+- (IBAction)showHideWindow:(id)sender;
24+
25+- (IBAction)add:(id)sender;
26+- (IBAction)remove:(id)sender;
27+
28+extern NSString *BSLCItemsDidChangeNotification;
29+
30+@end
--- /dev/null
+++ b/BSLCPreferences.m
@@ -0,0 +1,197 @@
1+//
2+// BSLCPreferences.m
3+// BSLinkConductor
4+//
5+// Created by Hori,Masaki on 09/02/13.
6+// Copyright 2009 masakih. All rights reserved.
7+//
8+
9+#import "BSLCPreferences.h"
10+
11+#import "BSLinkConductorItem.h"
12+
13+@implementation BSLCPreferences
14+
15+NSString *BSLCItemsDidChangeNotification = @"BSLCItemsDidChangeNotification";
16+
17+
18+static BSLCPreferences *instance = nil;
19+
20+static NSString *const BSLCPRowIndexType = @"BSLCPRowIndexType";
21+
22+- (id)init
23+{
24+ if(self = [super initWithWindowNibName:@"BSLinkConductor"]) {
25+ //
26+ }
27+
28+ return self;
29+}
30+
31++ (id)sharedInstance
32+{
33+ if(!instance) {
34+ @synchronized(self) {
35+ if(!instance) {
36+ instance = [[[self class] alloc] init];
37+ }
38+ }
39+ }
40+
41+ return instance;
42+}
43+
44+
45+- (void)awakeFromNib
46+{
47+ [tableView registerForDraggedTypes:[NSArray arrayWithObject:BSLCItemPastboardType]];
48+
49+ [[self window] setFrameAutosaveName:@"com.masakih.BSLinkConductor.Preference"];
50+
51+ [itemsController addObserver:self forKeyPath:@"selection.name" options:0 context:NULL];
52+ [itemsController addObserver:self forKeyPath:@"selection.regularExpression" options:0 context:NULL];
53+ [itemsController addObserver:self forKeyPath:@"selection.targetApplicationName" options:0 context:NULL];
54+ [itemsController addObserver:self forKeyPath:@"selection.openInBackground" options:0 context:NULL];
55+ [itemsController addObserver:self forKeyPath:@"selection.useLocalCopy" options:0 context:NULL];
56+}
57+
58+- (void)notifyItemDidChange
59+{
60+ NSNotificationCenter *fc = [NSNotificationCenter defaultCenter];
61+
62+ [fc postNotificationName:BSLCItemsDidChangeNotification object:self];
63+}
64+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
65+{
66+ [self notifyItemDidChange];
67+}
68+- (void)textDidChange:(NSNotification *)notification
69+{
70+ [self notifyItemDidChange];
71+}
72+- (void)textDidEndEditing:(NSNotification *)notification
73+{
74+ [self notifyItemDidChange];
75+}
76+- (void)setItems:(NSMutableArray *)inItems
77+{
78+ if(items == inItems) return;
79+
80+ [items autorelease];
81+ items = [inItems retain];
82+}
83+- (NSMutableArray *)items
84+{
85+ return items;
86+}
87+
88+
89+
90+- (IBAction)showHideWindow:(id)sender
91+{
92+ if([[self window] isVisible]) {
93+ [[self window] orderOut:sender];
94+ } else {
95+ [self showWindow:sender];
96+ }
97+}
98+- (IBAction)add:(id)sender
99+{
100+ BSLinkConductorItem *item = [[[BSLinkConductorItem alloc] init] autorelease];
101+ UTILDebugWrite1(@"New item is %@", item);
102+
103+ [self willChangeValueForKey:@"items"];
104+ [items addObject:item];
105+ [self didChangeValueForKey:@"items"];
106+
107+ [self notifyItemDidChange];
108+
109+ UTILDebugWrite1(@"Add item. new item count is %d", [items count]);
110+}
111+- (IBAction)remove:(id)sender
112+{
113+ int row = [tableView selectedRow];
114+ if(row == -1) return;
115+
116+ id item = [items objectAtIndex:row];
117+ if(!item) return;
118+
119+ [self willChangeValueForKey:@"items"];
120+ [items removeObjectAtIndex:row];
121+ UTILDebugWrite(@"Remove item");
122+ [self didChangeValueForKey:@"items"];
123+
124+ [self notifyItemDidChange];
125+}
126+
127+- (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard*)pboard
128+{
129+ if([rowIndexes count] != 1) return NO;
130+
131+ unsigned int index = [rowIndexes firstIndex];
132+
133+ [pboard declareTypes:[NSArray arrayWithObjects:BSLCItemPastboardType, BSLCPRowIndexType, nil] owner:nil];
134+ [pboard setData:[NSKeyedArchiver archivedDataWithRootObject:[items objectAtIndex:index]]
135+ forType:BSLCItemPastboardType];
136+ [pboard setPropertyList:[NSNumber numberWithUnsignedInt:index] forType:BSLCPRowIndexType];
137+
138+ return YES;
139+}
140+
141+- (NSDragOperation)tableView:(NSTableView*)targetTableView
142+ validateDrop:(id <NSDraggingInfo>)info
143+ proposedRow:(int)row
144+ proposedDropOperation:(NSTableViewDropOperation)dropOperation
145+{
146+ NSPasteboard *pboard = [info draggingPasteboard];
147+ if(![[pboard types] containsObject:BSLCItemPastboardType]) {
148+ UTILDebugWrite(@"Pboard do not have BSLCItemPastboardType");
149+ return NSDragOperationNone;
150+ }
151+
152+ if(dropOperation == NSTableViewDropOn) {
153+ [targetTableView setDropRow:row dropOperation:NSTableViewDropAbove];
154+ }
155+
156+ unsigned int originalRow = [[pboard propertyListForType:BSLCPRowIndexType] unsignedIntValue];
157+ if(row == originalRow || row == originalRow + 1) {
158+ return NSDragOperationNone;
159+ }
160+
161+ return NSDragOperationMove;
162+}
163+
164+- (BOOL)tableView:(NSTableView*)tableView
165+ acceptDrop:(id <NSDraggingInfo>)info
166+ row:(int)row
167+ dropOperation:(NSTableViewDropOperation)dropOperation
168+{
169+ NSPasteboard *pboard = [info draggingPasteboard];
170+ if(![[pboard types] containsObject:BSLCItemPastboardType]) {
171+ UTILDebugWrite(@"Pboard do not have BSLCItemPastboardType");
172+ return NO;
173+ }
174+
175+ if(row < 0) row = 0;
176+
177+ unsigned int originalRow = [[pboard propertyListForType:BSLCPRowIndexType] unsignedIntValue];
178+
179+ NSData *itemData = [pboard dataForType:BSLCItemPastboardType];
180+ BSLinkConductorItem *item = [NSKeyedUnarchiver unarchiveObjectWithData:itemData];
181+ if(![item isKindOfClass:[BSLinkConductorItem class]]) {
182+ UTILDebugWrite1(@"pboard object is not BSLinkConductorItem.(%@)", item);
183+ return NO;
184+ }
185+
186+ [self willChangeValueForKey:@"items"];
187+ [items insertObject:item atIndex:row];
188+ if(originalRow > row) originalRow++;
189+ [items removeObjectAtIndex:originalRow];
190+ [self didChangeValueForKey:@"items"];
191+
192+ [self notifyItemDidChange];
193+
194+ return YES;
195+}
196+
197+@end
--- /dev/null
+++ b/BSLinkConductor.h
@@ -0,0 +1,26 @@
1+//
2+// BSLinkConductor.h
3+// BSLinkConductor
4+//
5+// Created by Hori,Masaki on 09/02/11.
6+// Copyright 2009 masakih. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+#import "BSImagePreviewerInterface.h"
12+
13+@class HMTemporaryFolder;
14+
15+@interface BSLinkConductor : NSObject <BSImagePreviewerProtocol>
16+{
17+ AppDefaults *appDefaults;
18+
19+ NSMutableArray *items;
20+
21+ HMTemporaryFolder *tempFolder;
22+ NSMutableDictionary *tempFileDict;
23+ NSMutableDictionary *urlItemDict;
24+}
25+
26+@end
--- /dev/null
+++ b/BSLinkConductor.m
@@ -0,0 +1,260 @@
1+//
2+// BSLinkConductor.m
3+// BSLinkConductor
4+//
5+// Created by Hori,Masaki on 09/02/11.
6+// Copyright 2009 masakih. All rights reserved.
7+//
8+
9+#import "BSLinkConductor.h"
10+
11+#import <OgreKit/OGRegularExpression.h>
12+#import "BSLinkConductorItem.h"
13+#import "BSLCPreferences.h"
14+
15+#import "HMTemporaryFolder.h"
16+
17+static NSString *const BSLCSavedItemsKey = @"com.masakih.BSLinkConductor.BSLCSavedItemsKey";
18+
19+@interface BSLinkConductor (BSLCPrivate)
20+- (BOOL)openLink:(NSURL *)anURL withItem:(BSLinkConductorItem *)item;
21+
22+- (id)preferenceForKey:(NSString *)key;
23+- (void)setPreference:(id)value forKey:(NSString *)key;
24+
25+- (NSMutableArray *)savedItems;
26+- (void)storeItemsArray;
27+
28+- (void)beginDownloadURL:(NSURL *)anURL;
29+@end
30+
31+@implementation BSLinkConductor
32+- (id)initWithPreferences:(AppDefaults *)prefs
33+{
34+ if(self = [super init]) {
35+
36+ [self setPreferences:prefs];
37+ items = [[self savedItems] retain];
38+
39+ tempFolder = [[HMTemporaryFolder alloc] init];
40+ tempFileDict = [[NSMutableDictionary alloc] init];
41+ urlItemDict = [[NSMutableDictionary alloc] init];
42+
43+ [[NSNotificationCenter defaultCenter] addObserver:self
44+ selector:@selector(applicationWillTerminate:)
45+ name:NSApplicationWillTerminateNotification
46+ object:NSApp];
47+ [[NSNotificationCenter defaultCenter] addObserver:self
48+ selector:@selector(itemDidchanged:)
49+ name:BSLCItemsDidChangeNotification
50+ object:nil];
51+// [items addObserver:self forKeyPath:@"name" options:0 context:NULL];
52+ }
53+
54+ return self;
55+}
56+
57+- (AppDefaults *)preferences
58+{
59+ return appDefaults;
60+}
61+- (void)setPreferences:(AppDefaults *)aPreferences
62+{
63+ if(appDefaults == aPreferences) return;
64+
65+ [appDefaults autorelease];
66+ appDefaults = [aPreferences retain];
67+}
68+- (BOOL)showImageWithURL:(NSURL *)imageURL
69+{
70+ NSString *urlString = [imageURL absoluteString];
71+ OGRegularExpression *exp;
72+
73+ NSEnumerator *itemEnum = [items objectEnumerator];
74+ BSLinkConductorItem *item;
75+ while(item = [itemEnum nextObject]) {
76+ exp = [OGRegularExpression regularExpressionWithString:[item regularExpression]];
77+ if([exp matchInString:urlString]) {
78+ if([item isUseLocalCopy]) {
79+ [urlItemDict setObject:item forKey:imageURL];
80+ [self beginDownloadURL:imageURL];
81+ return YES;
82+ }
83+ return [self openLink:imageURL withItem:item];
84+ }
85+ }
86+ return NO;
87+}
88+
89+- (BOOL)validateLink:(NSURL *)anURL
90+{
91+ NSString *urlString = [anURL absoluteString];
92+ OGRegularExpression *exp;
93+
94+ NSEnumerator *itemEnum = [items objectEnumerator];
95+ BSLinkConductorItem *item;
96+ while(item = [itemEnum nextObject]) {
97+ exp = [OGRegularExpression regularExpressionWithString:[item regularExpression]];
98+ UTILDebugWrite1(@"RE --> %@", [item regularExpression]);
99+
100+ if([exp matchInString:urlString]) {
101+
102+ UTILDebugWrite(@"Matched!!");
103+
104+ return YES;
105+ }
106+ }
107+
108+ UTILDebugWrite(@"Unmatched!!!");
109+
110+ return NO;
111+}
112+
113+//- (IBAction)togglePreviewPanel:(id)sender
114+//{
115+// BSLCPreferences *pref = [BSLCPreferences sharedInstance];
116+// [pref setItems:items];
117+// [pref showHideWindow:sender];
118+//}
119+
120+// - (BOOL)showImagesWithURLs:(NSArray *)urls;
121+- (IBAction)showPreviewerPreferences:(id)sender
122+{
123+ BSLCPreferences *pref = [BSLCPreferences sharedInstance];
124+ [pref setItems:items];
125+ [pref showWindow:sender];
126+}
127+
128+- (void)applicationWillTerminate:(NSNotification *)notification
129+{
130+ [self storeItemsArray];
131+ [tempFolder release];
132+}
133+- (void)itemDidchanged:(NSNotification *)notification
134+{
135+ [self storeItemsArray];
136+}
137+
138+- (BOOL)openLink:(NSURL *)anURL withItem:(BSLinkConductorItem *)item;
139+{
140+ NSWorkspaceLaunchOptions options = 0;
141+
142+ if(!item) {
143+ UTILDebugWrite1(@"%@, item is nil!!!", NSStringFromSelector(_cmd));
144+ return NO;
145+ }
146+
147+ if([item isOpenInBackground]) {
148+ options |= NSWorkspaceLaunchWithoutActivation;
149+ }
150+
151+ NSWorkspace *ws = [NSWorkspace sharedWorkspace];
152+ BOOL result = [ws openURLs:[NSArray arrayWithObject:anURL]
153+ withAppBundleIdentifier:[item targetIdentifier]
154+ options:options
155+additionalEventParamDescriptor:nil
156+ launchIdentifiers:NULL];
157+
158+ return result;
159+}
160+
161+
162+- (id)preferenceForKey:(NSString *)key
163+{
164+ return [[[self preferences] imagePreviewerPrefsDict] objectForKey:key];
165+}
166+- (void)setPreference:(id)value forKey:(NSString *)key
167+{
168+ [[[self preferences] imagePreviewerPrefsDict] setObject:value forKey:key];
169+}
170+
171+- (NSMutableArray *)savedItems
172+{
173+ NSData *itemsData = [self preferenceForKey:BSLCSavedItemsKey];
174+ if(!itemsData) {
175+ UTILDebugWrite(@"itemsData is nil!!!");
176+ return [NSMutableArray array];
177+ }
178+
179+ NSArray *itemsArray = [NSKeyedUnarchiver unarchiveObjectWithData:itemsData];
180+ if(![itemsArray isKindOfClass:[NSArray class]]) {
181+ UTILDebugWrite(@"itemsArray is not NSArray!!!");
182+ return [NSMutableArray array];
183+ }
184+
185+ return [NSMutableArray arrayWithArray:itemsArray];
186+}
187+- (void)storeItemsArray
188+{
189+ NSData *itemsData = [NSKeyedArchiver archivedDataWithRootObject:items];
190+ if(!itemsData) {
191+ UTILDebugWrite(@"Can not archive!!!");
192+ return;
193+ }
194+
195+ [self setPreference:itemsData forKey:BSLCSavedItemsKey];
196+
197+ UTILDebugWrite(@"Stored!!!");
198+}
199+
200+- (NSString *)fileNameForURL:(NSURL *)anURL
201+{
202+ NSString *filename = [anURL absoluteString];
203+ NSArray *array = [filename componentsSeparatedByString:@"."];
204+ filename = [array componentsJoinedByString:@"-"];
205+
206+ filename = [[tempFolder path] stringByAppendingPathComponent:filename];
207+
208+ return filename;
209+}
210+
211+- (void)beginDownloadURL:(NSURL *)anURL
212+{
213+ NSURLRequest *req;
214+
215+ req = [NSURLRequest requestWithURL:anURL
216+ cachePolicy:NSURLRequestUseProtocolCachePolicy
217+ timeoutInterval:10];
218+
219+ NSURLDownload *dl = [[NSURLDownload alloc] initWithRequest:req delegate:self];
220+ [dl autorelease];
221+}
222+- (void)download:(NSURLDownload *)download decideDestinationWithSuggestedFilename:(NSString *)filename
223+{
224+ NSString *path = [[tempFolder path] stringByAppendingPathComponent:filename];
225+
226+ [download setDestination:path allowOverwrite:NO];
227+}
228+- (void)download:(NSURLDownload *)download didCreateDestination:(NSString *)path
229+{
230+ NSURLRequest *req = [download request];
231+ NSURL *targetURL = [req URL];
232+
233+ [tempFileDict setObject:path forKey:targetURL];
234+}
235+- (void)downloadDidFinish:(NSURLDownload *)download
236+{
237+ NSURLRequest *req = [download request];
238+ NSURL *targetURL = [req URL];
239+
240+ NSString *filepath = [[[tempFileDict objectForKey:targetURL] retain] autorelease];
241+ [tempFileDict removeObjectForKey:targetURL];
242+
243+ id item = [[[urlItemDict objectForKey:targetURL] retain] autorelease];
244+ [urlItemDict removeObjectForKey:targetURL];
245+
246+ NSURL *tagetFileURL = [NSURL fileURLWithPath:filepath];
247+
248+ [self openLink:tagetFileURL withItem:item];
249+}
250+- (void)download:(NSURLDownload *)download didFailWithError:(NSError *)error
251+{
252+ NSURLRequest *req = [download request];
253+ NSURL *targetURL = [req URL];
254+
255+ [tempFileDict removeObjectForKey:targetURL];
256+ [urlItemDict removeObjectForKey:targetURL];
257+
258+ NSBeep();
259+}
260+@end
Binary files /dev/null and b/BSLinkConductor.xcodeproj/TemplateIcon.icns differ
--- /dev/null
+++ b/BSLinkConductor.xcodeproj/project.pbxproj
@@ -0,0 +1,330 @@
1+// !$*UTF8*$!
2+{
3+ archiveVersion = 1;
4+ classes = {
5+ };
6+ objectVersion = 45;
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+ F4A2F3FE0F43170F00A84E18 /* BSLinkConductor.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A2F3FD0F43170F00A84E18 /* BSLinkConductor.m */; };
13+ F4A2F4020F4317A800A84E18 /* BSLinkConductorItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A2F4010F4317A800A84E18 /* BSLinkConductorItem.m */; };
14+ F4A2F5850F444CCD00A84E18 /* OgreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4A2F5340F4449BC00A84E18 /* OgreKit.framework */; };
15+ F4A2F5880F444E3000A84E18 /* BSLinkConductor.xib in Resources */ = {isa = PBXBuildFile; fileRef = F4A2F5860F444E3000A84E18 /* BSLinkConductor.xib */; };
16+ F4A2F58D0F458DA900A84E18 /* BSLCPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A2F58C0F458DA900A84E18 /* BSLCPreferences.m */; };
17+ F4A2F97D0F4650DC00A84E18 /* HMTemporaryFolder.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A2F97C0F4650DC00A84E18 /* HMTemporaryFolder.m */; };
18+/* End PBXBuildFile section */
19+
20+/* Begin PBXFileReference section */
21+ 089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
22+ 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
23+ 089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
24+ 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
25+ 32DBCF630370AF2F00C91783 /* BSLinkConductor_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSLinkConductor_Prefix.pch; sourceTree = "<group>"; };
26+ 8D5B49B6048680CD000E48DA /* BSLinkConductor.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BSLinkConductor.plugin; sourceTree = BUILT_PRODUCTS_DIR; };
27+ 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
28+ D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
29+ F4A2F3FC0F43170F00A84E18 /* BSLinkConductor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSLinkConductor.h; sourceTree = "<group>"; };
30+ F4A2F3FD0F43170F00A84E18 /* BSLinkConductor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BSLinkConductor.m; sourceTree = "<group>"; };
31+ F4A2F3FF0F43175300A84E18 /* BSImagePreviewerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSImagePreviewerInterface.h; sourceTree = "<group>"; };
32+ F4A2F4000F4317A800A84E18 /* BSLinkConductorItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSLinkConductorItem.h; sourceTree = "<group>"; };
33+ F4A2F4010F4317A800A84E18 /* BSLinkConductorItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BSLinkConductorItem.m; sourceTree = "<group>"; };
34+ F4A2F5340F4449BC00A84E18 /* OgreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OgreKit.framework; path = /Users/masaki/Library/Frameworks/OgreKit.framework; sourceTree = "<absolute>"; };
35+ F4A2F5870F444E3000A84E18 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/BSLinkConductor.xib; sourceTree = "<group>"; };
36+ F4A2F58B0F458DA900A84E18 /* BSLCPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSLCPreferences.h; sourceTree = "<group>"; };
37+ F4A2F58C0F458DA900A84E18 /* BSLCPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BSLCPreferences.m; sourceTree = "<group>"; };
38+ F4A2F97B0F4650DC00A84E18 /* HMTemporaryFolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMTemporaryFolder.h; sourceTree = "<group>"; };
39+ F4A2F97C0F4650DC00A84E18 /* HMTemporaryFolder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMTemporaryFolder.m; sourceTree = "<group>"; };
40+ F4A2FA0D0F4663FF00A84E18 /* UTILKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTILKit.h; path = ../bathyscaphe/misc/utilkit/UTILKit.h; sourceTree = SOURCE_ROOT; };
41+ F4A2FA0E0F4663FF00A84E18 /* UTILError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTILError.h; path = ../bathyscaphe/misc/utilkit/UTILError.h; sourceTree = SOURCE_ROOT; };
42+ F4A2FA0F0F4663FF00A84E18 /* UTILDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTILDescription.h; path = ../bathyscaphe/misc/utilkit/UTILDescription.h; sourceTree = SOURCE_ROOT; };
43+ F4A2FA100F4663FF00A84E18 /* UTILDebugging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTILDebugging.h; path = ../bathyscaphe/misc/utilkit/UTILDebugging.h; sourceTree = SOURCE_ROOT; };
44+ F4A2FA110F4663FF00A84E18 /* UTILAssertion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTILAssertion.h; path = ../bathyscaphe/misc/utilkit/UTILAssertion.h; sourceTree = SOURCE_ROOT; };
45+/* End PBXFileReference section */
46+
47+/* Begin PBXFrameworksBuildPhase section */
48+ 8D5B49B3048680CD000E48DA /* Frameworks */ = {
49+ isa = PBXFrameworksBuildPhase;
50+ buildActionMask = 2147483647;
51+ files = (
52+ 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
53+ F4A2F5850F444CCD00A84E18 /* OgreKit.framework in Frameworks */,
54+ );
55+ runOnlyForDeploymentPostprocessing = 0;
56+ };
57+/* End PBXFrameworksBuildPhase section */
58+
59+/* Begin PBXGroup section */
60+ 089C166AFE841209C02AAC07 /* BSConductor */ = {
61+ isa = PBXGroup;
62+ children = (
63+ 08FB77AFFE84173DC02AAC07 /* Classes */,
64+ 32C88E010371C26100C91783 /* Other Sources */,
65+ 089C167CFE841241C02AAC07 /* Resources */,
66+ 089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
67+ 19C28FB8FE9D52D311CA2CBB /* Products */,
68+ );
69+ name = BSConductor;
70+ sourceTree = "<group>";
71+ };
72+ 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
73+ isa = PBXGroup;
74+ children = (
75+ 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */,
76+ 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */,
77+ );
78+ name = "Frameworks and Libraries";
79+ sourceTree = "<group>";
80+ };
81+ 089C167CFE841241C02AAC07 /* Resources */ = {
82+ isa = PBXGroup;
83+ children = (
84+ F4A2F5860F444E3000A84E18 /* BSLinkConductor.xib */,
85+ 8D5B49B7048680CD000E48DA /* Info.plist */,
86+ 089C167DFE841241C02AAC07 /* InfoPlist.strings */,
87+ );
88+ name = Resources;
89+ sourceTree = "<group>";
90+ };
91+ 08FB77AFFE84173DC02AAC07 /* Classes */ = {
92+ isa = PBXGroup;
93+ children = (
94+ F4A2F97B0F4650DC00A84E18 /* HMTemporaryFolder.h */,
95+ F4A2F97C0F4650DC00A84E18 /* HMTemporaryFolder.m */,
96+ F4A2F58B0F458DA900A84E18 /* BSLCPreferences.h */,
97+ F4A2F58C0F458DA900A84E18 /* BSLCPreferences.m */,
98+ F4A2F3FF0F43175300A84E18 /* BSImagePreviewerInterface.h */,
99+ F4A2F4000F4317A800A84E18 /* BSLinkConductorItem.h */,
100+ F4A2F4010F4317A800A84E18 /* BSLinkConductorItem.m */,
101+ F4A2F3FC0F43170F00A84E18 /* BSLinkConductor.h */,
102+ F4A2F3FD0F43170F00A84E18 /* BSLinkConductor.m */,
103+ );
104+ name = Classes;
105+ sourceTree = "<group>";
106+ };
107+ 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
108+ isa = PBXGroup;
109+ children = (
110+ 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
111+ );
112+ name = "Linked Frameworks";
113+ sourceTree = "<group>";
114+ };
115+ 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
116+ isa = PBXGroup;
117+ children = (
118+ F4A2F5340F4449BC00A84E18 /* OgreKit.framework */,
119+ 089C167FFE841241C02AAC07 /* AppKit.framework */,
120+ D2F7E65807B2D6F200F64583 /* CoreData.framework */,
121+ 089C1672FE841209C02AAC07 /* Foundation.framework */,
122+ );
123+ name = "Other Frameworks";
124+ sourceTree = "<group>";
125+ };
126+ 19C28FB8FE9D52D311CA2CBB /* Products */ = {
127+ isa = PBXGroup;
128+ children = (
129+ 8D5B49B6048680CD000E48DA /* BSLinkConductor.plugin */,
130+ );
131+ name = Products;
132+ sourceTree = "<group>";
133+ };
134+ 32C88E010371C26100C91783 /* Other Sources */ = {
135+ isa = PBXGroup;
136+ children = (
137+ F4A2FA0D0F4663FF00A84E18 /* UTILKit.h */,
138+ F4A2FA0E0F4663FF00A84E18 /* UTILError.h */,
139+ F4A2FA0F0F4663FF00A84E18 /* UTILDescription.h */,
140+ F4A2FA100F4663FF00A84E18 /* UTILDebugging.h */,
141+ F4A2FA110F4663FF00A84E18 /* UTILAssertion.h */,
142+ 32DBCF630370AF2F00C91783 /* BSLinkConductor_Prefix.pch */,
143+ );
144+ name = "Other Sources";
145+ sourceTree = "<group>";
146+ };
147+/* End PBXGroup section */
148+
149+/* Begin PBXNativeTarget section */
150+ 8D5B49AC048680CD000E48DA /* BSLinkConductor */ = {
151+ isa = PBXNativeTarget;
152+ buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "BSLinkConductor" */;
153+ buildPhases = (
154+ 8D5B49AF048680CD000E48DA /* Resources */,
155+ 8D5B49B1048680CD000E48DA /* Sources */,
156+ 8D5B49B3048680CD000E48DA /* Frameworks */,
157+ );
158+ buildRules = (
159+ );
160+ dependencies = (
161+ );
162+ name = BSLinkConductor;
163+ productInstallPath = "$(HOME)/Library/Bundles";
164+ productName = BSConductor;
165+ productReference = 8D5B49B6048680CD000E48DA /* BSLinkConductor.plugin */;
166+ productType = "com.apple.product-type.bundle";
167+ };
168+/* End PBXNativeTarget section */
169+
170+/* Begin PBXProject section */
171+ 089C1669FE841209C02AAC07 /* Project object */ = {
172+ isa = PBXProject;
173+ buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "BSLinkConductor" */;
174+ compatibilityVersion = "Xcode 3.1";
175+ hasScannedForEncodings = 1;
176+ mainGroup = 089C166AFE841209C02AAC07 /* BSConductor */;
177+ projectDirPath = "";
178+ projectRoot = "";
179+ targets = (
180+ 8D5B49AC048680CD000E48DA /* BSLinkConductor */,
181+ );
182+ };
183+/* End PBXProject section */
184+
185+/* Begin PBXResourcesBuildPhase section */
186+ 8D5B49AF048680CD000E48DA /* Resources */ = {
187+ isa = PBXResourcesBuildPhase;
188+ buildActionMask = 2147483647;
189+ files = (
190+ 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */,
191+ F4A2F5880F444E3000A84E18 /* BSLinkConductor.xib in Resources */,
192+ );
193+ runOnlyForDeploymentPostprocessing = 0;
194+ };
195+/* End PBXResourcesBuildPhase section */
196+
197+/* Begin PBXSourcesBuildPhase section */
198+ 8D5B49B1048680CD000E48DA /* Sources */ = {
199+ isa = PBXSourcesBuildPhase;
200+ buildActionMask = 2147483647;
201+ files = (
202+ F4A2F3FE0F43170F00A84E18 /* BSLinkConductor.m in Sources */,
203+ F4A2F4020F4317A800A84E18 /* BSLinkConductorItem.m in Sources */,
204+ F4A2F58D0F458DA900A84E18 /* BSLCPreferences.m in Sources */,
205+ F4A2F97D0F4650DC00A84E18 /* HMTemporaryFolder.m in Sources */,
206+ );
207+ runOnlyForDeploymentPostprocessing = 0;
208+ };
209+/* End PBXSourcesBuildPhase section */
210+
211+/* Begin PBXVariantGroup section */
212+ 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
213+ isa = PBXVariantGroup;
214+ children = (
215+ 089C167EFE841241C02AAC07 /* English */,
216+ );
217+ name = InfoPlist.strings;
218+ sourceTree = "<group>";
219+ };
220+ F4A2F5860F444E3000A84E18 /* BSLinkConductor.xib */ = {
221+ isa = PBXVariantGroup;
222+ children = (
223+ F4A2F5870F444E3000A84E18 /* English */,
224+ );
225+ name = BSLinkConductor.xib;
226+ sourceTree = "<group>";
227+ };
228+/* End PBXVariantGroup section */
229+
230+/* Begin XCBuildConfiguration section */
231+ 1DEB913B08733D840010E9CD /* Debug */ = {
232+ isa = XCBuildConfiguration;
233+ buildSettings = {
234+ ALWAYS_SEARCH_USER_PATHS = NO;
235+ BUNDLE_LOADER = "$(HOME)/Applications/BathyScaphe.app/Contents/MacOS/BathyScaphe";
236+ COPY_PHASE_STRIP = NO;
237+ DEPLOYMENT_LOCATION = YES;
238+ DSTROOT = /;
239+ FRAMEWORK_SEARCH_PATHS = (
240+ "$(inherited)",
241+ /Users/masaki/Library/Frameworks,
242+ );
243+ GCC_DYNAMIC_NO_PIC = NO;
244+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
245+ GCC_MODEL_TUNING = G4;
246+ GCC_OPTIMIZATION_LEVEL = 0;
247+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
248+ GCC_PREFIX_HEADER = BSLinkConductor_Prefix.pch;
249+ INFOPLIST_FILE = Info.plist;
250+ INSTALL_PATH = "$(HOME)/Library/Application Support/BathyScaphe/PlugIns";
251+ OTHER_CFLAGS = "";
252+ PRODUCT_NAME = BSLinkConductor;
253+ WRAPPER_EXTENSION = plugin;
254+ };
255+ name = Debug;
256+ };
257+ 1DEB913C08733D840010E9CD /* Release */ = {
258+ isa = XCBuildConfiguration;
259+ buildSettings = {
260+ ALWAYS_SEARCH_USER_PATHS = NO;
261+ BUNDLE_LOADER = "$(HOME)/Applications/BathyScaphe.app/Contents/MacOS/BathyScaphe";
262+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
263+ DEPLOYMENT_LOCATION = YES;
264+ DSTROOT = /;
265+ FRAMEWORK_SEARCH_PATHS = (
266+ "$(inherited)",
267+ /Users/masaki/Library/Frameworks,
268+ );
269+ GCC_MODEL_TUNING = G4;
270+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
271+ GCC_PREFIX_HEADER = BSLinkConductor_Prefix.pch;
272+ INFOPLIST_FILE = Info.plist;
273+ INSTALL_PATH = "$(HOME)/Library/Application Support/BathyScaphe/PlugIns";
274+ OTHER_CFLAGS = "-DUTIL_BLOCK_DEBUG_WRITE";
275+ PRODUCT_NAME = BSLinkConductor;
276+ WRAPPER_EXTENSION = plugin;
277+ };
278+ name = Release;
279+ };
280+ 1DEB913F08733D840010E9CD /* Debug */ = {
281+ isa = XCBuildConfiguration;
282+ buildSettings = {
283+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
284+ GCC_C_LANGUAGE_STANDARD = c99;
285+ GCC_OPTIMIZATION_LEVEL = 0;
286+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
287+ GCC_WARN_UNUSED_VARIABLE = YES;
288+ ONLY_ACTIVE_ARCH = YES;
289+ PREBINDING = NO;
290+ SDKROOT = macosx10.4;
291+ };
292+ name = Debug;
293+ };
294+ 1DEB914008733D840010E9CD /* Release */ = {
295+ isa = XCBuildConfiguration;
296+ buildSettings = {
297+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
298+ GCC_C_LANGUAGE_STANDARD = c99;
299+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
300+ GCC_WARN_UNUSED_VARIABLE = YES;
301+ PREBINDING = NO;
302+ SDKROOT = macosx10.4;
303+ };
304+ name = Release;
305+ };
306+/* End XCBuildConfiguration section */
307+
308+/* Begin XCConfigurationList section */
309+ 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "BSLinkConductor" */ = {
310+ isa = XCConfigurationList;
311+ buildConfigurations = (
312+ 1DEB913B08733D840010E9CD /* Debug */,
313+ 1DEB913C08733D840010E9CD /* Release */,
314+ );
315+ defaultConfigurationIsVisible = 0;
316+ defaultConfigurationName = Release;
317+ };
318+ 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "BSLinkConductor" */ = {
319+ isa = XCConfigurationList;
320+ buildConfigurations = (
321+ 1DEB913F08733D840010E9CD /* Debug */,
322+ 1DEB914008733D840010E9CD /* Release */,
323+ );
324+ defaultConfigurationIsVisible = 0;
325+ defaultConfigurationName = Release;
326+ };
327+/* End XCConfigurationList section */
328+ };
329+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
330+}
--- /dev/null
+++ b/BSLinkConductorItem.h
@@ -0,0 +1,40 @@
1+//
2+// BSLinkConductorItem.h
3+// BSLinkConductor
4+//
5+// Created by Hori,Masaki on 09/02/11.
6+// Copyright 2009 masakih. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+
12+@interface BSLinkConductorItem : NSObject <NSCoding, NSCopying>
13+{
14+ NSString *name;
15+ NSString *regularExpression;
16+ NSString *targetApplicationName;
17+
18+ BOOL openInBackground;
19+ BOOL useLocalCopy;
20+
21+ NSString *targetIdentifier;
22+}
23+
24+- (NSString *)name;
25+- (void)setName:(NSString *)inName;
26+- (NSString *)regularExpression;
27+- (void)setRegularExpression:(NSString *)inRegularExpression;
28+- (NSString *)targetApplicationName;
29+- (void)setTargetApplicationName:(NSString *)inAppName;
30+
31+- (NSString *)targetIdentifier;
32+
33+- (BOOL)isOpenInBackground;
34+- (void)setOpenInBackground:(BOOL)flag;
35+- (BOOL)isUseLocalCopy;
36+- (void)setUseLocalCopy:(BOOL)flag;
37+
38+extern NSString *BSLCItemPastboardType;
39+
40+@end
--- /dev/null
+++ b/BSLinkConductorItem.m
@@ -0,0 +1,153 @@
1+//
2+// BSLinkConductorItem.m
3+// BSLinkConductor
4+//
5+// Created by Hori,Masaki on 09/02/11.
6+// Copyright 2009 masakih. All rights reserved.
7+//
8+
9+#import "BSLinkConductorItem.h"
10+
11+NSString *BSLCItemPastboardType = @"BSLCItemPastboardType";
12+
13+@interface BSLinkConductorItem (BSLCPrivate)
14+- (NSString *)defaultName;
15+@end
16+
17+static NSString *const BSLCItemNameKey = @"BSLCItemNameKey";
18+static NSString *const BSLCItemREKey = @"BSLCItemREKey";
19+static NSString *const BSLCItemAppNameKey = @"BSLCItemAppNameKey";
20+static NSString *const BSLCItemOpenBGKey = @"BSLCItemOpenBGKey";
21+static NSString *const BSLCItemUserCopyKey = @"BSLCItemUserCopyKey";
22+
23+@implementation BSLinkConductorItem
24+
25+- (id)init
26+{
27+ if(self = [super init]) {
28+ [self setName:[self defaultName]];
29+ [self setRegularExpression:@"http://.*"];
30+ [self setTargetApplicationName:@""];
31+ [self setOpenInBackground:NO];
32+ [self setUseLocalCopy:NO];
33+ }
34+
35+ return self;
36+}
37+
38+- (NSString *)name
39+{
40+ return name;
41+}
42+- (void)setName:(NSString *)inName
43+{
44+ if([name isEqualToString:inName]) return;
45+
46+ [name autorelease];
47+ name = [inName copyWithZone:[self zone]];
48+}
49+- (NSString *)regularExpression
50+{
51+ return regularExpression;
52+}
53+- (void)setRegularExpression:(NSString *)inRegularExpression
54+{
55+ if([regularExpression isEqualToString:inRegularExpression]) return;
56+
57+ [regularExpression autorelease];
58+ regularExpression = [inRegularExpression copyWithZone:[self zone]];
59+}
60+- (NSString *)targetApplicationName
61+{
62+ return targetApplicationName;
63+}
64+- (void)setTargetApplicationName:(NSString *)inAppName
65+{
66+ if([targetApplicationName isEqualToString:inAppName]) return;
67+
68+ [targetApplicationName autorelease];
69+ targetApplicationName = [inAppName copyWithZone:[self zone]];
70+
71+ NSWorkspace *ws = [NSWorkspace sharedWorkspace];
72+ NSString *fullPath = [ws fullPathForApplication:targetApplicationName];
73+ if(!fullPath) {
74+ targetIdentifier = nil;
75+ return;
76+ }
77+ NSBundle *bundle = [NSBundle bundleWithPath:fullPath];
78+ if(!bundle) {
79+ targetIdentifier = nil;
80+ return;
81+ }
82+
83+ targetIdentifier = [[bundle bundleIdentifier] copyWithZone:[self zone]];
84+}
85+
86+- (NSString *)targetIdentifier
87+{
88+ return targetIdentifier;
89+}
90+
91+- (BOOL)isOpenInBackground
92+{
93+ return openInBackground;
94+}
95+- (void)setOpenInBackground:(BOOL)flag
96+{
97+ openInBackground = flag;
98+}
99+- (BOOL)isUseLocalCopy
100+{
101+ return useLocalCopy;
102+}
103+- (void)setUseLocalCopy:(BOOL)flag
104+{
105+ useLocalCopy = flag;
106+}
107+
108+- (id)copyWithZone:(NSZone *)zone
109+{
110+ BSLinkConductorItem *result = [[[self class] allocWithZone:zone] init];
111+ [result setName:name];
112+ [result setRegularExpression:regularExpression];
113+ [result setTargetApplicationName:targetApplicationName];
114+ [result setOpenInBackground:openInBackground];
115+ [result setUseLocalCopy:useLocalCopy];
116+
117+ return result;
118+}
119+
120+- (void)encodeWithCoder:(NSCoder *)aCoder
121+{
122+ [aCoder encodeObject:name forKey:BSLCItemNameKey];
123+ [aCoder encodeObject:regularExpression forKey:BSLCItemREKey];
124+ [aCoder encodeObject:targetApplicationName forKey:BSLCItemAppNameKey];
125+ [aCoder encodeBool:openInBackground forKey:BSLCItemOpenBGKey];
126+ [aCoder encodeBool:useLocalCopy forKey:BSLCItemUserCopyKey];
127+}
128+- (id)initWithCoder:(NSCoder *)aDecoder
129+{
130+ self = [self init];
131+ [self setName:[aDecoder decodeObjectForKey:BSLCItemNameKey]];
132+ [self setRegularExpression:[aDecoder decodeObjectForKey:BSLCItemREKey]];
133+ [self setTargetApplicationName:[aDecoder decodeObjectForKey:BSLCItemAppNameKey]];
134+ [self setOpenInBackground:[aDecoder decodeBoolForKey:BSLCItemOpenBGKey]];
135+ [self setUseLocalCopy:[aDecoder decodeBoolForKey:BSLCItemUserCopyKey]];
136+
137+ return self;
138+}
139+
140+- (id)description
141+{
142+ return [NSString stringWithFormat:@"%@<%p> {name = %@, regularExpression = %@, targetApplicationName = %@",
143+ NSStringFromClass([self class]), self, name, regularExpression, targetApplicationName];
144+}
145+
146+@end
147+
148+@implementation BSLinkConductorItem (BSLCPrivate)
149+- (NSString *)defaultName
150+{
151+ return @"Untitled";
152+}
153+@end
--- /dev/null
+++ b/BSLinkConductor_Prefix.pch
@@ -0,0 +1,9 @@
1+//
2+// Prefix header for all source files of the 'BSConductor' target in the 'BSConductor' project.
3+//
4+
5+#ifdef __OBJC__
6+ #import <Cocoa/Cocoa.h>
7+#endif
8+
9+#include "UTILKit.h"
\ No newline at end of file
--- /dev/null
+++ b/English.lproj/BSLinkConductor.xib
@@ -0,0 +1,964 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
3+ <data>
4+ <int key="IBDocument.SystemTarget">1050</int>
5+ <string key="IBDocument.SystemVersion">9G55</string>
6+ <string key="IBDocument.InterfaceBuilderVersion">672</string>
7+ <string key="IBDocument.AppKitVersion">949.43</string>
8+ <string key="IBDocument.HIToolboxVersion">353.00</string>
9+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
10+ <bool key="EncodedWithXMLCoder">YES</bool>
11+ <integer value="4"/>
12+ </object>
13+ <object class="NSArray" key="IBDocument.PluginDependencies">
14+ <bool key="EncodedWithXMLCoder">YES</bool>
15+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
16+ </object>
17+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
18+ <bool key="EncodedWithXMLCoder">YES</bool>
19+ <object class="NSCustomObject" id="1001">
20+ <string key="NSClassName">BSLCPreferences</string>
21+ </object>
22+ <object class="NSCustomObject" id="1003">
23+ <string key="NSClassName">FirstResponder</string>
24+ </object>
25+ <object class="NSCustomObject" id="1004">
26+ <string key="NSClassName">NSApplication</string>
27+ </object>
28+ <object class="NSWindowTemplate" id="603181971">
29+ <int key="NSWindowStyleMask">31</int>
30+ <int key="NSWindowBacking">2</int>
31+ <string key="NSWindowRect">{{431, 308}, {455, 247}}</string>
32+ <int key="NSWTFlags">-469762048</int>
33+ <string key="NSWindowTitle">BSLinkConductor</string>
34+ <string key="NSWindowClass">NSPanel</string>
35+ <nil key="NSViewClass"/>
36+ <object class="NSView" key="NSWindowView" id="1033488523">
37+ <reference key="NSNextResponder"/>
38+ <int key="NSvFlags">256</int>
39+ <object class="NSMutableArray" key="NSSubviews">
40+ <bool key="EncodedWithXMLCoder">YES</bool>
41+ <object class="NSScrollView" id="875485297">
42+ <reference key="NSNextResponder" ref="1033488523"/>
43+ <int key="NSvFlags">4370</int>
44+ <object class="NSMutableArray" key="NSSubviews">
45+ <bool key="EncodedWithXMLCoder">YES</bool>
46+ <object class="NSClipView" id="521716472">
47+ <reference key="NSNextResponder" ref="875485297"/>
48+ <int key="NSvFlags">2304</int>
49+ <object class="NSMutableArray" key="NSSubviews">
50+ <bool key="EncodedWithXMLCoder">YES</bool>
51+ <object class="NSTableView" id="308580520">
52+ <reference key="NSNextResponder" ref="521716472"/>
53+ <int key="NSvFlags">256</int>
54+ <string key="NSFrameSize">{424, 175}</string>
55+ <reference key="NSSuperview" ref="521716472"/>
56+ <bool key="NSEnabled">YES</bool>
57+ <object class="NSTableHeaderView" key="NSHeaderView" id="510862983">
58+ <reference key="NSNextResponder" ref="750437828"/>
59+ <int key="NSvFlags">256</int>
60+ <string key="NSFrameSize">{424, 17}</string>
61+ <reference key="NSSuperview" ref="750437828"/>
62+ <reference key="NSTableView" ref="308580520"/>
63+ </object>
64+ <object class="_NSCornerView" key="NSCornerView" id="883121389">
65+ <reference key="NSNextResponder" ref="875485297"/>
66+ <int key="NSvFlags">256</int>
67+ <string key="NSFrame">{{425, 0}, {12, 17}}</string>
68+ <reference key="NSSuperview" ref="875485297"/>
69+ </object>
70+ <object class="NSMutableArray" key="NSTableColumns">
71+ <bool key="EncodedWithXMLCoder">YES</bool>
72+ <object class="NSTableColumn" id="887882295">
73+ <string key="NSIdentifier">Name</string>
74+ <double key="NSWidth">6.800000e+01</double>
75+ <double key="NSMinWidth">4.000000e+01</double>
76+ <double key="NSMaxWidth">1.000000e+03</double>
77+ <object class="NSTableHeaderCell" key="NSHeaderCell">
78+ <int key="NSCellFlags">75628032</int>
79+ <int key="NSCellFlags2">0</int>
80+ <string key="NSContents">Name</string>
81+ <object class="NSFont" key="NSSupport" id="26">
82+ <string key="NSName">LucidaGrande</string>
83+ <double key="NSSize">1.100000e+01</double>
84+ <int key="NSfFlags">3100</int>
85+ </object>
86+ <object class="NSColor" key="NSBackgroundColor" id="601406669">
87+ <int key="NSColorSpace">3</int>
88+ <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
89+ </object>
90+ <object class="NSColor" key="NSTextColor" id="1041861352">
91+ <int key="NSColorSpace">6</int>
92+ <string key="NSCatalogName">System</string>
93+ <string key="NSColorName">headerTextColor</string>
94+ <object class="NSColor" key="NSColor" id="79423318">
95+ <int key="NSColorSpace">3</int>
96+ <bytes key="NSWhite">MAA</bytes>
97+ </object>
98+ </object>
99+ </object>
100+ <object class="NSTextFieldCell" key="NSDataCell" id="245253640">
101+ <int key="NSCellFlags">337772096</int>
102+ <int key="NSCellFlags2">133120</int>
103+ <string key="NSContents">Text Cell</string>
104+ <reference key="NSSupport" ref="26"/>
105+ <reference key="NSControlView" ref="308580520"/>
106+ <object class="NSColor" key="NSBackgroundColor" id="633812740">
107+ <int key="NSColorSpace">6</int>
108+ <string key="NSCatalogName">System</string>
109+ <string key="NSColorName">controlBackgroundColor</string>
110+ <object class="NSColor" key="NSColor">
111+ <int key="NSColorSpace">3</int>
112+ <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
113+ </object>
114+ </object>
115+ <object class="NSColor" key="NSTextColor" id="47626547">
116+ <int key="NSColorSpace">6</int>
117+ <string key="NSCatalogName">System</string>
118+ <string key="NSColorName">controlTextColor</string>
119+ <reference key="NSColor" ref="79423318"/>
120+ </object>
121+ </object>
122+ <int key="NSResizingMask">3</int>
123+ <bool key="NSIsResizeable">YES</bool>
124+ <bool key="NSIsEditable">YES</bool>
125+ <reference key="NSTableView" ref="308580520"/>
126+ </object>
127+ <object class="NSTableColumn" id="926303854">
128+ <string key="NSIdentifier">RegularExpression</string>
129+ <double key="NSWidth">1.530000e+02</double>
130+ <double key="NSMinWidth">4.000000e+01</double>
131+ <double key="NSMaxWidth">1.000000e+03</double>
132+ <object class="NSTableHeaderCell" key="NSHeaderCell">
133+ <int key="NSCellFlags">75628032</int>
134+ <int key="NSCellFlags2">0</int>
135+ <string key="NSContents">RegularExpression</string>
136+ <reference key="NSSupport" ref="26"/>
137+ <reference key="NSBackgroundColor" ref="601406669"/>
138+ <reference key="NSTextColor" ref="1041861352"/>
139+ </object>
140+ <object class="NSTextFieldCell" key="NSDataCell" id="1020348066">
141+ <int key="NSCellFlags">337772096</int>
142+ <int key="NSCellFlags2">133120</int>
143+ <string key="NSContents">Text Cell</string>
144+ <reference key="NSSupport" ref="26"/>
145+ <reference key="NSControlView" ref="308580520"/>
146+ <reference key="NSBackgroundColor" ref="633812740"/>
147+ <reference key="NSTextColor" ref="47626547"/>
148+ </object>
149+ <int key="NSResizingMask">3</int>
150+ <bool key="NSIsResizeable">YES</bool>
151+ <bool key="NSIsEditable">YES</bool>
152+ <reference key="NSTableView" ref="308580520"/>
153+ </object>
154+ <object class="NSTableColumn" id="613743811">
155+ <string key="NSIdentifier">Application</string>
156+ <double key="NSWidth">9.100000e+01</double>
157+ <double key="NSMinWidth">1.000000e+01</double>
158+ <double key="NSMaxWidth">3.402823e+38</double>
159+ <object class="NSTableHeaderCell" key="NSHeaderCell">
160+ <int key="NSCellFlags">75628032</int>
161+ <int key="NSCellFlags2">0</int>
162+ <string key="NSContents">Application</string>
163+ <reference key="NSSupport" ref="26"/>
164+ <object class="NSColor" key="NSBackgroundColor" id="531457817">
165+ <int key="NSColorSpace">6</int>
166+ <string key="NSCatalogName">System</string>
167+ <string key="NSColorName">headerColor</string>
168+ <object class="NSColor" key="NSColor" id="243688011">
169+ <int key="NSColorSpace">3</int>
170+ <bytes key="NSWhite">MQA</bytes>
171+ </object>
172+ </object>
173+ <reference key="NSTextColor" ref="1041861352"/>
174+ </object>
175+ <object class="NSTextFieldCell" key="NSDataCell" id="363562574">
176+ <int key="NSCellFlags">337772096</int>
177+ <int key="NSCellFlags2">133120</int>
178+ <string key="NSContents">Text Cell</string>
179+ <reference key="NSSupport" ref="26"/>
180+ <reference key="NSControlView" ref="308580520"/>
181+ <reference key="NSBackgroundColor" ref="633812740"/>
182+ <reference key="NSTextColor" ref="47626547"/>
183+ </object>
184+ <int key="NSResizingMask">3</int>
185+ <bool key="NSIsResizeable">YES</bool>
186+ <bool key="NSIsEditable">YES</bool>
187+ <reference key="NSTableView" ref="308580520"/>
188+ </object>
189+ <object class="NSTableColumn" id="994667907">
190+ <string key="NSIdentifier">In BG</string>
191+ <double key="NSWidth">3.900000e+01</double>
192+ <double key="NSMinWidth">1.000000e+01</double>
193+ <double key="NSMaxWidth">3.402823e+38</double>
194+ <object class="NSTableHeaderCell" key="NSHeaderCell">
195+ <int key="NSCellFlags">75628032</int>
196+ <int key="NSCellFlags2">0</int>
197+ <string key="NSContents">In BG</string>
198+ <reference key="NSSupport" ref="26"/>
199+ <reference key="NSBackgroundColor" ref="531457817"/>
200+ <reference key="NSTextColor" ref="1041861352"/>
201+ </object>
202+ <object class="NSButtonCell" key="NSDataCell" id="885278046">
203+ <int key="NSCellFlags">67239424</int>
204+ <int key="NSCellFlags2">131072</int>
205+ <string key="NSContents">Check</string>
206+ <reference key="NSSupport" ref="26"/>
207+ <reference key="NSControlView" ref="308580520"/>
208+ <int key="NSButtonFlags">1215582719</int>
209+ <int key="NSButtonFlags2">130</int>
210+ <object class="NSCustomResource" key="NSNormalImage" id="439190054">
211+ <string key="NSClassName">NSImage</string>
212+ <string key="NSResourceName">NSSwitch</string>
213+ </object>
214+ <object class="NSButtonImageSource" key="NSAlternateImage" id="608106293">
215+ <string key="NSImageName">NSSwitch</string>
216+ </object>
217+ <string key="NSAlternateContents"/>
218+ <string key="NSKeyEquivalent"/>
219+ <int key="NSPeriodicDelay">200</int>
220+ <int key="NSPeriodicInterval">25</int>
221+ </object>
222+ <int key="NSResizingMask">3</int>
223+ <bool key="NSIsResizeable">YES</bool>
224+ <bool key="NSIsEditable">YES</bool>
225+ <reference key="NSTableView" ref="308580520"/>
226+ </object>
227+ <object class="NSTableColumn" id="556370847">
228+ <string key="NSIdentifier">Use Copy</string>
229+ <double key="NSWidth">5.800000e+01</double>
230+ <double key="NSMinWidth">1.000000e+01</double>
231+ <double key="NSMaxWidth">3.402823e+38</double>
232+ <object class="NSTableHeaderCell" key="NSHeaderCell">
233+ <int key="NSCellFlags">75628032</int>
234+ <int key="NSCellFlags2">0</int>
235+ <string key="NSContents">Use Copy</string>
236+ <reference key="NSSupport" ref="26"/>
237+ <reference key="NSBackgroundColor" ref="531457817"/>
238+ <reference key="NSTextColor" ref="1041861352"/>
239+ </object>
240+ <object class="NSButtonCell" key="NSDataCell" id="955433170">
241+ <int key="NSCellFlags">67239424</int>
242+ <int key="NSCellFlags2">131072</int>
243+ <string key="NSContents">Check</string>
244+ <reference key="NSSupport" ref="26"/>
245+ <reference key="NSControlView" ref="308580520"/>
246+ <int key="NSButtonFlags">1215582719</int>
247+ <int key="NSButtonFlags2">130</int>
248+ <reference key="NSNormalImage" ref="439190054"/>
249+ <reference key="NSAlternateImage" ref="608106293"/>
250+ <string key="NSAlternateContents"/>
251+ <string key="NSKeyEquivalent"/>
252+ <int key="NSPeriodicDelay">200</int>
253+ <int key="NSPeriodicInterval">25</int>
254+ </object>
255+ <int key="NSResizingMask">3</int>
256+ <bool key="NSIsResizeable">YES</bool>
257+ <bool key="NSIsEditable">YES</bool>
258+ <reference key="NSTableView" ref="308580520"/>
259+ </object>
260+ </object>
261+ <double key="NSIntercellSpacingWidth">3.000000e+00</double>
262+ <double key="NSIntercellSpacingHeight">2.000000e+00</double>
263+ <reference key="NSBackgroundColor" ref="243688011"/>
264+ <object class="NSColor" key="NSGridColor">
265+ <int key="NSColorSpace">6</int>
266+ <string key="NSCatalogName">System</string>
267+ <string key="NSColorName">gridColor</string>
268+ <object class="NSColor" key="NSColor">
269+ <int key="NSColorSpace">3</int>
270+ <bytes key="NSWhite">MC41AA</bytes>
271+ </object>
272+ </object>
273+ <double key="NSRowHeight">1.300000e+01</double>
274+ <int key="NSTvFlags">-742391808</int>
275+ <string key="NSAutosaveName">com.masakih.BSLinkConductor.ItemTable</string>
276+ <int key="NSGridStyleMask">1</int>
277+ <int key="NSColumnAutoresizingStyle">4</int>
278+ <int key="NSDraggingSourceMaskForLocal">15</int>
279+ <int key="NSDraggingSourceMaskForNonLocal">0</int>
280+ <bool key="NSAllowsTypeSelect">YES</bool>
281+ </object>
282+ </object>
283+ <string key="NSFrame">{{1, 17}, {424, 175}}</string>
284+ <reference key="NSSuperview" ref="875485297"/>
285+ <reference key="NSNextKeyView" ref="308580520"/>
286+ <reference key="NSDocView" ref="308580520"/>
287+ <reference key="NSBGColor" ref="633812740"/>
288+ <int key="NScvFlags">4</int>
289+ </object>
290+ <object class="NSScroller" id="185254258">
291+ <reference key="NSNextResponder" ref="875485297"/>
292+ <int key="NSvFlags">256</int>
293+ <string key="NSFrame">{{425, 17}, {11, 175}}</string>
294+ <reference key="NSSuperview" ref="875485297"/>
295+ <int key="NSsFlags">256</int>
296+ <reference key="NSTarget" ref="875485297"/>
297+ <string key="NSAction">_doScroller:</string>
298+ <double key="NSCurValue">3.700000e+01</double>
299+ <double key="NSPercent">1.947368e-01</double>
300+ </object>
301+ <object class="NSScroller" id="853155826">
302+ <reference key="NSNextResponder" ref="875485297"/>
303+ <int key="NSvFlags">256</int>
304+ <string key="NSFrame">{{1, 192}, {424, 11}}</string>
305+ <reference key="NSSuperview" ref="875485297"/>
306+ <int key="NSsFlags">257</int>
307+ <reference key="NSTarget" ref="875485297"/>
308+ <string key="NSAction">_doScroller:</string>
309+ <double key="NSPercent">9.976470e-01</double>
310+ </object>
311+ <object class="NSClipView" id="750437828">
312+ <reference key="NSNextResponder" ref="875485297"/>
313+ <int key="NSvFlags">2304</int>
314+ <object class="NSMutableArray" key="NSSubviews">
315+ <bool key="EncodedWithXMLCoder">YES</bool>
316+ <reference ref="510862983"/>
317+ </object>
318+ <string key="NSFrame">{{1, 0}, {424, 17}}</string>
319+ <reference key="NSSuperview" ref="875485297"/>
320+ <reference key="NSNextKeyView" ref="510862983"/>
321+ <reference key="NSDocView" ref="510862983"/>
322+ <reference key="NSBGColor" ref="633812740"/>
323+ <int key="NScvFlags">4</int>
324+ </object>
325+ <reference ref="883121389"/>
326+ </object>
327+ <string key="NSFrame">{{10, 35}, {437, 204}}</string>
328+ <reference key="NSSuperview" ref="1033488523"/>
329+ <reference key="NSNextKeyView" ref="521716472"/>
330+ <int key="NSsFlags">50</int>
331+ <reference key="NSVScroller" ref="185254258"/>
332+ <reference key="NSHScroller" ref="853155826"/>
333+ <reference key="NSContentView" ref="521716472"/>
334+ <reference key="NSHeaderClipView" ref="750437828"/>
335+ <reference key="NSCornerView" ref="883121389"/>
336+ <bytes key="NSScrollAmts">QSAAAEEgAABBcAAAQXAAAA</bytes>
337+ </object>
338+ <object class="NSButton" id="849781457">
339+ <reference key="NSNextResponder" ref="1033488523"/>
340+ <int key="NSvFlags">256</int>
341+ <string key="NSFrame">{{10, 6}, {21, 21}}</string>
342+ <reference key="NSSuperview" ref="1033488523"/>
343+ <bool key="NSEnabled">YES</bool>
344+ <object class="NSButtonCell" key="NSCell" id="204998340">
345+ <int key="NSCellFlags">67239424</int>
346+ <int key="NSCellFlags2">134348800</int>
347+ <string key="NSContents"/>
348+ <reference key="NSSupport" ref="26"/>
349+ <reference key="NSControlView" ref="849781457"/>
350+ <int key="NSButtonFlags">-2033958657</int>
351+ <int key="NSButtonFlags2">134</int>
352+ <object class="NSCustomResource" key="NSNormalImage">
353+ <string key="NSClassName">NSImage</string>
354+ <string key="NSResourceName">NSAddTemplate</string>
355+ </object>
356+ <string key="NSAlternateContents"/>
357+ <string key="NSKeyEquivalent"/>
358+ <int key="NSPeriodicDelay">400</int>
359+ <int key="NSPeriodicInterval">75</int>
360+ </object>
361+ </object>
362+ <object class="NSButton" id="223208632">
363+ <reference key="NSNextResponder" ref="1033488523"/>
364+ <int key="NSvFlags">256</int>
365+ <string key="NSFrame">{{30, 6}, {21, 21}}</string>
366+ <reference key="NSSuperview" ref="1033488523"/>
367+ <bool key="NSEnabled">YES</bool>
368+ <object class="NSButtonCell" key="NSCell" id="822089540">
369+ <int key="NSCellFlags">67239424</int>
370+ <int key="NSCellFlags2">134348800</int>
371+ <string key="NSContents"/>
372+ <reference key="NSSupport" ref="26"/>
373+ <reference key="NSControlView" ref="223208632"/>
374+ <int key="NSButtonFlags">-2033958657</int>
375+ <int key="NSButtonFlags2">134</int>
376+ <object class="NSCustomResource" key="NSNormalImage">
377+ <string key="NSClassName">NSImage</string>
378+ <string key="NSResourceName">NSRemoveTemplate</string>
379+ </object>
380+ <string key="NSAlternateContents"/>
381+ <string key="NSKeyEquivalent"/>
382+ <int key="NSPeriodicDelay">400</int>
383+ <int key="NSPeriodicInterval">75</int>
384+ </object>
385+ </object>
386+ </object>
387+ <string key="NSFrameSize">{455, 247}</string>
388+ <reference key="NSSuperview"/>
389+ </object>
390+ <string key="NSScreenRect">{{0, 0}, {1280, 832}}</string>
391+ <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
392+ <string key="NSFrameAutosaveName"/>
393+ </object>
394+ <object class="NSArrayController" id="778735177">
395+ <object class="NSMutableArray" key="NSDeclaredKeys">
396+ <bool key="EncodedWithXMLCoder">YES</bool>
397+ <string>name</string>
398+ <string>regularExpression</string>
399+ <string>targetApplicationName</string>
400+ <string>openInBackground</string>
401+ <string>useLocalCopy</string>
402+ </object>
403+ <string key="NSObjectClassName">BSLinkConductorItem</string>
404+ <bool key="NSEditable">YES</bool>
405+ <bool key="NSAutomaticallyPreparesContent">YES</bool>
406+ <object class="_NSManagedProxy" key="_NSManagedProxy"/>
407+ <bool key="NSPreservesSelection">YES</bool>
408+ <bool key="NSSelectsInsertedObjects">YES</bool>
409+ <bool key="NSFilterRestrictsInsertion">YES</bool>
410+ <bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
411+ </object>
412+ </object>
413+ <object class="IBObjectContainer" key="IBDocument.Objects">
414+ <object class="NSMutableArray" key="connectionRecords">
415+ <bool key="EncodedWithXMLCoder">YES</bool>
416+ <object class="IBConnectionRecord">
417+ <object class="IBBindingConnection" key="connection">
418+ <string key="label">value: arrangedObjects.name</string>
419+ <reference key="source" ref="887882295"/>
420+ <reference key="destination" ref="778735177"/>
421+ <object class="NSNibBindingConnector" key="connector">
422+ <reference key="NSSource" ref="887882295"/>
423+ <reference key="NSDestination" ref="778735177"/>
424+ <string key="NSLabel">value: arrangedObjects.name</string>
425+ <string key="NSBinding">value</string>
426+ <string key="NSKeyPath">arrangedObjects.name</string>
427+ <object class="NSDictionary" key="NSOptions">
428+ <string key="NS.key.0">NSCreatesSortDescriptor</string>
429+ <integer value="0" key="NS.object.0" id="6"/>
430+ </object>
431+ <int key="NSNibBindingConnectorVersion">2</int>
432+ </object>
433+ </object>
434+ <int key="connectionID">28</int>
435+ </object>
436+ <object class="IBConnectionRecord">
437+ <object class="IBBindingConnection" key="connection">
438+ <string key="label">value: arrangedObjects.regularExpression</string>
439+ <reference key="source" ref="926303854"/>
440+ <reference key="destination" ref="778735177"/>
441+ <object class="NSNibBindingConnector" key="connector">
442+ <reference key="NSSource" ref="926303854"/>
443+ <reference key="NSDestination" ref="778735177"/>
444+ <string key="NSLabel">value: arrangedObjects.regularExpression</string>
445+ <string key="NSBinding">value</string>
446+ <string key="NSKeyPath">arrangedObjects.regularExpression</string>
447+ <object class="NSDictionary" key="NSOptions">
448+ <string key="NS.key.0">NSCreatesSortDescriptor</string>
449+ <reference key="NS.object.0" ref="6"/>
450+ </object>
451+ <int key="NSNibBindingConnectorVersion">2</int>
452+ </object>
453+ </object>
454+ <int key="connectionID">29</int>
455+ </object>
456+ <object class="IBConnectionRecord">
457+ <object class="IBBindingConnection" key="connection">
458+ <string key="label">value: arrangedObjects.targetApplicationName</string>
459+ <reference key="source" ref="613743811"/>
460+ <reference key="destination" ref="778735177"/>
461+ <object class="NSNibBindingConnector" key="connector">
462+ <reference key="NSSource" ref="613743811"/>
463+ <reference key="NSDestination" ref="778735177"/>
464+ <string key="NSLabel">value: arrangedObjects.targetApplicationName</string>
465+ <string key="NSBinding">value</string>
466+ <string key="NSKeyPath">arrangedObjects.targetApplicationName</string>
467+ <object class="NSDictionary" key="NSOptions">
468+ <string key="NS.key.0">NSCreatesSortDescriptor</string>
469+ <reference key="NS.object.0" ref="6"/>
470+ </object>
471+ <int key="NSNibBindingConnectorVersion">2</int>
472+ </object>
473+ </object>
474+ <int key="connectionID">30</int>
475+ </object>
476+ <object class="IBConnectionRecord">
477+ <object class="IBOutletConnection" key="connection">
478+ <string key="label">window</string>
479+ <reference key="source" ref="1001"/>
480+ <reference key="destination" ref="603181971"/>
481+ </object>
482+ <int key="connectionID">31</int>
483+ </object>
484+ <object class="IBConnectionRecord">
485+ <object class="IBBindingConnection" key="connection">
486+ <string key="label">contentArray: items</string>
487+ <reference key="source" ref="778735177"/>
488+ <reference key="destination" ref="1001"/>
489+ <object class="NSNibBindingConnector" key="connector">
490+ <reference key="NSSource" ref="778735177"/>
491+ <reference key="NSDestination" ref="1001"/>
492+ <string key="NSLabel">contentArray: items</string>
493+ <string key="NSBinding">contentArray</string>
494+ <string key="NSKeyPath">items</string>
495+ <object class="NSDictionary" key="NSOptions">
496+ <string key="NS.key.0">NSValidatesImmediately</string>
497+ <integer value="1" key="NS.object.0" id="5"/>
498+ </object>
499+ <int key="NSNibBindingConnectorVersion">2</int>
500+ </object>
501+ </object>
502+ <int key="connectionID">35</int>
503+ </object>
504+ <object class="IBConnectionRecord">
505+ <object class="IBOutletConnection" key="connection">
506+ <string key="label">tableView</string>
507+ <reference key="source" ref="1001"/>
508+ <reference key="destination" ref="308580520"/>
509+ </object>
510+ <int key="connectionID">36</int>
511+ </object>
512+ <object class="IBConnectionRecord">
513+ <object class="IBOutletConnection" key="connection">
514+ <string key="label">itemsController</string>
515+ <reference key="source" ref="1001"/>
516+ <reference key="destination" ref="778735177"/>
517+ </object>
518+ <int key="connectionID">42</int>
519+ </object>
520+ <object class="IBConnectionRecord">
521+ <object class="IBBindingConnection" key="connection">
522+ <string key="label">enabled: canRemove</string>
523+ <reference key="source" ref="223208632"/>
524+ <reference key="destination" ref="778735177"/>
525+ <object class="NSNibBindingConnector" key="connector">
526+ <reference key="NSSource" ref="223208632"/>
527+ <reference key="NSDestination" ref="778735177"/>
528+ <string key="NSLabel">enabled: canRemove</string>
529+ <string key="NSBinding">enabled</string>
530+ <string key="NSKeyPath">canRemove</string>
531+ <int key="NSNibBindingConnectorVersion">2</int>
532+ </object>
533+ </object>
534+ <int key="connectionID">45</int>
535+ </object>
536+ <object class="IBConnectionRecord">
537+ <object class="IBBindingConnection" key="connection">
538+ <string key="label">enabled: canAdd</string>
539+ <reference key="source" ref="849781457"/>
540+ <reference key="destination" ref="778735177"/>
541+ <object class="NSNibBindingConnector" key="connector">
542+ <reference key="NSSource" ref="849781457"/>
543+ <reference key="NSDestination" ref="778735177"/>
544+ <string key="NSLabel">enabled: canAdd</string>
545+ <string key="NSBinding">enabled</string>
546+ <string key="NSKeyPath">canAdd</string>
547+ <int key="NSNibBindingConnectorVersion">2</int>
548+ </object>
549+ </object>
550+ <int key="connectionID">46</int>
551+ </object>
552+ <object class="IBConnectionRecord">
553+ <object class="IBActionConnection" key="connection">
554+ <string key="label">add:</string>
555+ <reference key="source" ref="1001"/>
556+ <reference key="destination" ref="849781457"/>
557+ </object>
558+ <int key="connectionID">48</int>
559+ </object>
560+ <object class="IBConnectionRecord">
561+ <object class="IBActionConnection" key="connection">
562+ <string key="label">remove:</string>
563+ <reference key="source" ref="1001"/>
564+ <reference key="destination" ref="223208632"/>
565+ </object>
566+ <int key="connectionID">59</int>
567+ </object>
568+ <object class="IBConnectionRecord">
569+ <object class="IBOutletConnection" key="connection">
570+ <string key="label">dataSource</string>
571+ <reference key="source" ref="308580520"/>
572+ <reference key="destination" ref="1001"/>
573+ </object>
574+ <int key="connectionID">60</int>
575+ </object>
576+ <object class="IBConnectionRecord">
577+ <object class="IBOutletConnection" key="connection">
578+ <string key="label">delegate</string>
579+ <reference key="source" ref="308580520"/>
580+ <reference key="destination" ref="1001"/>
581+ </object>
582+ <int key="connectionID">61</int>
583+ </object>
584+ <object class="IBConnectionRecord">
585+ <object class="IBBindingConnection" key="connection">
586+ <string key="label">value: arrangedObjects.openInBackground</string>
587+ <reference key="source" ref="994667907"/>
588+ <reference key="destination" ref="778735177"/>
589+ <object class="NSNibBindingConnector" key="connector">
590+ <reference key="NSSource" ref="994667907"/>
591+ <reference key="NSDestination" ref="778735177"/>
592+ <string key="NSLabel">value: arrangedObjects.openInBackground</string>
593+ <string key="NSBinding">value</string>
594+ <string key="NSKeyPath">arrangedObjects.openInBackground</string>
595+ <object class="NSDictionary" key="NSOptions">
596+ <string key="NS.key.0">NSCreatesSortDescriptor</string>
597+ <reference key="NS.object.0" ref="6"/>
598+ </object>
599+ <int key="NSNibBindingConnectorVersion">2</int>
600+ </object>
601+ </object>
602+ <int key="connectionID">62</int>
603+ </object>
604+ <object class="IBConnectionRecord">
605+ <object class="IBBindingConnection" key="connection">
606+ <string key="label">value: arrangedObjects.useLocalCopy</string>
607+ <reference key="source" ref="556370847"/>
608+ <reference key="destination" ref="778735177"/>
609+ <object class="NSNibBindingConnector" key="connector">
610+ <reference key="NSSource" ref="556370847"/>
611+ <reference key="NSDestination" ref="778735177"/>
612+ <string key="NSLabel">value: arrangedObjects.useLocalCopy</string>
613+ <string key="NSBinding">value</string>
614+ <string key="NSKeyPath">arrangedObjects.useLocalCopy</string>
615+ <object class="NSDictionary" key="NSOptions">
616+ <string key="NS.key.0">NSCreatesSortDescriptor</string>
617+ <reference key="NS.object.0" ref="6"/>
618+ </object>
619+ <int key="NSNibBindingConnectorVersion">2</int>
620+ </object>
621+ </object>
622+ <int key="connectionID">63</int>
623+ </object>
624+ </object>
625+ <object class="IBMutableOrderedSet" key="objectRecords">
626+ <object class="NSArray" key="orderedObjects">
627+ <bool key="EncodedWithXMLCoder">YES</bool>
628+ <object class="IBObjectRecord">
629+ <int key="objectID">0</int>
630+ <object class="NSArray" key="object" id="1002">
631+ <bool key="EncodedWithXMLCoder">YES</bool>
632+ </object>
633+ <reference key="children" ref="1000"/>
634+ <nil key="parent"/>
635+ </object>
636+ <object class="IBObjectRecord">
637+ <int key="objectID">-2</int>
638+ <reference key="object" ref="1001"/>
639+ <reference key="parent" ref="1002"/>
640+ <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
641+ </object>
642+ <object class="IBObjectRecord">
643+ <int key="objectID">-1</int>
644+ <reference key="object" ref="1003"/>
645+ <reference key="parent" ref="1002"/>
646+ <string key="objectName">First Responder</string>
647+ </object>
648+ <object class="IBObjectRecord">
649+ <int key="objectID">-3</int>
650+ <reference key="object" ref="1004"/>
651+ <reference key="parent" ref="1002"/>
652+ <string key="objectName">Application</string>
653+ </object>
654+ <object class="IBObjectRecord">
655+ <int key="objectID">3</int>
656+ <reference key="object" ref="603181971"/>
657+ <object class="NSMutableArray" key="children">
658+ <bool key="EncodedWithXMLCoder">YES</bool>
659+ <reference ref="1033488523"/>
660+ </object>
661+ <reference key="parent" ref="1002"/>
662+ </object>
663+ <object class="IBObjectRecord">
664+ <int key="objectID">4</int>
665+ <reference key="object" ref="1033488523"/>
666+ <object class="NSMutableArray" key="children">
667+ <bool key="EncodedWithXMLCoder">YES</bool>
668+ <reference ref="875485297"/>
669+ <reference ref="849781457"/>
670+ <reference ref="223208632"/>
671+ </object>
672+ <reference key="parent" ref="603181971"/>
673+ </object>
674+ <object class="IBObjectRecord">
675+ <int key="objectID">5</int>
676+ <reference key="object" ref="875485297"/>
677+ <object class="NSMutableArray" key="children">
678+ <bool key="EncodedWithXMLCoder">YES</bool>
679+ <reference ref="185254258"/>
680+ <reference ref="853155826"/>
681+ <reference ref="308580520"/>
682+ <reference ref="510862983"/>
683+ </object>
684+ <reference key="parent" ref="1033488523"/>
685+ </object>
686+ <object class="IBObjectRecord">
687+ <int key="objectID">6</int>
688+ <reference key="object" ref="185254258"/>
689+ <reference key="parent" ref="875485297"/>
690+ </object>
691+ <object class="IBObjectRecord">
692+ <int key="objectID">7</int>
693+ <reference key="object" ref="853155826"/>
694+ <reference key="parent" ref="875485297"/>
695+ </object>
696+ <object class="IBObjectRecord">
697+ <int key="objectID">8</int>
698+ <reference key="object" ref="308580520"/>
699+ <object class="NSMutableArray" key="children">
700+ <bool key="EncodedWithXMLCoder">YES</bool>
701+ <reference ref="887882295"/>
702+ <reference ref="926303854"/>
703+ <reference ref="613743811"/>
704+ <reference ref="994667907"/>
705+ <reference ref="556370847"/>
706+ </object>
707+ <reference key="parent" ref="875485297"/>
708+ </object>
709+ <object class="IBObjectRecord">
710+ <int key="objectID">9</int>
711+ <reference key="object" ref="510862983"/>
712+ <reference key="parent" ref="875485297"/>
713+ </object>
714+ <object class="IBObjectRecord">
715+ <int key="objectID">10</int>
716+ <reference key="object" ref="887882295"/>
717+ <object class="NSMutableArray" key="children">
718+ <bool key="EncodedWithXMLCoder">YES</bool>
719+ <reference ref="245253640"/>
720+ </object>
721+ <reference key="parent" ref="308580520"/>
722+ </object>
723+ <object class="IBObjectRecord">
724+ <int key="objectID">11</int>
725+ <reference key="object" ref="926303854"/>
726+ <object class="NSMutableArray" key="children">
727+ <bool key="EncodedWithXMLCoder">YES</bool>
728+ <reference ref="1020348066"/>
729+ </object>
730+ <reference key="parent" ref="308580520"/>
731+ </object>
732+ <object class="IBObjectRecord">
733+ <int key="objectID">12</int>
734+ <reference key="object" ref="1020348066"/>
735+ <reference key="parent" ref="926303854"/>
736+ </object>
737+ <object class="IBObjectRecord">
738+ <int key="objectID">13</int>
739+ <reference key="object" ref="245253640"/>
740+ <reference key="parent" ref="887882295"/>
741+ </object>
742+ <object class="IBObjectRecord">
743+ <int key="objectID">14</int>
744+ <reference key="object" ref="613743811"/>
745+ <object class="NSMutableArray" key="children">
746+ <bool key="EncodedWithXMLCoder">YES</bool>
747+ <reference ref="363562574"/>
748+ </object>
749+ <reference key="parent" ref="308580520"/>
750+ </object>
751+ <object class="IBObjectRecord">
752+ <int key="objectID">15</int>
753+ <reference key="object" ref="363562574"/>
754+ <reference key="parent" ref="613743811"/>
755+ </object>
756+ <object class="IBObjectRecord">
757+ <int key="objectID">16</int>
758+ <reference key="object" ref="778735177"/>
759+ <reference key="parent" ref="1002"/>
760+ <string key="objectName">LinkConductorItems</string>
761+ </object>
762+ <object class="IBObjectRecord">
763+ <int key="objectID">20</int>
764+ <reference key="object" ref="849781457"/>
765+ <object class="NSMutableArray" key="children">
766+ <bool key="EncodedWithXMLCoder">YES</bool>
767+ <reference ref="204998340"/>
768+ </object>
769+ <reference key="parent" ref="1033488523"/>
770+ </object>
771+ <object class="IBObjectRecord">
772+ <int key="objectID">21</int>
773+ <reference key="object" ref="204998340"/>
774+ <reference key="parent" ref="849781457"/>
775+ </object>
776+ <object class="IBObjectRecord">
777+ <int key="objectID">24</int>
778+ <reference key="object" ref="223208632"/>
779+ <object class="NSMutableArray" key="children">
780+ <bool key="EncodedWithXMLCoder">YES</bool>
781+ <reference ref="822089540"/>
782+ </object>
783+ <reference key="parent" ref="1033488523"/>
784+ </object>
785+ <object class="IBObjectRecord">
786+ <int key="objectID">25</int>
787+ <reference key="object" ref="822089540"/>
788+ <reference key="parent" ref="223208632"/>
789+ </object>
790+ <object class="IBObjectRecord">
791+ <int key="objectID">49</int>
792+ <reference key="object" ref="994667907"/>
793+ <object class="NSMutableArray" key="children">
794+ <bool key="EncodedWithXMLCoder">YES</bool>
795+ <reference ref="885278046"/>
796+ </object>
797+ <reference key="parent" ref="308580520"/>
798+ </object>
799+ <object class="IBObjectRecord">
800+ <int key="objectID">51</int>
801+ <reference key="object" ref="556370847"/>
802+ <object class="NSMutableArray" key="children">
803+ <bool key="EncodedWithXMLCoder">YES</bool>
804+ <reference ref="955433170"/>
805+ </object>
806+ <reference key="parent" ref="308580520"/>
807+ </object>
808+ <object class="IBObjectRecord">
809+ <int key="objectID">57</int>
810+ <reference key="object" ref="885278046"/>
811+ <reference key="parent" ref="994667907"/>
812+ </object>
813+ <object class="IBObjectRecord">
814+ <int key="objectID">58</int>
815+ <reference key="object" ref="955433170"/>
816+ <reference key="parent" ref="556370847"/>
817+ </object>
818+ </object>
819+ </object>
820+ <object class="NSMutableDictionary" key="flattenedProperties">
821+ <bool key="EncodedWithXMLCoder">YES</bool>
822+ <object class="NSMutableArray" key="dict.sortedKeys">
823+ <bool key="EncodedWithXMLCoder">YES</bool>
824+ <string>-1.IBPluginDependency</string>
825+ <string>-2.IBPluginDependency</string>
826+ <string>-3.IBPluginDependency</string>
827+ <string>10.IBPluginDependency</string>
828+ <string>11.IBPluginDependency</string>
829+ <string>12.IBPluginDependency</string>
830+ <string>13.IBPluginDependency</string>
831+ <string>16.IBPluginDependency</string>
832+ <string>20.IBPluginDependency</string>
833+ <string>21.IBPluginDependency</string>
834+ <string>24.IBPluginDependency</string>
835+ <string>25.IBPluginDependency</string>
836+ <string>3.IBEditorWindowLastContentRect</string>
837+ <string>3.IBPluginDependency</string>
838+ <string>3.IBWindowTemplateEditedContentRect</string>
839+ <string>3.NSWindowTemplate.visibleAtLaunch</string>
840+ <string>4.IBPluginDependency</string>
841+ <string>5.IBPluginDependency</string>
842+ <string>57.IBPluginDependency</string>
843+ <string>58.IBPluginDependency</string>
844+ <string>6.IBPluginDependency</string>
845+ <string>7.IBPluginDependency</string>
846+ <string>8.IBPluginDependency</string>
847+ <string>9.IBPluginDependency</string>
848+ </object>
849+ <object class="NSMutableArray" key="dict.values">
850+ <bool key="EncodedWithXMLCoder">YES</bool>
851+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
852+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
853+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
854+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
855+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
856+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
857+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
858+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
859+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
860+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
861+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
862+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
863+ <string>{{431, 308}, {455, 247}}</string>
864+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
865+ <string>{{431, 308}, {455, 247}}</string>
866+ <reference ref="5"/>
867+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
868+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
869+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
870+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
871+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
872+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
873+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
874+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
875+ </object>
876+ </object>
877+ <object class="NSMutableDictionary" key="unlocalizedProperties">
878+ <bool key="EncodedWithXMLCoder">YES</bool>
879+ <object class="NSArray" key="dict.sortedKeys">
880+ <bool key="EncodedWithXMLCoder">YES</bool>
881+ </object>
882+ <object class="NSMutableArray" key="dict.values">
883+ <bool key="EncodedWithXMLCoder">YES</bool>
884+ </object>
885+ </object>
886+ <nil key="activeLocalization"/>
887+ <object class="NSMutableDictionary" key="localizations">
888+ <bool key="EncodedWithXMLCoder">YES</bool>
889+ <object class="NSArray" key="dict.sortedKeys">
890+ <bool key="EncodedWithXMLCoder">YES</bool>
891+ </object>
892+ <object class="NSMutableArray" key="dict.values">
893+ <bool key="EncodedWithXMLCoder">YES</bool>
894+ </object>
895+ </object>
896+ <nil key="sourceID"/>
897+ <int key="maxID">63</int>
898+ </object>
899+ <object class="IBClassDescriber" key="IBDocument.Classes">
900+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
901+ <bool key="EncodedWithXMLCoder">YES</bool>
902+ <object class="IBPartialClassDescription">
903+ <string key="className">BSLCPreferences</string>
904+ <string key="superclassName">NSWindowController</string>
905+ <object class="NSMutableDictionary" key="actions">
906+ <bool key="EncodedWithXMLCoder">YES</bool>
907+ <object class="NSMutableArray" key="dict.sortedKeys">
908+ <bool key="EncodedWithXMLCoder">YES</bool>
909+ <string>add:</string>
910+ <string>remove:</string>
911+ <string>showHideWindow:</string>
912+ </object>
913+ <object class="NSMutableArray" key="dict.values">
914+ <bool key="EncodedWithXMLCoder">YES</bool>
915+ <string>id</string>
916+ <string>id</string>
917+ <string>id</string>
918+ </object>
919+ </object>
920+ <object class="NSMutableDictionary" key="outlets">
921+ <bool key="EncodedWithXMLCoder">YES</bool>
922+ <object class="NSMutableArray" key="dict.sortedKeys">
923+ <bool key="EncodedWithXMLCoder">YES</bool>
924+ <string>itemsController</string>
925+ <string>tableView</string>
926+ </object>
927+ <object class="NSMutableArray" key="dict.values">
928+ <bool key="EncodedWithXMLCoder">YES</bool>
929+ <string>NSArrayController</string>
930+ <string>NSTableView</string>
931+ </object>
932+ </object>
933+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
934+ <string key="majorKey">IBProjectSource</string>
935+ <string key="minorKey">BSLCPreferences.h</string>
936+ </object>
937+ </object>
938+ <object class="IBPartialClassDescription">
939+ <string key="className">NSObject</string>
940+ <object class="NSMutableDictionary" key="actions">
941+ <bool key="EncodedWithXMLCoder">YES</bool>
942+ <object class="NSMutableArray" key="dict.sortedKeys">
943+ <bool key="EncodedWithXMLCoder">YES</bool>
944+ <string>showPreviewerPreferences:</string>
945+ <string>togglePreviewPanel:</string>
946+ </object>
947+ <object class="NSMutableArray" key="dict.values">
948+ <bool key="EncodedWithXMLCoder">YES</bool>
949+ <string>id</string>
950+ <string>id</string>
951+ </object>
952+ </object>
953+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
954+ <string key="majorKey">IBProjectSource</string>
955+ <string key="minorKey">BSImagePreviewerInterface.h</string>
956+ </object>
957+ </object>
958+ </object>
959+ </object>
960+ <int key="IBDocument.localizationMode">0</int>
961+ <string key="IBDocument.LastKnownRelativeProjectPath">../BSLinkConductor.xcodeproj</string>
962+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
963+ </data>
964+</archive>
--- /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>BSLinkConductor 1.0</string>
7+ <key>NSHumanReadableCopyright</key>
8+ <string>copyright 2009 masakih</string>
9+ <key>CFBundleGetInfoString</key>
10+ <string>BSLinkConductor 1.0 copyright 2009 masakih</string>
11+</dict>
12+</plist>
--- /dev/null
+++ b/HMTemporaryFolder.h
@@ -0,0 +1,23 @@
1+//
2+// HMTemporaryFolder.h
3+// IconSetComposer
4+//
5+// Created by Hori,Masaki on 05/08/15.
6+// Copyright 2005 __MyCompanyName__. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+
12+@interface HMTemporaryFolder : NSObject
13+{
14+ NSString *_path;
15+}
16+
17++(id)temporaryFolder;
18+-(id)init;
19+
20+-(NSString *)path;
21+-(NSURL *)url;
22+
23+@end
--- /dev/null
+++ b/HMTemporaryFolder.m
@@ -0,0 +1,91 @@
1+//
2+// HMTemporaryFolder.m
3+// IconSetComposer
4+//
5+// Created by Hori,Masaki on 05/08/15.
6+// Copyright 2005 __MyCompanyName__. All rights reserved.
7+//
8+
9+#import "HMTemporaryFolder.h"
10+
11+
12+@implementation HMTemporaryFolder
13+
14+-(NSString *)appName
15+{
16+ NSBundle *b = [NSBundle mainBundle];
17+
18+ return [b objectForInfoDictionaryKey:@"CFBundleName"];
19+}
20+
21++(id)temporaryFolder
22+{
23+ return [[[[self class] alloc] init] autorelease];
24+}
25+-(id)init
26+{
27+ if( self = [super init] ) {
28+ NSFileManager *fm = [NSFileManager defaultManager];
29+ NSString *tmpDir = NSTemporaryDirectory();
30+ NSString *appName = [self appName];
31+ BOOL created = NO;
32+
33+ do {
34+ NSString *folderName;
35+ folderName = [NSString stringWithFormat:@"%@-%@",
36+ appName,
37+ [[NSCalendarDate dateWithTimeIntervalSinceNow:0.0]
38+ descriptionWithCalendarFormat:@"%Y%m%d%H%M%S%F"] ];
39+ _path = [tmpDir stringByAppendingPathComponent:folderName];
40+
41+ if( ![fm fileExistsAtPath:_path] &&
42+ [fm createDirectoryAtPath:_path attributes:nil] ) {
43+ created = YES;
44+ }
45+ } while( !created );
46+
47+ [_path retain];
48+ }
49+
50+ return self;
51+}
52+
53+-(void)dealloc
54+{
55+#ifdef DEBUG
56+ NSLog(@"Satrt Dealocate HMTemporaryFolder(%@)", self );
57+#endif
58+
59+// [fm removeFileAtPath:_path handler:nil];
60+ NSTask *rmTask = [[NSTask alloc] init];
61+
62+ [rmTask setLaunchPath:@"/bin/rm"];
63+ [rmTask setArguments:[NSArray arrayWithObjects:@"-rf", _path, nil]];
64+ [rmTask launch];
65+ [rmTask waitUntilExit];
66+ [rmTask release];
67+
68+ [_path release];
69+
70+#ifdef DEBUG
71+ NSLog(@"End Dealocate HMTemporaryFolder" );
72+#endif
73+
74+ [super dealloc];
75+}
76+
77+-(NSString *)path
78+{
79+ return [NSString stringWithString:_path];
80+}
81+-(NSURL *)url
82+{
83+ return [NSURL fileURLWithPath:_path];
84+}
85+
86+-(id)description
87+{
88+ return [self path];
89+}
90+
91+@end
--- /dev/null
+++ b/Info.plist
@@ -0,0 +1,30 @@
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>CFBundleShortVersionString</key>
6+ <string>1.0</string>
7+ <key>CFBundleDevelopmentRegion</key>
8+ <string>English</string>
9+ <key>CFBundleExecutable</key>
10+ <string>${EXECUTABLE_NAME}</string>
11+ <key>CFBundleIconFile</key>
12+ <string></string>
13+ <key>CFBundleIdentifier</key>
14+ <string>com.masakih.${PRODUCT_NAME:identifier}</string>
15+ <key>CFBundleInfoDictionaryVersion</key>
16+ <string>6.0</string>
17+ <key>CFBundleName</key>
18+ <string>${PRODUCT_NAME}</string>
19+ <key>CFBundlePackageType</key>
20+ <string>BNDL</string>
21+ <key>CFBundleShortVersionString</key>
22+ <string>1.0</string>
23+ <key>CFBundleSignature</key>
24+ <string>????</string>
25+ <key>CFBundleVersion</key>
26+ <string>%%%%REVISION%%%%</string>
27+ <key>NSPrincipalClass</key>
28+ <string>BSLinkConductor</string>
29+</dict>
30+</plist>
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,57 @@
1+// encoding=utf-8
2+PRODUCT_NAME=BSLinkConductor
3+PRODUCT_EXTENSION=app
4+BUILD_PATH=./build
5+DEPLOYMENT=Release
6+APP_BUNDLE=$(PRODUCT_NAME).$(PRODUCT_EXTENSION)
7+APP=$(BUILD_PATH)/$(DEPLOYMENT)/$(APP_BUNDLE)
8+APP_NAME=$(BUILD_PATH)/$(DEPLOYMENT)/$(PRODUCT_NAME)
9+INFO_PLIST=Info.plist
10+
11+URL_BSLinkConductor = svn+ssh://macmini/usr/local/svnrepos/BSLinkConductor
12+HEAD = $(URL_BSLinkConductor)/BSLinkConductor
13+TAGS_DIR = $(URL_BSLinkConductor)/tags
14+
15+VER_CMD=grep -A1 'CFBundleShortVersionString' $(INFO_PLIST) | tail -1 | tr -d "'\t</string>"
16+VERSION=$(shell $(VER_CMD))
17+
18+all:
19+ @echo do nothig.
20+ @echo use target tagging
21+
22+tagging: update_svn
23+ @echo "Tagging the $(VERSION) (x) release of BSLinkConductor project."
24+ @echo ""
25+ @REV=`LC_ALL=C svn info | awk '/Last Changed Rev/ {print $$4}'` ; \
26+ echo svn copy $(HEAD) $(TAGS_DIR)/release-$(VERSION).$${REV}
27+
28+Localizable:
29+ genstrings -o English.lproj $^
30+ (cd English.lproj; ${MAKE} $@;)
31+ genstrings -o Japanese.lproj $^
32+ (cd Japanese.lproj; ${MAKE} $@;)
33+
34+checkLocalizable:
35+ (cd English.lproj; ${MAKE} $@;)
36+ (cd Japanese.lproj; ${MAKE} $@;)
37+
38+release: updateRevision
39+ xcodebuild -configuration $(DEPLOYMENT)
40+ $(MAKE) restorInfoPlist
41+
42+package: release
43+ REV=`LC_ALL=C svn info | awk '/Last Changed Rev/ {print $$4}'`; \
44+ ditto -ck -rsrc --keepParent $(APP) $(APP_NAME)-$(VERSION)-$${REV}.zip
45+
46+updateRevision: update_svn
47+ if [ ! -f $(INFO_PLIST).bak ] ; then cp $(INFO_PLIST) $(INFO_PLIST).bak ; fi ; \
48+ REV=`LC_ALL=C svn info | awk '/Last Changed Rev/ {print $$4}'` ; \
49+ sed -e "s/%%%%REVISION%%%%/$${REV}/" $(INFO_PLIST) > $(INFO_PLIST).r ; \
50+ mv -f $(INFO_PLIST).r $(INFO_PLIST) ; \
51+
52+restorInfoPlist:
53+ if [ -f $(INFO_PLIST).bak ] ; then mv -f $(INFO_PLIST).bak $(INFO_PLIST) ; fi
54+
55+update_svn:
56+ svn up
57+