• 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用プレビューアプラグイン。もしかするとThousandでも使えるかも?


Commit MetaInfo

Revisión4c0d5c152b3bf9cb44cf8e2b9bca69516873ef75 (tree)
Tiempo2008-01-13 10:39:40
Autormasakih <masakih@user...>
Commitermasakih

Log Message

support Thousand.

git-svn-id: svn+ssh://macmini/usr/local/svnrepos/MosaicPreview/MosaicPreview@3 74e70210-8d8a-4479-9785-5f8e6e796248

Cambiar Resumen

Diferencia incremental

--- a/BSImagePreviewerInterface.h
+++ b/BSImagePreviewerInterface.h
@@ -2,28 +2,41 @@
22 // BSImagePreviewerInterface.h
33 // BathyScaphe
44 //
5-// Created by Tsutomu Sawada on 05/10/15.
6-// Copyright 2005 BathyScaphe Project. All rights reserved.
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"
78 //
89
910 @class AppDefaults;
1011
1112 @protocol BSImagePreviewerProtocol
1213 // Designated Initializer
13-- (id) initWithPreferences : (AppDefaults *) prefs;
14+- (id)initWithPreferences:(AppDefaults *)prefs;
1415 // Accessor
15-- (AppDefaults *) preferences;
16-- (void) setPreferences : (AppDefaults *) aPreferences;
16+- (AppDefaults *)preferences;
17+- (void)setPreferences:(AppDefaults *)aPreferences;
1718 // Action
18-- (BOOL) showImageWithURL : (NSURL *) imageURL;
19-- (BOOL) validateLink : (NSURL *) anURL;
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;
2033 @end
2134
2235 @interface NSObject(IPPAdditions)
2336 // Storage for plugin-specific settings
24-- (NSMutableDictionary *) imagePreviewerPrefsDict;
37+- (NSMutableDictionary *)imagePreviewerPrefsDict;
2538
2639 // Accessor for useful BathyScaphe global settings
27-- (BOOL) openInBg;
28-- (BOOL) isOnlineMode;
29-@end
\ No newline at end of file
40+- (BOOL)openInBg;
41+- (BOOL)isOnlineMode;
42+@end
--- a/English.lproj/InfoPlist.strings
+++ b/English.lproj/InfoPlist.strings
@@ -2,9 +2,11 @@
22 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33 <plist version="1.0">
44 <dict>
5- <key>CFBundleName</key>
6- <string>GroEvader</string>
5+ <key>CFBundleGetInfoString</key>
6+ <string>GroEvader for Thousand 1.1</string>
7+ <key>CFBundleShortVersionString</key>
8+ <string>1.1</string>
79 <key>NSHumanReadableCopyright</key>
8- <string>© __MyCompanyName__, 2005</string>
10+ <string>© masakih, 2007</string>
911 </dict>
1012 </plist>
--- a/GroEvader.h
+++ b/GroEvader.h
@@ -1,15 +1,25 @@
1-/* GroEvader */
1+//
2+// GroEvader.h
3+// MosaicPreviewerForThousand
4+//
5+// Created by Hori,Masaki on 06/01/15.
6+// Copyright 2006 __MyCompanyName__. All rights reserved.
7+//
28
39 #import <Cocoa/Cocoa.h>
410
511 #import "BSImagePreviewerInterface.h"
6-
7-#import "CircleGestureView.h"
12+#import "T2PluginProtocols.h"
13+#import "MosaicView.h"
814
915 @class TemporaryFolder, CIContext, CIFilter, CIImage;
10-@class MosaicView;
1116
12-@interface GroEvader : NSWindowController <BSImagePreviewerProtocol>
17+typedef enum {
18+ kHostBathyScaphe,
19+ kHostThousand,
20+} HostType;
21+
22+@interface GroEvader : NSWindowController <T2URLPreviewing_v100,BSImagePreviewerProtocol>
1323 {
1424 IBOutlet NSImage *image;
1525 IBOutlet id indicator;
@@ -27,6 +37,8 @@
2737 NSTimer *scallingTimer;
2838
2939 AppDefaults *pref;
40+
41+ HostType hostType;
3042 }
3143
3244 -(void)setScale:(int)newScale;
@@ -52,17 +64,7 @@
5264
5365 @end
5466
55-@interface MosaicView : CircleGestureView
56-{
57- IBOutlet id delegate;
58-
59- NSString *text;
60-
61- CIContext *context;
62-}
6367
64-- (void)setText:(NSString *)text;
65-@end
6668
6769 #define GELocalizedString(key, comment) \
6870 [[NSBundle bundleForClass:[GroEvader class]] localizedStringForKey:(key) value:@"" table:nil]
--- a/GroEvader.m
+++ b/GroEvader.m
@@ -1,3 +1,11 @@
1+//
2+// GroEvader.m
3+// MosaicPreviewerForThousand
4+//
5+// Created by Hori,Masaki on 06/01/15.
6+// Copyright 2006 __MyCompanyName__. All rights reserved.
7+//
8+
19 #import "GroEvader.h"
210
311 #import "TemporaryFolder.h"
@@ -10,7 +18,15 @@
1018 #define ENTERMETHOD
1119 #endif
1220
21+@interface NSObject(GroEvaderDummyForThousand)
22++(id)labelItemWithKey:(id)key;
23++(id)separateLineItem;
24++(id)boolItemWithKey:(id)key title:(id)title info:(id)info;
25+@end
26+
1327 static NSString *GroEvaderWidnowRectKey = @"com.masakih.GroEvader.WindowRect";
28+static NSString *GroEvaderCloseWithOneClickKey = @"com.masakih.GroEvader.CloseWithOneClick";
29+static NSString *GroEvaderCloseWhenOpenImageKey = @"com.masakih.GroEvader.CloseWhenOpenImage";
1430
1531 BOOL isTigerOrLater()
1632 {
@@ -29,9 +45,9 @@ void alertPanther()
2945 @implementation GroEvader
3046
3147 // Designated Initializer
32-- (id) initWithPreferences : (AppDefaults *) prefs
48+- (id) initWithHostType:(HostType)inHostType prefs:(AppDefaults *) prefs
3349 {
34- self = [super initWithWindowNibName:NSStringFromClass([self class])];
50+ self = [super initWithWindowNibName:@"MosaicWindow"];
3551
3652 if(!isTigerOrLater()) {
3753 alertPanther();
@@ -40,6 +56,7 @@ void alertPanther()
4056 }
4157
4258 if( self ) {
59+ hostType = inHostType;
4360 downloadFolder = [[TemporaryFolder alloc] init];
4461 [self setPreferences:prefs];
4562 [self registNotigications];
@@ -47,6 +64,14 @@ void alertPanther()
4764
4865 return self;
4966 }
67+- (id) initWithPreferences : (AppDefaults *) prefs
68+{
69+ return [self initWithHostType:kHostBathyScaphe prefs:prefs];
70+}
71+- (id) init
72+{
73+ return [self initWithHostType:kHostThousand prefs:nil];
74+}
5075 -(void)dealloc
5176 {
5277 [download release];
@@ -75,6 +100,36 @@ void alertPanther()
75100 [view setGestureAction:@selector(openURL:)];
76101 }
77102
103+- (void)fitWindowPosition
104+{
105+ NSEvent *event = [NSApp currentEvent];
106+ NSPoint mouse;
107+
108+ if((NSLeftMouseDown < [event type] && [event type] < NSMouseExited)
109+ || (NSOtherMouseDown < [event type] && [event type] < NSOtherMouseDragged)) {
110+ mouse = [event locationInWindow];
111+ mouse = [[event window] convertBaseToScreen:mouse];
112+ } else {
113+ mouse = [NSEvent mouseLocation];
114+ }
115+
116+ mouse.y -= 25;
117+
118+ [[self window] setFrameOrigin:mouse];
119+}
120+
121+-(id)prefObjectForHost
122+{
123+ if(hostType == kHostBathyScaphe) {
124+ return [pref imagePreviewerPrefsDict];
125+ } else if(hostType == kHostThousand) {
126+ return [NSUserDefaults standardUserDefaults];
127+ }
128+
129+ return nil;
130+}
131+
132+
78133 #pragma mark ## BSImagePreviewerProtocol ##
79134 // Accessor
80135 - (AppDefaults *) preferences
@@ -87,7 +142,7 @@ void alertPanther()
87142
88143 [self window];
89144 {
90- NSString *winRectString = [[pref imagePreviewerPrefsDict] objectForKey:GroEvaderWidnowRectKey];
145+ NSString *winRectString = [[self prefObjectForHost] objectForKey:GroEvaderWidnowRectKey];
91146 if( winRectString ) {
92147 [[self window] setFrameFromString:winRectString];
93148 }
@@ -96,9 +151,6 @@ void alertPanther()
96151 // Action
97152 - (BOOL) showImageWithURL : (NSURL *) inImageURL
98153 {
99-// id event = [NSApp currentEvent];
100-// NSLog(@"Event ---> %@", event);
101- ///
102154 [self setImage:nil];
103155 [self setErrorText:nil];
104156 [self showWindow:self];
@@ -125,6 +177,166 @@ void alertPanther()
125177
126178 return [imageExtensions containsObject:extension];
127179 }
180+#pragma mark## T2PluginInterface_v100 ##
181++(NSArray *)pluginInstances
182+{
183+ id ins = [[[[self class] alloc] init] autorelease];
184+
185+ return [NSArray arrayWithObject:ins];
186+}
187+-(NSString *)uniqueName
188+{
189+ return GELocalizedString(@"GroEvader Image Previewer", @"GroEvader Image Previewer");
190+}
191+-(NSString *)localizedName
192+{
193+ return [self uniqueName];
194+}
195+-(NSString *)localizedPluginInfo
196+{
197+ return GELocalizedString(@"GroEvader Image Previewer.", @"GroEvader Image Previewer.");
198+}
199+-(T2PluginType)pluginType
200+{
201+ return T2StandardPlugin;
202+}
203+-(int)pluginOrder
204+{
205+ return T2PluginOrderLast;
206+}
207+
208+-(NSArray *)preferenceItems
209+{
210+ Class itemClass = NSClassFromString(@"T2PreferenceItem");
211+ if(!itemClass) return [NSArray array];
212+
213+ NSMutableArray *result = [NSMutableArray array];
214+
215+ id item;
216+
217+ item = [itemClass labelItemWithKey:@"pluginDescription01"];
218+ if(item) {
219+ [result addObject:item];
220+ }
221+ item = [itemClass labelItemWithKey:@"pluginDescription02"];
222+ if(item) {
223+ [result addObject:item];
224+ }
225+
226+ item = [itemClass separateLineItem];
227+ if(item) {
228+ [result addObject:item];
229+ }
230+
231+ item = [itemClass boolItemWithKey:@"closePanelWithSingleClick"
232+ title:GELocalizedString(@"Close panel with single click.", @"closePanelWithSingleClick")
233+ info:nil];
234+ if(item) {
235+ [result addObject:item];
236+ }
237+ item = [itemClass boolItemWithKey:@"closePanelWhenOpenImage"
238+ title:GELocalizedString(@"Close panel when image opened in default web browser.", @"closePanelWhenOpenImage")
239+ info:nil];
240+ if(item) {
241+ [result addObject:item];
242+ }
243+
244+// item = [itemClass longDescriptionItemItemWithKey:@"pluginDescription"
245+// title:@"title"];
246+// if(item) {
247+// [result addObject:item];
248+// }
249+// item = [itemClass stringItemWithKey:@"pluginDescription"
250+// title:@"title"
251+// info:nil];
252+// if(item) {
253+// [result addObject:item];
254+// }
255+
256+ return result;
257+}
258+
259+-(id)closePanelWithSingleClick
260+{
261+ return [NSNumber numberWithBool:
262+ [[self prefObjectForHost] boolForKey:GroEvaderCloseWithOneClickKey]];
263+}
264+-(void)setClosePanelWithSingleClick:(id)inNumber
265+{
266+ if(hostType != kHostThousand) return;
267+ [[self prefObjectForHost] setBool:[inNumber boolValue]
268+ forKey:GroEvaderCloseWithOneClickKey];
269+}
270+-(BOOL)isClosePanelWithSingleClick
271+{
272+ return [[self closePanelWithSingleClick] boolValue];
273+}
274+
275+
276+-(id)closePanelWhenOpenImage
277+{
278+ if(hostType == kHostThousand) {
279+ return [NSNumber numberWithBool:
280+ [[self prefObjectForHost] boolForKey:GroEvaderCloseWhenOpenImageKey]];
281+ }
282+ return nil;
283+}
284+-(void)setClosePanelWhenOpenImage:(id)inNumber
285+{
286+ if(hostType == kHostThousand) {
287+ [[self prefObjectForHost] setBool:[inNumber boolValue]
288+ forKey:GroEvaderCloseWhenOpenImageKey];
289+ }
290+}
291+-(BOOL)isClosePanelWhenOpenImage
292+{
293+ return [[self closePanelWhenOpenImage] boolValue];
294+}
295+-(id)pluginDescription01
296+{
297+ return GELocalizedString(@"PluginInfo01", @"PluginInfo");
298+}
299+-(void)setPluginDescription01:(id)dummy
300+{
301+ //
302+}
303+-(id)pluginDescription02
304+{
305+ return GELocalizedString(@"PluginInfo02", @"PluginInfo");
306+}
307+-(void)setPluginDescription02:(id)dummy
308+{
309+ //
310+}
311+#pragma mark ## T2URLPreviewing_v100 ##
312+-(NSArray *)previewableURLHosts
313+{
314+ return nil;
315+}
316+-(NSArray *)previewableURLExtensions
317+{
318+ return [NSImage imageFileTypes];
319+}
320+-(BOOL)isPreviewableURLString:(NSString *)urlString type:(T2PreviewType)type
321+{
322+ NSString *extension = [[urlString pathExtension] lowercaseString];
323+ if(!extension) return NO;
324+
325+ return [[self previewableURLExtensions] containsObject:extension];
326+}
327+-(NSString *)partialHTMLForPreviewingURLString:(NSString *)urlString
328+ type:(T2PreviewType)type
329+ minSize:(NSSize *)minSize
330+{
331+ NSURL *aImageURL = [NSURL URLWithString:urlString];
332+ if(!aImageURL) return [NSString stringWithFormat:@"<a href=\"%@\">%@</a>", urlString, urlString];;
333+
334+
335+ [self fitWindowPosition];
336+ [self showImageWithURL:aImageURL];
337+
338+ return @"<body onload=\"javascript:window.close()\"></body>";
339+}
128340
129341 #pragma mark## Download & NSURLDownload Delegate ##
130342 -(void)loadInBackground:(NSURL *)url
@@ -242,6 +454,9 @@ abort: {
242454
243455 [[NSWorkspace sharedWorkspace] openURL:imageURL];
244456 }
457+ if([self isClosePanelWhenOpenImage]) {
458+ [[self window] performClose:self];
459+ }
245460 }
246461
247462 #pragma mark## NSTimer action ##
@@ -292,8 +507,6 @@ abort: {
292507 }
293508
294509 [view setNeedsDisplay:YES];
295-
296-// [self showWindow:self];
297510 }
298511 -(NSImage *)image
299512 {
@@ -339,8 +552,8 @@ abort: {
339552 #pragma mark## NSWindow delegate ##
340553 - (void)windowDidResize:(NSNotification *)notification
341554 {
342- [[[self preferences] imagePreviewerPrefsDict] setObject:[[self window] stringWithSavedFrame]
343- forKey:GroEvaderWidnowRectKey];
555+ [[self prefObjectForHost] setObject:[[self window] stringWithSavedFrame]
556+ forKey:GroEvaderWidnowRectKey];
344557 }
345558 - (void)synchronizeWindowTitleWithDocumentName
346559 {
@@ -382,109 +595,3 @@ abort: {
382595 @end
383596
384597
385-@implementation MosaicView
386-- (void)mouseDown:(NSEvent *)theEvent
387-{
388- if([theEvent clickCount] > 1) {
389- [[self window] performClose:self];
390- }
391-}
392-
393-- (void)setText:(NSString *)string
394-{
395- id temp = text;
396- text = [string copy];
397- [temp release];
398-
399- [self setNeedsDisplay:YES];
400-}
401-
402-- (NSParagraphStyle *)textparagraph
403-{
404- NSMutableParagraphStyle *paragraph = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] autorelease];
405- [paragraph setAlignment:NSCenterTextAlignment];
406-
407- return paragraph;
408-}
409-- (NSDictionary *)textAttributes
410-{
411- NSMutableDictionary *result = [NSMutableDictionary dictionary];
412-
413- [result setObject:[NSColor redColor]
414- forKey:NSForegroundColorAttributeName];
415- [result setObject:[self textparagraph]
416- forKey:NSParagraphStyleAttributeName];
417-
418- return result;
419-}
420-- (void)drawText
421-{
422- if(!text || [text length] == 0) return;
423-
424- NSRect rect = [self frame];
425- NSRect drawRect;
426- id attr = [self textAttributes];
427-
428- drawRect.size = [text sizeWithAttributes:attr];
429-
430- drawRect.origin.x = ( NSWidth(rect) - NSWidth(drawRect) ) * 0.5;
431- drawRect.origin.y = ( NSHeight(rect) - NSHeight(drawRect) ) * 0.5;
432-
433- [text drawInRect:drawRect
434- withAttributes:attr];
435-}
436-- (void)drawImage
437-{
438- if(!context) {
439- context = [[[NSGraphicsContext currentContext] CIContext] retain];
440- }
441- if(!context) {
442- NSLog(@"Abort!!"); return;
443- }
444-
445- CIImage *cImage = [delegate viewImage];
446- if(!cImage) return;
447-
448- NSRect frame = [self bounds];
449- CGRect imageRect = [cImage extent];
450- CGRect cg;
451- float frameAspect, imageAspect;
452- NSRect temp;
453-
454- frameAspect = NSWidth(frame) / NSHeight(frame);
455- imageAspect = CGRectGetWidth(imageRect) / CGRectGetHeight(imageRect);
456-
457- if(imageAspect > frameAspect) {
458- temp = frame;
459- temp.size.height = NSWidth(frame) / imageAspect;
460- temp.origin.y += (NSHeight(frame) - NSHeight(temp)) / 2;
461- frame = temp;
462- } else if(imageAspect < frameAspect) {
463- temp = frame;
464- temp.size.width = NSHeight(frame) * imageAspect;
465- temp.origin.x += (NSWidth(frame) - NSWidth(temp)) / 2;
466- frame = temp;
467- }
468-
469- cg = CGRectMake(NSMinX(frame), NSMinY(frame),
470- NSWidth(frame), NSHeight(frame));
471- cg = CGRectInset(cg, 1, 1);
472- [context drawImage:cImage
473- inRect:cg
474- fromRect:imageRect];
475-}
476-- (void)drawRect:(NSRect)rect
477-{
478- [NSGraphicsContext saveGraphicsState];
479- [[NSColor whiteColor] set];
480- NSRectFill([self bounds]);
481- [[NSColor blackColor] set];
482- NSFrameRect([self bounds]);
483- [NSGraphicsContext restoreGraphicsState];
484-
485- [self drawImage];
486-
487- [self drawText];
488-}
489-
490-@end
Binary files a/GroEvader.nib/keyedobjects.nib and /dev/null differ
--- a/Info.plist
+++ b/Info.plist
@@ -3,25 +3,23 @@
33 <plist version="1.0">
44 <dict>
55 <key>CFBundleDevelopmentRegion</key>
6- <string>Japanese</string>
6+ <string>English</string>
77 <key>CFBundleExecutable</key>
8- <string>ImagePreviewer</string>
8+ <string>${EXECUTABLE_NAME}</string>
99 <key>CFBundleIconFile</key>
1010 <string></string>
1111 <key>CFBundleIdentifier</key>
1212 <string>com.masakih.GroEvader</string>
1313 <key>CFBundleInfoDictionaryVersion</key>
1414 <string>6.0</string>
15+ <key>CFBundleName</key>
16+ <string>${PRODUCT_NAME}</string>
1517 <key>CFBundlePackageType</key>
1618 <string>BNDL</string>
17- <key>CFBundleShortVersionString</key>
18- <string>1.0</string>
1919 <key>CFBundleSignature</key>
2020 <string>????</string>
2121 <key>CFBundleVersion</key>
22- <string>%%REVISION%%</string>
23- <key>NSHumanReadableCopyright</key>
24- <string>GroEvader 1.0 beta</string>
22+ <string>4</string>
2523 <key>NSPrincipalClass</key>
2624 <string>GroEvader</string>
2725 </dict>
Binary files a/Japanese.lproj/Localizable.strings and b/Japanese.lproj/Localizable.strings differ
--- a/MosaicPreview.xcodeproj/masaki.mode1
+++ b/MosaicPreview.xcodeproj/masaki.mode1
@@ -166,7 +166,7 @@
166166 <key>FavBarConfig</key>
167167 <dict>
168168 <key>PBXProjectModuleGUID</key>
169- <string>F49840EE09023B24000A1C84</string>
169+ <string>F4A21F670D0D538F00F569F4</string>
170170 <key>XCBarModuleItemNames</key>
171171 <dict/>
172172 <key>XCBarModuleItems</key>
@@ -234,48 +234,7 @@
234234 </dict>
235235 </array>
236236 <key>OpenEditors</key>
237- <array>
238- <dict>
239- <key>Content</key>
240- <dict>
241- <key>PBXProjectModuleGUID</key>
242- <string>F4E0B7AC0CF66014003E4686</string>
243- <key>PBXProjectModuleLabel</key>
244- <string>CircleGestureView.m</string>
245- <key>PBXSplitModuleInNavigatorKey</key>
246- <dict>
247- <key>Split0</key>
248- <dict>
249- <key>PBXProjectModuleGUID</key>
250- <string>F4E0B7AD0CF66014003E4686</string>
251- <key>PBXProjectModuleLabel</key>
252- <string>CircleGestureView.m</string>
253- <key>_historyCapacity</key>
254- <integer>0</integer>
255- <key>bookmark</key>
256- <string>F4E0B7AE0CF66014003E4686</string>
257- <key>history</key>
258- <array>
259- <string>F4E0B7A90CF65666003E4686</string>
260- </array>
261- </dict>
262- <key>SplitCount</key>
263- <string>1</string>
264- </dict>
265- <key>StatusBarVisibility</key>
266- <true/>
267- </dict>
268- <key>Geometry</key>
269- <dict>
270- <key>Frame</key>
271- <string>{{0, 20}, {727, 751}}</string>
272- <key>PBXModuleWindowStatusBarHidden2</key>
273- <false/>
274- <key>RubberWindowFrame</key>
275- <string>135 40 727 792 0 0 1280 832 </string>
276- </dict>
277- </dict>
278- </array>
237+ <array/>
279238 <key>PerspectiveWidths</key>
280239 <array>
281240 <integer>-1</integer>
@@ -306,8 +265,6 @@
306265 <key>Layout</key>
307266 <array>
308267 <dict>
309- <key>BecomeActive</key>
310- <true/>
311268 <key>ContentConfiguration</key>
312269 <dict>
313270 <key>PBXBottomSmartGroupGIDs</key>
@@ -332,7 +289,7 @@
332289 <dict>
333290 <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
334291 <array>
335- <real>211</real>
292+ <real>186</real>
336293 </array>
337294 <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
338295 <array>
@@ -345,25 +302,26 @@
345302 <array>
346303 <string>089C166AFE841209C02AAC07</string>
347304 <string>08FB77AFFE84173DC02AAC07</string>
305+ <string>32C88E010371C26100C91783</string>
348306 <string>089C167CFE841241C02AAC07</string>
349- <string>F4D8E6D0097ACA78007069CC</string>
350307 <string>089C167DFE841241C02AAC07</string>
351308 <string>089C1671FE841209C02AAC07</string>
352309 <string>1058C7ACFEA557BF11CA2CBB</string>
353310 <string>1058C7AEFEA557BF11CA2CBB</string>
354311 <string>1C37FBAC04509CD000000102</string>
355312 <string>1C37FAAC04509CD000000102</string>
313+ <string>1C37FABC05509CD000000102</string>
356314 </array>
357315 <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
358316 <array>
359317 <array>
360- <integer>4</integer>
361- <integer>2</integer>
318+ <integer>5</integer>
319+ <integer>1</integer>
362320 <integer>0</integer>
363321 </array>
364322 </array>
365323 <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
366- <string>{{0, 0}, {211, 612}}</string>
324+ <string>{{0, 0}, {186, 338}}</string>
367325 </dict>
368326 <key>PBXTopSmartGroupGIDs</key>
369327 <array/>
@@ -375,19 +333,19 @@
375333 <key>GeometryConfiguration</key>
376334 <dict>
377335 <key>Frame</key>
378- <string>{{0, 0}, {228, 630}}</string>
336+ <string>{{0, 0}, {203, 356}}</string>
379337 <key>GroupTreeTableConfiguration</key>
380338 <array>
381339 <string>MainColumn</string>
382- <real>211</real>
340+ <real>186</real>
383341 </array>
384342 <key>RubberWindowFrame</key>
385- <string>6 136 660 671 0 0 1280 832 </string>
343+ <string>-1 142 690 397 0 0 1280 832 </string>
386344 </dict>
387345 <key>Module</key>
388346 <string>PBXSmartGroupTreeModule</string>
389347 <key>Proportion</key>
390- <string>228pt</string>
348+ <string>203pt</string>
391349 </dict>
392350 <dict>
393351 <key>Dock</key>
@@ -398,7 +356,7 @@
398356 <key>PBXProjectModuleGUID</key>
399357 <string>1CE0B20306471E060097A5F4</string>
400358 <key>PBXProjectModuleLabel</key>
401- <string>MyNewFile14.java</string>
359+ <string></string>
402360 <key>PBXSplitModuleInNavigatorKey</key>
403361 <dict>
404362 <key>Split0</key>
@@ -406,7 +364,7 @@
406364 <key>PBXProjectModuleGUID</key>
407365 <string>1CE0B20406471E060097A5F4</string>
408366 <key>PBXProjectModuleLabel</key>
409- <string>MyNewFile14.java</string>
367+ <string></string>
410368 </dict>
411369 <key>SplitCount</key>
412370 <string>1</string>
@@ -417,9 +375,9 @@
417375 <key>GeometryConfiguration</key>
418376 <dict>
419377 <key>Frame</key>
420- <string>{{0, 0}, {427, 0}}</string>
378+ <string>{{0, 0}, {482, 0}}</string>
421379 <key>RubberWindowFrame</key>
422- <string>6 136 660 671 0 0 1280 832 </string>
380+ <string>-1 142 690 397 0 0 1280 832 </string>
423381 </dict>
424382 <key>Module</key>
425383 <string>PBXNavigatorGroup</string>
@@ -427,6 +385,8 @@
427385 <string>0pt</string>
428386 </dict>
429387 <dict>
388+ <key>BecomeActive</key>
389+ <true/>
430390 <key>ContentConfiguration</key>
431391 <dict>
432392 <key>PBXProjectModuleGUID</key>
@@ -437,18 +397,18 @@
437397 <key>GeometryConfiguration</key>
438398 <dict>
439399 <key>Frame</key>
440- <string>{{0, 5}, {427, 625}}</string>
400+ <string>{{0, 5}, {482, 351}}</string>
441401 <key>RubberWindowFrame</key>
442- <string>6 136 660 671 0 0 1280 832 </string>
402+ <string>-1 142 690 397 0 0 1280 832 </string>
443403 </dict>
444404 <key>Module</key>
445405 <string>XCDetailModule</string>
446406 <key>Proportion</key>
447- <string>625pt</string>
407+ <string>351pt</string>
448408 </dict>
449409 </array>
450410 <key>Proportion</key>
451- <string>427pt</string>
411+ <string>482pt</string>
452412 </dict>
453413 </array>
454414 <key>Name</key>
@@ -463,9 +423,9 @@
463423 </array>
464424 <key>TableOfContents</key>
465425 <array>
466- <string>F4E0B7AA0CF66014003E4686</string>
426+ <string>F49E74460D100ED700D00BC0</string>
467427 <string>1CE0B1FE06471DED0097A5F4</string>
468- <string>F4E0B7AB0CF66014003E4686</string>
428+ <string>F49E74470D100ED700D00BC0</string>
469429 <string>1CE0B20306471E060097A5F4</string>
470430 <string>1CE0B20506471E060097A5F4</string>
471431 </array>
@@ -580,11 +540,11 @@
580540 <key>ShelfIsVisible</key>
581541 <false/>
582542 <key>SourceDescription</key>
583- <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
543+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
584544 <key>StatusbarIsVisible</key>
585545 <true/>
586546 <key>TimeStamp</key>
587- <real>217470455.45456699</real>
547+ <real>219333404.66186801</real>
588548 <key>ToolbarDisplayMode</key>
589549 <integer>2</integer>
590550 <key>ToolbarIsVisible</key>
@@ -599,13 +559,17 @@
599559 <integer>5</integer>
600560 <key>WindowOrderList</key>
601561 <array>
602- <string>F4E0B7B50CF66014003E4686</string>
562+ <string>F49E75DC0D101B3300D00BC0</string>
563+ <string>F49E744F0D100ED700D00BC0</string>
564+ <string>F49E74500D100ED700D00BC0</string>
565+ <string>F4A220190D0D5CC700F569F4</string>
566+ <string>F4A21F940D0D596700F569F4</string>
567+ <string>F49E74440D100EC800D00BC0</string>
603568 <string>1CD10A99069EF8BA00B06720</string>
604- <string>F4E0B7AC0CF66014003E4686</string>
605- <string>/Volumes/Panther/Users/masaki/Project/MosaicPreview/MosaicPreview.xcodeproj</string>
569+ <string>/Volumes/Panther/Users/masaki/Project/MosaicPreviewerForThousand/MosaicPreviewerForThousand.xcodeproj</string>
606570 </array>
607571 <key>WindowString</key>
608- <string>6 136 660 671 0 0 1280 832 </string>
572+ <string>-1 142 690 397 0 0 1280 832 </string>
609573 <key>WindowTools</key>
610574 <array>
611575 <dict>
@@ -626,21 +590,21 @@
626590 <key>PBXProjectModuleGUID</key>
627591 <string>1CD0528F0623707200166675</string>
628592 <key>PBXProjectModuleLabel</key>
629- <string></string>
593+ <string>MosaicView.m</string>
630594 <key>StatusBarVisibility</key>
631595 <true/>
632596 </dict>
633597 <key>GeometryConfiguration</key>
634598 <dict>
635599 <key>Frame</key>
636- <string>{{0, 0}, {669, 0}}</string>
600+ <string>{{0, 0}, {500, 218}}</string>
637601 <key>RubberWindowFrame</key>
638- <string>357 126 669 543 0 0 1280 832 </string>
602+ <string>489 150 500 500 0 0 1280 832 </string>
639603 </dict>
640604 <key>Module</key>
641605 <string>PBXNavigatorGroup</string>
642606 <key>Proportion</key>
643- <string>0pt</string>
607+ <string>218pt</string>
644608 </dict>
645609 <dict>
646610 <key>BecomeActive</key>
@@ -648,31 +612,31 @@
648612 <key>ContentConfiguration</key>
649613 <dict>
650614 <key>PBXBuildLogShowsTranscriptDefaultKey</key>
651- <string>{{0, 5}, {669, 492}}</string>
615+ <string>{{0, 131}, {500, 105}}</string>
652616 <key>PBXProjectModuleGUID</key>
653617 <string>XCMainBuildResultsModuleGUID</string>
654618 <key>PBXProjectModuleLabel</key>
655619 <string>ビルド</string>
656620 <key>XCBuildResultsTrigger_Collapse</key>
657- <integer>1022</integer>
621+ <integer>1024</integer>
658622 <key>XCBuildResultsTrigger_Open</key>
659623 <integer>1013</integer>
660624 </dict>
661625 <key>GeometryConfiguration</key>
662626 <dict>
663627 <key>Frame</key>
664- <string>{{0, 5}, {669, 497}}</string>
628+ <string>{{0, 223}, {500, 236}}</string>
665629 <key>RubberWindowFrame</key>
666- <string>357 126 669 543 0 0 1280 832 </string>
630+ <string>489 150 500 500 0 0 1280 832 </string>
667631 </dict>
668632 <key>Module</key>
669633 <string>PBXBuildResultsModule</string>
670634 <key>Proportion</key>
671- <string>497pt</string>
635+ <string>236pt</string>
672636 </dict>
673637 </array>
674638 <key>Proportion</key>
675- <string>502pt</string>
639+ <string>459pt</string>
676640 </dict>
677641 </array>
678642 <key>Name</key>
@@ -685,17 +649,17 @@
685649 <true/>
686650 <key>TableOfContents</key>
687651 <array>
688- <string>F42AA2D80B5F8F7600200AB4</string>
689- <string>F42AA8D40B60DCF100200AB4</string>
652+ <string>F4A21F940D0D596700F569F4</string>
653+ <string>F49E743D0D100EC800D00BC0</string>
690654 <string>1CD0528F0623707200166675</string>
691655 <string>XCMainBuildResultsModuleGUID</string>
692656 </array>
693657 <key>ToolbarConfiguration</key>
694658 <string>xcode.toolbar.config.build</string>
695659 <key>WindowString</key>
696- <string>357 126 669 543 0 0 1280 832 </string>
660+ <string>489 150 500 500 0 0 1280 832 </string>
697661 <key>WindowToolGUID</key>
698- <string>F42AA2D80B5F8F7600200AB4</string>
662+ <string>F4A21F940D0D596700F569F4</string>
699663 <key>WindowToolIsVisible</key>
700664 <false/>
701665 </dict>
@@ -728,8 +692,8 @@
728692 <string>yes</string>
729693 <key>sizes</key>
730694 <array>
731- <string>{{0, 0}, {294, 245}}</string>
732- <string>{{294, 0}, {461, 245}}</string>
695+ <string>{{0, 0}, {333, 278}}</string>
696+ <string>{{333, 0}, {412, 278}}</string>
733697 </array>
734698 </dict>
735699 <key>VerticalSplitView</key>
@@ -744,8 +708,8 @@
744708 <string>yes</string>
745709 <key>sizes</key>
746710 <array>
747- <string>{{0, 0}, {755, 245}}</string>
748- <string>{{0, 245}, {755, 219}}</string>
711+ <string>{{0, 0}, {745, 278}}</string>
712+ <string>{{0, 278}, {745, 251}}</string>
749713 </array>
750714 </dict>
751715 </dict>
@@ -767,18 +731,18 @@
767731 <key>DebugSTDIOWindowFrame</key>
768732 <string>{{200, 200}, {500, 300}}</string>
769733 <key>Frame</key>
770- <string>{{0, 0}, {755, 464}}</string>
734+ <string>{{0, 0}, {745, 529}}</string>
771735 <key>RubberWindowFrame</key>
772- <string>293 327 755 505 0 0 1280 832 </string>
736+ <string>97 261 745 570 0 0 1280 832 </string>
773737 </dict>
774738 <key>Module</key>
775739 <string>PBXDebugSessionModule</string>
776740 <key>Proportion</key>
777- <string>464pt</string>
741+ <string>529pt</string>
778742 </dict>
779743 </array>
780744 <key>Proportion</key>
781- <string>464pt</string>
745+ <string>529pt</string>
782746 </dict>
783747 </array>
784748 <key>Name</key>
@@ -792,31 +756,27 @@
792756 <key>TableOfContents</key>
793757 <array>
794758 <string>1CD10A99069EF8BA00B06720</string>
795- <string>F4E0B7AF0CF66014003E4686</string>
759+ <string>F49E743E0D100EC800D00BC0</string>
796760 <string>1C162984064C10D400B95A72</string>
797- <string>F4E0B7B00CF66014003E4686</string>
798- <string>F4E0B7B10CF66014003E4686</string>
799- <string>F4E0B7B20CF66014003E4686</string>
800- <string>F4E0B7B30CF66014003E4686</string>
801- <string>F4E0B7B40CF66014003E4686</string>
802- <string>F4E0B7B50CF66014003E4686</string>
761+ <string>F49E743F0D100EC800D00BC0</string>
762+ <string>F49E74400D100EC800D00BC0</string>
763+ <string>F49E74410D100EC800D00BC0</string>
764+ <string>F49E74420D100EC800D00BC0</string>
765+ <string>F49E74430D100EC800D00BC0</string>
766+ <string>F49E74440D100EC800D00BC0</string>
803767 </array>
804768 <key>ToolbarConfiguration</key>
805769 <string>xcode.toolbar.config.debug</string>
806770 <key>WindowString</key>
807- <string>293 327 755 505 0 0 1280 832 </string>
771+ <string>97 261 745 570 0 0 1280 832 </string>
808772 <key>WindowToolGUID</key>
809773 <string>1CD10A99069EF8BA00B06720</string>
810774 <key>WindowToolIsVisible</key>
811775 <true/>
812776 </dict>
813777 <dict>
814- <key>FirstTimeWindowDisplayed</key>
815- <false/>
816778 <key>Identifier</key>
817779 <string>windowTool.find</string>
818- <key>IsVertical</key>
819- <true/>
820780 <key>Layout</key>
821781 <array>
822782 <dict>
@@ -831,16 +791,26 @@
831791 <key>PBXProjectModuleGUID</key>
832792 <string>1CDD528C0622207200134675</string>
833793 <key>PBXProjectModuleLabel</key>
834- <string></string>
794+ <string>&lt;No Editor&gt;</string>
795+ <key>PBXSplitModuleInNavigatorKey</key>
796+ <dict>
797+ <key>Split0</key>
798+ <dict>
799+ <key>PBXProjectModuleGUID</key>
800+ <string>1CD0528D0623707200166675</string>
801+ </dict>
802+ <key>SplitCount</key>
803+ <string>1</string>
804+ </dict>
835805 <key>StatusBarVisibility</key>
836- <true/>
806+ <integer>1</integer>
837807 </dict>
838808 <key>GeometryConfiguration</key>
839809 <dict>
840810 <key>Frame</key>
841- <string>{{0, 0}, {781, 212}}</string>
811+ <string>{{0, 0}, {781, 167}}</string>
842812 <key>RubberWindowFrame</key>
843- <string>304 339 781 470 0 0 1280 832 </string>
813+ <string>62 385 781 470 0 0 1440 878 </string>
844814 </dict>
845815 <key>Module</key>
846816 <string>PBXNavigatorGroup</string>
@@ -849,33 +819,33 @@
849819 </dict>
850820 </array>
851821 <key>Proportion</key>
852- <string>212pt</string>
822+ <string>50%</string>
853823 </dict>
854824 <dict>
855825 <key>BecomeActive</key>
856- <true/>
826+ <integer>1</integer>
857827 <key>ContentConfiguration</key>
858828 <dict>
859829 <key>PBXProjectModuleGUID</key>
860830 <string>1CD0528E0623707200166675</string>
861831 <key>PBXProjectModuleLabel</key>
862- <string>プロジェクトの検索</string>
832+ <string>Project Find</string>
863833 </dict>
864834 <key>GeometryConfiguration</key>
865835 <dict>
866836 <key>Frame</key>
867- <string>{{0, 217}, {781, 212}}</string>
837+ <string>{{8, 0}, {773, 254}}</string>
868838 <key>RubberWindowFrame</key>
869- <string>304 339 781 470 0 0 1280 832 </string>
839+ <string>62 385 781 470 0 0 1440 878 </string>
870840 </dict>
871841 <key>Module</key>
872842 <string>PBXProjectFindModule</string>
873843 <key>Proportion</key>
874- <string>212pt</string>
844+ <string>50%</string>
875845 </dict>
876846 </array>
877847 <key>Proportion</key>
878- <string>429pt</string>
848+ <string>428pt</string>
879849 </dict>
880850 </array>
881851 <key>Name</key>
@@ -885,21 +855,23 @@
885855 <string>PBXProjectFindModule</string>
886856 </array>
887857 <key>StatusbarIsVisible</key>
888- <true/>
858+ <integer>1</integer>
889859 <key>TableOfContents</key>
890860 <array>
891861 <string>1C530D57069F1CE1000CFCEE</string>
892- <string>F42AA6620B5FB83C00200AB4</string>
893- <string>F42AA6630B5FB83C00200AB4</string>
862+ <string>1C530D58069F1CE1000CFCEE</string>
863+ <string>1C530D59069F1CE1000CFCEE</string>
894864 <string>1CDD528C0622207200134675</string>
865+ <string>1C530D5A069F1CE1000CFCEE</string>
866+ <string>1CE0B1FE06471DED0097A5F4</string>
895867 <string>1CD0528E0623707200166675</string>
896868 </array>
897869 <key>WindowString</key>
898- <string>304 339 781 470 0 0 1280 832 </string>
870+ <string>62 385 781 470 0 0 1440 878 </string>
899871 <key>WindowToolGUID</key>
900872 <string>1C530D57069F1CE1000CFCEE</string>
901873 <key>WindowToolIsVisible</key>
902- <false/>
874+ <integer>0</integer>
903875 </dict>
904876 <dict>
905877 <key>Identifier</key>
@@ -930,18 +902,18 @@
930902 <key>GeometryConfiguration</key>
931903 <dict>
932904 <key>Frame</key>
933- <string>{{0, 0}, {584, 571}}</string>
905+ <string>{{0, 0}, {408, 334}}</string>
934906 <key>RubberWindowFrame</key>
935- <string>648 14 584 612 0 0 1280 832 </string>
907+ <string>792 457 408 375 0 0 1280 832 </string>
936908 </dict>
937909 <key>Module</key>
938910 <string>PBXDebugCLIModule</string>
939911 <key>Proportion</key>
940- <string>571pt</string>
912+ <string>334pt</string>
941913 </dict>
942914 </array>
943915 <key>Proportion</key>
944- <string>571pt</string>
916+ <string>334pt</string>
945917 </dict>
946918 </array>
947919 <key>Name</key>
@@ -954,24 +926,20 @@
954926 <true/>
955927 <key>TableOfContents</key>
956928 <array>
957- <string>F498428D09024971000A1C84</string>
958- <string>F42AA31D0B5F90CB00200AB4</string>
929+ <string>F4A220190D0D5CC700F569F4</string>
930+ <string>F49E74450D100EC800D00BC0</string>
959931 <string>1C78EAAC065D492600B07095</string>
960932 </array>
961933 <key>WindowString</key>
962- <string>648 14 584 612 0 0 1280 832 </string>
934+ <string>792 457 408 375 0 0 1280 832 </string>
963935 <key>WindowToolGUID</key>
964- <string>F498428D09024971000A1C84</string>
936+ <string>F4A220190D0D5CC700F569F4</string>
965937 <key>WindowToolIsVisible</key>
966938 <false/>
967939 </dict>
968940 <dict>
969- <key>FirstTimeWindowDisplayed</key>
970- <false/>
971941 <key>Identifier</key>
972942 <string>windowTool.run</string>
973- <key>IsVertical</key>
974- <true/>
975943 <key>Layout</key>
976944 <array>
977945 <dict>
@@ -985,7 +953,7 @@
985953 <key>PBXProjectModuleGUID</key>
986954 <string>1CD0528B0623707200166675</string>
987955 <key>PBXProjectModuleLabel</key>
988- <string>実行</string>
956+ <string>Run</string>
989957 <key>Runner</key>
990958 <dict>
991959 <key>HorizontalSplitView</key>
@@ -1000,8 +968,8 @@
1000968 <string>yes</string>
1001969 <key>sizes</key>
1002970 <array>
1003- <string>{{0, 0}, {367, 168}}</string>
1004- <string>{{0, 173}, {367, 270}}</string>
971+ <string>{{0, 0}, {493, 167}}</string>
972+ <string>{{0, 176}, {493, 267}}</string>
1005973 </array>
1006974 </dict>
1007975 <key>VerticalSplitView</key>
@@ -1016,8 +984,8 @@
1016984 <string>yes</string>
1017985 <key>sizes</key>
1018986 <array>
1019- <string>{{0, 0}, {406, 443}}</string>
1020- <string>{{411, 0}, {517, 443}}</string>
987+ <string>{{0, 0}, {405, 443}}</string>
988+ <string>{{414, 0}, {514, 443}}</string>
1021989 </array>
1022990 </dict>
1023991 </dict>
@@ -1025,18 +993,18 @@
1025993 <key>GeometryConfiguration</key>
1026994 <dict>
1027995 <key>Frame</key>
1028- <string>{{0, 0}, {485, 301}}</string>
996+ <string>{{0, 0}, {460, 159}}</string>
1029997 <key>RubberWindowFrame</key>
1030- <string>717 299 485 342 0 0 1280 832 </string>
998+ <string>316 696 459 200 0 0 1280 1002 </string>
1031999 </dict>
10321000 <key>Module</key>
10331001 <string>PBXRunSessionModule</string>
10341002 <key>Proportion</key>
1035- <string>301pt</string>
1003+ <string>159pt</string>
10361004 </dict>
10371005 </array>
10381006 <key>Proportion</key>
1039- <string>301pt</string>
1007+ <string>159pt</string>
10401008 </dict>
10411009 </array>
10421010 <key>Name</key>
@@ -1046,22 +1014,22 @@
10461014 <string>PBXRunSessionModule</string>
10471015 </array>
10481016 <key>StatusbarIsVisible</key>
1049- <true/>
1017+ <integer>1</integer>
10501018 <key>TableOfContents</key>
10511019 <array>
10521020 <string>1C0AD2B3069F1EA900FABCE6</string>
1053- <string>F4E2D6BE097E7F0600F3B25C</string>
1021+ <string>1C0AD2B4069F1EA900FABCE6</string>
10541022 <string>1CD0528B0623707200166675</string>
1055- <string>F4E2D6BF097E7F0600F3B25C</string>
1023+ <string>1C0AD2B5069F1EA900FABCE6</string>
10561024 </array>
10571025 <key>ToolbarConfiguration</key>
10581026 <string>xcode.toolbar.config.run</string>
10591027 <key>WindowString</key>
1060- <string>717 299 485 342 0 0 1280 832 </string>
1028+ <string>316 696 459 200 0 0 1280 1002 </string>
10611029 <key>WindowToolGUID</key>
10621030 <string>1C0AD2B3069F1EA900FABCE6</string>
10631031 <key>WindowToolIsVisible</key>
1064- <false/>
1032+ <integer>0</integer>
10651033 </dict>
10661034 <dict>
10671035 <key>Identifier</key>
@@ -1176,8 +1144,6 @@
11761144 <key>Dock</key>
11771145 <array>
11781146 <dict>
1179- <key>BecomeActive</key>
1180- <true/>
11811147 <key>ContentConfiguration</key>
11821148 <dict>
11831149 <key>PBXBottomSmartGroupGIDs</key>
@@ -1231,7 +1197,7 @@
12311197 <real>168</real>
12321198 </array>
12331199 <key>RubberWindowFrame</key>
1234- <string>322 377 744 409 0 0 1280 832 </string>
1200+ <string>477 169 744 409 0 0 1280 832 </string>
12351201 </dict>
12361202 <key>Module</key>
12371203 <string>PBXSmartGroupTreeModule</string>
@@ -1239,6 +1205,8 @@
12391205 <string>185pt</string>
12401206 </dict>
12411207 <dict>
1208+ <key>BecomeActive</key>
1209+ <true/>
12421210 <key>ContentConfiguration</key>
12431211 <dict>
12441212 <key>PBXProjectModuleGUID</key>
@@ -1251,7 +1219,7 @@
12511219 <key>Frame</key>
12521220 <string>{{190, 0}, {554, 368}}</string>
12531221 <key>RubberWindowFrame</key>
1254- <string>322 377 744 409 0 0 1280 832 </string>
1222+ <string>477 169 744 409 0 0 1280 832 </string>
12551223 </dict>
12561224 <key>Module</key>
12571225 <string>XCDetailModule</string>
@@ -1278,17 +1246,17 @@
12781246 <true/>
12791247 <key>TableOfContents</key>
12801248 <array>
1281- <string>F42AA3990B5F927600200AB4</string>
1282- <string>F42AA39A0B5F927600200AB4</string>
1249+ <string>F49E75DC0D101B3300D00BC0</string>
1250+ <string>F49E75DD0D101B3300D00BC0</string>
12831251 <string>1CE0B1FE06471DED0097A5F4</string>
12841252 <string>1CA1AED706398EBD00589147</string>
12851253 </array>
12861254 <key>ToolbarConfiguration</key>
12871255 <string>xcode.toolbar.config.breakpoints</string>
12881256 <key>WindowString</key>
1289- <string>322 377 744 409 0 0 1280 832 </string>
1257+ <string>477 169 744 409 0 0 1280 832 </string>
12901258 <key>WindowToolGUID</key>
1291- <string>F42AA3990B5F927600200AB4</string>
1259+ <string>F49E75DC0D101B3300D00BC0</string>
12921260 <key>WindowToolIsVisible</key>
12931261 <false/>
12941262 </dict>
--- a/MosaicPreview.xcodeproj/masaki.pbxuser
+++ b/MosaicPreview.xcodeproj/masaki.pbxuser
@@ -2,32 +2,41 @@
22 {
33 089C1669FE841209C02AAC07 /* Project object */ = {
44 activeBuildConfigurationName = Release;
5- activeExecutable = F42AA2E00B5F906200200AB4 /* SB */;
6- activeTarget = 8D5B49AC048680CD000E48DA /* GroEvader */;
5+ activeExecutable = F4A2200C0D0D5C9D00F569F4 /* Thousand */;
6+ activeTarget = 8D5B49AC048680CD000E48DA /* GroEvaderForThousand */;
77 addToTargets = (
8- 8D5B49AC048680CD000E48DA /* GroEvader */,
8+ 8D5B49AC048680CD000E48DA /* GroEvaderForThousand */,
99 );
1010 breakpoints = (
11- F42AA5200B5FA85100200AB4 /* GroEvader.m:183 */,
12- F42AA6980B5FBC0B00200AB4 /* GroEvader.m:312 */,
11+ F42129A70D0EDF6D00FABC42 /* +[T2PreferenceItem labelItemWithKey:] */,
12+ F42129BE0D0EDFE700FABC42 /* +[T2PreferenceItem smallTextStyleTextFieldWithString:] */,
13+ F42129D70D0EE37F00FABC42 /* +[T2PreferenceItem topTitleItemWithTitle:info:] */,
14+ F42129E60D0EE40000FABC42 /* +[T2PreferenceItem stringItemWithKey:title:info:] */,
15+ F42129EE0D0EE4C300FABC42 /* +[T2PreferenceItem labelStyleTextFieldWithString:] */,
16+ F4212A040D0EE53300FABC42 /* -[T2PreferenceItem boundViewsWithBasePath:controller:superViewWidth:] */,
17+ F4212A170D0EE68300FABC42 /* +[T2PreferenceItem customViewItemWithView:] */,
18+ F4212A440D0EE7A400FABC42 /* -[THImagePreviewer preferenceItems] */,
19+ F4212AA90D0EED6800FABC42 /* -[THStandardThreadProcessor preferenceItems] */,
20+ F49E76600D1020B100D00BC0 /* -[T2PreferenceItem setType:] */,
21+ F49E76660D1020BC00D00BC0 /* -[T2PreferenceItem setSizeType:] */,
1322 );
14- breakpointsGroup = F49843F109026F8B000A1C84 /* XCBreakpointsBucket */;
15- codeSenseManager = F49840F809023B24000A1C84 /* Code sense */;
23+ breakpointsGroup = F4A2207B0D0D603F00F569F4 /* XCBreakpointsBucket */;
24+ codeSenseManager = F4A21F690D0D538F00F569F4 /* Code sense */;
1625 executables = (
17- F498410109023E47000A1C84 /* BS */,
18- F42AA2E00B5F906200200AB4 /* SB */,
26+ F4A2200C0D0D5C9D00F569F4 /* Thousand */,
27+ F4F96D9A0D0D77D500222F38 /* BathyScaphe */,
1928 );
2029 perUserDictionary = {
2130 "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = {
22- PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
31+ PBXFileTableDataSourceColumnSortingDirectionKey = 1;
2332 PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID;
2433 PBXFileTableDataSourceColumnWidthsKey = (
2534 20,
2635 20,
27- 210,
36+ 244,
2837 20,
2938 110,
30- 109,
39+ 75,
3140 20,
3241 );
3342 PBXFileTableDataSourceColumnsKey = (
@@ -46,7 +55,7 @@
4655 PBXFileTableDataSourceColumnWidthsKey = (
4756 20,
4857 300,
49- 78,
58+ 133,
5059 );
5160 PBXFileTableDataSourceColumnsKey = (
5261 PBXErrorsWarningsDataSource_TypeID,
@@ -60,7 +69,7 @@
6069 PBXFileTableDataSourceColumnWidthsKey = (
6170 22,
6271 300,
63- 76,
72+ 131,
6473 );
6574 PBXFileTableDataSourceColumnsKey = (
6675 PBXExecutablesDataSource_ActiveFlagID,
@@ -73,7 +82,7 @@
7382 PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
7483 PBXFileTableDataSourceColumnWidthsKey = (
7584 20,
76- 188,
85+ 243,
7786 20,
7887 48,
7988 43,
@@ -90,25 +99,13 @@
9099 PBXFileDataSource_Target_ColumnID,
91100 );
92101 };
93- PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = {
94- PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
95- PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
96- PBXFileTableDataSourceColumnWidthsKey = (
97- 200,
98- 120,
99- );
100- PBXFileTableDataSourceColumnsKey = (
101- PBXFindDataSource_MessageID,
102- PBXFindDataSource_LocationID,
103- );
104- };
105102 PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
106103 PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
107104 PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
108105 PBXFileTableDataSourceColumnWidthsKey = (
109106 20,
110107 200,
111- 10,
108+ 63,
112109 20,
113110 48,
114111 43,
@@ -124,29 +121,243 @@
124121 PBXFileDataSource_Warnings_ColumnID,
125122 );
126123 };
127- PBXPerProjectTemplateStateSaveDate = 217470455;
128- PBXWorkspaceStateSaveDate = 217470455;
129- };
130- perUserProjectItems = {
131- F4E0B7A90CF65666003E4686 /* PBXBookmark */ = F4E0B7A90CF65666003E4686 /* PBXBookmark */;
132- F4E0B7AE0CF66014003E4686 /* PBXTextBookmark */ = F4E0B7AE0CF66014003E4686 /* PBXTextBookmark */;
124+ PBXPerProjectTemplateStateSaveDate = 219156106;
125+ PBXWorkspaceStateSaveDate = 219156106;
133126 };
134- sourceControlManager = F49840F709023B24000A1C84 /* Source Control */;
127+ sourceControlManager = F4A21F680D0D538F00F569F4 /* Source Control */;
135128 userBuildSettings = {
136129 };
137130 };
138- 8D5B49AC048680CD000E48DA /* GroEvader */ = {
131+ 8D5B49AC048680CD000E48DA /* GroEvaderForThousand */ = {
139132 activeExec = 0;
140133 };
141134 8D5B49B7048680CD000E48DA /* Info.plist */ = {
142135 uiCtxt = {
143- sepNavIntBoundsRect = "{{0, 0}, {686, 759}}";
144- sepNavSelRange = "{523, 0}";
145- sepNavVisRect = "{{0, 0}, {673, 759}}";
146- sepNavWindowFrame = "{{14, -5}, {718, 832}}";
136+ sepNavIntBoundsRect = "{{0, 0}, {686, 747}}";
137+ sepNavSelRange = "{0, 0}";
138+ sepNavVisRect = "{{0, 0}, {666, 747}}";
139+ sepNavWindowFrame = "{{15, 7}, {711, 820}}";
140+ };
141+ };
142+ F42129A70D0EDF6D00FABC42 /* +[T2PreferenceItem labelItemWithKey:] */ = {
143+ isa = PBXSymbolicBreakpoint;
144+ actions = (
145+ );
146+ breakpointStyle = 1;
147+ continueAfterActions = 0;
148+ delayBeforeContinue = 0;
149+ hitCount = 1;
150+ location = Thousand2ch;
151+ modificationTime = 219240477.328659;
152+ state = 2;
153+ symbolName = "+[T2PreferenceItem labelItemWithKey:]";
154+ };
155+ F42129BE0D0EDFE700FABC42 /* +[T2PreferenceItem smallTextStyleTextFieldWithString:] */ = {
156+ isa = PBXSymbolicBreakpoint;
157+ actions = (
158+ );
159+ breakpointStyle = 1;
160+ continueAfterActions = 0;
161+ delayBeforeContinue = 0;
162+ hitCount = 1;
163+ location = Thousand2ch;
164+ modificationTime = 219240477.332185;
165+ state = 2;
166+ symbolName = "+[T2PreferenceItem smallTextStyleTextFieldWithString:]";
167+ };
168+ F42129D70D0EE37F00FABC42 /* +[T2PreferenceItem topTitleItemWithTitle:info:] */ = {
169+ isa = PBXSymbolicBreakpoint;
170+ actions = (
171+ );
172+ breakpointStyle = 1;
173+ continueAfterActions = 0;
174+ delayBeforeContinue = 0;
175+ hitCount = 1;
176+ location = Thousand2ch;
177+ modificationTime = 219240477.335555;
178+ state = 2;
179+ symbolName = "+[T2PreferenceItem topTitleItemWithTitle:info:]";
180+ };
181+ F42129E60D0EE40000FABC42 /* +[T2PreferenceItem stringItemWithKey:title:info:] */ = {
182+ isa = PBXSymbolicBreakpoint;
183+ actions = (
184+ );
185+ breakpointStyle = 1;
186+ continueAfterActions = 0;
187+ delayBeforeContinue = 0;
188+ hitCount = 1;
189+ location = Thousand2ch;
190+ modificationTime = 219240477.338829;
191+ state = 2;
192+ symbolName = "+[T2PreferenceItem stringItemWithKey:title:info:]";
193+ };
194+ F42129EE0D0EE4C300FABC42 /* +[T2PreferenceItem labelStyleTextFieldWithString:] */ = {
195+ isa = PBXSymbolicBreakpoint;
196+ actions = (
197+ );
198+ breakpointStyle = 1;
199+ continueAfterActions = 0;
200+ delayBeforeContinue = 0;
201+ hitCount = 1;
202+ location = Thousand2ch;
203+ modificationTime = 219240477.341818;
204+ state = 2;
205+ symbolName = "+[T2PreferenceItem labelStyleTextFieldWithString:]";
206+ };
207+ F4212A040D0EE53300FABC42 /* -[T2PreferenceItem boundViewsWithBasePath:controller:superViewWidth:] */ = {
208+ isa = PBXSymbolicBreakpoint;
209+ actions = (
210+ );
211+ breakpointStyle = 1;
212+ continueAfterActions = 0;
213+ delayBeforeContinue = 0;
214+ hitCount = 1;
215+ location = Thousand2ch;
216+ modificationTime = 219240477.344851;
217+ state = 2;
218+ symbolName = "-[T2PreferenceItem boundViewsWithBasePath:controller:superViewWidth:]";
219+ };
220+ F4212A170D0EE68300FABC42 /* +[T2PreferenceItem customViewItemWithView:] */ = {
221+ isa = PBXSymbolicBreakpoint;
222+ actions = (
223+ );
224+ breakpointStyle = 1;
225+ continueAfterActions = 0;
226+ delayBeforeContinue = 0;
227+ hitCount = 1;
228+ location = Thousand2ch;
229+ modificationTime = 219240477.348049;
230+ state = 1;
231+ symbolName = "+[T2PreferenceItem customViewItemWithView:]";
232+ };
233+ F4212A440D0EE7A400FABC42 /* -[THImagePreviewer preferenceItems] */ = {
234+ isa = PBXSymbolicBreakpoint;
235+ actions = (
236+ );
237+ breakpointStyle = 1;
238+ continueAfterActions = 0;
239+ delayBeforeContinue = 0;
240+ hitCount = 1;
241+ location = Thousand;
242+ modificationTime = 219240477.351145;
243+ state = 2;
244+ symbolName = "-[THImagePreviewer preferenceItems]";
245+ };
246+ F4212AA90D0EED6800FABC42 /* -[THStandardThreadProcessor preferenceItems] */ = {
247+ isa = PBXSymbolicBreakpoint;
248+ actions = (
249+ );
250+ breakpointStyle = 1;
251+ continueAfterActions = 0;
252+ delayBeforeContinue = 0;
253+ hitCount = 1;
254+ location = Thousand;
255+ modificationTime = 219240477.353735;
256+ state = 2;
257+ symbolName = "-[THStandardThreadProcessor preferenceItems]";
258+ };
259+ F49E76600D1020B100D00BC0 /* -[T2PreferenceItem setType:] */ = {
260+ isa = PBXSymbolicBreakpoint;
261+ actions = (
262+ );
263+ breakpointStyle = 1;
264+ continueAfterActions = 0;
265+ delayBeforeContinue = 0;
266+ hitCount = 1;
267+ location = Thousand2ch;
268+ modificationTime = 219240477.356438;
269+ state = 1;
270+ symbolName = "-[T2PreferenceItem setType:]";
271+ };
272+ F49E76660D1020BC00D00BC0 /* -[T2PreferenceItem setSizeType:] */ = {
273+ isa = PBXSymbolicBreakpoint;
274+ actions = (
275+ );
276+ breakpointStyle = 1;
277+ continueAfterActions = 0;
278+ delayBeforeContinue = 0;
279+ hitCount = 1;
280+ location = Thousand2ch;
281+ modificationTime = 219240477.359449;
282+ state = 1;
283+ symbolName = "-[T2PreferenceItem setSizeType:]";
284+ };
285+ F49E774D0D11741800D00BC0 /* MosaicView.h */ = {
286+ uiCtxt = {
287+ sepNavIntBoundsRect = "{{0, 0}, {666, 747}}";
288+ sepNavSelRange = "{473, 0}";
289+ sepNavVisRect = "{{0, 0}, {666, 747}}";
290+ };
291+ };
292+ F49E774E0D11741800D00BC0 /* MosaicView.m */ = {
293+ uiCtxt = {
294+ sepNavIntBoundsRect = "{{0, 0}, {680, 1680}}";
295+ sepNavSelRange = "{1270, 0}";
296+ sepNavVisRect = "{{0, 0}, {666, 747}}";
297+ sepNavWindowFrame = "{{511, 12}, {711, 820}}";
147298 };
148299 };
149- F42AA2E00B5F906200200AB4 /* SB */ = {
300+ F4A21F680D0D538F00F569F4 /* Source Control */ = {
301+ isa = PBXSourceControlManager;
302+ fallbackIsa = XCSourceControlManager;
303+ isSCMEnabled = 0;
304+ scmConfiguration = {
305+ };
306+ scmType = "";
307+ };
308+ F4A21F690D0D538F00F569F4 /* Code sense */ = {
309+ isa = PBXCodeSenseManager;
310+ indexTemplatePath = "";
311+ };
312+ F4A21F6A0D0D53A200F569F4 /* T2PluginProtocols.h */ = {
313+ uiCtxt = {
314+ sepNavIntBoundsRect = "{{0, 0}, {666, 2842}}";
315+ sepNavSelRange = "{884, 0}";
316+ sepNavVisRect = "{{0, 70}, {666, 747}}";
317+ sepNavWindowFrame = "{{15, 6}, {711, 820}}";
318+ };
319+ };
320+ F4A21F6F0D0D562800F569F4 /* CircleGestureView.h */ = {
321+ uiCtxt = {
322+ sepNavIntBoundsRect = "{{0, 0}, {666, 747}}";
323+ sepNavSelRange = "{278, 0}";
324+ sepNavVisRect = "{{0, 0}, {666, 747}}";
325+ sepNavWindowFrame = "{{15, 7}, {711, 820}}";
326+ };
327+ };
328+ F4A21F700D0D562800F569F4 /* CircleGestureView.m */ = {
329+ uiCtxt = {
330+ sepNavIntBoundsRect = "{{0, 0}, {666, 1470}}";
331+ sepNavSelRange = "{1492, 0}";
332+ sepNavVisRect = "{{0, 723}, {666, 747}}";
333+ sepNavWindowFrame = "{{520, 7}, {711, 820}}";
334+ };
335+ };
336+ F4A21F710D0D562800F569F4 /* GroEvader.h */ = {
337+ uiCtxt = {
338+ sepNavIntBoundsRect = "{{0, 0}, {666, 994}}";
339+ sepNavSelRange = "{954, 0}";
340+ sepNavVisRect = "{{0, 247}, {666, 747}}";
341+ sepNavWindowFrame = "{{15, 7}, {711, 820}}";
342+ };
343+ };
344+ F4A21F720D0D562800F569F4 /* GroEvader.m */ = {
345+ uiCtxt = {
346+ sepNavIntBoundsRect = "{{0, 0}, {878, 8372}}";
347+ sepNavSelRange = "{3034, 0}";
348+ sepNavVisRect = "{{0, 1746}, {698, 219}}";
349+ sepNavWindowFrame = "{{533, 11}, {711, 820}}";
350+ };
351+ };
352+ F4A21F740D0D562900F569F4 /* TemporaryFolder.m */ = {
353+ uiCtxt = {
354+ sepNavIntBoundsRect = "{{0, 0}, {666, 1204}}";
355+ sepNavSelRange = "{1234, 16}";
356+ sepNavVisRect = "{{0, 433}, {666, 747}}";
357+ sepNavWindowFrame = "{{15, 7}, {711, 820}}";
358+ };
359+ };
360+ F4A2200C0D0D5C9D00F569F4 /* Thousand */ = {
150361 isa = PBXExecutable;
151362 activeArgIndex = 2147483647;
152363 activeArgIndices = (
@@ -165,9 +376,9 @@
165376 );
166377 executableSystemSymbolLevel = 0;
167378 executableUserSymbolLevel = 0;
168- launchableReference = F42AA2E10B5F906200200AB4 /* Starlight Breaker.app */;
379+ launchableReference = F4A2200D0D0D5C9D00F569F4 /* Thousand.app */;
169380 libgmallocEnabled = 0;
170- name = SB;
381+ name = Thousand;
171382 savedGlobals = {
172383 };
173384 sourceDirectories = (
@@ -214,95 +425,39 @@
214425 $xer = 1;
215426 };
216427 };
217- F42AA2E10B5F906200200AB4 /* Starlight Breaker.app */ = {
218- isa = PBXFileReference;
219- lastKnownFileType = wrapper.application;
220- name = "Starlight Breaker.app";
221- path = "/Users/masaki/BathyScaphe/bathyscaphe-HEAD/application/build/Development/Starlight Breaker.app";
222- sourceTree = "<absolute>";
223- };
224- F42AA5200B5FA85100200AB4 /* GroEvader.m:183 */ = {
225- isa = PBXFileBreakpoint;
226- actions = (
227- );
228- breakpointStyle = 0;
229- continueAfterActions = 0;
230- delayBeforeContinue = 0;
231- fileReference = F49840FE09023DEA000A1C84 /* GroEvader.m */;
232- functionName = "-downloadDidFinish:";
233- hitCount = 1;
234- lineNumber = 183;
235- location = ImagePreviewer;
236- modificationTime = 190831256.472745;
237- state = 2;
238- };
239- F42AA6980B5FBC0B00200AB4 /* GroEvader.m:312 */ = {
240- isa = PBXFileBreakpoint;
241- actions = (
242- );
243- breakpointStyle = 0;
244- continueAfterActions = 0;
245- delayBeforeContinue = 0;
246- fileReference = F49840FE09023DEA000A1C84 /* GroEvader.m */;
247- functionName = "-viewImage";
248- hitCount = 1;
249- lineNumber = 312;
250- location = ImagePreviewer;
251- modificationTime = 190831256.47806;
252- state = 2;
253- };
254- F444D6C509759CAF002D0363 /* BathyScaphe.app */ = {
428+ F4A2200D0D0D5C9D00F569F4 /* Thousand.app */ = {
255429 isa = PBXFileReference;
256430 explicitFileType = wrapper.application;
257- name = BathyScaphe.app;
258- path = /Users/masaki/Applications/BathyScaphe.app;
431+ name = Thousand.app;
432+ path = /Users/masaki/Applications/Thousand.app;
259433 sourceTree = "<absolute>";
260434 };
261- F44F461B097A9CAA0035FB5B /* CircleGestureView.h */ = {
262- uiCtxt = {
263- sepNavIntBoundsRect = "{{0, 0}, {682, 719}}";
264- sepNavSelRange = "{427, 0}";
265- sepNavVisRect = "{{0, 0}, {682, 719}}";
266- sepNavWindowFrame = "{{287, 40}, {727, 792}}";
267- };
268- };
269- F44F461C097A9CAA0035FB5B /* CircleGestureView.m */ = {
270- uiCtxt = {
271- sepNavIntBoundsRect = "{{0, 0}, {682, 1470}}";
272- sepNavSelRange = "{1429, 0}";
273- sepNavVisRect = "{{0, 0}, {682, 719}}";
274- sepNavWindowFrame = "{{135, 40}, {727, 792}}";
275- };
276- };
277- F49840F709023B24000A1C84 /* Source Control */ = {
278- isa = PBXSourceControlManager;
279- fallbackIsa = XCSourceControlManager;
280- isSCMEnabled = 0;
281- scmConfiguration = {
282- };
283- scmType = "";
284- };
285- F49840F809023B24000A1C84 /* Code sense */ = {
286- isa = PBXCodeSenseManager;
287- indexTemplatePath = "";
288- };
289- F49840FD09023DEA000A1C84 /* GroEvader.h */ = {
290- uiCtxt = {
291- sepNavIntBoundsRect = "{{0, 0}, {633, 966}}";
292- sepNavSelRange = "{786, 0}";
293- sepNavVisRect = "{{0, 209}, {633, 757}}";
294- sepNavWindowFrame = "{{66, 0}, {718, 832}}";
295- };
435+ F4A2207B0D0D603F00F569F4 /* XCBreakpointsBucket */ = {
436+ isa = XCBreakpointsBucket;
437+ name = "プロジェクトブレークポイント";
438+ objects = (
439+ F42129A70D0EDF6D00FABC42 /* +[T2PreferenceItem labelItemWithKey:] */,
440+ F42129BE0D0EDFE700FABC42 /* +[T2PreferenceItem smallTextStyleTextFieldWithString:] */,
441+ F42129D70D0EE37F00FABC42 /* +[T2PreferenceItem topTitleItemWithTitle:info:] */,
442+ F42129E60D0EE40000FABC42 /* +[T2PreferenceItem stringItemWithKey:title:info:] */,
443+ F42129EE0D0EE4C300FABC42 /* +[T2PreferenceItem labelStyleTextFieldWithString:] */,
444+ F4212A040D0EE53300FABC42 /* -[T2PreferenceItem boundViewsWithBasePath:controller:superViewWidth:] */,
445+ F4212A170D0EE68300FABC42 /* +[T2PreferenceItem customViewItemWithView:] */,
446+ F4212A440D0EE7A400FABC42 /* -[THImagePreviewer preferenceItems] */,
447+ F4212AA90D0EED6800FABC42 /* -[THStandardThreadProcessor preferenceItems] */,
448+ F49E76600D1020B100D00BC0 /* -[T2PreferenceItem setType:] */,
449+ F49E76660D1020BC00D00BC0 /* -[T2PreferenceItem setSizeType:] */,
450+ );
296451 };
297- F49840FE09023DEA000A1C84 /* GroEvader.m */ = {
452+ F4F96D6B0D0D76B200222F38 /* BSImagePreviewerInterface.h */ = {
298453 uiCtxt = {
299- sepNavIntBoundsRect = "{{0, 0}, {878, 6874}}";
300- sepNavSelRange = "{10627, 0}";
301- sepNavVisRect = "{{0, 4982}, {633, 757}}";
302- sepNavWindowFrame = "{{465, 0}, {718, 832}}";
454+ sepNavIntBoundsRect = "{{0, 0}, {690, 747}}";
455+ sepNavSelRange = "{356, 0}";
456+ sepNavVisRect = "{{0, 0}, {666, 747}}";
457+ sepNavWindowFrame = "{{15, 7}, {711, 820}}";
303458 };
304459 };
305- F498410109023E47000A1C84 /* BS */ = {
460+ F4F96D9A0D0D77D500222F38 /* BathyScaphe */ = {
306461 isa = PBXExecutable;
307462 activeArgIndex = 2147483647;
308463 activeArgIndices = (
@@ -311,90 +466,29 @@
311466 );
312467 autoAttachOnCrash = 1;
313468 configStateDict = {
314- "PBXLSLaunchAction-0" = {
315- PBXLSLaunchAction = 0;
316- PBXLSLaunchStartAction = 1;
317- PBXLSLaunchStdioStyle = 2;
318- PBXLSLaunchStyle = 0;
319- class = PBXLSRunLaunchConfig;
320- displayName = "Executable Runner";
321- identifier = com.apple.Xcode.launch.runConfig;
322- remoteHostInfo = "";
323- startActionInfo = "";
324- };
325- "PBXLSLaunchAction-1" = {
326- PBXLSLaunchAction = 1;
327- PBXLSLaunchStartAction = 1;
328- PBXLSLaunchStdioStyle = 2;
329- PBXLSLaunchStyle = 0;
330- class = PBXGDB_LaunchConfig;
331- displayName = GDB;
332- identifier = com.apple.Xcode.launch.GDBMI_Config;
333- remoteHostInfo = "";
334- startActionInfo = "";
335- };
336469 };
337470 customDataFormattersEnabled = 1;
338471 debuggerPlugin = GDBDebugging;
339472 disassemblyDisplayState = 0;
340473 dylibVariantSuffix = "";
341- enableDebugStr = 0;
474+ enableDebugStr = 1;
342475 environmentEntries = (
343476 );
344477 executableSystemSymbolLevel = 0;
345478 executableUserSymbolLevel = 0;
346- launchableReference = F444D6C509759CAF002D0363 /* BathyScaphe.app */;
479+ launchableReference = F4F96D9B0D0D77D500222F38 /* BathyScaphe.app */;
347480 libgmallocEnabled = 0;
348- name = BS;
481+ name = BathyScaphe;
349482 savedGlobals = {
350483 };
351484 sourceDirectories = (
352485 );
353486 };
354- F498410409023F91000A1C84 /* BSImagePreviewerInterface.h */ = {
355- uiCtxt = {
356- sepNavIntBoundsRect = "{{0, 0}, {673, 759}}";
357- sepNavSelRange = "{338, 0}";
358- sepNavVisRect = "{{0, 0}, {673, 759}}";
359- sepNavWindowFrame = "{{15, -5}, {718, 832}}";
360- };
361- };
362- F49842B409024D85000A1C84 /* TemporaryFolder.h */ = {
363- uiCtxt = {
364- sepNavIntBoundsRect = "{{0, 0}, {679, 759}}";
365- sepNavSelRange = "{270, 0}";
366- sepNavVisRect = "{{0, 0}, {679, 759}}";
367- sepNavWindowFrame = "{{15, -5}, {718, 832}}";
368- };
369- };
370- F49842B509024D85000A1C84 /* TemporaryFolder.m */ = {
371- uiCtxt = {
372- sepNavIntBoundsRect = "{{0, 0}, {682, 1204}}";
373- sepNavSelRange = "{335, 0}";
374- sepNavVisRect = "{{0, 485}, {682, 719}}";
375- sepNavWindowFrame = "{{15, 35}, {727, 792}}";
376- };
377- };
378- F49843F109026F8B000A1C84 /* XCBreakpointsBucket */ = {
379- isa = XCBreakpointsBucket;
380- name = MosaicPreview;
381- objects = (
382- F42AA5200B5FA85100200AB4 /* GroEvader.m:183 */,
383- F42AA6980B5FBC0B00200AB4 /* GroEvader.m:312 */,
384- );
385- };
386- F4E0B7A90CF65666003E4686 /* PBXBookmark */ = {
387- isa = PBXBookmark;
388- fRef = F44F461C097A9CAA0035FB5B /* CircleGestureView.m */;
389- };
390- F4E0B7AE0CF66014003E4686 /* PBXTextBookmark */ = {
391- isa = PBXTextBookmark;
392- fRef = F44F461C097A9CAA0035FB5B /* CircleGestureView.m */;
393- name = "CircleGestureView.m: 85";
394- rLen = 0;
395- rLoc = 1429;
396- rType = 0;
397- vrLen = 851;
398- vrLoc = 0;
487+ F4F96D9B0D0D77D500222F38 /* BathyScaphe.app */ = {
488+ isa = PBXFileReference;
489+ explicitFileType = wrapper.application;
490+ name = BathyScaphe.app;
491+ path = "/Users/masaki/BathyScaphe/bathyscaphe-HEAD/application/build/Development/BathyScaphe.app";
492+ sourceTree = "<absolute>";
399493 };
400494 }
--- a/MosaicPreview.xcodeproj/project.pbxproj
+++ b/MosaicPreview.xcodeproj/project.pbxproj
@@ -9,12 +9,13 @@
99 /* Begin PBXBuildFile section */
1010 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
1111 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
12- F444D569097593CB002D0363 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F444D568097593CB002D0363 /* QuartzCore.framework */; };
13- F44F461D097A9CAA0035FB5B /* CircleGestureView.m in Sources */ = {isa = PBXBuildFile; fileRef = F44F461C097A9CAA0035FB5B /* CircleGestureView.m */; };
14- F49840FC09023DDA000A1C84 /* GroEvader.nib in Resources */ = {isa = PBXBuildFile; fileRef = F49840FB09023DDA000A1C84 /* GroEvader.nib */; };
15- F49840FF09023DEA000A1C84 /* GroEvader.m in Sources */ = {isa = PBXBuildFile; fileRef = F49840FE09023DEA000A1C84 /* GroEvader.m */; };
16- F49842B609024D85000A1C84 /* TemporaryFolder.m in Sources */ = {isa = PBXBuildFile; fileRef = F49842B509024D85000A1C84 /* TemporaryFolder.m */; };
17- F4D8E6D1097ACA78007069CC /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F4D8E6D0097ACA78007069CC /* Localizable.strings */; };
12+ F421293C0D0ED9B700FABC42 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F421293A0D0ED9B700FABC42 /* Localizable.strings */; };
13+ F49E774F0D11741800D00BC0 /* MosaicView.m in Sources */ = {isa = PBXBuildFile; fileRef = F49E774E0D11741800D00BC0 /* MosaicView.m */; };
14+ F4A21F6D0D0D552400F569F4 /* MosaicWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = F4A21F6C0D0D552400F569F4 /* MosaicWindow.nib */; };
15+ F4A21F750D0D562900F569F4 /* CircleGestureView.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A21F700D0D562800F569F4 /* CircleGestureView.m */; };
16+ F4A21F760D0D562900F569F4 /* GroEvader.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A21F720D0D562800F569F4 /* GroEvader.m */; };
17+ F4A21F770D0D562900F569F4 /* TemporaryFolder.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A21F740D0D562900F569F4 /* TemporaryFolder.m */; };
18+ F4A21FD80D0D5BD600F569F4 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4A21FD70D0D5BD600F569F4 /* QuartzCore.framework */; };
1819 /* End PBXBuildFile section */
1920
2021 /* Begin PBXFileReference section */
@@ -22,21 +23,24 @@
2223 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
2324 089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
2425 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
25- 32DBCF630370AF2F00C91783 /* MosaicPreview_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MosaicPreview_Prefix.pch; sourceTree = "<group>"; };
26- 8D5B49B6048680CD000E48DA /* ImagePreviewer.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ImagePreviewer.plugin; sourceTree = BUILT_PRODUCTS_DIR; };
26+ 8D5B49B6048680CD000E48DA /* GroEvaderForThousand.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GroEvaderForThousand.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
2727 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
2828 D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
29- F444D568097593CB002D0363 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
30- F44F461B097A9CAA0035FB5B /* CircleGestureView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleGestureView.h; sourceTree = "<group>"; };
31- F44F461C097A9CAA0035FB5B /* CircleGestureView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleGestureView.m; sourceTree = "<group>"; };
32- F49840FB09023DDA000A1C84 /* GroEvader.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = GroEvader.nib; sourceTree = "<group>"; };
33- F49840FD09023DEA000A1C84 /* GroEvader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroEvader.h; sourceTree = "<group>"; };
34- F49840FE09023DEA000A1C84 /* GroEvader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroEvader.m; sourceTree = "<group>"; };
35- F498410409023F91000A1C84 /* BSImagePreviewerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSImagePreviewerInterface.h; sourceTree = "<group>"; };
36- F49842B409024D85000A1C84 /* TemporaryFolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemporaryFolder.h; sourceTree = "<group>"; };
37- F49842B509024D85000A1C84 /* TemporaryFolder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TemporaryFolder.m; sourceTree = "<group>"; };
38- F4D8E6CE097ACA6D007069CC /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
39- F4D8E6D2097ACA92007069CC /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/Localizable.strings; sourceTree = "<group>"; };
29+ F421293B0D0ED9B700FABC42 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
30+ F42129400D0ED9C800FABC42 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/Localizable.strings; sourceTree = "<group>"; };
31+ F49E774D0D11741800D00BC0 /* MosaicView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MosaicView.h; sourceTree = "<group>"; };
32+ F49E774E0D11741800D00BC0 /* MosaicView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MosaicView.m; sourceTree = "<group>"; };
33+ F4A21F6A0D0D53A200F569F4 /* T2PluginProtocols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = T2PluginProtocols.h; sourceTree = "<group>"; };
34+ F4A21F6C0D0D552400F569F4 /* MosaicWindow.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = MosaicWindow.nib; sourceTree = "<group>"; };
35+ F4A21F6F0D0D562800F569F4 /* CircleGestureView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleGestureView.h; sourceTree = "<group>"; };
36+ F4A21F700D0D562800F569F4 /* CircleGestureView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleGestureView.m; sourceTree = "<group>"; };
37+ F4A21F710D0D562800F569F4 /* GroEvader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroEvader.h; sourceTree = "<group>"; };
38+ F4A21F720D0D562800F569F4 /* GroEvader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroEvader.m; sourceTree = "<group>"; };
39+ F4A21F730D0D562900F569F4 /* TemporaryFolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TemporaryFolder.h; sourceTree = "<group>"; };
40+ F4A21F740D0D562900F569F4 /* TemporaryFolder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TemporaryFolder.m; sourceTree = "<group>"; };
41+ F4A21FD70D0D5BD600F569F4 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
42+ F4F96CEB0D0D6C8700222F38 /* MosaicPreviewerForThousand_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MosaicPreviewerForThousand_Prefix.pch; sourceTree = "<group>"; };
43+ F4F96D6B0D0D76B200222F38 /* BSImagePreviewerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSImagePreviewerInterface.h; sourceTree = "<group>"; };
4044 /* End PBXFileReference section */
4145
4246 /* Begin PBXFrameworksBuildPhase section */
@@ -45,24 +49,23 @@
4549 buildActionMask = 2147483647;
4650 files = (
4751 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
48- F444D569097593CB002D0363 /* QuartzCore.framework in Frameworks */,
52+ F4A21FD80D0D5BD600F569F4 /* QuartzCore.framework in Frameworks */,
4953 );
5054 runOnlyForDeploymentPostprocessing = 0;
5155 };
5256 /* End PBXFrameworksBuildPhase section */
5357
5458 /* Begin PBXGroup section */
55- 089C166AFE841209C02AAC07 /* MosaicPreview */ = {
59+ 089C166AFE841209C02AAC07 /* MozaicPreviewerForThousand */ = {
5660 isa = PBXGroup;
5761 children = (
58- F498410409023F91000A1C84 /* BSImagePreviewerInterface.h */,
5962 08FB77AFFE84173DC02AAC07 /* Classes */,
6063 32C88E010371C26100C91783 /* Other Sources */,
6164 089C167CFE841241C02AAC07 /* Resources */,
6265 089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
6366 19C28FB8FE9D52D311CA2CBB /* Products */,
6467 );
65- name = MosaicPreview;
68+ name = MozaicPreviewerForThousand;
6669 sourceTree = "<group>";
6770 };
6871 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
@@ -77,8 +80,8 @@
7780 089C167CFE841241C02AAC07 /* Resources */ = {
7881 isa = PBXGroup;
7982 children = (
80- F4D8E6D0097ACA78007069CC /* Localizable.strings */,
81- F49840FB09023DDA000A1C84 /* GroEvader.nib */,
83+ F4A21F6C0D0D552400F569F4 /* MosaicWindow.nib */,
84+ F421293A0D0ED9B700FABC42 /* Localizable.strings */,
8285 8D5B49B7048680CD000E48DA /* Info.plist */,
8386 089C167DFE841241C02AAC07 /* InfoPlist.strings */,
8487 );
@@ -88,12 +91,16 @@
8891 08FB77AFFE84173DC02AAC07 /* Classes */ = {
8992 isa = PBXGroup;
9093 children = (
91- F44F461B097A9CAA0035FB5B /* CircleGestureView.h */,
92- F44F461C097A9CAA0035FB5B /* CircleGestureView.m */,
93- F49842B409024D85000A1C84 /* TemporaryFolder.h */,
94- F49842B509024D85000A1C84 /* TemporaryFolder.m */,
95- F49840FD09023DEA000A1C84 /* GroEvader.h */,
96- F49840FE09023DEA000A1C84 /* GroEvader.m */,
94+ F4F96D6B0D0D76B200222F38 /* BSImagePreviewerInterface.h */,
95+ F4A21F6A0D0D53A200F569F4 /* T2PluginProtocols.h */,
96+ F4A21F6F0D0D562800F569F4 /* CircleGestureView.h */,
97+ F4A21F700D0D562800F569F4 /* CircleGestureView.m */,
98+ F49E774D0D11741800D00BC0 /* MosaicView.h */,
99+ F49E774E0D11741800D00BC0 /* MosaicView.m */,
100+ F4A21F710D0D562800F569F4 /* GroEvader.h */,
101+ F4A21F720D0D562800F569F4 /* GroEvader.m */,
102+ F4A21F730D0D562900F569F4 /* TemporaryFolder.h */,
103+ F4A21F740D0D562900F569F4 /* TemporaryFolder.m */,
97104 );
98105 name = Classes;
99106 sourceTree = "<group>";
@@ -101,7 +108,6 @@
101108 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
102109 isa = PBXGroup;
103110 children = (
104- F444D568097593CB002D0363 /* QuartzCore.framework */,
105111 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
106112 );
107113 name = "Linked Frameworks";
@@ -110,6 +116,7 @@
110116 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
111117 isa = PBXGroup;
112118 children = (
119+ F4A21FD70D0D5BD600F569F4 /* QuartzCore.framework */,
113120 089C167FFE841241C02AAC07 /* AppKit.framework */,
114121 D2F7E65807B2D6F200F64583 /* CoreData.framework */,
115122 089C1672FE841209C02AAC07 /* Foundation.framework */,
@@ -120,7 +127,7 @@
120127 19C28FB8FE9D52D311CA2CBB /* Products */ = {
121128 isa = PBXGroup;
122129 children = (
123- 8D5B49B6048680CD000E48DA /* ImagePreviewer.plugin */,
130+ 8D5B49B6048680CD000E48DA /* GroEvaderForThousand.bundle */,
124131 );
125132 name = Products;
126133 sourceTree = "<group>";
@@ -128,7 +135,7 @@
128135 32C88E010371C26100C91783 /* Other Sources */ = {
129136 isa = PBXGroup;
130137 children = (
131- 32DBCF630370AF2F00C91783 /* MosaicPreview_Prefix.pch */,
138+ F4F96CEB0D0D6C8700222F38 /* MosaicPreviewerForThousand_Prefix.pch */,
132139 );
133140 name = "Other Sources";
134141 sourceTree = "<group>";
@@ -136,23 +143,22 @@
136143 /* End PBXGroup section */
137144
138145 /* Begin PBXNativeTarget section */
139- 8D5B49AC048680CD000E48DA /* GroEvader */ = {
146+ 8D5B49AC048680CD000E48DA /* GroEvaderForThousand */ = {
140147 isa = PBXNativeTarget;
141- buildConfigurationList = F49840EF09023B24000A1C84 /* Build configuration list for PBXNativeTarget "GroEvader" */;
148+ buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "GroEvaderForThousand" */;
142149 buildPhases = (
143150 8D5B49AF048680CD000E48DA /* Resources */,
144151 8D5B49B1048680CD000E48DA /* Sources */,
145152 8D5B49B3048680CD000E48DA /* Frameworks */,
146- F42AA6A50B5FBC8E00200AB4 /* ShellScript */,
147153 );
148154 buildRules = (
149155 );
150156 dependencies = (
151157 );
152- name = GroEvader;
158+ name = GroEvaderForThousand;
153159 productInstallPath = "$(HOME)/Library/Bundles";
154- productName = MosaicPreview;
155- productReference = 8D5B49B6048680CD000E48DA /* ImagePreviewer.plugin */;
160+ productName = MozaicPreviewerForThousand;
161+ productReference = 8D5B49B6048680CD000E48DA /* GroEvaderForThousand.bundle */;
156162 productType = "com.apple.product-type.bundle";
157163 };
158164 /* End PBXNativeTarget section */
@@ -160,12 +166,12 @@
160166 /* Begin PBXProject section */
161167 089C1669FE841209C02AAC07 /* Project object */ = {
162168 isa = PBXProject;
163- buildConfigurationList = F49840F309023B24000A1C84 /* Build configuration list for PBXProject "MosaicPreview" */;
169+ buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "MosaicPreviewerForThousand" */;
164170 hasScannedForEncodings = 1;
165- mainGroup = 089C166AFE841209C02AAC07 /* MosaicPreview */;
171+ mainGroup = 089C166AFE841209C02AAC07 /* MozaicPreviewerForThousand */;
166172 projectDirPath = "";
167173 targets = (
168- 8D5B49AC048680CD000E48DA /* GroEvader */,
174+ 8D5B49AC048680CD000E48DA /* GroEvaderForThousand */,
169175 );
170176 };
171177 /* End PBXProject section */
@@ -176,37 +182,22 @@
176182 buildActionMask = 2147483647;
177183 files = (
178184 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */,
179- F49840FC09023DDA000A1C84 /* GroEvader.nib in Resources */,
180- F4D8E6D1097ACA78007069CC /* Localizable.strings in Resources */,
185+ F4A21F6D0D0D552400F569F4 /* MosaicWindow.nib in Resources */,
186+ F421293C0D0ED9B700FABC42 /* Localizable.strings in Resources */,
181187 );
182188 runOnlyForDeploymentPostprocessing = 0;
183189 };
184190 /* End PBXResourcesBuildPhase section */
185191
186-/* Begin PBXShellScriptBuildPhase section */
187- F42AA6A50B5FBC8E00200AB4 /* ShellScript */ = {
188- isa = PBXShellScriptBuildPhase;
189- buildActionMask = 2147483647;
190- files = (
191- );
192- inputPaths = (
193- );
194- outputPaths = (
195- );
196- runOnlyForDeploymentPostprocessing = 0;
197- shellPath = /bin/sh;
198- shellScript = "app=Starlight\\ Breaker\nproduct=GroEvader\n\ndest=$HOME/Library/Application\\ Support/$app/PlugIns/\nsrc=$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.plugin\ntarget=$BUILT_PRODUCTS_DIR/$product.plugin\n\nif [ -d $target ] ;then\n\techo \"Remove\" $target\n\trm -fr $target\nfi\nif [ -d \"$dest\"/$product.plugin ] ; then\n\trm -fr \"$dest\"/Gro.plugin\nfi\n\necho \"Copy\"\ncp -R $src $target\necho \"Move\"\nmv -f $target \"$dest\"";
199- };
200-/* End PBXShellScriptBuildPhase section */
201-
202192 /* Begin PBXSourcesBuildPhase section */
203193 8D5B49B1048680CD000E48DA /* Sources */ = {
204194 isa = PBXSourcesBuildPhase;
205195 buildActionMask = 2147483647;
206196 files = (
207- F49840FF09023DEA000A1C84 /* GroEvader.m in Sources */,
208- F49842B609024D85000A1C84 /* TemporaryFolder.m in Sources */,
209- F44F461D097A9CAA0035FB5B /* CircleGestureView.m in Sources */,
197+ F4A21F750D0D562900F569F4 /* CircleGestureView.m in Sources */,
198+ F4A21F760D0D562900F569F4 /* GroEvader.m in Sources */,
199+ F4A21F770D0D562900F569F4 /* TemporaryFolder.m in Sources */,
200+ F49E774F0D11741800D00BC0 /* MosaicView.m in Sources */,
210201 );
211202 runOnlyForDeploymentPostprocessing = 0;
212203 };
@@ -221,11 +212,11 @@
221212 name = InfoPlist.strings;
222213 sourceTree = "<group>";
223214 };
224- F4D8E6D0097ACA78007069CC /* Localizable.strings */ = {
215+ F421293A0D0ED9B700FABC42 /* Localizable.strings */ = {
225216 isa = PBXVariantGroup;
226217 children = (
227- F4D8E6CE097ACA6D007069CC /* English */,
228- F4D8E6D2097ACA92007069CC /* Japanese */,
218+ F421293B0D0ED9B700FABC42 /* English */,
219+ F42129400D0ED9C800FABC42 /* Japanese */,
229220 );
230221 name = Localizable.strings;
231222 sourceTree = "<group>";
@@ -233,128 +224,99 @@
233224 /* End PBXVariantGroup section */
234225
235226 /* Begin XCBuildConfiguration section */
236- F49840F009023B24000A1C84 /* Debug */ = {
227+ 1DEB913B08733D840010E9CD /* Debug */ = {
237228 isa = XCBuildConfiguration;
238229 buildSettings = {
239- BUNDLE_LOADER = "$(inherited)";
230+ BUNDLE_LOADER = $HOME/Applications/Thousand.app/Contents/MacOS/Thousand;
240231 COPY_PHASE_STRIP = NO;
241- DEPLOYMENT_LOCATION = NO;
232+ DEPLOYMENT_LOCATION = YES;
242233 DSTROOT = /;
234+ FRAMEWORK_SEARCH_PATHS = (
235+ "$(inherited)",
236+ /Users/masaki/Applications/Thousand.app/Contents/Frameworks,
237+ );
243238 GCC_DYNAMIC_NO_PIC = NO;
244- GCC_ENABLE_FIX_AND_CONTINUE = YES;
239+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
245240 GCC_ENABLE_OBJC_EXCEPTIONS = YES;
246- GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
247241 GCC_MODEL_TUNING = G4;
248242 GCC_OPTIMIZATION_LEVEL = 0;
249243 GCC_PRECOMPILE_PREFIX_HEADER = YES;
250- GCC_PREFIX_HEADER = MosaicPreview_Prefix.pch;
251- GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
252- GCC_WARN_ABOUT_RETURN_TYPE = YES;
253- GCC_WARN_UNUSED_VARIABLE = YES;
244+ GCC_PREFIX_HEADER = MosaicPreviewerForThousand_Prefix.pch;
254245 INFOPLIST_FILE = Info.plist;
255- INSTALL_PATH = "$(HOME)/Library/Application Support/Starlight Breaker/PlugIns";
256- PREBINDING = NO;
257- PRODUCT_NAME = ImagePreviewer;
258- WRAPPER_EXTENSION = plugin;
246+ INSTALL_PATH = "$(HOME)/Library/Application Support/Thousand/Plugins/";
247+ PRODUCT_NAME = GroEvaderForThousand;
248+ WRAPPER_EXTENSION = bundle;
259249 ZERO_LINK = YES;
260250 };
261251 name = Debug;
262252 };
263- F49840F109023B24000A1C84 /* Release */ = {
253+ 1DEB913C08733D840010E9CD /* Release */ = {
264254 isa = XCBuildConfiguration;
265255 buildSettings = {
266256 ARCHS = (
267257 ppc,
268258 i386,
269259 );
270- BUNDLE_LOADER = "$(inherited)";
271- COPY_PHASE_STRIP = YES;
260+ BUNDLE_LOADER = $HOME/Applications/Thousand.app/Contents/MacOS/Thousand;
261+ DEPLOYMENT_LOCATION = YES;
262+ DSTROOT = /;
263+ FRAMEWORK_SEARCH_PATHS = (
264+ "$(inherited)",
265+ /Users/masaki/Applications/Thousand.app/Contents/Frameworks,
266+ );
272267 GCC_ENABLE_FIX_AND_CONTINUE = NO;
273268 GCC_ENABLE_OBJC_EXCEPTIONS = YES;
274269 GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
275- GCC_MODEL_TUNING = G5;
270+ GCC_MODEL_TUNING = G4;
276271 GCC_PRECOMPILE_PREFIX_HEADER = YES;
277- GCC_PREFIX_HEADER = MosaicPreview_Prefix.pch;
278- GCC_WARN_ABOUT_RETURN_TYPE = YES;
279- GCC_WARN_UNUSED_VARIABLE = YES;
272+ GCC_PREFIX_HEADER = MosaicPreviewerForThousand_Prefix.pch;
280273 INFOPLIST_FILE = Info.plist;
281- INSTALL_PATH = "$(HOME)/Library/Bundles";
282- PREBINDING = NO;
283- PRODUCT_NAME = ImagePreviewer;
284- WRAPPER_EXTENSION = plugin;
285- ZERO_LINK = NO;
274+ INSTALL_PATH = "$(HOME)/Library/Application Support/Thousand/Plugins/";
275+ PRODUCT_NAME = GroEvaderForThousand;
276+ WRAPPER_EXTENSION = bundle;
286277 };
287278 name = Release;
288279 };
289- F49840F209023B24000A1C84 /* Default */ = {
280+ 1DEB913F08733D840010E9CD /* Debug */ = {
290281 isa = XCBuildConfiguration;
291282 buildSettings = {
292- BUNDLE_LOADER = "$(inherited)";
293- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
294- GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
295- GCC_MODEL_TUNING = G5;
296- GCC_PRECOMPILE_PREFIX_HEADER = YES;
297- GCC_PREFIX_HEADER = MosaicPreview_Prefix.pch;
298283 GCC_WARN_ABOUT_RETURN_TYPE = YES;
299284 GCC_WARN_UNUSED_VARIABLE = YES;
300- INFOPLIST_FILE = Info.plist;
301- INSTALL_PATH = "$(HOME)/Library/Bundles";
302285 PREBINDING = NO;
303- PRODUCT_NAME = ImagePreviewer;
304- WRAPPER_EXTENSION = plugin;
305- };
306- name = Default;
307- };
308- F49840F409023B24000A1C84 /* Debug */ = {
309- isa = XCBuildConfiguration;
310- buildSettings = {
311- MACOSX_DEPLOYMENT_TARGET = 10.4;
312286 SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
313287 };
314288 name = Debug;
315289 };
316- F49840F509023B24000A1C84 /* Release */ = {
290+ 1DEB914008733D840010E9CD /* Release */ = {
317291 isa = XCBuildConfiguration;
318292 buildSettings = {
319- ARCHS = (
320- ppc,
321- i386,
322- );
323- MACOSX_DEPLOYMENT_TARGET = 10.4;
293+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
294+ GCC_WARN_UNUSED_VARIABLE = YES;
295+ PREBINDING = NO;
324296 SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
325297 };
326298 name = Release;
327299 };
328- F49840F609023B24000A1C84 /* Default */ = {
329- isa = XCBuildConfiguration;
330- buildSettings = {
331- MACOSX_DEPLOYMENT_TARGET = 10.4;
332- SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
333- };
334- name = Default;
335- };
336300 /* End XCBuildConfiguration section */
337301
338302 /* Begin XCConfigurationList section */
339- F49840EF09023B24000A1C84 /* Build configuration list for PBXNativeTarget "GroEvader" */ = {
303+ 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "GroEvaderForThousand" */ = {
340304 isa = XCConfigurationList;
341305 buildConfigurations = (
342- F49840F009023B24000A1C84 /* Debug */,
343- F49840F109023B24000A1C84 /* Release */,
344- F49840F209023B24000A1C84 /* Default */,
306+ 1DEB913B08733D840010E9CD /* Debug */,
307+ 1DEB913C08733D840010E9CD /* Release */,
345308 );
346309 defaultConfigurationIsVisible = 0;
347- defaultConfigurationName = Default;
310+ defaultConfigurationName = Release;
348311 };
349- F49840F309023B24000A1C84 /* Build configuration list for PBXProject "MosaicPreview" */ = {
312+ 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "MosaicPreviewerForThousand" */ = {
350313 isa = XCConfigurationList;
351314 buildConfigurations = (
352- F49840F409023B24000A1C84 /* Debug */,
353- F49840F509023B24000A1C84 /* Release */,
354- F49840F609023B24000A1C84 /* Default */,
315+ 1DEB913F08733D840010E9CD /* Debug */,
316+ 1DEB914008733D840010E9CD /* Release */,
355317 );
356318 defaultConfigurationIsVisible = 0;
357- defaultConfigurationName = Default;
319+ defaultConfigurationName = Release;
358320 };
359321 /* End XCConfigurationList section */
360322 };
--- /dev/null
+++ b/MosaicPreviewerForThousand_Prefix.pch
@@ -0,0 +1,7 @@
1+//
2+// Prefix header for all source files of the 'MozaicPreviewerForThousand' target in the 'MozaicPreviewerForThousand' project.
3+//
4+
5+#ifdef __OBJC__
6+ #import <Cocoa/Cocoa.h>
7+#endif
--- /dev/null
+++ b/MosaicView.h
@@ -0,0 +1,30 @@
1+//
2+// MosaicView.h
3+// MosaicPreviewerForThousand
4+//
5+// Created by Hori,Masaki on 07/12/13.
6+// Copyright 2007 __MyCompanyName__. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+#import "CircleGestureView.h"
12+
13+@interface MosaicView : CircleGestureView
14+{
15+ IBOutlet id delegate;
16+
17+ NSString *text;
18+
19+ CIContext *context;
20+}
21+
22+- (void)setText:(NSString *)text;
23+@end
24+
25+@interface NSObject (MosaicViewDelegate)
26+- (CIImage *)viewImage;
27+
28+-(BOOL)isClosePanelWithSingleClick;
29+
30+@end
--- /dev/null
+++ b/MosaicView.m
@@ -0,0 +1,119 @@
1+//
2+// MosaicView.m
3+// MosaicPreviewerForThousand
4+//
5+// Created by Hori,Masaki on 07/12/13.
6+// Copyright 2007 __MyCompanyName__. All rights reserved.
7+//
8+
9+#import "MosaicView.h"
10+
11+#import <QuartzCore/QuartzCore.h>
12+
13+@implementation MosaicView
14+- (void)mouseDown:(NSEvent *)theEvent
15+{
16+ if([delegate isClosePanelWithSingleClick]
17+ || [theEvent clickCount] > 1) {
18+ [[self window] performClose:self];
19+ }
20+}
21+
22+- (void)setText:(NSString *)string
23+{
24+ id temp = text;
25+ text = [string copy];
26+ [temp release];
27+
28+ [self setNeedsDisplay:YES];
29+}
30+
31+- (NSParagraphStyle *)textparagraph
32+{
33+ NSMutableParagraphStyle *paragraph = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] autorelease];
34+ [paragraph setAlignment:NSCenterTextAlignment];
35+
36+ return paragraph;
37+}
38+- (NSDictionary *)textAttributes
39+{
40+ NSMutableDictionary *result = [NSMutableDictionary dictionary];
41+
42+ [result setObject:[NSColor redColor]
43+ forKey:NSForegroundColorAttributeName];
44+ [result setObject:[self textparagraph]
45+ forKey:NSParagraphStyleAttributeName];
46+
47+ return result;
48+}
49+- (void)drawText
50+{
51+ if(!text || [text length] == 0) return;
52+
53+ NSRect rect = [self frame];
54+ NSRect drawRect;
55+ id attr = [self textAttributes];
56+
57+ drawRect.size = [text sizeWithAttributes:attr];
58+
59+ drawRect.origin.x = ( NSWidth(rect) - NSWidth(drawRect) ) * 0.5;
60+ drawRect.origin.y = ( NSHeight(rect) - NSHeight(drawRect) ) * 0.5;
61+
62+ [text drawInRect:drawRect
63+ withAttributes:attr];
64+}
65+- (void)drawImage
66+{
67+ if(!context) {
68+ context = [[[NSGraphicsContext currentContext] CIContext] retain];
69+ }
70+ if(!context) {
71+ NSLog(@"Abort!!"); return;
72+ }
73+
74+ CIImage *cImage = [delegate viewImage];
75+ if(!cImage) return;
76+
77+ NSRect frame = [self bounds];
78+ CGRect imageRect = [cImage extent];
79+ CGRect cg;
80+ float frameAspect, imageAspect;
81+ NSRect temp;
82+
83+ frameAspect = NSWidth(frame) / NSHeight(frame);
84+ imageAspect = CGRectGetWidth(imageRect) / CGRectGetHeight(imageRect);
85+
86+ if(imageAspect > frameAspect) {
87+ temp = frame;
88+ temp.size.height = NSWidth(frame) / imageAspect;
89+ temp.origin.y += (NSHeight(frame) - NSHeight(temp)) / 2;
90+ frame = temp;
91+ } else if(imageAspect < frameAspect) {
92+ temp = frame;
93+ temp.size.width = NSHeight(frame) * imageAspect;
94+ temp.origin.x += (NSWidth(frame) - NSWidth(temp)) / 2;
95+ frame = temp;
96+ }
97+
98+ cg = CGRectMake(NSMinX(frame), NSMinY(frame),
99+ NSWidth(frame), NSHeight(frame));
100+ cg = CGRectInset(cg, 1, 1);
101+ [context drawImage:cImage
102+ inRect:cg
103+ fromRect:imageRect];
104+}
105+- (void)drawRect:(NSRect)rect
106+{
107+ [NSGraphicsContext saveGraphicsState];
108+ [[NSColor whiteColor] set];
109+ NSRectFill([self bounds]);
110+ [[NSColor blackColor] set];
111+ NSFrameRect([self bounds]);
112+ [NSGraphicsContext restoreGraphicsState];
113+
114+ [self drawImage];
115+
116+ [self drawText];
117+}
118+
119+@end
--- a/GroEvader.nib/classes.nib
+++ b/MosaicWindow.nib/classes.nib
@@ -1,17 +1,19 @@
11 {
22 IBClasses = (
3+ {CLASS = CircleGestureView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
34 {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
45 {
5- CLASS = MosaicPreview;
6+ ACTIONS = {openURL = id; };
7+ CLASS = GroEvader;
68 LANGUAGE = ObjC;
7- OUTLETS = {image = NSImage; indicator = id; view = NSView; };
9+ OUTLETS = {image = NSImage; indicator = id; view = MosaicView; };
810 SUPERCLASS = NSWindowController;
911 },
1012 {
1113 CLASS = MosaicView;
1214 LANGUAGE = ObjC;
1315 OUTLETS = {delegate = id; };
14- SUPERCLASS = NSView;
16+ SUPERCLASS = CircleGestureView;
1517 }
1618 );
1719 IBVersion = 1;
--- a/GroEvader.nib/info.nib
+++ b/MosaicWindow.nib/info.nib
@@ -3,14 +3,14 @@
33 <plist version="1.0">
44 <dict>
55 <key>IBDocumentLocation</key>
6- <string>69 10 356 240 0 0 1280 832 </string>
6+ <string>76 20 356 240 0 0 1280 832 </string>
77 <key>IBFramework Version</key>
8- <string>443.0</string>
8+ <string>489.0</string>
99 <key>IBOpenObjects</key>
1010 <array>
11- <integer>5</integer>
11+ <integer>7</integer>
1212 </array>
1313 <key>IBSystem Version</key>
14- <string>8G32</string>
14+ <string>8S165</string>
1515 </dict>
1616 </plist>
Binary files /dev/null and b/MosaicWindow.nib/keyedobjects.nib differ
--- /dev/null
+++ b/T2PluginProtocols.h
@@ -0,0 +1,202 @@
1+
2+#import <Cocoa/Cocoa.h>
3+@class T2Res, T2Thread, T2List, T2ListFace, T2ThreadList, T2ThreadFace, T2WebData, WebView;
4+
5+//======================================================================================
6+#pragma mark -
7+#pragma mark Thousand Plug-in common interface
8+
9+typedef enum {
10+ T2EmbeddedPlugin = 0,
11+ T2DefaultPlugin,
12+ T2StandardPlugin,
13+ T2TestingPlugin
14+} T2PluginType;
15+
16+typedef enum {
17+ T2LoadingFailed = 0,
18+ T2LoadingSucceed,
19+ T2RetryLoading
20+} T2LoadingResult;
21+
22+enum T2PluginOrder {
23+ T2PluginOrderFirst = -1000,
24+ T2PluginOrderMiddle = 0,
25+ T2PluginOrderLast = 1000
26+} ;
27+
28+@protocol T2PluginInterface_v100 <NSObject>
29++(NSArray *)pluginInstances ;
30+-(NSString *)uniqueName ;
31+-(NSString *)localizedName ;
32+-(NSString *)localizedPluginInfo ;
33+-(T2PluginType)pluginType ;
34+-(int)pluginOrder ;
35+@end
36+@interface NSObject (T2PluginInterface_v100)
37+-(NSArray *)uniqueNamesOfdependingPlugins ;
38+-(NSArray *)preferenceItems ;
39+@end
40+
41+
42+//======================================================================================
43+#pragma mark -
44+#pragma mark List Importer
45+
46+@protocol T2ListImporting_v100 <T2PluginInterface_v100>
47+-(NSString *)importableRootPath ;
48+-(T2List *)listForListFace:(T2ListFace *)listFace ;
49+@end
50+@interface NSObject (T2ListImporting_v100)
51+-(NSURLRequest *)URLRequestForList:(T2List *)list ;
52+-(T2LoadingResult)buildList:(T2List *)list withWebData:(T2WebData *)webData ;
53+-(NSArray *)rootListFaces ;
54+-(NSString *)listInternalPathForProposedURLString:(NSString *)URLString ;
55+-(NSImage *)imageForListFace:(T2ListFace *)listFace ;
56+@end
57+
58+//======================================================================================
59+#pragma mark -
60+#pragma mark Thread Scorer and Filter
61+@protocol T2ThreadFaceScoring_v100 <T2PluginInterface_v100>
62+-(NSArray *)scoreKeys;
63+-(NSString *)localizedNameForScoreKey:(NSString *)key;
64+-(id)scoreValueOfThreadFace:(T2ThreadFace *)threadFace forKey:(NSString *)key;
65+@end
66+
67+
68+//======================================================================================
69+#pragma mark -
70+#pragma mark Thread Importer
71+@protocol T2ThreadImporting_v100 <T2PluginInterface_v100>
72+-(NSString *)importableRootPath ;
73+-(T2Thread *)threadForThreadFace:(T2ThreadFace *)threadFace ;
74+@end
75+@interface NSObject (T2ThreadImporting_v100)
76+-(NSURLRequest *)URLRequestForThread:(T2Thread *)thread ;
77+-(T2LoadingResult)buildThread:(T2Thread *)thread withWebData:(T2WebData *)webData ;
78+-(NSArray *)importableTypes ;
79+-(NSString *)threadLogFilePathForInternalPath:(NSString *)internalPath ;
80+-(NSString *)threadInternalPathForProposedURLString:(NSString *)URLString ;
81+@end
82+
83+//======================================================================================
84+/*
85+#pragma mark -
86+#pragma mark Thread Exporter
87+@protocol T2ThreadExporting_v090 <T2PluginInterface_v100>
88+-(NSString *)exportableType;
89+-(BOOL)exportThread:(T2Thread *)thread toPath:(NSString *)filePath ;
90+@end
91+*/
92+
93+//======================================================================================
94+#pragma mark -
95+#pragma mark Res Posting (WebView)
96+@protocol T2ResPostingUsingWebView_v100 <T2PluginInterface_v100>
97+-(NSString *)postableRootPath;
98+-(BOOL)canPostResToThread:(T2Thread *)thread ;
99+-(NSURLRequest *)URLRequestForPostingRes:(T2Res *)tempRes thread:(T2Thread *)thread;
100+-(T2LoadingResult)didEndPostingResForSource:(NSString *)source ;
101+@end
102+@interface NSObject (T2ResPostingUsingWebView_v100)
103+-(NSArray *)accessoryPreferenceItems ;
104+@end
105+
106+//======================================================================================
107+#pragma mark -
108+#pragma mark Thread Posting (WebView)
109+@protocol T2ThreadPostingUsingWebView_v100 <T2PluginInterface_v100>
110+-(NSString *)postableRootPath;
111+-(BOOL)canPostThreadToThreadList:(T2ThreadList *)threadList ;
112+-(NSURLRequest *)URLRequestForPostingFirstRes:(T2Res *)tempRes threadTitle:(NSString *)threadTitle
113+ toThreadList:(T2ThreadList *)threadList ;
114+-(T2LoadingResult)didEndPostingThreadForSource:(NSString *)source ;
115+@end
116+@interface NSObject (T2ThreadPostingUsingWebView_v100)
117+-(NSArray *)accessoryPreferenceItems ;
118+@end
119+
120+//======================================================================================
121+/*
122+#pragma mark -
123+#pragma mark Authentication
124+
125+@protocol T2Authentication_v090 <T2PluginInterface_v100>
126+-(NSString *)authenticationKey ;
127+-(NSString *)LocalizedLabelForUserString ;
128+-(NSString *)LocalizedLabelForPasswordString ;
129+-(NSURLRequest *)requestForAuthenticationAsUser:(NSString *)user
130+ password:(NSString *)password ;
131+-(T2LoadingResult)authenticationResultForWebData:(T2WebData *)webData ;
132+-(NSDictionary *)authenticationInfo ;
133+-(NSURLRequest *)requestForDiscardAuthentication ;
134+-(T2LoadingResult)DiscardAuthenticationResultForWebData:(T2WebData *)webData ;
135+@end
136+*/
137+
138+//======================================================================================
139+#pragma mark -
140+#pragma mark Thread Processor
141+@protocol T2ThreadProcessing_v100 <T2PluginInterface_v100>
142+-(void)processThread:(T2Thread *)thread appendingIndex:(unsigned)index ;
143+@end
144+
145+
146+//======================================================================================
147+#pragma mark -
148+#pragma mark Res Extractor
149+@protocol T2ResExtracting_v100 <T2PluginInterface_v100>
150+-(NSArray *)extractKeys ;
151+-(NSIndexSet *)extractResIndexesInThread:(T2Thread *)thread forKey:(NSString *)key path:(NSString *)path ;
152+-(NSString *)localizedDescriptionForKey:(NSString *)key path:(NSString *)path ;
153+@end
154+
155+
156+//======================================================================================
157+#pragma mark -
158+#pragma mark ResHTML Processor
159+@protocol T2ThreadHTMLProcessing_v100 <T2PluginInterface_v100>
160+-(NSString *)processedHTML:(NSString *)htmlString ofRes:(T2Res *)res inThread:(T2Thread *)thread ;
161+@end
162+
163+
164+//======================================================================================
165+#pragma mark -
166+#pragma mark Thread Viewer (partial HTML)
167+@protocol T2ThreadPartialHTMLExporting_v100 <T2PluginInterface_v100>
168+-(NSString *)headerHTMLWithThread:(T2Thread *)thread baseURL:(NSURL **)baseURL ;
169+-(NSString *)footerHTMLWithThread:(T2Thread *)thread ;
170+-(NSString *)resHTMLWithRes:(T2Res *)res ;
171+-(NSString *)popUpHeaderHTMLWithThread:(T2Thread *)thread baseURL:(NSURL **)baseURL ;
172+-(NSString *)popUpFooterHTMLWithThread:(T2Thread *)thread ;
173+@end
174+
175+
176+//======================================================================================
177+#pragma mark -
178+#pragma mark Thread Viewer (HTML)
179+@protocol T2ThreadHTMLExporting_v100 <T2PluginInterface_v100>
180+-(NSString *)HTMLWithThread:(T2Thread *)thread baseURL:(NSURL **)baseURL ;
181+@end
182+
183+
184+//======================================================================================
185+#pragma mark -
186+#pragma mark Preview
187+
188+typedef enum {
189+ T2PreviewInPopUp = 0,
190+ T2PreviewInline,
191+ T2PreviewInExternalWindow,
192+ T2PreviewInFullScreen
193+} T2PreviewType;
194+
195+@protocol T2URLPreviewing_v100 <T2PluginInterface_v100>
196+-(NSArray *)previewableURLHosts;
197+-(NSArray *)previewableURLExtensions;
198+-(BOOL)isPreviewableURLString:(NSString *)urlString type:(T2PreviewType)type;
199+-(NSString *)partialHTMLForPreviewingURLString:(NSString *)urlString
200+ type:(T2PreviewType)type
201+ minSize:(NSSize *)minSize ;
202+@end
--- /dev/null
+++ b/Thousand.classes
@@ -0,0 +1,1120 @@
1+/*
2+ * Generated by class-dump 3.1.
3+ *
4+ * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2005 by Steve Nygard.
5+ */
6+
7+struct _NSPoint {
8+ float _field1;
9+ float _field2;
10+};
11+
12+struct _NSRect {
13+ struct _NSPoint _field1;
14+ struct _NSSize _field2;
15+};
16+
17+struct _NSSize {
18+ float width;
19+ float height;
20+};
21+
22+struct _NSZone;
23+
24+/*
25+ * File: /Users/masaki/Applications/Thousand.app/Contents/MacOS/Thousand
26+ * Arch: PowerPC (ppc)
27+ */
28+
29+@protocol NSObject
30+- (BOOL)isEqual:(id)fp8;
31+- (unsigned int)hash;
32+- (Class)superclass;
33+- (Class)class;
34+- (id)self;
35+- (struct _NSZone *)zone;
36+- (id)performSelector:(SEL)fp8;
37+- (id)performSelector:(SEL)fp8 withObject:(id)fp12;
38+- (id)performSelector:(SEL)fp8 withObject:(id)fp12 withObject:(id)fp16;
39+- (BOOL)isProxy;
40+- (BOOL)isKindOfClass:(Class)fp8;
41+- (BOOL)isMemberOfClass:(Class)fp8;
42+- (BOOL)conformsToProtocol:(id)fp8;
43+- (BOOL)respondsToSelector:(SEL)fp8;
44+- (id)retain;
45+- (oneway void)release;
46+- (id)autorelease;
47+- (unsigned int)retainCount;
48+- (id)description;
49+@end
50+
51+@protocol T2DictionaryConverting
52+- (id)dictionaryConvertingKeysForUse:(int)fp8;
53+@end
54+
55+@protocol T2ListImporting_v100 <T2PluginInterface_v100>
56+- (id)importableRootPath;
57+- (id)listForListFace:(id)fp8;
58+@end
59+
60+@protocol T2PluginInterface_v100 <NSObject>
61++ (id)pluginInstances;
62+- (id)uniqueName;
63+- (id)localizedName;
64+- (id)localizedPluginInfo;
65+- (int)pluginType;
66+- (int)pluginOrder;
67+@end
68+
69+@protocol T2ResExtracting_v100 <T2PluginInterface_v100>
70+- (id)extractKeys;
71+- (id)extractResIndexesInThread:(id)fp8 forKey:(id)fp12 path:(id)fp16;
72+- (id)localizedDescriptionForKey:(id)fp8 path:(id)fp12;
73+@end
74+
75+@protocol T2ResPostingUsingWebView_v100 <T2PluginInterface_v100>
76+- (id)postableRootPath;
77+- (BOOL)canPostResToThread:(id)fp8;
78+- (id)URLRequestForPostingRes:(id)fp8 thread:(id)fp12;
79+- (int)didEndPostingResForSource:(id)fp8;
80+@end
81+
82+@protocol T2ThreadFaceScoring_v100 <T2PluginInterface_v100>
83+- (id)scoreKeys;
84+- (id)localizedNameForScoreKey:(id)fp8;
85+- (id)scoreValueOfThreadFace:(id)fp8 forKey:(id)fp12;
86+@end
87+
88+@protocol T2ThreadHTMLProcessing_v100 <T2PluginInterface_v100>
89+- (id)processedHTML:(id)fp8 ofRes:(id)fp12 inThread:(id)fp16;
90+@end
91+
92+@protocol T2ThreadImporting_v100 <T2PluginInterface_v100>
93+- (id)importableRootPath;
94+- (id)threadForThreadFace:(id)fp8;
95+@end
96+
97+@protocol T2ThreadPartialHTMLExporting_v100 <T2PluginInterface_v100>
98+- (id)headerHTMLWithThread:(id)fp8 baseURL:(id *)fp12;
99+- (id)footerHTMLWithThread:(id)fp8;
100+- (id)resHTMLWithRes:(id)fp8;
101+- (id)popUpHeaderHTMLWithThread:(id)fp8 baseURL:(id *)fp12;
102+- (id)popUpFooterHTMLWithThread:(id)fp8;
103+@end
104+
105+@protocol T2ThreadPostingUsingWebView_v100 <T2PluginInterface_v100>
106+- (id)postableRootPath;
107+- (BOOL)canPostThreadToThreadList:(id)fp8;
108+- (id)URLRequestForPostingFirstRes:(id)fp8 threadTitle:(id)fp12 toThreadList:(id)fp16;
109+- (int)didEndPostingThreadForSource:(id)fp8;
110+@end
111+
112+@protocol T2ThreadProcessing_v100 <T2PluginInterface_v100>
113+- (void)processThread:(id)fp8 appendingIndex:(unsigned int)fp12;
114+@end
115+
116+@protocol T2URLPreviewing_v100 <T2PluginInterface_v100>
117+- (id)previewableURLHosts;
118+- (id)previewableURLExtensions;
119+- (BOOL)isPreviewableURLString:(id)fp8 type:(int)fp12;
120+- (id)partialHTMLForPreviewingURLString:(id)fp8 type:(int)fp12 minSize:(struct _NSSize *)fp16;
121+@end
122+
123+@interface THDocument : NSDocument
124+{
125+ float _progress;
126+ NSString *_progressInfo;
127+ BOOL _progressAnimating;
128+ T2ThreadFace *_tempThreadFace;
129+ int _maxTabCount;
130+ int _selectedTabIndex;
131+ NSMutableArray *_threadControllers;
132+ float _windowWidth;
133+ struct _NSSize _bookmarkTabSize;
134+ T2SplitView *_h1SplitView;
135+ NSScrollView *_threadTableViewScrollView;
136+ NSView *_threadTableViewPlaceHolder;
137+ NSWindow *_docWindow;
138+ NSToolbar *_toolbar;
139+ THBookmarkController *_bookmarkController;
140+ NSSegmentedControl *_segmentedControl;
141+ NSTabView *_tabView;
142+ NSTabViewItem *_bookmarkTab;
143+ NSTabViewItem *_webViewTab;
144+ THProgressIndicator *_progressIndicator;
145+ NSTextField *_progressInfoField;
146+ NSSearchField *_searchField;
147+}
148+
149++ (void)initialize;
150++ (void)setClassMaxThreadTabCount:(int)fp8;
151++ (int)classMaxThreadTabCount;
152++ (void)setClassNewTabAppearsInRightEnd:(BOOL)fp8;
153++ (BOOL)classNewTabAppearsInRightEnd;
154++ (id)oreyonPath;
155+- (id)init;
156+- (void)dealloc;
157+- (void)awakeFromNib;
158+- (void)saveOnApplicationTerminate;
159+- (id)windowNibName;
160+- (void)windowControllerDidLoadNib:(id)fp8;
161+- (id)dataRepresentationOfType:(id)fp8;
162+- (BOOL)readFromFile:(id)fp8 ofType:(id)fp12;
163+- (void)close;
164+- (void)setProgress:(float)fp8;
165+- (float)progress;
166+- (BOOL)progressAnimating;
167+- (void)setProgressInfo:(id)fp8;
168+- (id)progressInfo;
169+- (id)bookmarkController;
170+- (id)threadControllers;
171+- (id)docWindow;
172+- (int)tabIndexForThread:(id)fp8;
173+- (void)loadThreadForThreadFace:(id)fp8 activateTab:(BOOL)fp12;
174+- (void)loadThread:(id)fp8;
175+- (void)loadThread:(id)fp8 resExtractedPath:(id)fp12;
176+- (void)loadThreadForURLString:(id)fp8;
177+- (void)deleteLogFilesWithThreadFaces:(id)fp8;
178+- (void)setSelectedTabIndex:(int)fp8;
179+- (int)selectedTabIndex;
180+- (id)selectedThreadViewController;
181+- (id)selectedThreadView;
182+- (void)addTabWithTitle:(id)fp8 threadController:(id)fp12;
183+- (void)removeTabAtIndex:(int)fp8;
184+- (void)removeTabAtEnd;
185+- (void)adjustTabWidth;
186+- (void)displayTabTitleOfThreadController:(id)fp8;
187+- (void)selectBookmarkTab;
188+- (void)selectWebViewTab;
189+- (id)toolbarAllowedItemIdentifiers:(id)fp8;
190+- (id)toolbarDefaultItemIdentifiers:(id)fp8;
191+- (id)toolbar:(id)fp8 itemForItemIdentifier:(id)fp12 willBeInsertedIntoToolbar:(BOOL)fp16;
192+- (void)windowDidResize:(id)fp8;
193+- (BOOL)validateMenuItem:(id)fp8;
194+- (BOOL)validateToolbarItem:(id)fp8;
195+- (BOOL)validateUIOfAction:(SEL)fp8;
196+- (void)updateMenu;
197+- (void)segmentedControlClicked:(id)fp8;
198+- (void)showBookmarkTab:(id)fp8;
199+- (void)switchToLeftTab:(id)fp8;
200+- (void)switchToRightTab:(id)fp8;
201+- (void)closeTab:(id)fp8;
202+- (void)moveTabToRightEnd:(id)fp8;
203+- (void)activateSearchField:(id)fp8;
204+- (void)search:(id)fp8;
205+- (void)clearSearch:(id)fp8;
206+- (void)openURL:(id)fp8;
207+- (void)didEndURLOpenSheetWithURLString:(id)fp8;
208+- (void)openNextThread:(id)fp8;
209+- (void)openNextUpdatedThread:(id)fp8;
210+- (void)writeScreenShot:(id)fp8;
211+
212+@end
213+
214+@interface THStandardViewPlug : NSObject <T2ThreadPartialHTMLExporting_v100, T2DictionaryConverting>
215+{
216+ NSDictionary *_skinFilesDictionary;
217+ NSString *_templateName;
218+ NSString *_templatePath;
219+ NSString *_HTML_Header;
220+ NSString *_HTML_ResPart;
221+ NSString *_HTML_Footer;
222+ NSString *_popUp_Header;
223+ NSString *_popUp_Footer;
224+ T2KeyValueReplace *_headerReplace;
225+ T2KeyValueReplace *_resReplace;
226+ T2KeyValueReplace *_footerReplace;
227+}
228+
229++ (id)pluginInstances;
230+- (id)init;
231+- (void)loadTemplateList;
232+- (id)uniqueName;
233+- (id)localizedName;
234+- (id)localizedPluginInfo;
235+- (int)pluginType;
236+- (int)pluginOrder;
237+- (id)uniqueNamesOfdependingPlugins;
238+- (id)dictionaryConvertingKeysForUse:(int)fp8;
239+- (id)preferenceItems;
240+- (id)templateNames;
241+- (void)setTemplateName:(id)fp8;
242+- (id)templateName;
243+- (void)loadTemplate;
244+- (id)headerHTMLWithThread:(id)fp8 baseURL:(id *)fp12;
245+- (id)footerHTMLWithThread:(id)fp8;
246+- (id)resHTMLWithRes:(id)fp8;
247+- (id)popUpHeaderHTMLWithThread:(id)fp8 baseURL:(id *)fp12;
248+- (id)popUpFooterHTMLWithThread:(id)fp8;
249+- (id)HTMLWithThread:(id)fp8 baseURL:(id *)fp12;
250+
251+@end
252+
253+@interface TH2chImporterPlug : NSObject <T2PluginInterface_v100, T2DictionaryConverting, T2ThreadImporting_v100, T2ListImporting_v100, T2ResPostingUsingWebView_v100, T2ThreadPostingUsingWebView_v100>
254+{
255+ NSString *_bbsmenuURLString;
256+ NSString *_bbsmenuDateString;
257+ BOOL _useGZIP;
258+ BOOL _useOldDate;
259+ NSString *_beMail;
260+ NSString *_beCode;
261+ BOOL _isBeActive;
262+ NSDictionary *_masterListNG;
263+ NSDictionary *_boardDictionary;
264+ NSArray *_lists;
265+ T2ListFace *_rootListFace;
266+ NSSet *_liveBoardKeys;
267+}
268+
269++ (id)pluginInstances;
270+- (id)dictionaryConvertingKeysForUse:(int)fp8;
271+- (id)init;
272+- (void)dealloc;
273+- (void)setBBSMenuURLString:(id)fp8;
274+- (id)BBSMenuURLString;
275+- (void)setUseGZIP:(BOOL)fp8;
276+- (BOOL)useGZIP;
277+- (void)setUseOldDate:(BOOL)fp8;
278+- (BOOL)useOldDate;
279+- (void)setBBSMenuDateString:(id)fp8;
280+- (id)BBSMenuDateString;
281+- (void)setBeMail:(id)fp8;
282+- (id)beMail;
283+- (void)setBeCode:(id)fp8;
284+- (id)beCode;
285+- (void)setIsBeActive:(BOOL)fp8;
286+- (BOOL)IsBeActive;
287+- (void)setAdditionalBoardString:(id)fp8;
288+- (id)additionalBoardString;
289+- (id)uniqueName;
290+- (id)localizedName;
291+- (id)localizedPluginInfo;
292+- (int)pluginType;
293+- (int)pluginOrder;
294+- (id)preferenceItems;
295+- (id)importableRootPath;
296+- (id)threadForThreadFace:(id)fp8;
297+- (id)importableType;
298+- (id)URLRequestForThread:(id)fp8;
299+- (int)buildThread:(id)fp8 withWebData:(id)fp12;
300+- (id)importableTypes;
301+- (id)threadLogFilePathForInternalPath:(id)fp8;
302+- (id)threadInternalPathForProposedURLString:(id)fp8;
303+- (void)buildThread:(id)fp8 withSrcString:(id)fp12 appending:(BOOL)fp16;
304+- (void)removeLogFileAtPath:(id)fp8;
305+- (void)resetThread:(id)fp8;
306+- (id)listForListFace:(id)fp8;
307+- (id)URLRequestForList:(id)fp8;
308+- (int)buildList:(id)fp8 withWebData:(id)fp12;
309+- (id)rootListFaces;
310+- (id)listInternalPathForProposedURLString:(id)fp8;
311+- (id)imageForListFace:(id)fp8;
312+- (void)loadMasterListWithWebData:(id)fp8;
313+- (id)boardFacesInCategoryString:(id)fp8 boardDictionary:(id)fp12 liveBoardKeys:(id)fp16;
314+- (BOOL)isMasterListNG:(id)fp8;
315+- (void)buildThreadList:(id)fp8 WithWebData:(id)fp12 boardKey:(id)fp16;
316+- (id)postableRootPath;
317+- (BOOL)canPostResToThread:(id)fp8;
318+- (id)URLRequestForPostingRes:(id)fp8 thread:(id)fp12;
319+- (int)didEndPostingResForSource:(id)fp8;
320+- (id)accessoryPreferenceItems;
321+- (BOOL)canPostThreadToThreadList:(id)fp8;
322+- (id)URLRequestForPostingFirstRes:(id)fp8 threadTitle:(id)fp12 toThreadList:(id)fp16;
323+- (int)didEndPostingThreadForSource:(id)fp8;
324+- (void)reloadMasterList:(id)fp8;
325+
326+@end
327+
328+@interface THBookmarkController : NSResponder
329+{
330+ NSIndexSet *_sourceSelectedIndexes;
331+ T2ThreadList *_threadList;
332+ NSIndexSet *_threadSelectedIndexes;
333+ NSMutableArray *_browsingListArray;
334+ int _selectedScorerIndex;
335+ BOOL _browserVisible;
336+ NSDate *_lastNextThreadLoadingDate;
337+ THTableView *_sourceTable;
338+ THTableView *_threadTable;
339+ NSBrowser *_listBrowser;
340+ NSPopUpButton *_scorerPopUpButton;
341+ NSTableColumn *_scoreColumn;
342+ T2SplitView *_v1SplitView;
343+ T2SplitView *_h1SplitView;
344+ NSScrollView *_threadTableViewScrollView;
345+ NSView *_threadTableViewPlaceHolder;
346+ NSArrayController *_sourceFacesController;
347+ THFilterArrayController *_threadFacesController;
348+ THDocument *_document;
349+}
350+
351++ (void)initialize;
352++ (id)addCustomBookmarkListToSourceList;
353+- (id)init;
354+- (void)dealloc;
355+- (void)awakeFromNib;
356+- (id)sourceList;
357+- (void)setSourceSelectedIndexes:(id)fp8;
358+- (id)sourceSelectedIndexes;
359+- (void)setThreadList:(id)fp8;
360+- (id)threadList;
361+- (void)setThreadSelectedIndexes:(id)fp8;
362+- (id)threadSelectedIndexes;
363+- (id)scorerNames;
364+- (void)setSelectedScorerIndex:(int)fp8;
365+- (int)selectedScorerIndex;
366+- (void)setVisibleOfBrowser:(BOOL)fp8;
367+- (void)searchString:(id)fp8;
368+- (BOOL)canOpenNextThread;
369+- (BOOL)tableView:(id)fp8 writeRows:(id)fp12 toPasteboard:(id)fp16;
370+- (unsigned int)tableView:(id)fp8 validateDrop:(id)fp12 proposedRow:(int)fp16 proposedDropOperation:(unsigned int)fp20;
371+- (BOOL)tableView:(id)fp8 acceptDrop:(id)fp12 row:(int)fp16 dropOperation:(unsigned int)fp20;
372+- (void)browser:(id)fp8 willDisplayCell:(id)fp12 atRow:(int)fp16 column:(int)fp20;
373+- (void)selectActionInBrowser:(id)fp8;
374+- (BOOL)browserSelectRow:(int)fp8 inColumn:(int)fp12;
375+- (int)browser:(id)fp8 numberOfRowsInColumn:(int)fp12;
376+- (BOOL)browser:(id)fp8 isColumnValid:(int)fp12;
377+- (void)observeValueForKeyPath:(id)fp8 ofObject:(id)fp12 change:(id)fp16 context:(void *)fp20;
378+- (BOOL)validateMenuItem:(id)fp8;
379+- (BOOL)validateToolbarItem:(id)fp8;
380+- (BOOL)validateUIOfAction:(SEL)fp8;
381+- (void)selectSourceTable:(id)fp8;
382+- (void)selectThreadTable:(id)fp8;
383+- (void)reloadView:(id)fp8;
384+- (void)cancelLoding:(id)fp8;
385+- (void)removeSelectedListHolders:(id)fp8;
386+- (void)openSelectedThread:(id)fp8;
387+- (void)selectThread:(id)fp8;
388+- (void)removeSelectedThreads:(id)fp8;
389+- (void)deleteLogAlertDidEnd:(id)fp8 returnCode:(int)fp12 contextInfo:(void *)fp16;
390+- (void)removeSelectedThreadsImmediately:(id)fp8;
391+- (void)removeFallenThreads:(id)fp8;
392+- (void)deleteFallenThreadLogAlertDidEnd:(id)fp8 returnCode:(int)fp12 contextInfo:(void *)fp16;
393+- (void)openNextThread:(id)fp8;
394+- (void)openNextUpdatedThread:(id)fp8;
395+- (void)addToBookmark:(id)fp8;
396+- (void)openUsingWebBrowser:(id)fp8;
397+- (void)openUsingOreyon:(id)fp8;
398+- (void)postThread:(id)fp8;
399+- (void)copyURL:(id)fp8;
400+- (void)copyTitleAndURL:(id)fp8;
401+- (void)repairBoardData:(id)fp8;
402+
403+@end
404+
405+@interface THAppDelegate : NSObject
406+{
407+ NSString *_thousandAppSupportFolderPath;
408+ NSString *_logFolderPath;
409+ NSString *_pluginPrefFolderPath;
410+ BOOL _keyEquivalentForMultipleTabs;
411+ NSWindow *_sourceWindow;
412+ NSTextView *_sourceTextView;
413+ NSMenu *_fileMenu;
414+ NSMenuItem *_closeWindowMenuItem;
415+ NSMenuItem *_closeTabMenuItem;
416+ NSMenuItem *_threadResStyleMenuItem;
417+ NSMenuItem *_debugMenuItem;
418+}
419+
420++ (id)sharedInstance;
421+- (id)init;
422+- (void)awakeFromNib;
423+- (void)applicationWillFinishLaunching:(id)fp8;
424+- (void)applicationWillTerminate:(id)fp8;
425+- (void)documentController:(id)fp8 didCloseAll:(BOOL)fp12 contextInfo:(void *)fp16;
426+- (void)showSourceWindowWithString:(id)fp8;
427+- (void)setThreadResStyleMenuTitle:(id)fp8 enabled:(BOOL)fp12;
428+- (void)setKeyEquivalentForMultipleTabs:(BOOL)fp8;
429+- (void)windowDidBecomeKey:(id)fp8;
430+- (void)showPrefWindow:(id)fp8;
431+- (void)showDownloadWindow:(id)fp8;
432+- (void)saveBookmarksAndHistory:(id)fp8;
433+
434+@end
435+
436+@interface THThreadController : NSResponder
437+{
438+ THDocument *_document;
439+ T2Thread *_thread;
440+ T2ThreadView *_threadView;
441+ // Error parsing type: ^@"<T2ThreadHTMLExporting_v100>", name: _viewerPlug
442+ // Error parsing type: ^@"<T2ThreadPartialHTMLExporting_v100>", name: _partialViewerPlug
443+ NSString *_webDataURLString;
444+ NSString *_pressedURLString;
445+}
446+
447++ (void)setDefaultResExtractPath:(id)fp8;
448++ (id)threadControllerWithThreadView:(id)fp8 thread:(id)fp12 document:(id)fp16;
449+- (id)initWithThreadView:(id)fp8 thread:(id)fp12 document:(id)fp16;
450+- (void)dealloc;
451+- (void)setThread:(id)fp8;
452+- (id)thread;
453+- (void)setThreadView:(id)fp8;
454+- (id)threadView;
455+- (void)setDocument:(id)fp8;
456+- (id)document;
457+- (void)updateThreadMenu;
458+- (id)menusForThread;
459+- (void)threadView:(id)fp8 didFinishLoadingThread:(id)fp12;
460+- (void)threadView:(id)fp8 didDisplayThread:(id)fp12;
461+- (void)threadView:(id)fp8 clickedThreadPath:(id)fp12;
462+- (void)threadView:(id)fp8 clickedResPath:(id)fp12;
463+- (void)threadView:(id)fp8 clickedOtherURL:(id)fp12;
464+- (id)threadView:(id)fp8 contextMenuItemsForResPath:(id)fp12 defaultMenuItems:(id)fp16;
465+- (id)threadView:(id)fp8 contextMenuItemsForSelectedString:(id)fp12 defaultMenuItems:(id)fp16;
466+- (id)threadView:(id)fp8 contextMenuItemsForOtherURL:(id)fp12 defaultMenuItems:(id)fp16;
467+- (id)threadView:(id)fp8 contextMenuItemsForOtherElement:(id)fp12 defaultMenuItems:(id)fp16;
468+- (BOOL)validateMenuItem:(id)fp8;
469+- (BOOL)validateToolbarItem:(id)fp8;
470+- (BOOL)validateUIOfAction:(SEL)fp8;
471+- (void)searchString:(id)fp8;
472+- (void)reloadView:(id)fp8;
473+- (void)cancelLoding:(id)fp8;
474+- (void)showFirst100Res:(id)fp8;
475+- (void)showNext100Res:(id)fp8;
476+- (void)showLast100Res:(id)fp8;
477+- (void)showAllRes:(id)fp8;
478+- (void)showSource:(id)fp8;
479+- (void)removeSelectedThreads:(id)fp8;
480+- (void)deleteLogAlertDidEnd:(id)fp8 returnCode:(int)fp12 contextInfo:(void *)fp16;
481+- (void)removeSelectedThreadsImmediately:(id)fp8;
482+- (void)addToBookmark:(id)fp8;
483+- (void)moveToNewRes:(id)fp8;
484+- (void)openUsingWebBrowser:(id)fp8;
485+- (void)openUsingOreyon:(id)fp8;
486+- (void)copyURL:(id)fp8;
487+- (void)copyTitleAndURL:(id)fp8;
488+- (void)postRes:(id)fp8;
489+- (void)reply:(id)fp8;
490+- (void)searchSelectionInThread:(id)fp8;
491+- (void)searchSelectionUsingWebBrowser:(id)fp8;
492+- (void)setSelectionToNGWord:(id)fp8;
493+- (void)showPreviewableRes:(id)fp8;
494+- (void)previewInlineAll:(id)fp8;
495+- (void)copyLinkURL:(id)fp8;
496+- (void)openLinkUsingWebBrowser:(id)fp8;
497+- (void)downloadLink:(id)fp8;
498+
499+@end
500+
501+@interface NSMenuItem (THNSMenuItemAdditions)
502++ (id)menuItemWithTitle:(id)fp8 action:(SEL)fp12 target:(id)fp16;
503+@end
504+
505+@interface THBrowserMatrix : NSMatrix
506+{
507+}
508+
509+- (void)mouseDown:(id)fp8;
510+- (void)mouseDragged:(id)fp8;
511+- (BOOL)acceptsFirstResponder;
512+- (unsigned int)draggingSourceOperationMaskForLocal:(BOOL)fp8;
513+- (id)imageForCell:(id)fp8;
514+
515+@end
516+
517+@interface THTableView : NSTableView
518+{
519+ SEL _deleteKeyAction;
520+ SEL _leftArrowKeyAction;
521+ SEL _rightArrowKeyAction;
522+}
523+
524+- (unsigned int)draggingSourceOperationMaskForLocal:(BOOL)fp8;
525+- (void)setDeleteKeyAction:(SEL)fp8;
526+- (SEL)deleteKeyAction;
527+- (void)setLeftArrowKeyAction:(SEL)fp8;
528+- (SEL)leftArrowKeyAction;
529+- (void)setRightArrowKeyAction:(SEL)fp8;
530+- (SEL)rightArrowKeyAction;
531+- (void)keyDown:(id)fp8;
532+
533+@end
534+
535+@interface THStandardThreadScorer : NSObject <T2PluginInterface_v100, T2ThreadFaceScoring_v100>
536+{
537+}
538+
539++ (id)pluginInstances;
540+- (id)uniqueName;
541+- (id)localizedName;
542+- (id)localizedPluginInfo;
543+- (int)pluginType;
544+- (int)pluginOrder;
545+- (id)uniqueNamesOfdependingPlugins;
546+- (id)scoreKeys;
547+- (id)localizedNameForScoreKey:(id)fp8;
548+- (id)scoreValueOfThreadFace:(id)fp8 forKey:(id)fp12;
549+
550+@end
551+
552+@interface T2ThreadFace (CombinedScorer)
553+- (double)combinedScore;
554+- (id)combinedScoreString;
555+@end
556+
557+@interface THFlippedView : NSView
558+{
559+}
560+
561+- (BOOL)isFlipped;
562+
563+@end
564+
565+@interface THTableHeaderView : NSTableHeaderView
566+{
567+ NSPopUpButton *_sorterPopUpButton;
568+}
569+
570+- (void)setPopUpButton:(id)fp8;
571+- (id)popUpButton;
572+- (void)fitPopUpButton;
573+- (void)drawRect:(struct _NSRect)fp8;
574+
575+@end
576+
577+@interface THFilterArrayController : NSArrayController
578+{
579+ NSString *_searchString;
580+}
581+
582+- (void)setSearchString:(id)fp8;
583+- (id)searchString;
584+- (id)arrangeObjects:(id)fp8;
585+
586+@end
587+
588+@interface THLocalFileImporter : NSObject <T2PluginInterface_v100, T2ListImporting_v100, T2ThreadImporting_v100>
589+{
590+ TH2chImporterPlug *_2chImporterPlug;
591+}
592+
593++ (id)pluginInstances;
594+- (id)init;
595+- (void)dealloc;
596+- (id)uniqueName;
597+- (id)localizedName;
598+- (id)localizedPluginInfo;
599+- (int)pluginType;
600+- (int)pluginOrder;
601+- (id)uniqueNamesOfdependingPlugins;
602+- (id)importableRootPath;
603+- (id)listForListFace:(id)fp8;
604+- (id)imageForListFace:(id)fp8;
605+- (id)threadItemWithDatFilePath:(id)fp8;
606+- (BOOL)readableFileIsInFolder:(id)fp8;
607+- (void)loadAllInfoForThreadList:(id)fp8;
608+- (id)threadForThreadFace:(id)fp8;
609+- (id)importableTypes;
610+- (id)threadLogFilePathForInternalPath:(id)fp8;
611+
612+@end
613+
614+@interface THProgressIndicator : NSProgressIndicator
615+{
616+ NSTextField *_infoTextField;
617+ BOOL _isLoaded;
618+}
619+
620+- (void)awakeFromNib;
621+- (void)setHidden:(BOOL)fp8;
622+
623+@end
624+
625+@interface THHistoryImporter : NSObject <T2PluginInterface_v100, T2DictionaryConverting, T2ListImporting_v100>
626+{
627+ unsigned int _threadHistoryMax;
628+ unsigned int _resPostedThreadHistoryMax;
629+ unsigned int _threadListHistoryMax;
630+ T2ThreadHistory *_threadHistory;
631+ T2ThreadHistory *_resPostedThreadHistory;
632+ T2ListHistory *_threadListHistory;
633+ NSArray *_listFaces;
634+}
635+
636++ (id)pluginInstances;
637+- (id)init;
638+- (void)dealloc;
639+- (void)setThreadHistoryMax:(int)fp8;
640+- (int)threadHistoryMax;
641+- (void)setResPostedThreadHistoryMax:(int)fp8;
642+- (int)resPostedThreadHistoryMax;
643+- (void)setThreadListHistoryMax:(int)fp8;
644+- (int)threadListHistoryMax;
645+- (id)uniqueName;
646+- (id)localizedName;
647+- (id)localizedPluginInfo;
648+- (int)pluginType;
649+- (int)pluginOrder;
650+- (id)dictionaryConvertingKeysForUse:(int)fp8;
651+- (id)preferenceItems;
652+- (id)importableRootPath;
653+- (id)listForListFace:(id)fp8;
654+- (id)rootListFaces;
655+- (id)imageForListFace:(id)fp8;
656+- (void)eraseThreadHistory:(id)fp8;
657+- (void)eraseResPostedThreadHistory:(id)fp8;
658+- (void)eraseThreadListHistory:(id)fp8;
659+
660+@end
661+
662+@interface THStandardThreadProcessor : NSObject <T2ThreadProcessing_v100, T2ThreadHTMLProcessing_v100, T2ResExtracting_v100>
663+{
664+ BOOL _enabled;
665+ NSString *_resAnchorCharactersString;
666+ NSCharacterSet *_resAnchorCharacterSet;
667+ NSCharacterSet *_controlCharacterSet;
668+ NSCharacterSet *_digitAndSeparatorCharacterSet;
669+ NSCharacterSet *_urlCharacterSet;
670+ NSArray *_extractKeys;
671+}
672+
673++ (id)pluginInstances;
674+- (id)init;
675+- (void)dealloc;
676+- (void)setResAnchorCharactersString:(id)fp8;
677+- (id)resAnchorCharactersString;
678+- (id)uniqueName;
679+- (id)localizedName;
680+- (id)localizedPluginInfo;
681+- (int)pluginType;
682+- (int)pluginOrder;
683+- (id)uniqueNamesOfdependingPlugins;
684+- (id)preferenceItems;
685+- (void)setEnabled:(BOOL)fp8;
686+- (BOOL)enabled;
687+- (void)processThread:(id)fp8 appendingIndex:(unsigned int)fp12;
688+- (id)processedHTML:(id)fp8 ofRes:(id)fp12 inThread:(id)fp16;
689+- (id)extractKeys;
690+- (id)extractResIndexesInThread:(id)fp8 forKey:(id)fp12 path:(id)fp16;
691+- (id)localizedDescriptionForKey:(id)fp8 path:(id)fp12;
692+
693+@end
694+
695+@interface THMetalWindow : NSWindow
696+{
697+}
698+
699++ (void)setClassTexturedBackground:(BOOL)fp8;
700++ (BOOL)classTexturedBackground;
701+- (id)initWithContentRect:(struct _NSRect)fp8 styleMask:(unsigned int)fp24 backing:(unsigned int)fp28 defer:(BOOL)fp32;
702+
703+@end
704+
705+@interface THURLOpenWindowController : NSWindowController
706+{
707+ NSWindow *_docWindow;
708+ id _delegate;
709+ NSString *_URLString;
710+ NSTextField *_textField;
711+}
712+
713++ (id)biginSheetModalForWindow:(id)fp8 delegate:(id)fp12;
714+- (id)initSheetModalForWindow:(id)fp8 delegate:(id)fp12;
715+- (void)biginSheet;
716+- (void)didEndSheet:(id)fp8 returnCode:(int)fp12 contextInfo:(void *)fp16;
717+- (void)dealloc;
718+- (void)close:(id)fp8;
719+- (void)open:(id)fp8;
720+
721+@end
722+
723+@interface THAddBookmarkWindowController : NSWindowController
724+{
725+ NSWindow *_docWindow;
726+ NSArray *_threadFaces;
727+ T2BookmarkList *_selectedBookmarkList;
728+ NSPopUpButton *_popUpButton;
729+}
730+
731++ (id)biginSheetModalForWindow:(id)fp8 threadFaces:(id)fp12;
732+- (id)allBookmarkLists;
733+- (void)setSelectedBookmarkList:(id)fp8;
734+- (id)selectedBookmarkList;
735+- (id)initSheetModalForWindow:(id)fp8 threadFaces:(id)fp12;
736+- (void)biginSheet;
737+- (void)didEndSheet:(id)fp8 returnCode:(int)fp12 contextInfo:(void *)fp16;
738+- (void)dealloc;
739+- (void)newBookmark:(id)fp8;
740+- (void)cancelAction:(id)fp8;
741+- (void)okAction:(id)fp8;
742+
743+@end
744+
745+@interface THPostingWindowController : NSWindowController
746+{
747+ T2Thread *_thread;
748+ T2ThreadList *_threadList;
749+ NSString *_content;
750+ // Error parsing type: @"NSObject<T2ResPostingUsingWebView_v100>", name: _resPostingPlug
751+ // Error parsing type: @"NSObject<T2ThreadPostingUsingWebView_v100>", name: _threadPostingPlug
752+ BOOL _postingWindowSizeLoaded;
753+ BOOL _postingSucceeded;
754+ WebView *_webView;
755+ NSTextField *_boardLabelTextField;
756+ NSTextField *_boardTextField;
757+ NSTextField *_titleLabelTextField;
758+ NSTextField *_titleTextField;
759+ NSTextField *_editableTitleTextField;
760+ NSComboBox *_nameTextField;
761+ NSComboBox *_mailTextField;
762+ T2SplitView *_splitView;
763+ NSTextView *_contentTextView;
764+ T2PluginPrefView *_pluginPrefView;
765+ NSTabView *_tabView;
766+ NSTabViewItem *_draftTab;
767+ NSTabViewItem *_responseTab;
768+}
769+
770++ (void)initialize;
771++ (void)setClassUsedNames:(id)fp8;
772++ (id)classUsedNames;
773++ (void)setClassUsedMails:(id)fp8;
774++ (id)classUsedMails;
775++ (id)resPostingWindowForThread:(id)fp8 content:(id)fp12;
776++ (id)threadPostingWindowForThreadList:(id)fp8;
777+- (id)initResPostingWindowForThread:(id)fp8 content:(id)fp12;
778+- (id)initThreadPostingWindowForThreadList:(id)fp8;
779+- (void)dealloc;
780+- (void)awakeFromNib;
781+- (id)usedNames;
782+- (id)usedMails;
783+- (void)windowWillClose:(id)fp8;
784+- (void)windowDidMove:(id)fp8;
785+- (void)windowDidResize:(id)fp8;
786+- (void)webView:(id)fp8 didFinishLoadForFrame:(id)fp12;
787+- (void)post:(id)fp8;
788+- (void)close:(id)fp8;
789+- (void)backToDraft:(id)fp8;
790+
791+@end
792+
793+@interface T2Res (THT2ResAdditions)
794+- (id)forwardLinkedResNumberString;
795+- (id)tripLinkedName;
796+- (id)linkedIdentifier;
797+- (id)linkedBeString;
798+@end
799+
800+@interface T2ThreadListItem : T2IdentifiedObject
801+{
802+}
803+
804+- (id)initWithEncodedDictionary:(id)fp8;
805+
806+@end
807+
808+@interface T2BookmarkListHolder : T2IdentifiedObject
809+{
810+}
811+
812+- (id)initWithEncodedDictionary:(id)fp8;
813+
814+@end
815+
816+@interface T2ThreadListHolder : T2IdentifiedObject
817+{
818+}
819+
820+- (id)initWithEncodedDictionary:(id)fp8;
821+
822+@end
823+
824+@interface T2ListHolder : T2IdentifiedObject
825+{
826+}
827+
828+- (id)initWithEncodedDictionary:(id)fp8;
829+
830+@end
831+
832+@interface T2List (THCompatibility)
833+- (void)setList:(id)fp8;
834+- (id)list;
835+- (id)dictionaryConvertingKeysForUse:(int)fp8;
836+@end
837+
838+@interface THPrefWindowController : NSWindowController <T2DictionaryConverting>
839+{
840+ NSArray *_plugins;
841+ id _selectedPlugin;
842+ id _selectedListImporterPlugin;
843+ id _selectedPartialHTMLPlugin;
844+ id _selectedHTMLExporterPlugin;
845+ id _selectedURLPreviewerPlugin;
846+ unsigned int _changingFont;
847+ NSFont *_webStandardFont;
848+ NSFont *_webFixedFont;
849+ BOOL _showsDebugMenu;
850+ NSDictionary *_iconSetFolderDic;
851+ NSArray *_iconSetNames;
852+ NSString *_iconSetName;
853+ WebPreferences *_webPreferences;
854+ NSObjectController *_selfController;
855+ NSWindow *_prefWindow;
856+ NSTabView *_prefTabView;
857+ T2PluginPrefView *_allPluginsView;
858+ T2PluginPrefView *_listImporterPluginsView;
859+ T2PluginPrefView *_HTMLPluginsView;
860+ T2PluginPrefView *_URLPreviewerPluginsView;
861+}
862+
863++ (id)sharedPrefWindowController;
864++ (void)releaseSharedPrefWindowController;
865+- (id)dictionaryConvertingKeysForUse:(int)fp8;
866+- (id)initPrefWindowController;
867+- (void)dealloc;
868+- (void)windowDidLoad;
869+- (id)toolbarAllowedItemIdentifiers:(id)fp8;
870+- (id)toolbarDefaultItemIdentifiers:(id)fp8;
871+- (id)toolbarSelectableItemIdentifiers:(id)fp8;
872+- (id)toolbar:(id)fp8 itemForItemIdentifier:(id)fp12 willBeInsertedIntoToolbar:(BOOL)fp16;
873+- (id)pluginDictionary;
874+- (id)pluginManager;
875+- (void)setSelectedPlugin:(id)fp8;
876+- (id)selectedPlugin;
877+- (void)setSelectedListImporterPlugin:(id)fp8;
878+- (id)selectedListImporterPlugin;
879+- (void)setSelectedPartialHTMLExporterPlugin:(id)fp8;
880+- (id)selectedPartialHTMLExporterPlugin;
881+- (void)setSelectedHTMLExporterPlugin:(id)fp8;
882+- (id)selectedHTMLExporterPlugin;
883+- (void)setSelectedURLPreviewerPlugin:(id)fp8;
884+- (id)selectedURLPreviewerPlugin;
885+- (void)loadFont;
886+- (void)saveFont;
887+- (id)fontFromPref:(id)fp8 size:(id)fp12;
888+- (void)changeFont:(id)fp8;
889+- (void)registerChangingFont:(id)fp8;
890+- (void)setWebStandardFont:(id)fp8;
891+- (id)webStandardFont;
892+- (id)webStandardFontDisplayName;
893+- (void)setWebFixedFont:(id)fp8;
894+- (id)webFixedFont;
895+- (id)webFixedFontDisplayName;
896+- (void)setBrowserMetal:(BOOL)fp8;
897+- (BOOL)browserMetal;
898+- (void)setMaxThreadTabCount:(int)fp8;
899+- (int)maxThreadTabCount;
900+- (id)iconSetNames;
901+- (BOOL)iconSetSelectable;
902+- (void)setIconSetName:(id)fp8;
903+- (id)iconSetName;
904+- (void)setResPopUpWindowWidth:(float)fp8;
905+- (float)resPopUpWindowWidth;
906+- (void)setPopUpDelaySeconds:(float)fp8;
907+- (float)popUpDelaySeconds;
908+- (void)setNewTabLocationType:(int)fp8;
909+- (int)newTabLocationType;
910+- (void)setUsedNames:(id)fp8;
911+- (id)usedNames;
912+- (void)setUsedMails:(id)fp8;
913+- (id)usedMails;
914+- (void)setDownloadInThreadFolder:(BOOL)fp8;
915+- (BOOL)downloadInThreadFolder;
916+- (void)setDownloadWhenFilesExist:(BOOL)fp8;
917+- (BOOL)downloadWhenFilesExist;
918+- (void)setDownloadDestinationFolderPath:(id)fp8;
919+- (id)downloadDestinationFolderPath;
920+- (void)setShowsDebugMenu:(BOOL)fp8;
921+- (BOOL)showsDebugMenu;
922+- (void)setSafari2Debug:(BOOL)fp8;
923+- (BOOL)safari2Debug;
924+- (void)saveAllPrefs;
925+- (void)switchPrefTab:(id)fp8;
926+- (void)clearNameAndMailHistory:(id)fp8;
927+- (void)reloadSkins:(id)fp8;
928+- (void)selectDownloadDestinationFolderPath:(id)fp8;
929+- (void)openDownloadDestinationFolderPanelDidEnd:(id)fp8 returnCode:(int)fp12 contextInfo:(void *)fp16;
930+
931+@end
932+
933+@interface THImagePreviewer : NSObject <T2URLPreviewing_v100, T2DictionaryConverting>
934+{
935+ int _widthPixel;
936+ int _inlineWidthPixel;
937+}
938+
939++ (id)pluginInstances;
940+- (id)init;
941+- (void)setWidthPixel:(int)fp8;
942+- (int)widthPixel;
943+- (void)setInlineWidthPixel:(int)fp8;
944+- (int)inlineWidthPixel;
945+- (id)dictionaryConvertingKeysForUse:(int)fp8;
946+- (id)uniqueName;
947+- (id)localizedName;
948+- (id)localizedPluginInfo;
949+- (int)pluginType;
950+- (int)pluginOrder;
951+- (id)preferenceItems;
952+- (id)previewableURLHosts;
953+- (id)previewableURLExtensions;
954+- (BOOL)isPreviewableURLString:(id)fp8 type:(int)fp12;
955+- (id)partialHTMLForPreviewingURLString:(id)fp8 type:(int)fp12 minSize:(struct _NSSize *)fp16;
956+
957+@end
958+
959+@interface THVideoThumbnailPreviewer : NSObject <T2URLPreviewing_v100>
960+{
961+}
962+
963++ (id)pluginInstances;
964+- (id)init;
965+- (id)uniqueName;
966+- (id)localizedName;
967+- (id)localizedPluginInfo;
968+- (int)pluginType;
969+- (int)pluginOrder;
970+- (id)previewableURLHosts;
971+- (id)previewableURLExtensions;
972+- (BOOL)isPreviewableURLString:(id)fp8 type:(int)fp12;
973+- (id)partialHTMLForPreviewingURLString:(id)fp8 type:(int)fp12 minSize:(struct _NSSize *)fp16;
974+
975+@end
976+
977+@interface THWebDownloader : NSObject
978+{
979+ NSString *_urlString;
980+ NSString *_destinationFolderPath;
981+ NSString *_destinationPath;
982+ NSString *_message;
983+ long long _expectedContentLength;
984+ long long _receivedContentLength;
985+ float _progress;
986+ BOOL _isLoading;
987+ NSURLDownload *_download;
988+}
989+
990++ (void)initialize;
991++ (id)webDownLoaderWithURLString:(id)fp8 destinationFolderPath:(id)fp12;
992++ (void)setClassDownloadWhenFilesExist:(BOOL)fp8;
993++ (BOOL)classDownloadWhenFilesExist;
994+- (id)initWithURLString:(id)fp8 destinationFolderPath:(id)fp12;
995+- (void)dealloc;
996+- (void)setURLString:(id)fp8;
997+- (id)URLString;
998+- (void)setDestinationFolderPath:(id)fp8;
999+- (id)destinationFolderPath;
1000+- (void)setDestinationPath:(id)fp8;
1001+- (id)destinationPath;
1002+- (id)fileName;
1003+- (void)setMessage:(id)fp8;
1004+- (id)message;
1005+- (void)setProgress:(float)fp8;
1006+- (float)progress;
1007+- (id)progressString;
1008+- (void)setIsLoading:(BOOL)fp8;
1009+- (BOOL)isLoading;
1010+- (void)finishDownload;
1011+- (void)cancelDownload;
1012+- (void)cancelDownload:(id)fp8;
1013+- (void)revealInFinder:(id)fp8;
1014+- (void)openFile:(id)fp8;
1015+- (void)download:(id)fp8 decideDestinationWithSuggestedFilename:(id)fp12;
1016+- (void)download:(id)fp8 didFailWithError:(id)fp12;
1017+- (void)download:(id)fp8 didReceiveResponse:(id)fp12;
1018+- (void)download:(id)fp8 didReceiveDataOfLength:(unsigned int)fp12;
1019+- (BOOL)download:(id)fp8 shouldDecodeSourceDataOfMIMEType:(id)fp12;
1020+- (void)downloadDidBegin:(id)fp8;
1021+- (void)downloadDidFinish:(id)fp8;
1022+
1023+@end
1024+
1025+@interface THDownloadWindowController : NSWindowController
1026+{
1027+ NSArray *_downloaders;
1028+ NSArrayController *_downloadersController;
1029+ THTableView *_tableView;
1030+}
1031+
1032++ (void)initialize;
1033++ (id)downloadWindowController;
1034++ (void)setClassDownloadInThreadFolder:(BOOL)fp8;
1035++ (BOOL)classDownloadInThreadFolder;
1036++ (void)setClassDownloadDestinationFolderPath:(id)fp8;
1037++ (id)classDownloadDestinationFolderPath;
1038+- (id)initDownloadWindowController;
1039+- (void)awakeFromNib;
1040+- (void)dealloc;
1041+- (void)setDownloaders:(id)fp8;
1042+- (id)downloaders;
1043+- (void)addDownloadOfURLString:(id)fp8 inThread:(id)fp12;
1044+- (BOOL)tableView:(id)fp8 writeRows:(id)fp12 toPasteboard:(id)fp16;
1045+- (void)removeAllDownloaders:(id)fp8;
1046+- (void)cancelLoading:(id)fp8;
1047+- (void)cancelSelectedDonwload:(id)fp8;
1048+- (void)openFileOfSelectedDonwload:(id)fp8;
1049+- (void)revealFileOfSelectedDonwload:(id)fp8;
1050+- (void)copyURLOfSelectedDownload:(id)fp8;
1051+
1052+@end
1053+
1054+@interface THSecondaryThreadProcessor : NSObject <T2ThreadProcessing_v100, T2ResExtracting_v100, T2DictionaryConverting>
1055+{
1056+ BOOL _aaDetectorEnabled;
1057+ BOOL _mineDetectorEnabled;
1058+ NSCharacterSet *_skipCharSet;
1059+ NSCharacterSet *_AACharSet;
1060+ NSString *_AACharSetString;
1061+ NSString *_minesString;
1062+ NSArray *_mineStrings;
1063+ NSArray *_extractKeys;
1064+}
1065+
1066++ (id)pluginInstances;
1067+- (id)init;
1068+- (void)dealloc;
1069+- (id)dictionaryConvertingKeysForUse:(int)fp8;
1070+- (void)setAaDetectorEnabled:(BOOL)fp8;
1071+- (BOOL)aaDetectorEnabled;
1072+- (void)setMineDetectorEnabled:(BOOL)fp8;
1073+- (BOOL)mineDetectorEnabled;
1074+- (void)setAACharSetString:(id)fp8;
1075+- (id)AACharSetString;
1076+- (void)setMinesString:(id)fp8;
1077+- (id)minesString;
1078+- (id)uniqueName;
1079+- (id)localizedName;
1080+- (id)localizedPluginInfo;
1081+- (int)pluginType;
1082+- (int)pluginOrder;
1083+- (id)uniqueNamesOfdependingPlugins;
1084+- (id)preferenceItems;
1085+- (void)processThread:(id)fp8 appendingIndex:(unsigned int)fp12;
1086+- (id)extractKeys;
1087+- (id)extractResIndexesInThread:(id)fp8 forKey:(id)fp12 path:(id)fp16;
1088+- (id)localizedDescriptionForKey:(id)fp8 path:(id)fp12;
1089+
1090+@end
1091+
1092+@interface THFontWell : NSButton
1093+{
1094+ NSString *_TH_keyPath;
1095+ id _TH_controller;
1096+}
1097+
1098++ (void)initialize;
1099++ (void)deactivateAllFontWells;
1100+- (id)init;
1101+- (void)dealloc;
1102+- (void)setFont:(id)fp8;
1103+- (void)bind:(id)fp8 toObject:(id)fp12 withKeyPath:(id)fp16 options:(id)fp20;
1104+- (void)unbind:(id)fp8;
1105+- (void)changeFont:(id)fp8;
1106+- (void)changeEachFont:(id)fp8;
1107+- (void)awakeFromNib;
1108+- (void)mouseDown:(id)fp8;
1109+- (void)windowWillClose:(id)fp8;
1110+- (BOOL)sendAction:(SEL)fp8 to:(id)fp12;
1111+- (void)activate:(BOOL)fp8;
1112+- (void)deactivate;
1113+- (BOOL)isActive;
1114+
1115+@end
1116+
1117+@interface NSWindow (THAppKitAdditions)
1118+- (BOOL)writeWindowImageToJPEGFile:(id)fp8 compressionFactor:(float)fp12;
1119+@end
1120+
--- /dev/null
+++ b/Thousand2ch.classes
@@ -0,0 +1,1388 @@
1+/*
2+ * Generated by class-dump 3.1.
3+ *
4+ * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2005 by Steve Nygard.
5+ */
6+
7+struct OpaqueTECObjectRef;
8+
9+struct OpaqueTECSnifferObjectRef;
10+
11+struct _NSPoint {
12+ float _field1;
13+ float _field2;
14+};
15+
16+struct _NSRange {
17+ unsigned int _field1;
18+ unsigned int _field2;
19+};
20+
21+struct _NSRect {
22+ struct _NSPoint _field1;
23+ struct _NSSize _field2;
24+};
25+
26+struct _NSSize {
27+ float _field1;
28+ float _field2;
29+};
30+
31+struct _NSZone;
32+
33+/*
34+ * File: /Users/masaki/Applications/Thousand.app/Contents/Frameworks/Thousand2ch.framework/Versions/A/Thousand2ch
35+ * Arch: PowerPC (ppc)
36+ * Current version: 1.0.0, Compatibility version: 1.0.0
37+ */
38+
39+@protocol DOMEventListener <NSObject>
40+- (void)handleEvent:(id)fp8;
41+@end
42+
43+@protocol NSCoding
44+- (void)encodeWithCoder:(id)fp8;
45+- (id)initWithCoder:(id)fp8;
46+@end
47+
48+@protocol NSObject
49+- (BOOL)isEqual:(id)fp8;
50+- (unsigned int)hash;
51+- (Class)superclass;
52+- (Class)class;
53+- (id)self;
54+- (struct _NSZone *)zone;
55+- (id)performSelector:(SEL)fp8;
56+- (id)performSelector:(SEL)fp8 withObject:(id)fp12;
57+- (id)performSelector:(SEL)fp8 withObject:(id)fp12 withObject:(id)fp16;
58+- (BOOL)isProxy;
59+- (BOOL)isKindOfClass:(Class)fp8;
60+- (BOOL)isMemberOfClass:(Class)fp8;
61+- (BOOL)conformsToProtocol:(id)fp8;
62+- (BOOL)respondsToSelector:(SEL)fp8;
63+- (id)retain;
64+- (oneway void)release;
65+- (id)autorelease;
66+- (unsigned int)retainCount;
67+- (id)description;
68+@end
69+
70+@protocol T2AsynchronousLoading <NSObject>
71+- (void)load;
72+- (void)cancelLoading;
73+- (BOOL)isLoading;
74+- (float)progress;
75+- (id)progressInfo;
76+@end
77+
78+@protocol T2DictionaryConverting
79+- (id)dictionaryConvertingKeysForUse:(int)fp8;
80+@end
81+
82+@protocol T2ListImporting_v100 <T2PluginInterface_v100>
83+- (id)importableRootPath;
84+- (id)listForListFace:(id)fp8;
85+@end
86+
87+@protocol T2PluginInterface_v100 <NSObject>
88++ (id)pluginInstances;
89+- (id)uniqueName;
90+- (id)localizedName;
91+- (id)localizedPluginInfo;
92+- (int)pluginType;
93+- (int)pluginOrder;
94+@end
95+
96+@protocol T2ResExtracting_v100 <T2PluginInterface_v100>
97+- (id)extractKeys;
98+- (id)extractResIndexesInThread:(id)fp8 forKey:(id)fp12 path:(id)fp16;
99+- (id)localizedDescriptionForKey:(id)fp8 path:(id)fp12;
100+@end
101+
102+@protocol T2ResPostingUsingWebView_v100 <T2PluginInterface_v100>
103+- (id)postableRootPath;
104+- (BOOL)canPostResToThread:(id)fp8;
105+- (id)URLRequestForPostingRes:(id)fp8 thread:(id)fp12;
106+- (int)didEndPostingResForSource:(id)fp8;
107+@end
108+
109+@protocol T2ThreadFaceScoring_v100 <T2PluginInterface_v100>
110+- (id)scoreKeys;
111+- (id)localizedNameForScoreKey:(id)fp8;
112+- (id)scoreValueOfThreadFace:(id)fp8 forKey:(id)fp12;
113+@end
114+
115+@protocol T2ThreadHTMLExporting_v100 <T2PluginInterface_v100>
116+- (id)HTMLWithThread:(id)fp8 baseURL:(id *)fp12;
117+@end
118+
119+@protocol T2ThreadHTMLProcessing_v100 <T2PluginInterface_v100>
120+- (id)processedHTML:(id)fp8 ofRes:(id)fp12 inThread:(id)fp16;
121+@end
122+
123+@protocol T2ThreadImporting_v100 <T2PluginInterface_v100>
124+- (id)importableRootPath;
125+- (id)threadForThreadFace:(id)fp8;
126+@end
127+
128+@protocol T2ThreadPartialHTMLExporting_v100 <T2PluginInterface_v100>
129+- (id)headerHTMLWithThread:(id)fp8 baseURL:(id *)fp12;
130+- (id)footerHTMLWithThread:(id)fp8;
131+- (id)resHTMLWithRes:(id)fp8;
132+- (id)popUpHeaderHTMLWithThread:(id)fp8 baseURL:(id *)fp12;
133+- (id)popUpFooterHTMLWithThread:(id)fp8;
134+@end
135+
136+@protocol T2ThreadPostingUsingWebView_v100 <T2PluginInterface_v100>
137+- (id)postableRootPath;
138+- (BOOL)canPostThreadToThreadList:(id)fp8;
139+- (id)URLRequestForPostingFirstRes:(id)fp8 threadTitle:(id)fp12 toThreadList:(id)fp16;
140+- (int)didEndPostingThreadForSource:(id)fp8;
141+@end
142+
143+@protocol T2ThreadProcessing_v100 <T2PluginInterface_v100>
144+- (void)processThread:(id)fp8 appendingIndex:(unsigned int)fp12;
145+@end
146+
147+@protocol T2URLPreviewing_v100 <T2PluginInterface_v100>
148+- (id)previewableURLHosts;
149+- (id)previewableURLExtensions;
150+- (BOOL)isPreviewableURLString:(id)fp8 type:(int)fp12;
151+- (id)partialHTMLForPreviewingURLString:(id)fp8 type:(int)fp12 minSize:(struct _NSSize *)fp16;
152+@end
153+
154+@interface T2Thread : T2IdentifiedObject <T2DictionaryConverting, T2AsynchronousLoading>
155+{
156+ T2ThreadFace *_threadFace;
157+ NSArray *_resArray;
158+ NSIndexSet *_loadedResIndexes;
159+ NSMutableDictionary *_idDictionary;
160+ NSMutableDictionary *_tripDictionary;
161+ NSMutableDictionary *_pathStyleDictionary;
162+ NSMutableDictionary *_indexesStyleDictionary;
163+ NSIndexSet *_styleUpdatedresIndexes;
164+ NSString *_draft;
165+ T2WebConnector *_connector;
166+ id _delegate;
167+ BOOL _isLoading;
168+ BOOL _isActive;
169+ float _progress;
170+ NSString *_progressInfo;
171+ BOOL _shouldSavePList;
172+ double _loadingInterval;
173+ NSDate *_lastLoadingDate;
174+ unsigned int _retryCount;
175+ unsigned int _newResIndex;
176+ NSString *_webBrowserURLString;
177+}
178+
179++ (void)initialize;
180++ (id)dictionaryForIndentify;
181++ (id)threadWithThreadFace:(id)fp8 resArray:(id)fp12;
182+- (id)dictionaryConvertingKeysForUse:(int)fp8;
183+- (id)initWithThreadFace:(id)fp8 resArray:(id)fp12;
184+- (void)dealloc;
185+- (void)setThreadFace:(id)fp8;
186+- (id)threadFace;
187+- (void)setResArray:(id)fp8;
188+- (id)resArray;
189+- (id)originalResArray;
190+- (void)setLoadedResIndexes:(id)fp8;
191+- (id)loadedResIndexes;
192+- (void)setDraft:(id)fp8;
193+- (id)draft;
194+- (id)resArrayForIndexes:(id)fp8;
195+- (void)setShouldSavePList:(BOOL)fp8;
196+- (BOOL)shouldSavePList;
197+- (void)setLoadingInterval:(double)fp8;
198+- (double)loadingInterval;
199+- (void)setLastLoadingDate:(id)fp8;
200+- (id)lastLoadingDate;
201+- (BOOL)loadableInterval;
202+- (void)setNewResIndex:(unsigned int)fp8;
203+- (unsigned int)newResIndex;
204+- (void)setWebBrowserURLString:(id)fp8;
205+- (id)webBrowserURLString;
206+- (void)setIdDictionary:(id)fp8;
207+- (id)idDictionary;
208+- (void)setTripDictionary:(id)fp8;
209+- (id)tripDictionary;
210+- (void)setDelegate:(id)fp8;
211+- (id)delegate;
212+- (void)notifyLoadedResIndexes:(id)fp8 location:(unsigned int)fp12;
213+- (void)notifyUpdatedStyleOfResIndexes:(id)fp8;
214+- (id)forwardResIndexesFromResIndexes:(id)fp8;
215+- (id)backwardResIndexesFromResIndexes:(id)fp8;
216+- (id)traceResIndexes:(id)fp8 depth:(unsigned int)fp12;
217+- (id)backtraceResIndexes:(id)fp8 depth:(unsigned int)fp12;
218+- (id)subThreadWithExtractPath:(id)fp8;
219+- (id)resIndexesWithExtractPath:(id)fp8;
220+- (BOOL)newResIndexIsIn2ndToLast;
221+- (void)setPathStyleDictionary:(id)fp8;
222+- (id)pathStyleDictionary;
223+- (void)setIndexesStyleDictionary:(id)fp8;
224+- (id)indexesStyleDictionary;
225+- (void)setStyleUpdatedResIndexes:(id)fp8;
226+- (id)styleUpdatedResIndexes;
227+- (BOOL)hasStyles;
228+- (void)addStyle:(id)fp8 ofResWithExtractPath:(id)fp12;
229+- (void)addInternalStyle:(id)fp8 ofResWithExtractPath:(id)fp12;
230+- (void)addInternalStyle:(id)fp8 ofResWithIndexes:(id)fp12;
231+- (void)removeStylesOfResWithExtractPath:(id)fp8;
232+- (void)removeInternalStylesOfResWithExtractPath:(id)fp8;
233+- (void)removeInternalStylesOfResWithIndexes:(id)fp8;
234+- (void)removeAllStyles;
235+- (void)applyAllStyles;
236+- (id)HTMLForResWithExtractPath:(id)fp8 baseURL:(id *)fp12 forPopUp:(BOOL)fp16;
237+- (id)HTMLForAllResAndbaseURL:(id *)fp8 forPopUp:(BOOL)fp12;
238+- (id)HTMLForResInRange:(struct _NSRange)fp8 andFirstRes:(BOOL)fp16 baseURL:(id *)fp20 forPopUp:(BOOL)fp24;
239+- (id)HTMLForResIndexes:(id)fp8 baseURL:(id *)fp12 forPopUp:(BOOL)fp16;
240+- (id)excerptHTMLForResIndexes:(id)fp8;
241+- (id)HTMLWithOtherInsertion:(id)fp8 baseURL:(id *)fp12 forPopUp:(BOOL)fp16;
242+- (id)CSSPathsLinkString;
243+- (void)setTitle:(id)fp8;
244+- (id)title;
245+- (id)threadListTitle;
246+- (int)resCount;
247+- (int)resCountNew;
248+- (id)filePath;
249+- (void)load;
250+- (void)cancelLoading;
251+- (void)setIsLoading:(BOOL)fp8;
252+- (BOOL)isLoading;
253+- (void)setProgress:(float)fp8;
254+- (float)progress;
255+- (void)setProgressInfo:(id)fp8;
256+- (id)progressInfo;
257+- (void)processAfterResIndex:(unsigned int)fp8;
258+- (void)connector:(id)fp8 ofURL:(id)fp12 progress:(float)fp16 inContext:(id)fp20;
259+- (void)connector:(id)fp8 ofURL:(id)fp12 didReceiveWebData:(id)fp16 inContext:(id)fp20;
260+
261+@end
262+
263+@interface T2Res : NSObject
264+{
265+ int _resNumber;
266+ NSString *_name;
267+ NSString *_mail;
268+ NSDate *_date;
269+ NSString *_identifier;
270+ NSString *_content;
271+ NSString *_trip;
272+ NSString *_dateString;
273+ NSString *_hostName;
274+ NSString *_beString;
275+ T2Thread *_thread;
276+ NSMutableIndexSet *_backwardResIndexes;
277+ NSMutableIndexSet *_forwardResIndexes;
278+ NSMutableArray *_htmlClasses;
279+ NSMutableDictionary *_container;
280+}
281+
282++ (id)resWithResNumber:(int)fp8 name:(id)fp12 mail:(id)fp16 date:(id)fp20 identifier:(id)fp24 content:(id)fp28 thread:(id)fp32;
283+- (id)initWithResNumber:(int)fp8 name:(id)fp12 mail:(id)fp16 date:(id)fp20 identifier:(id)fp24 content:(id)fp28 thread:(id)fp32;
284+- (void)dealloc;
285+- (void)setResNumber:(int)fp8;
286+- (int)resNumber;
287+- (void)setName:(id)fp8;
288+- (id)name;
289+- (void)setMail:(id)fp8;
290+- (id)mail;
291+- (void)setDate:(id)fp8;
292+- (id)date;
293+- (void)setIdentifier:(id)fp8;
294+- (id)identifier;
295+- (unsigned int)identifierCount;
296+- (void)setContent:(id)fp8;
297+- (id)content;
298+- (void)setTrip:(id)fp8;
299+- (id)trip;
300+- (unsigned int)tripCount;
301+- (void)setDateString:(id)fp8;
302+- (id)dateString;
303+- (void)setHostName:(id)fp8;
304+- (id)hostName;
305+- (void)setBeString:(id)fp8;
306+- (id)beString;
307+- (void)setThread:(id)fp8;
308+- (id)thread;
309+- (void)setBackwardResIndexes:(id)fp8;
310+- (id)backwardResIndexes;
311+- (void)addBackwardResIndexes:(id)fp8;
312+- (void)addBackwardResIndex:(unsigned int)fp8;
313+- (int)backwardResCount;
314+- (id)backwardResCountString;
315+- (void)setForwardResIndexes:(id)fp8;
316+- (id)forwardResIndexes;
317+- (void)addForwardResIndexes:(id)fp8;
318+- (void)addForwardResIndex:(unsigned int)fp8;
319+- (int)forwardResCount;
320+- (id)forwardResCountString;
321+- (void)setHTMLClasses:(id)fp8;
322+- (id)HTMLClasses;
323+- (void)addHTMLClass:(id)fp8;
324+- (void)removeHTMLClass:(id)fp8;
325+- (id)HTMLClassesString;
326+- (id)resNumberString;
327+- (id)escapedIdentifier;
328+- (id)identifierCountString;
329+- (id)escapedTrip;
330+- (id)tripCountString;
331+- (void)setValue:(id)fp8 forUndefinedKey:(id)fp12;
332+- (id)valueForUndefinedKey:(id)fp8;
333+
334+@end
335+
336+@interface NSString (T2NSStringAdditions)
337++ (id)stringWithTimeInterval:(double)fp8;
338++ (id)stringWithData:(id)fp8 IANAencodingName:(id)fp12;
339++ (id)stringWith2chData:(id)fp8 IANAencodingName:(id)fp12 orCocoaEncoding:(unsigned int)fp16;
340++ (id)stringUsingTECwith2chData:(id)fp8 encoding:(unsigned int)fp12;
341++ (void)setClassAppName:(id)fp8;
342++ (void)setClassAppLogFolderName:(id)fp8;
343++ (id)appSupportFolderPath;
344++ (id)ownAppSupportFolderPath;
345++ (id)appLogFolderPath;
346++ (id)userDesktopFolderPath;
347+- (id)stringByReplacingFirstOccurrencesOfString:(id)fp8 withString:(id)fp12 options:(unsigned int)fp16;
348+- (id)stringByReplacingAmpersandEscapes;
349+- (id)stringFromHTML;
350+- (id)stringByAddingUTF8PercentEscapesForce;
351+- (id)stringByAddingSJISPercentEscapesForce;
352+- (id)stringByAddingPercentEscapes_T2_UsingEncoding:(unsigned int)fp8;
353+- (id)stringByReplacingPercentEscapes_T2_UsingEncoding:(unsigned int)fp8;
354+- (id)dataByTECUsingEncoding:(unsigned int)fp8;
355+- (struct _NSRange)rangeOfLastString:(id)fp8 options:(unsigned int)fp12;
356+- (id)substringBetweenPrefix:(id)fp8 andPostfix:(id)fp12;
357+- (id)stringByResolvingAliasesInPath;
358+- (id)stringByDeletingfirstPathComponent;
359+- (id)firstPathComponent;
360+- (id)pathComponentAtIndex:(int)fp8;
361+- (id)stringByReplacingReservedCharacters;
362+- (BOOL)isExistentPath;
363+- (BOOL)prepareFoldersInPath;
364+- (BOOL)recycleFileAtPath;
365+@end
366+
367+@interface T2List : T2IdentifiedObject <T2DictionaryConverting, T2AsynchronousLoading>
368+{
369+ T2ListFace *_listFace;
370+ NSArray *_objects;
371+ T2WebConnector *_connector;
372+ BOOL _isLoading;
373+ float _progress;
374+ NSString *_progressInfo;
375+ double _loadingInterval;
376+ NSDate *_lastLoadingDate;
377+}
378+
379++ (void)initialize;
380++ (id)dictionaryForIndentify;
381++ (id)listWithListFace:(id)fp8;
382++ (id)listWithListFace:(id)fp8 objects:(id)fp12;
383++ (id)listWithInternalPath:(id)fp8 title:(id)fp12 image:(id)fp16 objects:(id)fp20;
384+- (id)dictionaryConvertingKeysForUse:(int)fp8;
385+- (id)initWithListFace:(id)fp8;
386+- (id)initWithListFace:(id)fp8 objects:(id)fp12;
387+- (id)initWithInternalPath:(id)fp8 title:(id)fp12 image:(id)fp16 objects:(id)fp20;
388+- (void)dealloc;
389+- (void)setListFace:(id)fp8;
390+- (id)listFace;
391+- (void)setTitle:(id)fp8;
392+- (id)title;
393+- (void)setImage:(id)fp8;
394+- (id)image;
395+- (void)setObjects:(id)fp8;
396+- (id)objects;
397+- (id)mutableList;
398+- (BOOL)allowsRemovingObjects;
399+- (BOOL)allowsEditingObjects;
400+- (void)setLoadingInterval:(double)fp8;
401+- (double)loadingInterval;
402+- (void)setLastLoadingDate:(id)fp8;
403+- (id)lastLoadingDate;
404+- (BOOL)loadableInterval;
405+- (id)filePath;
406+- (void)addObject:(id)fp8;
407+- (void)addObjects:(id)fp8;
408+- (void)insertObject:(id)fp8 atIndex:(unsigned int)fp12;
409+- (void)insertObjects:(id)fp8 atIndexes:(id)fp12;
410+- (void)removeObject:(id)fp8;
411+- (void)removeObjects:(id)fp8;
412+- (void)removeObjectAtIndex:(unsigned int)fp8;
413+- (void)removeObjectsAtIndexes:(id)fp8;
414+- (void)load;
415+- (void)cancelLoading;
416+- (void)setIsLoading:(BOOL)fp8;
417+- (BOOL)isLoading;
418+- (void)setProgress:(float)fp8;
419+- (float)progress;
420+- (void)setProgressInfo:(id)fp8;
421+- (id)progressInfo;
422+- (void)connector:(id)fp8 ofURL:(id)fp12 progress:(float)fp16 inContext:(id)fp20;
423+- (void)connector:(id)fp8 ofURL:(id)fp12 didReceiveWebData:(id)fp16 inContext:(id)fp20;
424+
425+@end
426+
427+@interface T2ThreadList : T2List
428+{
429+ BOOL _shouldSavePList;
430+ NSString *_sortDescriptorKey;
431+ BOOL _sortDescriptorAscending;
432+ NSString *_webBrowserURLString;
433+}
434+
435+- (id)dictionaryConvertingKeysForUse:(int)fp8;
436+- (void)dealloc;
437+- (void)setSortDescriptorKey:(id)fp8;
438+- (id)sortDescriptorKey;
439+- (void)setSortDescriptorAscending:(BOOL)fp8;
440+- (BOOL)sortDescriptorAscending;
441+- (void)setSortDescriptor:(id)fp8;
442+- (id)sortDescriptor;
443+- (void)setShouldSavePList:(BOOL)fp8;
444+- (BOOL)shouldSavePList;
445+- (void)setWebBrowserURLString:(id)fp8;
446+- (id)webBrowserURLString;
447+- (id)filePath;
448+
449+@end
450+
451+@interface T2ThreadFace : T2IdentifiedObject <T2DictionaryConverting>
452+{
453+ NSString *_title;
454+ int _order;
455+ int _resCount;
456+ int _resCountNew;
457+ NSDate *_createdDate;
458+ NSDate *_modifiedDate;
459+ int _state;
460+ int _boolsMask;
461+ int _userRate;
462+}
463+
464++ (void)initialize;
465++ (id)dictionaryForIndentify;
466++ (void)setClassStateNewImage:(id)fp8;
467++ (void)setClassStateUpdatedImage:(id)fp8;
468++ (void)setClassStateNoUpdatedImage:(id)fp8;
469++ (void)setClassStateFallenImage:(id)fp8;
470++ (void)setClassStateFallenNoLogImage:(id)fp8;
471++ (id)threadFaceWithURLString:(id)fp8;
472++ (id)threadFaceWithInternalPath:(id)fp8;
473++ (id)threadFaceWithInternalPath:(id)fp8 title:(id)fp12 order:(int)fp16 resCount:(int)fp20 resCountNew:(int)fp24;
474++ (void)setClassAnimationImages:(id)fp8;
475++ (void)startAnimation;
476++ (void)stopAnimation;
477++ (void)animate:(id)fp8;
478+- (id)dictionaryConvertingKeysForUse:(int)fp8;
479+- (id)initWithInternalPath:(id)fp8 title:(id)fp12 order:(int)fp16 resCount:(int)fp20 resCountNew:(int)fp24;
480+- (id)initWithEncodedDictionary:(id)fp8;
481+- (id)init;
482+- (void)dealloc;
483+- (id)thread;
484+- (void)setTitle:(id)fp8;
485+- (id)title;
486+- (void)setOrder:(int)fp8;
487+- (int)order;
488+- (void)setResCount:(int)fp8;
489+- (int)resCount;
490+- (void)setResCountNew:(int)fp8;
491+- (int)resCountNew;
492+- (int)resCountGap;
493+- (void)setStateFromResCount;
494+- (void)setCreatedDate:(id)fp8;
495+- (id)createdDate;
496+- (void)setModifiedDate:(id)fp8;
497+- (id)modifiedDate;
498+- (float)velocity;
499+- (void)setState:(int)fp8;
500+- (int)state;
501+- (id)stateImage;
502+- (void)setHasFallen:(BOOL)fp8;
503+- (BOOL)hasFallen;
504+- (void)setChecked:(BOOL)fp8;
505+- (BOOL)checked;
506+- (void)setUserRate:(int)fp8;
507+- (int)userRate;
508+- (id)voidProperty;
509+- (id)valueForUndefinedKey:(id)fp8;
510+- (id)threadImpoerterPlug;
511+- (id)logFilePath;
512+- (void)removeThread;
513+- (void)startAnimation;
514+- (void)stopAnimation;
515+
516+@end
517+
518+@interface T2WebData : NSObject
519+{
520+ NSData *_contentData;
521+ NSDictionary *_headers;
522+ int _code;
523+}
524+
525++ (id)webDataWithData:(id)fp8 headers:(id)fp12 code:(int)fp16;
526+- (id)initWithData:(id)fp8 headers:(id)fp12 code:(int)fp16;
527+- (void)dealloc;
528+- (void)setContentData:(id)fp8;
529+- (id)contentData;
530+- (void)setHeaders:(id)fp8;
531+- (id)headers;
532+- (id)headerForKey:(id)fp8;
533+- (void)setCode:(int)fp8;
534+- (int)code;
535+- (id)charsetName;
536+- (id)decodedString;
537+- (id)lastModified;
538+
539+@end
540+
541+@interface T2WebConnector : NSObject
542+{
543+ NSString *_urlString;
544+ NSString *_status;
545+ NSString *_charset;
546+ float _progress;
547+ float _length;
548+ int _objectType;
549+ NSMutableArray *_delegatesArray;
550+ NSMutableArray *_contextsArray;
551+ NSURLConnection *_myConnection;
552+ NSMutableData *_receivedData;
553+ NSHTTPURLResponse *_receivedResponse;
554+}
555+
556++ (void)initialize;
557++ (id)connectorWithURLString:(id)fp8 delegate:(id)fp12 inContext:(id)fp16;
558++ (id)connectorWithURLRequest:(id)fp8 delegate:(id)fp12 inContext:(id)fp16;
559++ (void)removeConnectorOfURL:(id)fp8;
560++ (void)cancelURL:(id)fp8 byDelegate:(id)fp12;
561+- (id)initWithURLRequest:(id)fp8 delegate:(id)fp12 inContext:(id)fp16;
562+- (void)dealloc;
563+- (BOOL)addDelegate:(id)fp8 inContext:(id)fp12;
564+- (void)removeDelegate:(id)fp8;
565+- (void)returnEmptyData;
566+- (void)returnData;
567+- (void)returnProgress:(float)fp8;
568+- (id)urlString;
569+- (void)setStatus:(id)fp8;
570+- (id)status;
571+- (unsigned int)dataLength;
572+- (void)connection:(id)fp8 didReceiveData:(id)fp12;
573+- (void)connection:(id)fp8 didReceiveResponse:(id)fp12;
574+- (void)connectionDidFinishLoading:(id)fp8;
575+- (void)connection:(id)fp8 didFailWithError:(id)fp12;
576+
577+@end
578+
579+@interface NSObject (T2NSObjectAdditions)
580++ (id)objectWithDictionary:(id)fp8;
581++ (id)loadObjectFromFile:(id)fp8;
582+- (id)initWithEncodedDictionary:(id)fp8;
583+- (void)setValuesWithEncodedDictionary:(id)fp8;
584+- (id)encodedDictionary;
585+- (BOOL)saveObjectToFile:(id)fp8;
586+- (void)setValuesFromFile:(id)fp8;
587+@end
588+
589+@interface T2PreferenceItem : NSObject <T2DictionaryConverting>
590+{
591+ int _type;
592+ int _sizeType;
593+ NSString *_key;
594+ NSString *_title;
595+ NSString *_info;
596+}
597+
598++ (id)stringItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16;
599++ (id)longStringItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16;
600++ (id)stringComboItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16 listItems:(id)fp20;
601++ (id)stringPopUpItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16 listItems:(id)fp20;
602++ (id)numberItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16;
603++ (id)numberPopUpItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16 listItems:(id)fp20;
604++ (id)boolItemWithKey:(id)fp8 title:(id)fp12 info:(id)fp16;
605++ (id)buttonItemWithAction:(SEL)fp8 target:(id)fp12 title:(id)fp16 info:(id)fp20;
606++ (id)labelItemWithKey:(id)fp8;
607++ (id)longDescriptionItemItemWithKey:(id)fp8 title:(id)fp12;
608++ (id)separateLineItem;
609++ (id)topTitleItemWithTitle:(id)fp8 info:(id)fp12;
610++ (id)customViewItemWithView:(id)fp8;
611++ (id)labelStyleTextFieldWithString:(id)fp8;
612++ (id)smallTextStyleTextFieldWithString:(id)fp8;
613++ (id)inputStyleTextField;
614++ (id)comboBoxWithListItems:(id)fp8;
615++ (id)checkBoxWithTitle:(id)fp8;
616++ (id)popUpButtonWithListItems:(id)fp8;
617++ (id)pushButtonWithTitle:(id)fp8;
618++ (id)textViewEditable:(BOOL)fp8;
619++ (id)separateLine;
620+- (id)initWithType:(int)fp8 sizeType:(int)fp12 key:(id)fp16 title:(id)fp20 info:(id)fp24;
621+- (void)dealloc;
622+- (id)dictionaryConvertingKeysForUse:(int)fp8;
623+- (void)setType:(int)fp8;
624+- (int)type;
625+- (void)setSizeType:(int)fp8;
626+- (int)sizeType;
627+- (void)setKey:(id)fp8;
628+- (id)key;
629+- (void)setTitle:(id)fp8;
630+- (id)title;
631+- (void)setInfo:(id)fp8;
632+- (id)info;
633+- (id)boundViewsWithBasePath:(id)fp8 controller:(id)fp12 superViewWidth:(float)fp16;
634+
635+@end
636+
637+@interface NSView (T2PreferenceViewCategory)
638+- (void)setViewWidthFrom:(int)fp8 to:(int)fp12 superViewWidth:(float)fp16;
639+- (void)setViewVerticalCenter:(float)fp8;
640+@end
641+
642+@interface T2PluginManager : NSObject
643+{
644+ NSMutableDictionary *_allPlugDic;
645+ NSMutableArray *_allPlugins;
646+ NSDictionary *_pluginOldPrefDic;
647+ NSMutableArray *_listImporterPlugArray;
648+ NSMutableDictionary *_listImporterPlugDic;
649+ NSMutableDictionary *_threadFaceScorerPlugDic;
650+ NSMutableArray *_threadFaceScoreKeyArray;
651+ NSMutableArray *_threadFaceScoreLocalizedNameArray;
652+ NSMutableArray *_threadFaceFilterPlugArray;
653+ NSMutableDictionary *_threadImporterPlugDic;
654+ NSMutableArray *_threadExporterPlugArray;
655+ NSMutableDictionary *_extractorPlugDic;
656+ NSMutableArray *_extractorPlugArray;
657+ NSMutableArray *_threadProcessorPlugArray;
658+ NSMutableArray *_HTMLProcessorPlugArray;
659+ NSMutableArray *_partialHTMLExporterPlugins;
660+ // Error parsing type: @"<T2ThreadPartialHTMLExporting_v100>", name: _viewPartialHtmlPlug
661+ NSMutableArray *_viewHtmlPlugArray;
662+ NSMutableArray *_viewCustomViewPlugArray;
663+ NSMutableDictionary *_hostPreviewerPlugDic;
664+ NSMutableDictionary *_extensionPreviewerPlugDic;
665+ NSMutableArray *_previewerPlugArray;
666+ NSMutableDictionary *_webResPostingPlugDic;
667+ NSMutableDictionary *_webThreadPostingPlugDic;
668+ unsigned int _viewHtmlPlugIndex;
669+}
670+
671++ (void)setClassPluginFolderPaths:(id)fp8;
672++ (void)setClassEmbeddedPluginClasses:(id)fp8;
673++ (void)setClassPluginPrefFolderPath:(id)fp8;
674++ (void)setClassForbiddenPluginBundleIdentifiers:(id)fp8;
675++ (id)sharedManager;
676+- (id)init;
677+- (void)dealloc;
678+- (void)loadAllPlugins;
679+- (void)unloadAllPlugins;
680+- (id)allPlugins;
681+- (id)pluginDictionary;
682+- (id)pluginForUniqueName:(id)fp8;
683+- (void)loadPluginPrefs;
684+- (void)savePluginPrefs;
685+- (id)listImporterPlugins;
686+- (id)rootListFaces;
687+- (id)listImporterForInternalPath:(id)fp8;
688+- (id)listForListFace:(id)fp8;
689+- (id)imageForListFace:(id)fp8;
690+- (id)threadImporterPlugins;
691+- (id)threadImporterForInternalPath:(id)fp8;
692+- (id)threadForThreadFace:(id)fp8;
693+- (id)threadLogFilePathForInternalPath:(id)fp8;
694+- (id)threadInternalPathForProposedURLString:(id)fp8;
695+- (id)threadFaceScorerPlugins;
696+- (id)threadFaceScoreKeys;
697+- (id)threadFaceScoreLocalizedNames;
698+- (id)threadFaceScoringPluginForKey:(id)fp8;
699+- (id)threadProcessorPlugins;
700+- (void)processThread:(id)fp8 appendingIndex:(unsigned int)fp12;
701+- (id)resExtractorPlugins;
702+- (id)resExtractorForKey:(id)fp8;
703+- (id)extractResIndexesInThread:(id)fp8 forPath:(id)fp12;
704+- (id)localizedDescriptionOfExtractPath:(id)fp8;
705+- (id)HTMLProcessorPlugins;
706+- (id)processedHTML:(id)fp8 ofRes:(id)fp12 inThread:(id)fp16;
707+- (id)partialHTMLExporterPlugins;
708+- (void)setPartialHTMLExporterPlugin:(id)fp8;
709+- (id)partialHTMLExporterPlugin;
710+- (id)HTMLExporterPlugins;
711+- (id)HTMLExporterPlugin;
712+- (id)URLpreviewerPlugins;
713+- (id)URLPreviewerForURLString:(id)fp8;
714+- (BOOL)isPreviewableURLString:(id)fp8 type:(int)fp12;
715+- (id)partialHTMLforPreviewingURLString:(id)fp8 type:(int)fp12 minSize:(struct _NSSize *)fp16;
716+- (id)webResPostingPlugins;
717+- (id)webResPostingPluginForInternalPath:(id)fp8;
718+- (BOOL)canPostResToThread:(id)fp8;
719+- (id)webThreadPostingPlugins;
720+- (id)webThreadPostingPluginForInternalPath:(id)fp8;
721+- (BOOL)canPostThreadToThreadList:(id)fp8;
722+
723+@end
724+
725+@interface TECSniffer : NSObject
726+{
727+ unsigned int *encodings_;
728+ unsigned int numEncodings_;
729+ struct OpaqueTECSnifferObjectRef *sniffer_;
730+}
731+
732+- (id)sniff:(id)fp8;
733+- (void)clear;
734+- (id)initWithWebTextEncodings;
735+- (id)init;
736+- (void)dealloc;
737+
738+@end
739+
740+@interface TECConverter : NSObject
741+{
742+ unsigned int from_;
743+ unsigned int to_;
744+ struct OpaqueTECObjectRef *converter_;
745+}
746+
747+- (id)initWithEncoding:(unsigned int)fp8 to:(unsigned int)fp12;
748+- (id)initWithEncoding:(unsigned int)fp8;
749+- (id)convert:(id)fp8;
750+- (id)convertToString:(id)fp8;
751+- (void)dealloc;
752+
753+@end
754+
755+@interface T2IdentifiedObject : NSObject <T2DictionaryConverting>
756+{
757+ NSString *_internalPath;
758+ NSMutableDictionary *_extraInfo;
759+ BOOL _saved;
760+}
761+
762++ (id)createMutableDictionaryForIdentify;
763++ (id)dictionaryForIndentify;
764++ (id)availableObjectWithInternalPath:(id)fp8;
765++ (id)objectWithInternalPath:(id)fp8;
766+- (id)dictionaryConvertingKeysForUse:(int)fp8;
767+- (id)initWithInternalPath:(id)fp8;
768+- (id)initWithEncodedDictionary:(id)fp8;
769+- (void)dealloc;
770+- (unsigned int)hash;
771+- (BOOL)isEqual:(id)fp8;
772+- (void)setInternalPath:(id)fp8;
773+- (id)internalPath;
774+- (id)filePath;
775+- (void)loadFromFile;
776+- (void)saveToFile;
777+- (void)setSaved:(BOOL)fp8;
778+- (BOOL)saved;
779+- (void)setExtraInfo:(id)fp8;
780+- (id)extraInfo;
781+- (void)setValue:(id)fp8 forUndefinedKey:(id)fp12;
782+- (id)valueForUndefinedKey:(id)fp8;
783+
784+@end
785+
786+@interface NSCalendarDate (T2NSCalendarDateAdditions)
787++ (id)dateWithRFC1123String:(id)fp8;
788+- (id)descriptionWithRFC1123;
789+@end
790+
791+@interface NSMutableDictionary (T2NSMutableDictionaryAdditions)
792++ (id)mutableDictionaryWithoutRetainingValues;
793+@end
794+
795+@interface NSDictionary (T2NSDictionaryAdditions)
796++ (id)dictionaryWithContentsOfGZipFile:(id)fp8;
797+- (BOOL)writeToGZipFile:(id)fp8;
798+@end
799+
800+@interface NSMutableData (T2NSMutableDataAdditions)
801++ (id)dataWithContentsOfGZipFile:(id)fp8;
802+@end
803+
804+@interface NSData (T2NSDataAdditions)
805++ (id)dataWithContentsOfGZipFile:(id)fp8;
806+- (BOOL)writeToGZipFile:(id)fp8;
807+@end
808+
809+@interface NSURLRequest (T2NSURLRequestAdditions)
810++ (id)requestUsingGzipWithURL:(id)fp8;
811++ (id)requestWith2chURL:(id)fp8 ifModifiedSince:(id)fp12 range:(unsigned int)fp16;
812+- (id)requestByAddingUserAgentAndImporterName:(id)fp8;
813+@end
814+
815+@interface T2BookmarkList : T2ThreadList
816+{
817+ NSMutableArray *_loadingListHolders;
818+ unsigned int _loadingListHoldersCount;
819+ NSArray *_loadingListContentObjects;
820+ NSTimer *_timer;
821+}
822+
823++ (void)initialize;
824++ (id)allBookmarkLists;
825++ (void)loadAll;
826++ (id)bookmarkList;
827+- (id)dictionaryConvertingKeysForUse:(int)fp8;
828+- (id)init;
829+- (id)initWithoutRegistering;
830+- (void)dealloc;
831+- (void)setListFace:(id)fp8;
832+- (id)listFace;
833+- (BOOL)allowsEditingObjects;
834+- (BOOL)allowsEditingTitle;
835+- (BOOL)shouldSavePList;
836+- (void)load;
837+- (void)cancelLoading;
838+- (void)loadPartWithTimer:(id)fp8;
839+- (void)partLoaded;
840+- (void)observeValueForKeyPath:(id)fp8 ofObject:(id)fp12 change:(id)fp16 context:(void *)fp20;
841+- (id)filePath;
842+
843+@end
844+
845+@interface T2ThreadHistory : T2ThreadList
846+{
847+ unsigned int _maxHistoryCount;
848+ unsigned int _waitingHistoryCount;
849+}
850+
851++ (void)initialize;
852++ (id)threadHistoryForKey:(id)fp8;
853+- (id)dictionaryConvertingKeysForUse:(int)fp8;
854+- (void)setMaxHistoryCount:(unsigned int)fp8;
855+- (unsigned int)maxHistoryCount;
856+- (void)addHistory:(id)fp8;
857+- (void)removeAllHistory;
858+- (id)sortDescriptorKey;
859+- (id)sortDescriptor;
860+- (void)load;
861+- (id)filePath;
862+
863+@end
864+
865+@interface NSIndexSet (T2NSIndexSetAdditions)
866++ (id)indexSetWithString:(id)fp8;
867++ (id)shiftedIndexSetWithString:(id)fp8;
868+@end
869+
870+@interface NSMutableArray (T2NSMutableArrayAdditions)
871++ (id)mutableArrayWithoutRetainingObjects;
872+- (void)removeObjectsAtIndexes_panther:(id)fp8;
873+- (void)insertObjects_panther:(id)fp8 atIndexes:(id)fp12;
874+@end
875+
876+@interface NSArray (T2NSArrayAdditions)
877+- (id)objectsAtIndexes_panther:(id)fp8;
878+@end
879+
880+@interface T2ResourceManager : NSObject
881+{
882+ NSMutableArray *_resourceFolderPaths;
883+ NSArray *_cssPaths;
884+ NSString *_cssPathsLinkString;
885+ NSMutableArray *_cssStyles;
886+ NSMutableDictionary *_cssStyleNames;
887+ NSArray *_skinNames;
888+ NSString *_skinFilePath;
889+ NSArray *_iconSetNames;
890+}
891+
892++ (id)sharedManager;
893+- (id)init;
894+- (void)dealloc;
895+- (void)addResourceFolderPaths:(id)fp8;
896+- (id)resourceFolderPaths;
897+- (id)pathsForSubFolderName:(id)fp8;
898+- (id)filesInSubFolderName:(id)fp8;
899+- (id)filesOfType:(id)fp8 inSubFolderName:(id)fp12;
900+- (id)fileDicionaryOfType:(id)fp8 inSubFolderName:(id)fp12;
901+- (void)loadCSS;
902+- (id)CSSPaths;
903+- (id)CSSPathsLinkString;
904+- (void)loadStylesFromCSS:(id)fp8;
905+- (id)nameOfStyle:(id)fp8;
906+- (id)styleMenuItemsForTarget:(id)fp8 action:(SEL)fp12;
907+- (void)loadSkinNamed:(id)fp8;
908+- (id)skinNames;
909+- (id)skinFilePath;
910+- (id)skinFileContent;
911+- (void)loadIconSetNamed:(id)fp8;
912+- (id)iconSetNames;
913+
914+@end
915+
916+@interface T2ListHistory : T2List
917+{
918+ unsigned int _maxHistoryCount;
919+ unsigned int _waitingHistoryCount;
920+}
921+
922++ (id)listHistoryForKey:(id)fp8;
923+- (id)dictionaryConvertingKeysForUse:(int)fp8;
924+- (void)setMaxHistoryCount:(unsigned int)fp8;
925+- (unsigned int)maxHistoryCount;
926+- (id)filePath;
927+- (void)addHistory:(id)fp8;
928+- (void)removeAllHistory;
929+
930+@end
931+
932+@interface T2ListFace : T2IdentifiedObject
933+{
934+ NSString *_title;
935+ NSImage *_image;
936+ BOOL _animating;
937+ BOOL _isLeaf;
938+}
939+
940++ (void)initialize;
941++ (id)dictionaryForIndentify;
942++ (id)listFaceWithInternalPath:(id)fp8 title:(id)fp12 image:(id)fp16;
943++ (void)setClassAnimationImages:(id)fp8;
944++ (void)startAnimation;
945++ (void)stopAnimation;
946++ (void)animate:(id)fp8;
947+- (id)dictionaryConvertingKeysForUse:(int)fp8;
948+- (id)initWithInternalPath:(id)fp8 title:(id)fp12 image:(id)fp16;
949+- (void)setTitle:(id)fp8;
950+- (id)title;
951+- (void)setImage:(id)fp8;
952+- (id)image;
953+- (void)setImageByListImporter;
954+- (void)setLeaf:(BOOL)fp8;
955+- (BOOL)isLeaf;
956+- (BOOL)allowsEditingTitle;
957+- (id)list;
958+- (void)startAnimation;
959+- (void)stopAnimation;
960+
961+@end
962+
963+@interface T2BookmarkListFace : T2ListFace
964+{
965+ T2BookmarkList *_list;
966+}
967+
968++ (id)bookmarkListFace;
969++ (void)setClassDefaultImage:(id)fp8;
970++ (id)classDefaultImage;
971+- (id)dictionaryConvertingKeysForUse:(int)fp8;
972+- (id)init;
973+- (void)dealloc;
974+- (BOOL)allowsEditingTitle;
975+- (void)setList:(id)fp8;
976+- (id)list;
977+- (BOOL)isLeaf;
978+- (void)setImageByListImporter;
979+
980+@end
981+
982+@interface T2ThreadViewInternalDelegate : NSObject <DOMEventListener>
983+{
984+ T2ThreadView *_threadView;
985+ T2ThreadViewInternalDelegate *_parentInternalDelegate;
986+ T2ThreadViewInternalDelegate *_childInternalDelegate;
987+ NSString *_hoveredURLString;
988+ NSTimer *_hoverTimer;
989+ NSTimer *_popUpReleaseTimer;
990+ unsigned int _popUpRetainCount;
991+}
992+
993++ (void)initialize;
994+- (id)init;
995+- (void)dealloc;
996+- (void)setThreadView:(id)fp8;
997+- (id)threadView;
998+- (void)becomeParentOfChildInternalDelegate:(id)fp8;
999+- (void)setParentInternalDelegate:(id)fp8;
1000+- (void)setParentInternalDelegate_internal:(id)fp8;
1001+- (id)parentInternalDelegate;
1002+- (void)setChildInternalDelegate:(id)fp8;
1003+- (void)setChildInternalDelegate_internal:(id)fp8;
1004+- (id)childInternalDelegate;
1005+- (void)registerHoveredURLString:(id)fp8;
1006+- (void)hoverTimerFired:(id)fp8;
1007+- (void)popUpRetain;
1008+- (void)popUpRelease;
1009+- (void)popUpReleaseWithDelay;
1010+- (void)popUpReleaseTimerFired:(id)fp8;
1011+- (void)popUpClose;
1012+- (void)popUpCloseWithDelay;
1013+- (void)flushHoverTimer;
1014+- (void)flushReleaseTimer;
1015+- (void)makeThreadViewToFirstResponder;
1016+- (void)webView:(id)fp8 didFinishLoadForFrame:(id)fp12;
1017+- (void)webView:(id)fp8 resource:(id)fp12 didReceiveAuthenticationChallenge:(id)fp16 fromDataSource:(id)fp20;
1018+- (void)webView:(id)fp8 decidePolicyForNavigationAction:(id)fp12 request:(id)fp16 frame:(id)fp20 decisionListener:(id)fp24;
1019+- (void)webView:(id)fp8 mouseDidMoveOverElement:(id)fp12 modifierFlags:(unsigned int)fp16;
1020+- (id)webView:(id)fp8 contextMenuItemsForElement:(id)fp12 defaultMenuItems:(id)fp16;
1021+- (BOOL)webView:(id)fp8 shouldPerformAction:(SEL)fp12 fromSender:(id)fp16;
1022+- (void)handleEvent:(id)fp8;
1023+- (BOOL)mouseoverAnchorElement:(id)fp8 modifierFlags:(unsigned int)fp12;
1024+- (BOOL)clickAnchorElement:(id)fp8 modifierFlags:(unsigned int)fp12;
1025+
1026+@end
1027+
1028+@interface T2ThreadView : WebView
1029+{
1030+ T2Thread *_thread;
1031+ NSIndexSet *_resIndexes;
1032+ NSString *_resExtractPath;
1033+ NSString *_selectedResExtractPath;
1034+ // Error parsing type: @"<T2ThreadHTMLExporting_v100>", name: _HTMLExporter
1035+ T2ThreadViewInternalDelegate *_internalDelegate;
1036+ NSObject *_delegate;
1037+ BOOL _isPopUp;
1038+ BOOL _autoPopUp;
1039+ BOOL _threadLoaded;
1040+}
1041+
1042++ (void)setClassPopUpWait:(float)fp8;
1043++ (float)classPopUpWait;
1044++ (void)setClassResPopUpWindowWidth:(float)fp8;
1045++ (float)classResPopUpWindowWidth;
1046++ (void)setClassSafari2Debug:(BOOL)fp8;
1047++ (BOOL)classSafari2Debug;
1048+- (id)init;
1049+- (id)initWithFrame:(struct _NSRect)fp8;
1050+- (id)initWithCoder:(id)fp8;
1051+- (id)initWithFrame:(struct _NSRect)fp8 frameName:(id)fp24 groupName:(id)fp28;
1052+- (void)initThreadView;
1053+- (void)dealloc;
1054+- (void)setThreadURLString:(id)fp8;
1055+- (void)setThreadInternalPath:(id)fp8;
1056+- (void)setThreadFace:(id)fp8;
1057+- (void)setThread:(id)fp8;
1058+- (id)thread;
1059+- (void)setResIndexes:(id)fp8;
1060+- (id)resIndexes;
1061+- (void)setResExtractPath:(id)fp8;
1062+- (id)resExtractPath;
1063+- (void)setSelectedResExtractPath:(id)fp8;
1064+- (id)selectedResExtractPath;
1065+- (void)setHTMLExporter:(id)fp8;
1066+- (id)HTMLExporter;
1067+- (void)setInternalDelegate:(id)fp8;
1068+- (id)internalDelegate;
1069+- (void)setDelegate:(id)fp8;
1070+- (id)delegate;
1071+- (void)setIsPopup:(BOOL)fp8;
1072+- (BOOL)isPopup;
1073+- (void)setAutoPopUp:(BOOL)fp8;
1074+- (BOOL)autoPopUp;
1075+- (void)setThreadLoaded:(BOOL)fp8;
1076+- (BOOL)threadLoaded;
1077+- (void)takeStringURLFrom:(id)fp8;
1078+- (void)setMainFrameURL:(id)fp8;
1079+- (id)mainFrameURL;
1080+- (void)reload:(id)fp8;
1081+- (void)stopLoading:(id)fp8;
1082+- (double)estimatedProgress;
1083+- (BOOL)isLoading;
1084+- (void)displayThread;
1085+- (void)displayPreviewInsertion:(id)fp8;
1086+- (void)displayElementByID:(id)fp8;
1087+- (BOOL)replaceResAnchorElement:(id)fp8 WithResExtractPath:(id)fp12;
1088+- (BOOL)replacePreviewableAnchorElement:(id)fp8;
1089+- (void)replaceAllPreviewableAnchorElements;
1090+- (void)setSelectedResStyleAction:(id)fp8;
1091+- (void)removeSelectedResStyleAction:(id)fp8;
1092+- (void)setResStyleAction:(id)fp8;
1093+- (void)removeResStyleAction:(id)fp8;
1094+- (void)removeAllResStyleAction:(id)fp8;
1095+- (void)threadDidLoadResIndexes:(id)fp8;
1096+- (void)threadDidUpdateStyleOfResIndexes:(id)fp8;
1097+- (void)thread:(id)fp8 didUpdateStyleOfResIndexes:(id)fp12;
1098+- (void)observeValueForKeyPath:(id)fp8 ofObject:(id)fp12 change:(id)fp16 context:(void *)fp20;
1099+
1100+@end
1101+
1102+@interface T2PluginPrefInternalView : NSView
1103+{
1104+ // Error parsing type: @"<NSObject>", name: _plugin
1105+ SEL _preferenceItemsSelector;
1106+ NSObjectController *_bindingController;
1107+ BOOL _displayInfo;
1108+}
1109+
1110+- (id)initWithFrame:(struct _NSRect)fp8;
1111+- (void)dealloc;
1112+- (void)awakeFromNib;
1113+- (BOOL)isFlipped;
1114+- (void)setPlugin:(id)fp8;
1115+- (id)plugin;
1116+- (void)setPreferenceItemsSelector:(SEL)fp8;
1117+- (SEL)preferenceItemsSelector;
1118+- (void)setDisplayInfo:(BOOL)fp8;
1119+- (BOOL)displayInfo;
1120+
1121+@end
1122+
1123+@interface T2PluginPrefView : NSView
1124+{
1125+ T2PluginPrefInternalView *_pluginPrefInternalView;
1126+}
1127+
1128++ (void)initialize;
1129+- (id)initWithFrame:(struct _NSRect)fp8;
1130+- (void)setPlugin:(id)fp8;
1131+- (id)plugin;
1132+- (void)setPreferenceItemsSelector:(SEL)fp8;
1133+- (SEL)preferenceItemsSelector;
1134+- (void)setDisplayInfo:(BOOL)fp8;
1135+- (BOOL)displayInfo;
1136+- (id)pluginPrefInternalView;
1137+
1138+@end
1139+
1140+@interface T2SubThread : T2Thread
1141+{
1142+ T2Thread *_superThread;
1143+ NSString *_extractPath;
1144+ NSIndexSet *_extractedResIndexes;
1145+ // Error parsing type: @"<T2ResExtracting_v100>", name: _resExtractor
1146+}
1147+
1148++ (id)subThreadWithThread:(id)fp8 extractPath:(id)fp12;
1149+- (id)initSubThreadWithThread:(id)fp8 extractPath:(id)fp12;
1150+- (void)dealloc;
1151+- (void)updateExtracting;
1152+- (id)originalResArray;
1153+- (void)setExtractedResIndexes:(id)fp8;
1154+- (id)extractedResIndexes;
1155+- (id)subThreadWithExtractPath:(id)fp8;
1156+- (void)addStyle:(id)fp8 ofResWithExtractPath:(id)fp12;
1157+- (void)removeStylesOfResWithExtractPath:(id)fp8;
1158+- (void)removeAllStyles;
1159+- (void)observeValueForKeyPath:(id)fp8 ofObject:(id)fp12 change:(id)fp16 context:(void *)fp20;
1160+
1161+@end
1162+
1163+@interface T2SourceList : T2List
1164+{
1165+ unsigned int _firstBookmarkIndex;
1166+}
1167+
1168++ (id)sharedSourceList;
1169+- (id)init;
1170+- (id)filePath;
1171+- (void)loadFromFile;
1172+- (void)saveToFile;
1173+- (unsigned int)firstBookmarkIndex;
1174+
1175+@end
1176+
1177+@interface T2SetupManager : NSObject
1178+{
1179+ NSString *_applicationName;
1180+ NSString *_logFolderName;
1181+ NSString *_pluginFolderName;
1182+ NSString *_pluginPrefFolderName;
1183+ NSString *_iconSetName;
1184+ NSArray *_defaultPluginClasses;
1185+ NSArray *_forbiddenPluginBundleIdentifiers;
1186+ NSString *_threadStateNewImageName;
1187+ NSString *_threadStateUpdatedImageName;
1188+ NSString *_threadStateNoUpdatedImageName;
1189+ NSString *_threadStateFallenImageName;
1190+ NSString *_threadStateFallenNoLogImageName;
1191+ NSArray *_listAnimationImageNames;
1192+ NSString *_bookmarkListImageName;
1193+}
1194+
1195++ (id)sharedManager;
1196+- (id)init;
1197+- (void)dealloc;
1198+- (void)setApplicationName:(id)fp8;
1199+- (id)applicationName;
1200+- (void)setLogFolderName:(id)fp8;
1201+- (id)logFolderName;
1202+- (void)setPluginFolderName:(id)fp8;
1203+- (id)pluginFolderName;
1204+- (void)setPluginPrefFolderName:(id)fp8;
1205+- (id)pluginPrefFolderName;
1206+- (void)setIconSetName:(id)fp8;
1207+- (id)iconSetName;
1208+- (void)setDefaultPluginClasses:(id)fp8;
1209+- (id)defaultPluginClasses;
1210+- (void)setForbiddenPluginBundleIdentifiers:(id)fp8;
1211+- (id)forbiddenPluginBundleIdentifiers;
1212+- (void)setThreadStateNewImageName:(id)fp8;
1213+- (id)threadStateNewImageName;
1214+- (void)setThreadStateUpdatedImageName:(id)fp8;
1215+- (id)threadStateUpdatedImageName;
1216+- (void)setThreadStateNoUpdatedImageName:(id)fp8;
1217+- (id)threadStateNoUpdatedImageName;
1218+- (void)setThreadStateFallenImageName:(id)fp8;
1219+- (id)threadStateFallenImageName;
1220+- (void)setThreadStateFallenNoLogImageName:(id)fp8;
1221+- (id)threadStateFallenNoLogImageName;
1222+- (void)setListAnimationImageNames:(id)fp8;
1223+- (id)listAnimationImageNames;
1224+- (void)setBookmarkListImageName:(id)fp8;
1225+- (id)bookmarkListImageName;
1226+- (void)setup;
1227+
1228+@end
1229+
1230+@interface T2ListPreferenceItem : T2PreferenceItem
1231+{
1232+ NSArray *_listItems;
1233+}
1234+
1235+- (void)dealloc;
1236+- (void)setListItems:(id)fp8;
1237+- (id)listItems;
1238+- (id)boundViewsWithBasePath:(id)fp8 controller:(id)fp12 superViewWidth:(float)fp16;
1239+
1240+@end
1241+
1242+@interface T2ViewPreferenceItem : T2PreferenceItem
1243+{
1244+ NSView *_view;
1245+}
1246+
1247+- (void)dealloc;
1248+- (void)setView:(id)fp8;
1249+- (id)view;
1250+- (id)boundViewsWithBasePath:(id)fp8 controller:(id)fp12 superViewWidth:(float)fp16;
1251+
1252+@end
1253+
1254+@interface T2ActionPreferenceItem : T2PreferenceItem
1255+{
1256+ SEL _action;
1257+ id _target;
1258+}
1259+
1260+- (void)setAction:(SEL)fp8;
1261+- (SEL)action;
1262+- (void)setTarget:(id)fp8;
1263+- (id)target;
1264+- (id)boundViewsWithBasePath:(id)fp8 controller:(id)fp12 superViewWidth:(float)fp16;
1265+
1266+@end
1267+
1268+@interface T2SplitView : NSSplitView
1269+{
1270+ NSString *_positionAutoSaveName;
1271+}
1272+
1273+- (void)dealloc;
1274+- (void)savePositionUsingName:(id)fp8;
1275+- (void)setPositionUsingName:(id)fp8;
1276+- (void)setPositionAutosaveName:(id)fp8;
1277+- (id)positionAutosaveName;
1278+- (void)splitViewDidResizeSubviews:(id)fp8;
1279+- (void)replaceWithSubView:(id)fp8;
1280+
1281+@end
1282+
1283+@interface NSView (T2SplitView)
1284+- (id)splitByAddingView:(id)fp8 onPosition:(int)fp12;
1285+@end
1286+
1287+@interface T2PopUpWindowController : NSWindowController
1288+{
1289+ int _trackingRectTag;
1290+ BOOL _entered;
1291+ T2ThreadView *_threadView;
1292+}
1293+
1294++ (void)initialize;
1295++ (void)setClassResPopUpWindowWidth:(float)fp8;
1296++ (float)classResPopUpWindowWidth;
1297++ (id)popUpWindowControllerWithURLString:(id)fp8 parentThreadView:(id)fp12;
1298++ (void)closeAllPopUp;
1299+- (id)initWithURLString:(id)fp8 parentThreadView:(id)fp12;
1300+- (void)dealloc;
1301+- (void)windowDidResize:(id)fp8;
1302+- (void)webView:(id)fp8 didFinishLoadForFrame:(id)fp12;
1303+- (void)mouseEntered:(id)fp8;
1304+- (void)mouseExited:(id)fp8;
1305+- (void)windowWillClose:(id)fp8;
1306+- (void)closePopUp;
1307+
1308+@end
1309+
1310+@interface T2PopUpWindow : NSPanel
1311+{
1312+}
1313+
1314+- (id)initWithContentRect:(struct _NSRect)fp8 styleMask:(unsigned int)fp24 backing:(unsigned int)fp28 defer:(BOOL)fp32;
1315+- (BOOL)canBecomeKeyWindow;
1316+- (BOOL)canBecomeMainWindow;
1317+- (BOOL)becomesKeyOnlyIfNeeded;
1318+
1319+@end
1320+
1321+@interface DOMMouseEvent (T2DOMMouseEventAdditions)
1322+- (unsigned int)modifierFlags;
1323+@end
1324+
1325+@interface DOMHTMLElement (T2DOMHTMLElementAdditions)
1326+- (void)setClassNames:(id)fp8;
1327+- (id)classNames;
1328+- (void)addClassName:(id)fp8;
1329+- (void)removeClassName:(id)fp8;
1330+- (BOOL)hasClassName:(id)fp8;
1331+- (id)parentTagName;
1332+- (void)replaceWithHTML:(id)fp8;
1333+- (void)removeNextWhiteAndBRElement;
1334+@end
1335+
1336+@interface DOMNode (T2DOMNodeAdditions)
1337+- (unsigned int)parentResNumber;
1338+- (id)parentResDivElement;
1339+- (id)parentAnchorElement;
1340+- (void)logAllParentNodes;
1341+@end
1342+
1343+@interface WebView (T2WebKitAdditions)
1344+- (void)setThousandDefaultAttributes;
1345+- (void)setAllDelegate:(id)fp8;
1346+@end
1347+
1348+@interface NSScanner (THNSScannerAdditions)
1349+- (BOOL)scanUpAndThroughString:(id)fp8 intoString:(id *)fp12;
1350+@end
1351+
1352+@interface T2KeyValueReplaceNoReplace : T2KeyValueReplace
1353+{
1354+ NSString *_templateString;
1355+}
1356+
1357+- (id)initWithTemplateString:(id)fp8;
1358+- (void)dealloc;
1359+- (id)replacedStringUsingObject:(id)fp8;
1360+
1361+@end
1362+
1363+@interface T2KeyValueReplaceConditional : T2KeyValueReplace
1364+{
1365+ int *_directionsPtr;
1366+}
1367+
1368+- (id)initWithTemplateString:(id)fp8;
1369+- (void)dealloc;
1370+- (id)replacedStringUsingObject:(id)fp8;
1371+
1372+@end
1373+
1374+@interface T2KeyValueReplace : NSObject
1375+{
1376+ NSArray *_parts;
1377+ NSArray *_keys;
1378+ unsigned int _capacity;
1379+}
1380+
1381++ (void)initialize;
1382++ (id)keyReplaceWithTemplateString:(id)fp8;
1383+- (id)initWithTemplateString:(id)fp8;
1384+- (void)dealloc;
1385+- (id)replacedStringUsingObject:(id)fp8;
1386+
1387+@end
1388+