Nice back/forward buttons and moved refresh button into URL field (like Safari)

svn path=/trunk/netsurf/; revision=11477
This commit is contained in:
Sven Weidauer 2011-01-24 09:12:22 +00:00
parent 4dda0f0204
commit 8cc6b55981
9 changed files with 308 additions and 144 deletions

View File

@ -45,6 +45,8 @@ struct browser_window;
- (IBAction) navigate: (id) sender;
- (IBAction) backForwardSelected: (id) sender;
- (IBAction) goBack: (id) sender;
- (IBAction) goForward: (id) sender;
- (IBAction) reloadPage: (id) sender;

View File

@ -84,6 +84,12 @@
browser_window_set_scale( browser, (float)option_scale / 100.0, true );
}
- (IBAction) backForwardSelected: (id) sender;
{
if ([sender selectedSegment] == 0) [self goBack: sender];
else [self goForward: sender];
}
- (IBAction) goBack: (id) sender;
{
if (browser && history_back_available( browser->history )) {
@ -108,25 +114,6 @@
browser_window_stop( browser );
}
- (BOOL) validateToolbarItem: (NSToolbarItem *)theItem;
{
SEL action = [theItem action];
if (action == @selector( goBack: )) {
return browser != NULL && history_back_available( browser->history );
}
if (action == @selector( goForward: )) {
return browser != NULL && history_forward_available( browser->history );
}
if (action == @selector( reloadPage: )) {
return browser_window_reload_available( browser );
}
return YES;
}
static inline bool compare_float( float a, float b )
{
const float epsilon = 0.00001;

View File

@ -20,15 +20,20 @@
@class PSMTabBarControl;
@class BrowserViewController;
@class URLFieldCell;
@interface BrowserWindowController : NSWindowController {
PSMTabBarControl *tabBar;
NSTabView *tabView;
URLFieldCell *urlField;
BrowserViewController *activeBrowser;
}
@property (readwrite, retain, nonatomic) IBOutlet PSMTabBarControl *tabBar;
@property (readwrite, retain, nonatomic) IBOutlet NSTabView *tabView;
@property (readwrite, retain, nonatomic) IBOutlet URLFieldCell *urlField;
@property (readwrite, assign, nonatomic) BrowserViewController *activeBrowser;
- (IBAction) newTab: (id) sender;

View File

@ -21,6 +21,7 @@
#import "BrowserViewController.h"
#import "PSMTabBarControl.h"
#import "PSMRolloverButton.h"
#import "URLFieldCell.h"
#import "desktop/browser.h"
@ -28,6 +29,8 @@
@synthesize tabBar;
@synthesize tabView;
@synthesize urlField;
@synthesize activeBrowser;
- (id) init;
@ -41,6 +44,7 @@
{
[self setTabBar: nil];
[self setTabView: nil];
[self setUrlField: nil];
[super dealloc];
}
@ -56,6 +60,8 @@
[b setAction: @selector(newTab:)];
[[self window] setAcceptsMouseMovedEvents: YES];
[urlField setRefreshAction: @selector(reloadPage:)];
}
- (void) addTab: (BrowserViewController *)browser;

View File

@ -71,6 +71,7 @@ S_COCOA := \
NetSurfAppDelegate.m \
NetsurfApp.m \
ScrollableView.m \
URLFieldCell.m \
TreeView.m \
bitmap.m \
fetch.m \

View File

@ -140,6 +140,7 @@
26CDCFF312E70AD1004FC66B /* BrowserWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 26CDCFF212E70AD1004FC66B /* BrowserWindow.xib */; };
26CDD00312E70F56004FC66B /* BrowserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 26CDD00212E70F56004FC66B /* BrowserWindowController.m */; };
26CDD0F612E726E0004FC66B /* BrowserViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 26CDD0F512E726E0004FC66B /* BrowserViewController.m */; };
26EC3B6A12ED62C0000A960C /* URLFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 26EC3B6912ED62C0000A960C /* URLFieldCell.m */; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
@ -401,6 +402,8 @@
26CDD00212E70F56004FC66B /* BrowserWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BrowserWindowController.m; sourceTree = "<group>"; };
26CDD0F412E726E0004FC66B /* BrowserViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BrowserViewController.h; sourceTree = "<group>"; };
26CDD0F512E726E0004FC66B /* BrowserViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BrowserViewController.m; sourceTree = "<group>"; };
26EC3B6812ED62C0000A960C /* URLFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLFieldCell.h; sourceTree = "<group>"; };
26EC3B6912ED62C0000A960C /* URLFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLFieldCell.m; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* NetSurf.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetSurf.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
@ -795,6 +798,8 @@
26AFE8E312DF4200005AD082 /* ScrollableView.m */,
2622F1D512DCD84600CD5A62 /* TreeView.h */,
2622F1D612DCD84600CD5A62 /* TreeView.m */,
26EC3B6812ED62C0000A960C /* URLFieldCell.h */,
26EC3B6912ED62C0000A960C /* URLFieldCell.m */,
);
name = Views;
sourceTree = "<group>";
@ -1062,6 +1067,7 @@
26CDCEE312E702D8004FC66B /* PSMUnifiedTabStyle.m in Sources */,
26CDD00312E70F56004FC66B /* BrowserWindowController.m in Sources */,
26CDD0F612E726E0004FC66B /* BrowserViewController.m in Sources */,
26EC3B6A12ED62C0000A960C /* URLFieldCell.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

29
cocoa/URLFieldCell.h Normal file
View File

@ -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 URLFieldCell : NSTextFieldCell {
NSButtonCell *refreshCell;
}
@property (readwrite, assign, nonatomic) SEL refreshAction;
@property (readwrite, assign, nonatomic) id refreshTarget;
@end

117
cocoa/URLFieldCell.m Normal file
View File

@ -0,0 +1,117 @@
/*
* 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 "URLFieldCell.h"
@interface URLFieldCell ()
@property (readonly, retain, nonatomic) NSButtonCell *refreshCell;
- (NSRect) buttonFrame: (NSRect) cellFrame;
@end
@implementation URLFieldCell
#define BUTTON_SIZE 32
#define PADDING 2
- (void) drawInteriorWithFrame: (NSRect)cellFrame inView: (NSView *)controlView;
{
[super drawInteriorWithFrame: cellFrame inView: controlView];
const NSRect buttonRect = [self buttonFrame: cellFrame];
[[self refreshCell] drawInteriorWithFrame: buttonRect inView: controlView];
}
- (void) selectWithFrame: (NSRect)aRect inView: (NSView *)controlView editor: (NSText *)textObj
delegate: (id)anObject start: (NSInteger)selStart length: (NSInteger)selLength;
{
aRect.size.width -= BUTTON_SIZE + PADDING;
[super selectWithFrame: aRect inView: controlView editor: textObj
delegate: anObject start: selStart length: selLength];
}
- (void) editWithFrame: (NSRect)aRect inView: (NSView *)controlView editor: (NSText *)textObj
delegate: (id)anObject event: (NSEvent *)theEvent;
{
aRect.size.width -= BUTTON_SIZE + PADDING;
[super editWithFrame: aRect inView: controlView editor: textObj
delegate: anObject event: theEvent];
}
- (BOOL) trackMouse: (NSEvent *)theEvent inRect: (NSRect)cellFrame ofView: (NSView *)controlView untilMouseUp: (BOOL)flag;
{
const NSPoint point = [controlView convertPoint: [theEvent locationInWindow] fromView: nil];
const NSRect buttonRect = [self buttonFrame: cellFrame];
if (NSPointInRect( point, buttonRect )) {
return [[self refreshCell] trackMouse: theEvent inRect: buttonRect
ofView: controlView untilMouseUp: flag];
} else {
cellFrame.size.width -= BUTTON_SIZE + PADDING;
return [super trackMouse: theEvent inRect: cellFrame ofView: controlView untilMouseUp: YES];
}
}
- (void) dealloc;
{
[refreshCell release];
[super dealloc];
}
- (NSRect) buttonFrame: (NSRect) cellFrame;
{
NSRect buttonRect = cellFrame;
buttonRect.origin.x = NSMaxX( cellFrame ) - BUTTON_SIZE;
buttonRect.size.width = BUTTON_SIZE;
return buttonRect;
}
- (NSButtonCell *) refreshCell;
{
if (nil == refreshCell) {
refreshCell = [[NSButtonCell alloc] initImageCell: [NSImage imageNamed: NSImageNameRefreshTemplate]];
[refreshCell setButtonType: NSMomentaryPushInButton];
[refreshCell setBordered: NO];
}
return refreshCell;
}
- (void) setRefreshTarget: (id) newTarget;
{
[[self refreshCell] setTarget: newTarget];
}
- (id) refreshTarget;
{
return [[self refreshCell] target];
}
- (void) setRefreshAction: (SEL) newAction;
{
[[self refreshCell] setAction: newAction];
}
- (SEL) refreshAction;
{
return [[self refreshCell] action];
}
@end

View File

@ -12,6 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -59,9 +60,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>316FFEF7-FE4B-4054-A233-B48593490A7F</string>
<string>484FB8D5-6AD6-4E75-B60E-CA03FC98EFCD</string>
<string>7EEF129A-ED23-47F1-88E8-B60EAF53C80C</string>
<string>BC5CEBFC-2E3B-420C-A75F-BE0760149C45</string>
<string>E2E89C48-DD3F-47A5-9E6C-25985A970F69</string>
<string>NSToolbarCustomizeToolbarItem</string>
<string>NSToolbarFlexibleSpaceItem</string>
@ -70,69 +69,64 @@
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSToolbarItem" id="792807559">
<object class="NSToolbarItem" id="768608234">
<object class="NSMutableString" key="NSToolbarItemIdentifier">
<characters key="NS.bytes">316FFEF7-FE4B-4054-A233-B48593490A7F</characters>
<characters key="NS.bytes">BC5CEBFC-2E3B-420C-A75F-BE0760149C45</characters>
</object>
<string key="NSToolbarItemLabel">Go back</string>
<string key="NSToolbarItemPaletteLabel">Go back</string>
<string key="NSToolbarItemToolTip"/>
<nil key="NSToolbarItemView"/>
<object class="NSCustomResource" key="NSToolbarItemImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSGoLeftTemplate</string>
<string key="NSToolbarItemLabel"/>
<string key="NSToolbarItemPaletteLabel">Back/Forward</string>
<nil key="NSToolbarItemToolTip"/>
<object class="NSSegmentedControl" key="NSToolbarItemView" id="262335400">
<nil key="NSNextResponder"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{5, 14}, {71, 25}}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSSegmentedCell" key="NSCell" id="754779730">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">16</int>
</object>
<reference key="NSControlView" ref="262335400"/>
<object class="NSMutableArray" key="NSSegmentImages">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSSegmentItem">
<double key="NSSegmentItemWidth">32</double>
<object class="NSCustomResource" key="NSSegmentItemImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSLeftFacingTriangleTemplate</string>
</object>
<string key="NSSegmentItemLabel"/>
<string key="NSSegmentItemTooltip">Back</string>
<int key="NSSegmentItemImageScaling">0</int>
</object>
<object class="NSSegmentItem">
<double key="NSSegmentItemWidth">32</double>
<object class="NSCustomResource" key="NSSegmentItemImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSRightFacingTriangleTemplate</string>
</object>
<string key="NSSegmentItemLabel"/>
<string key="NSSegmentItemTooltip">Forward</string>
<int key="NSSegmentItemTag">1</int>
<int key="NSSegmentItemImageScaling">0</int>
</object>
</object>
<int key="NSSelectedSegment">1</int>
<int key="NSTrackingMode">2</int>
<int key="NSSegmentStyle">2</int>
</object>
</object>
<nil key="NSToolbarItemImage"/>
<nil key="NSToolbarItemTarget"/>
<nil key="NSToolbarItemAction"/>
<string key="NSToolbarItemMinSize">{0, 0}</string>
<string key="NSToolbarItemMaxSize">{0, 0}</string>
<string key="NSToolbarItemMinSize">{71, 25}</string>
<string key="NSToolbarItemMaxSize">{104, 25}</string>
<bool key="NSToolbarItemEnabled">YES</bool>
<bool key="NSToolbarItemAutovalidates">YES</bool>
<int key="NSToolbarItemTag">-1</int>
<bool key="NSToolbarIsUserRemovable">YES</bool>
<int key="NSToolbarItemVisibilityPriority">0</int>
</object>
<object class="NSToolbarItem" id="560294454">
<object class="NSMutableString" key="NSToolbarItemIdentifier">
<characters key="NS.bytes">484FB8D5-6AD6-4E75-B60E-CA03FC98EFCD</characters>
</object>
<string key="NSToolbarItemLabel">Go forward</string>
<string key="NSToolbarItemPaletteLabel">Go forward</string>
<string key="NSToolbarItemToolTip"/>
<nil key="NSToolbarItemView"/>
<object class="NSCustomResource" key="NSToolbarItemImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSGoRightTemplate</string>
</object>
<nil key="NSToolbarItemTarget"/>
<nil key="NSToolbarItemAction"/>
<string key="NSToolbarItemMinSize">{0, 0}</string>
<string key="NSToolbarItemMaxSize">{0, 0}</string>
<bool key="NSToolbarItemEnabled">YES</bool>
<bool key="NSToolbarItemAutovalidates">YES</bool>
<int key="NSToolbarItemTag">-1</int>
<bool key="NSToolbarIsUserRemovable">YES</bool>
<int key="NSToolbarItemVisibilityPriority">0</int>
</object>
<object class="NSToolbarItem" id="753404843">
<object class="NSMutableString" key="NSToolbarItemIdentifier">
<characters key="NS.bytes">7EEF129A-ED23-47F1-88E8-B60EAF53C80C</characters>
</object>
<string key="NSToolbarItemLabel">Reload</string>
<string key="NSToolbarItemPaletteLabel">Reload</string>
<string key="NSToolbarItemToolTip"/>
<nil key="NSToolbarItemView"/>
<object class="NSCustomResource" key="NSToolbarItemImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSRefreshTemplate</string>
</object>
<nil key="NSToolbarItemTarget"/>
<nil key="NSToolbarItemAction"/>
<string key="NSToolbarItemMinSize">{0, 0}</string>
<string key="NSToolbarItemMaxSize">{0, 0}</string>
<bool key="NSToolbarItemEnabled">YES</bool>
<bool key="NSToolbarItemAutovalidates">YES</bool>
<int key="NSToolbarItemTag">-1</int>
<int key="NSToolbarItemTag">0</int>
<bool key="NSToolbarIsUserRemovable">YES</bool>
<int key="NSToolbarItemVisibilityPriority">0</int>
</object>
@ -150,13 +144,14 @@
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1053649244">
<int key="NSCellFlags">-1804468671</int>
<int key="NSCellFlags2">272630784</int>
<int key="NSCellFlags2">268436480</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="770988704">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSPlaceholderString">Open this URL</string>
<reference key="NSControlView" ref="77748234"/>
<bool key="NSDrawsBackground">YES</bool>
<object class="NSColor" key="NSBackgroundColor">
@ -301,21 +296,16 @@
</object>
<object class="NSArray" key="NSToolbarIBAllowedItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="792807559"/>
<reference ref="753404843"/>
<reference ref="560294454"/>
<reference ref="1012010237"/>
<reference ref="768608234"/>
<reference ref="192029103"/>
<reference ref="1012010237"/>
<reference ref="661775936"/>
<reference ref="568640167"/>
<reference ref="276197344"/>
</object>
<object class="NSMutableArray" key="NSToolbarIBDefaultItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="792807559"/>
<reference ref="753404843"/>
<reference ref="560294454"/>
<reference ref="1012010237"/>
<reference ref="768608234"/>
<reference ref="192029103"/>
</object>
<object class="NSMutableArray" key="NSToolbarIBSelectableItems">
@ -325,7 +315,7 @@
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
<string key="NSWindowContentMinSize">{273, 43}</string>
<object class="NSView" key="NSWindowView" id="1006">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -393,9 +383,10 @@
</object>
</object>
<string key="NSFrameSize">{774, 554}</string>
<reference key="NSSuperview"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
<string key="NSMinSize">{273, 104}</string>
<string key="NSMinSize">{273, 97}</string>
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
<bool key="NSAutorecalculatesContentBorderThicknessMinY">NO</bool>
<double key="NSContentBorderThicknessMinY">20</double>
@ -466,30 +457,6 @@
</object>
<int key="connectionID">56</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">goBack:</string>
<reference key="source" ref="1003"/>
<reference key="destination" ref="792807559"/>
</object>
<int key="connectionID">57</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">reloadPage:</string>
<reference key="source" ref="1003"/>
<reference key="destination" ref="753404843"/>
</object>
<int key="connectionID">58</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">goForward:</string>
<reference key="source" ref="1003"/>
<reference key="destination" ref="560294454"/>
</object>
<int key="connectionID">59</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">navigate:</string>
@ -586,6 +553,22 @@
</object>
<int key="connectionID">69</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">urlField</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1053649244"/>
</object>
<int key="connectionID">70</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">backForwardSelected:</string>
<reference key="source" ref="1003"/>
<reference key="destination" ref="768608234"/>
</object>
<int key="connectionID">74</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -673,32 +656,15 @@
<reference key="object" ref="71746575"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="753404843"/>
<reference ref="560294454"/>
<reference ref="792807559"/>
<reference ref="192029103"/>
<reference ref="1012010237"/>
<reference ref="276197344"/>
<reference ref="568640167"/>
<reference ref="661775936"/>
<reference ref="768608234"/>
</object>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">45</int>
<reference key="object" ref="753404843"/>
<reference key="parent" ref="71746575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">47</int>
<reference key="object" ref="560294454"/>
<reference key="parent" ref="71746575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">48</int>
<reference key="object" ref="792807559"/>
<reference key="parent" ref="71746575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">49</int>
<reference key="object" ref="192029103"/>
@ -748,6 +714,29 @@
<reference key="parent" ref="0"/>
<string key="objectName">Active Browser</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">73</int>
<reference key="object" ref="768608234"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="262335400"/>
</object>
<reference key="parent" ref="71746575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">71</int>
<reference key="object" ref="262335400"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="754779730"/>
</object>
<reference key="parent" ref="768608234"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">72</int>
<reference key="object" ref="754779730"/>
<reference key="parent" ref="262335400"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -774,22 +763,23 @@
<string>37.IBViewBoundsToFrameTransform</string>
<string>44.IBEditorWindowLastContentRect</string>
<string>44.IBPluginDependency</string>
<string>45.IBPluginDependency</string>
<string>47.IBPluginDependency</string>
<string>48.IBPluginDependency</string>
<string>50.IBPluginDependency</string>
<string>51.IBPluginDependency</string>
<string>52.IBPluginDependency</string>
<string>53.IBPluginDependency</string>
<string>54.IBPluginDependency</string>
<string>55.CustomClassName</string>
<string>55.IBPluginDependency</string>
<string>61.IBPluginDependency</string>
<string>71.IBPluginDependency</string>
<string>72.IBPluginDependency</string>
<string>72.IBSegmentedControlInspectorSelectedSegmentMetadataKey</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>{{155, 108}, {774, 554}}</string>
<string>{{155, 115}, {774, 554}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{155, 108}, {774, 554}}</string>
<string>{{155, 115}, {774, 554}}</string>
<integer value="1"/>
<string>{196, 240}</string>
<string>{{202, 428}, {480, 270}}</string>
@ -813,18 +803,19 @@
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABDiwAAxAVAAA</bytes>
</object>
<string>{{234, 662}, {616, 0}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{234, 669}, {616, 0}}</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>URLFieldCell</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"/>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
@ -843,7 +834,7 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">69</int>
<int key="maxID">74</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -863,6 +854,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>backForwardSelected:</string>
<string>goBack:</string>
<string>goForward:</string>
<string>navigate:</string>
@ -882,12 +874,14 @@
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>backForwardSelected:</string>
<string>goBack:</string>
<string>goForward:</string>
<string>navigate:</string>
@ -899,6 +893,10 @@
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBActionInfo">
<string key="name">backForwardSelected:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo">
<string key="name">goBack:</string>
<string key="candidateClassName">id</string>
@ -969,11 +967,13 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>tabBar</string>
<string>tabView</string>
<string>urlField</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>PSMTabBarControl</string>
<string>NSTabView</string>
<string>URLFieldCell</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
@ -982,6 +982,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>tabBar</string>
<string>tabView</string>
<string>urlField</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -993,6 +994,10 @@
<string key="name">tabView</string>
<string key="candidateClassName">NSTabView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">urlField</string>
<string key="candidateClassName">URLFieldCell</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@ -1102,6 +1107,14 @@
<string key="minorKey">ScrollableView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">URLFieldCell</string>
<string key="superclassName">NSTextFieldCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">URLFieldCell.h</string>
</object>
</object>
</object>
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -1131,20 +1144,18 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NSGoLeftTemplate</string>
<string>NSGoRightTemplate</string>
<string>NSLeftFacingTriangleTemplate</string>
<string>NSMenuCheckmark</string>
<string>NSMenuMixedState</string>
<string>NSRefreshTemplate</string>
<string>NSRightFacingTriangleTemplate</string>
<string>NSToolbarCustomizeToolbarItemImage</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>{9, 9}</string>
<string>{9, 9}</string>
<string>{9, 8}</string>
<string>{7, 2}</string>
<string>{10, 12}</string>
<string>{9, 9}</string>
<string>{32, 32}</string>
</object>
</object>