diff options
author | Sven Weidauer <sven.weidauer@gmail.com> | 2011-01-13 15:19:47 +0000 |
---|---|---|
committer | Sven Weidauer <sven.weidauer@gmail.com> | 2011-01-13 15:19:47 +0000 |
commit | a9b60753f9c7a57aae2af50943e3ad81203e73e1 (patch) | |
tree | 5e2a45bf28eba7a886a0c8515ee66958a4311d7a /cocoa | |
parent | b65a405c3e88c9f96620d494bbe0f70552dc4089 (diff) | |
download | netsurf-a9b60753f9c7a57aae2af50943e3ad81203e73e1.tar.gz netsurf-a9b60753f9c7a57aae2af50943e3ad81203e73e1.tar.bz2 |
Implemented tree view/history window.
svn path=/trunk/netsurf/; revision=11309
Diffstat (limited to 'cocoa')
-rw-r--r-- | cocoa/NetSurf.xcodeproj/project.pbxproj | 12 | ||||
-rw-r--r-- | cocoa/ScrollableView.h | 29 | ||||
-rw-r--r-- | cocoa/ScrollableView.m | 69 | ||||
-rw-r--r-- | cocoa/TreeView.h | 31 | ||||
-rw-r--r-- | cocoa/TreeView.m | 131 | ||||
-rw-r--r-- | cocoa/res/MainMenu.xib | 219 |
6 files changed, 485 insertions, 6 deletions
diff --git a/cocoa/NetSurf.xcodeproj/project.pbxproj b/cocoa/NetSurf.xcodeproj/project.pbxproj index e82c0dd0a..af16babf1 100644 --- a/cocoa/NetSurf.xcodeproj/project.pbxproj +++ b/cocoa/NetSurf.xcodeproj/project.pbxproj @@ -87,6 +87,7 @@ 2612265C12D7ACB500E10F91 /* quirks.css in Resources */ = {isa = PBXBuildFile; fileRef = 2612265912D7ACB500E10F91 /* quirks.css */; }; 2612266D12D7AD6800E10F91 /* adblock.css in Resources */ = {isa = PBXBuildFile; fileRef = 2612265D12D7AD6800E10F91 /* adblock.css */; }; 2612269112D7AE4100E10F91 /* Messages in Resources */ = {isa = PBXBuildFile; fileRef = 2612268F12D7AE4100E10F91 /* Messages */; }; + 2622F1D712DCD84600CD5A62 /* TreeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2622F1D612DCD84600CD5A62 /* TreeView.m */; }; 265F311A12D663F50048B600 /* gui.m in Sources */ = {isa = PBXBuildFile; fileRef = 265F311912D663F50048B600 /* gui.m */; }; 265F314812D666660048B600 /* plotter.m in Sources */ = {isa = PBXBuildFile; fileRef = 265F314712D666660048B600 /* plotter.m */; }; 265F315212D667060048B600 /* history.m in Sources */ = {isa = PBXBuildFile; fileRef = 265F315112D667060048B600 /* history.m */; }; @@ -110,6 +111,7 @@ 265F321412D66CD90048B600 /* utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 265F321312D66CD90048B600 /* utils.m */; }; 265F321F12D66D510048B600 /* font.m in Sources */ = {isa = PBXBuildFile; fileRef = 265F321E12D66D510048B600 /* font.m */; }; 26AFE63F12DDEB0A005AD082 /* NetSurf.icns in Resources */ = {isa = PBXBuildFile; fileRef = 26AFE63E12DDEB0A005AD082 /* NetSurf.icns */; }; + 26AFE8E412DF4200005AD082 /* ScrollableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 26AFE8E312DF4200005AD082 /* ScrollableView.m */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; /* End PBXBuildFile section */ @@ -281,6 +283,8 @@ 2612269412D7AEA800E10F91 /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = en.lproj/Messages; sourceTree = "<group>"; }; 2612269512D7AEB500E10F91 /* it */ = {isa = PBXFileReference; lastKnownFileType = text; name = it; path = it.lproj/Messages; sourceTree = "<group>"; }; 2612269612D7AEBE00E10F91 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text; name = fr; path = fr.lproj/Messages; sourceTree = "<group>"; }; + 2622F1D512DCD84600CD5A62 /* TreeView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeView.h; sourceTree = "<group>"; }; + 2622F1D612DCD84600CD5A62 /* TreeView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TreeView.m; sourceTree = "<group>"; }; 262711B212DDDCB800B2FA62 /* debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = debug.xcconfig; sourceTree = "<group>"; }; 262711B412DDDCB800B2FA62 /* local.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = local.xcconfig; sourceTree = "<group>"; }; 262711BE12DDDD1500B2FA62 /* release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = release.xcconfig; sourceTree = "<group>"; }; @@ -322,6 +326,8 @@ 265F321312D66CD90048B600 /* utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = utils.m; sourceTree = "<group>"; }; 265F321E12D66D510048B600 /* font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = font.m; sourceTree = "<group>"; }; 26AFE63E12DDEB0A005AD082 /* NetSurf.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = NetSurf.icns; sourceTree = "<group>"; }; + 26AFE8E212DF4200005AD082 /* ScrollableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollableView.h; sourceTree = "<group>"; }; + 26AFE8E312DF4200005AD082 /* ScrollableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScrollableView.m; sourceTree = "<group>"; }; 8D1107320486CEB800E47090 /* NetSurf.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetSurf.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -595,6 +601,10 @@ 26121E3E12D70A1A00E10F91 /* BrowserWindow.m */, 26121EFB12D7132100E10F91 /* BrowserView.h */, 26121EFC12D7132100E10F91 /* BrowserView.m */, + 2622F1D512DCD84600CD5A62 /* TreeView.h */, + 2622F1D612DCD84600CD5A62 /* TreeView.m */, + 26AFE8E212DF4200005AD082 /* ScrollableView.h */, + 26AFE8E312DF4200005AD082 /* ScrollableView.m */, ); name = cocoa; sourceTree = "<group>"; @@ -839,6 +849,8 @@ 26121DD912D703F400E10F91 /* NetSurfApp.m in Sources */, 26121E3F12D70A1A00E10F91 /* BrowserWindow.m in Sources */, 26121EFD12D7132100E10F91 /* BrowserView.m in Sources */, + 2622F1D712DCD84600CD5A62 /* TreeView.m in Sources */, + 26AFE8E412DF4200005AD082 /* ScrollableView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/cocoa/ScrollableView.h b/cocoa/ScrollableView.h new file mode 100644 index 000000000..1850fe58d --- /dev/null +++ b/cocoa/ScrollableView.h @@ -0,0 +1,29 @@ +/* + * Copyright 2011 Sven Weidauer <sven.weidauer@gmail.com> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#import <Cocoa/Cocoa.h> + + +@interface ScrollableView : NSView { + NSSize minimumSize; + NSView *observedSuperview; +} + +@property (readwrite, assign, nonatomic) NSSize minimumSize; + +@end diff --git a/cocoa/ScrollableView.m b/cocoa/ScrollableView.m new file mode 100644 index 000000000..d50ce5a15 --- /dev/null +++ b/cocoa/ScrollableView.m @@ -0,0 +1,69 @@ +/* + * Copyright 2011 Sven Weidauer <sven.weidauer@gmail.com> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#import "ScrollableView.h" + +@interface ScrollableView () + +- (void) adjustFrame; +- (void) frameChangeNotification: (NSNotification *) note; + +@end + +@implementation ScrollableView +@synthesize minimumSize; + +- (void) setMinimumSize: (NSSize)newSize; +{ + minimumSize = newSize; + [self adjustFrame]; +} + +- (void) adjustFrame; +{ + NSSize frameSize = [[self superview] frame].size; + [self setFrameSize: NSMakeSize( MAX( minimumSize.width, frameSize.width ), + MAX( minimumSize.height, frameSize.height ) )]; +} + +- (void) frameChangeNotification: (NSNotification *) note; +{ + [self adjustFrame]; +} + +- (void) viewDidMoveToSuperview; +{ + if (observedSuperview) { + [[NSNotificationCenter defaultCenter] removeObserver: self + name: NSViewFrameDidChangeNotification + object: observedSuperview]; + observedSuperview = nil; + } + + NSView *newSuperView = [self superview]; + + if (nil != newSuperView) { + observedSuperview = newSuperView; + [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(frameChangeNotification:) + name: NSViewFrameDidChangeNotification + object: observedSuperview]; + [observedSuperview setPostsFrameChangedNotifications: YES]; + } +} + +@end diff --git a/cocoa/TreeView.h b/cocoa/TreeView.h new file mode 100644 index 000000000..aee45bb3d --- /dev/null +++ b/cocoa/TreeView.h @@ -0,0 +1,31 @@ +/* + * Copyright 2011 Sven Weidauer <sven.weidauer@gmail.com> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#import <Cocoa/Cocoa.h> + +#import "ScrollableView.h" + +@interface TreeView : ScrollableView { + struct tree *treeHandle; + + BOOL isDragging; + NSPoint dragStart; + +} + +@end diff --git a/cocoa/TreeView.m b/cocoa/TreeView.m new file mode 100644 index 000000000..00fb4808c --- /dev/null +++ b/cocoa/TreeView.m @@ -0,0 +1,131 @@ +/* + * Copyright 2011 Sven Weidauer <sven.weidauer@gmail.com> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#import "TreeView.h" + +#import "desktop/tree.h" +#import "desktop/plotters.h" +#import "desktop/history_global_core.h" + +#define UNIMPL() NSLog( @"Function '%s' unimplemented", __func__ ) + +@implementation TreeView + +static void tree_redraw_request( int x, int y, int w, int h, void *data ); +static void tree_resized( struct tree *tree, int w, int h, void *data ); +static void tree_scroll_visible( int y, int height, void *data ); +static void tree_get_window_dimensions( int *width, int *height, void *data ); + +static const struct treeview_table cocoa_tree_callbacks = { + .redraw_request = tree_redraw_request, + .resized = tree_resized, + .scroll_visible = tree_scroll_visible, + .get_window_dimensions = tree_get_window_dimensions +}; + +- (id)initWithFrame:(NSRect)frame +{ + if ((self = [super initWithFrame:frame]) == nil) return nil; + + treeHandle = tree_create( history_global_get_tree_flags(), &cocoa_tree_callbacks, self ); + if (NULL == treeHandle) { + [self release]; + self = nil; + } + history_global_initialise( treeHandle, "" ); + return self; +} + +- (void) dealloc; +{ + tree_delete( treeHandle ); + + [super dealloc]; +} + +- (void)drawRect:(NSRect)dirtyRect +{ + tree_set_redraw( treeHandle, true ); + tree_draw( treeHandle, 0, 0, NSMinX( dirtyRect ), NSMinY( dirtyRect ), NSWidth( dirtyRect ), NSHeight( dirtyRect ) ); +} + +- (BOOL) isFlipped; +{ + return YES; +} + +- (void) mouseDown: (NSEvent *)theEvent; +{ + NSPoint point = [self convertPoint: [theEvent locationInWindow] fromView: nil]; + dragStart = point; + + tree_mouse_action( treeHandle, BROWSER_MOUSE_PRESS_1, point.x, point.y ); +} + +- (void) mouseUp: (NSEvent *)theEvent; +{ + NSPoint point = [self convertPoint: [theEvent locationInWindow] fromView: nil]; + if (isDragging) { + tree_drag_end( treeHandle, BROWSER_MOUSE_DRAG_1, dragStart.x, dragStart.y, point.x, point.y ); + isDragging = NO; + } else { + tree_mouse_action( treeHandle, BROWSER_MOUSE_CLICK_1, point.x, point.y ); + } +} + + +#define squared(x) ((x)*(x)) +#define MinDragDistance (5.0) + +- (void) mouseDragged: (NSEvent *)theEvent; +{ + NSPoint point = [self convertPoint: [theEvent locationInWindow] fromView: nil]; + + if (!isDragging) { + const CGFloat distance = squared( dragStart.x - point.x ) + squared( dragStart.y - point.y ); + if (distance >= squared( MinDragDistance)) isDragging = YES; + } + + if (isDragging) { + tree_mouse_action( treeHandle, BROWSER_MOUSE_DRAG_1, point.x, point.y ); + } +} + +static void tree_redraw_request( int x, int y, int w, int h, void *data ) +{ + [(TreeView *)data setNeedsDisplayInRect: NSMakeRect( x, y, w, h )]; +} + +static void tree_resized( struct tree *tree, int w, int h, void *data ) +{ + [(TreeView *)data setMinimumSize: NSMakeSize( w, h )]; +} + +static void tree_scroll_visible( int y, int height, void *data ) +{ + [(TreeView *)data scrollPoint: NSMakePoint( 0, y )]; +} + +static void tree_get_window_dimensions( int *width, int *height, void *data ) +{ + NSSize size = [(TreeView *)data frame].size; + *width = size.width; + *height = size.height; +} + +@end diff --git a/cocoa/res/MainMenu.xib b/cocoa/res/MainMenu.xib index 01b7d134b..fae4184cc 100644 --- a/cocoa/res/MainMenu.xib +++ b/cocoa/res/MainMenu.xib @@ -12,7 +12,8 @@ </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="106"/> + <integer value="24"/> + <integer value="811"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -527,6 +528,24 @@ <reference key="NSOnImage" ref="756751024"/> <reference key="NSMixedImage" ref="908425081"/> </object> + <object class="NSMenuItem" id="971013910"> + <reference key="NSMenu" ref="835318025"/> + <bool key="NSIsDisabled">YES</bool> + <bool key="NSIsSeparator">YES</bool> + <string key="NSTitle"/> + <string key="NSKeyEquiv"/> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="756751024"/> + <reference key="NSMixedImage" ref="908425081"/> + </object> + <object class="NSMenuItem" id="532573582"> + <reference key="NSMenu" ref="835318025"/> + <string key="NSTitle">History</string> + <string key="NSKeyEquiv"/> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="756751024"/> + <reference key="NSMixedImage" ref="908425081"/> + </object> <object class="NSMenuItem" id="299356726"> <reference key="NSMenu" ref="835318025"/> <bool key="NSIsDisabled">YES</bool> @@ -577,6 +596,88 @@ </object> <string key="NSName">_NSMainMenu</string> </object> + <object class="NSWindowTemplate" id="346681284"> + <int key="NSWindowStyleMask">15</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{196, 123}, {300, 387}}</string> + <int key="NSWTFlags">1685585920</int> + <string key="NSWindowTitle">History</string> + <string key="NSWindowClass">NSWindow</string> + <nil key="NSViewClass"/> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <object class="NSView" key="NSWindowView" id="75583718"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSScrollView" id="429678852"> + <reference key="NSNextResponder" ref="75583718"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="862897293"> + <reference key="NSNextResponder" ref="429678852"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomView" id="363409241"> + <reference key="NSNextResponder" ref="862897293"/> + <int key="NSvFlags">268</int> + <string key="NSFrameSize">{300, 387}</string> + <reference key="NSSuperview" ref="862897293"/> + <string key="NSClassName">TreeView</string> + </object> + </object> + <string key="NSFrame">{{1, 1}, {300, 387}}</string> + <reference key="NSSuperview" ref="429678852"/> + <reference key="NSNextKeyView" ref="363409241"/> + <reference key="NSDocView" ref="363409241"/> + <object class="NSColor" key="NSBGColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> + </object> + </object> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="1030123989"> + <reference key="NSNextResponder" ref="429678852"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{319, 1}, {15, 371}}</string> + <reference key="NSSuperview" ref="429678852"/> + <reference key="NSTarget" ref="429678852"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.99741602067183466</double> + </object> + <object class="NSScroller" id="523968414"> + <reference key="NSNextResponder" ref="429678852"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{1, 373}, {500, 15}}</string> + <reference key="NSSuperview" ref="429678852"/> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="429678852"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">1</double> + </object> + </object> + <string key="NSFrame">{{-1, -1}, {302, 389}}</string> + <reference key="NSSuperview" ref="75583718"/> + <reference key="NSNextKeyView" ref="862897293"/> + <int key="NSsFlags">562</int> + <reference key="NSVScroller" ref="1030123989"/> + <reference key="NSHScroller" ref="523968414"/> + <reference key="NSContentView" ref="862897293"/> + </object> + </object> + <string key="NSFrameSize">{300, 387}</string> + <reference key="NSSuperview"/> + </object> + <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + </object> </object> <object class="IBObjectContainer" key="IBDocument.Objects"> <object class="NSMutableArray" key="connectionRecords"> @@ -829,6 +930,14 @@ </object> <int key="connectionID">775</int> </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">makeKeyAndOrderFront:</string> + <reference key="source" ref="346681284"/> + <reference key="destination" ref="532573582"/> + </object> + <int key="connectionID">819</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -1078,6 +1187,8 @@ <reference ref="625202149"/> <reference ref="575023229"/> <reference ref="1011231497"/> + <reference ref="971013910"/> + <reference ref="532573582"/> </object> <reference key="parent" ref="713487014"/> </object> @@ -1284,6 +1395,60 @@ <reference key="object" ref="548069040"/> <reference key="parent" ref="930654435"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">811</int> + <reference key="object" ref="346681284"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="75583718"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">812</int> + <reference key="object" ref="75583718"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="429678852"/> + </object> + <reference key="parent" ref="346681284"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">813</int> + <reference key="object" ref="429678852"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1030123989"/> + <reference ref="523968414"/> + <reference ref="363409241"/> + </object> + <reference key="parent" ref="75583718"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">814</int> + <reference key="object" ref="1030123989"/> + <reference key="parent" ref="429678852"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">815</int> + <reference key="object" ref="523968414"/> + <reference key="parent" ref="429678852"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">816</int> + <reference key="object" ref="363409241"/> + <reference key="parent" ref="429678852"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">817</int> + <reference key="object" ref="971013910"/> + <reference key="parent" ref="835318025"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">818</int> + <reference key="object" ref="532573582"/> + <reference key="parent" ref="835318025"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -1401,6 +1566,17 @@ <string>81.IBPluginDependency</string> <string>81.ImportedFromIB2</string> <string>81.editorWindowContentRectSynchronizationRect</string> + <string>811.IBEditorWindowLastContentRect</string> + <string>811.IBPluginDependency</string> + <string>811.IBWindowTemplateEditedContentRect</string> + <string>811.NSWindowTemplate.visibleAtLaunch</string> + <string>812.IBPluginDependency</string> + <string>813.IBPluginDependency</string> + <string>814.IBPluginDependency</string> + <string>815.IBPluginDependency</string> + <string>816.IBPluginDependency</string> + <string>817.IBPluginDependency</string> + <string>818.IBPluginDependency</string> <string>82.IBPluginDependency</string> <string>82.ImportedFromIB2</string> <string>83.IBPluginDependency</string> @@ -1413,7 +1589,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>{{533, 633}, {157, 23}}</string> + <string>{{881, 774}, {157, 23}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{596, 852}, {216, 23}}</string> @@ -1451,11 +1627,11 @@ <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> - <string>{{462, 583}, {194, 73}}</string> + <string>{{810, 694}, {194, 103}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{525, 802}, {197, 73}}</string> - <string>{{242, 656}, {352, 20}}</string> + <string>{{590, 797}, {352, 20}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{74, 862}</string> @@ -1521,6 +1697,17 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>{{323, 672}, {199, 203}}</string> + <string>{{331, 320}, {300, 387}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{331, 320}, {300, 387}}</string> + <boolean value="NO"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -1545,9 +1732,29 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">810</int> + <int key="maxID">819</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">ScrollableView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">ScrollableView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">TreeView</string> + <string key="superclassName">ScrollableView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">TreeView.h</string> + </object> + </object> + </object> </object> - <object class="IBClassDescriber" key="IBDocument.Classes"/> <int key="IBDocument.localizationMode">0</int> <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string> <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> |