Anonymous avatar Anonymous committed 62b33a9

Added a styled text field

Comments (0)

Files changed (11)

BWStyledTextField.classdescription

+{
+	Actions = {
+		// Define action descriptions here, for example
+		// "myAction:" = id;
+	};
+	Outlets = {
+		// Define outlet descriptions here, for example
+		// myOutlet = NSView;
+	};
+    ClassName = BWStyledTextField; 
+    SuperClass = NSTextField; 
+}

BWStyledTextField.h

+//
+//  BWStyledTextField.h
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface BWStyledTextField : NSTextField
+{
+	
+}
+
+- (BOOL)hasGradient;
+- (void)setHasGradient:(BOOL)flag;
+- (NSColor *)startingColor;
+- (void)setStartingColor:(NSColor *)color;
+- (NSColor *)endingColor;
+- (void)setEndingColor:(NSColor *)color;
+
+- (NSColor *)solidColor;
+- (void)setSolidColor:(NSColor *)color;
+
+- (BOOL)hasShadow;
+- (void)setHasShadow:(BOOL)flag;
+- (BOOL)shadowIsBelow;
+- (void)setShadowIsBelow:(BOOL)flag;
+- (NSColor *)shadowColor;
+- (void)setShadowColor:(NSColor *)color;
+
+@end

BWStyledTextField.m

+//
+//  BWStyledTextField.m
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import "BWStyledTextField.h"
+
+@implementation BWStyledTextField
+
+#pragma mark Shadow
+
+- (BOOL)hasShadow
+{
+	return [[self cell] hasShadow];
+}
+
+- (void)setHasShadow:(BOOL)flag
+{
+	[[self cell] setHasShadow:flag];
+	
+	[self setNeedsDisplay:YES];
+}
+
+- (BOOL)shadowIsBelow
+{
+	return [[self cell] shadowIsBelow];
+}
+
+- (void)setShadowIsBelow:(BOOL)flag
+{
+	[[self cell] setShadowIsBelow:flag];
+	
+	[self setNeedsDisplay:YES];
+}
+
+- (NSColor *)shadowColor
+{
+	return [[self cell] shadowColor];
+}
+
+- (void)setShadowColor:(NSColor *)color
+{
+	[[self cell] setShadowColor:color];
+	
+	[self setNeedsDisplay:YES];
+}
+
+#pragma mark Fill
+
+- (BOOL)hasGradient
+{
+	return [[self cell] hasGradient];
+}
+
+- (void)setHasGradient:(BOOL)flag
+{
+	[[self cell] setHasGradient:flag];
+
+	[self setNeedsDisplay:YES];
+}
+
+- (NSColor *)startingColor
+{
+	return [[self cell] startingColor];
+}
+
+- (void)setStartingColor:(NSColor *)color
+{
+	[[self cell] setStartingColor:color];
+	
+	[self setNeedsDisplay:YES];
+}
+
+- (NSColor *)endingColor
+{
+	return [[self cell] endingColor];
+}
+
+- (void)setEndingColor:(NSColor *)color
+{
+	[[self cell] setEndingColor:color];
+	
+	[self setNeedsDisplay:YES];
+}
+
+- (NSColor *)solidColor
+{
+	return [[self cell] solidColor];
+}
+
+- (void)setSolidColor:(NSColor *)color
+{
+	[[self cell] setSolidColor:color];
+	
+	[self setNeedsDisplay:YES];
+}
+
+@end

BWStyledTextFieldCell.classdescription

+{
+	Actions = {
+		// Define action descriptions here, for example
+		// "myAction:" = id;
+	};
+	Outlets = {
+		// Define outlet descriptions here, for example
+		// myOutlet = NSView;
+	};
+    ClassName = BWStyledTextFieldCell; 
+    SuperClass = NSTextFieldCell; 
+}

BWStyledTextFieldCell.h

+//
+//  BWStyledTextFieldCell.h
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface BWStyledTextFieldCell : NSTextFieldCell 
+{
+	BOOL shadowIsBelow, hasShadow, hasGradient;
+	NSColor *shadowColor, *startingColor, *endingColor, *solidColor;
+	
+	NSMutableDictionary *previousAttributes;
+}
+
+@property BOOL shadowIsBelow, hasShadow, hasGradient;
+@property (nonatomic, retain) NSColor *shadowColor, *startingColor, *endingColor, *solidColor;
+
+@end

BWStyledTextFieldCell.m

+//
+//  BWStyledTextFieldCell.m
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import "BWStyledTextFieldCell.h"
+
+@interface NSCell (BWPrivate)
+- (NSDictionary *)_textAttributes;
+@end
+
+@interface BWStyledTextFieldCell (BWPrivate)
+- (void)applyGradient;
+@end
+
+@interface BWStyledTextFieldCell ()
+@property (retain) NSMutableDictionary *previousAttributes;
+@end
+
+@implementation BWStyledTextFieldCell
+
+@synthesize shadowIsBelow, shadowColor, hasShadow, previousAttributes, startingColor, endingColor, hasGradient, solidColor;
+
+- (id)initWithCoder:(NSCoder *)decoder
+{
+	if ((self = [super initWithCoder:decoder]) != nil)
+	{
+		[self setShadowIsBelow:[decoder decodeBoolForKey:@"BWSTFCShadowIsBelow"]];
+		[self setHasShadow:[decoder decodeBoolForKey:@"BWSTFCHasShadow"]];
+		[self setHasGradient:[decoder decodeBoolForKey:@"BWSTFCHasGradient"]];
+		[self setShadowColor:[decoder decodeObjectForKey:@"BWSTFCShadowColor"]];
+		[self setPreviousAttributes:[decoder decodeObjectForKey:@"BWSTFCPreviousAttributes"]];
+		[self setStartingColor:[decoder decodeObjectForKey:@"BWSTFCStartingColor"]];
+		[self setEndingColor:[decoder decodeObjectForKey:@"BWSTFCEndingColor"]];
+		[self setSolidColor:[decoder decodeObjectForKey:@"BWSTFCSolidColor"]];
+		
+		if (self.shadowColor == nil)
+			self.shadowColor = [NSColor blackColor];
+		
+		if (self.startingColor == nil)
+			self.startingColor = [NSColor whiteColor];
+		
+		if (self.endingColor == nil)
+			self.endingColor = [NSColor blackColor];
+		
+		if (self.solidColor == nil)
+			self.solidColor = [NSColor greenColor];
+		
+		if (self.hasGradient)
+			[self applyGradient];
+	}
+	return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)coder
+{
+    [super encodeWithCoder:coder];
+	
+	[coder encodeBool:[self shadowIsBelow] forKey:@"BWSTFCShadowIsBelow"];
+	[coder encodeBool:[self hasShadow] forKey:@"BWSTFCHasShadow"];
+	[coder encodeBool:[self hasGradient] forKey:@"BWSTFCHasGradient"];
+	[coder encodeObject:[self shadowColor] forKey:@"BWSTFCShadowColor"];
+	[coder encodeObject:[self previousAttributes] forKey:@"BWSTFCPreviousAttributes"];
+	[coder encodeObject:[self startingColor] forKey:@"BWSTFCStartingColor"];
+	[coder encodeObject:[self endingColor] forKey:@"BWSTFCEndingColor"];
+	[coder encodeObject:[self solidColor] forKey:@"BWSTFCSolidColor"];
+} 
+
+- (NSDictionary *)_textAttributes
+{
+	NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease];
+	[attributes addEntriesFromDictionary:[super _textAttributes]];
+	
+	// Shadow code
+	if (hasShadow)
+	{
+		NSShadow *shadow = [[NSShadow alloc] init];
+		[shadow setShadowColor:shadowColor];
+		
+		if (shadowIsBelow)
+			[shadow setShadowOffset:NSMakeSize(0,-1)];
+		else
+			[shadow setShadowOffset:NSMakeSize(0,1)];
+		
+		[attributes setObject:shadow forKey:NSShadowAttributeName];
+		
+		//[shadow release]; //This causes a sometimes reproducible crash at design-time. Patches welcome.
+	}
+	
+	// Gradient code
+	if ([previousAttributes objectForKey:@"NSFont"] != nil && [[previousAttributes objectForKey:@"NSFont"] isEqualTo:[attributes objectForKey:@"NSFont"]] == NO)
+	{
+		[self performSelector:@selector(applyGradient) withObject:nil afterDelay:0];
+		[self setPreviousAttributes:attributes];
+	}
+	
+	return attributes;
+}
+
+- (void)dealloc
+{
+	[shadowColor release];
+	[super dealloc];
+}
+
+#pragma mark Gradient-specific Code
+
+- (void)awakeFromNib
+{
+	NSMutableDictionary *attributes = [[[NSMutableDictionary alloc] init] autorelease];
+	[attributes addEntriesFromDictionary:[super _textAttributes]];
+	self.previousAttributes = attributes;
+	
+	[self applyGradient];
+}
+
+- (void)applyGradient
+{	
+	if (self.hasGradient)
+	{	
+		float textHeight = [[self font] ascender] - [[self font] descender];
+		
+		NSSize boundSizeWithFullWidth = NSMakeSize([self controlView].frame.size.width,ceilf(textHeight));
+		
+		NSImage *image = [[[NSImage alloc] initWithSize:boundSizeWithFullWidth] autorelease];
+		
+		NSGradient *gradient = [[[NSGradient alloc] initWithStartingColor:self.startingColor endingColor:self.endingColor] autorelease];
+		
+		[image lockFocus];
+		[gradient drawInRect:NSMakeRect(0,0,boundSizeWithFullWidth.width,boundSizeWithFullWidth.height) angle:270];
+		[image unlockFocus];
+		
+		NSColor *color = [NSColor colorWithPatternImage:image];
+		
+		[self setTextColor:color];
+	}
+}
+
+- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
+{
+	[[NSGraphicsContext currentContext] saveGraphicsState];
+	
+	float textHeight = [[self font] ascender] - [[self font] descender];
+	
+	float deltaHeight = cellFrame.size.height - textHeight;
+	float halfDeltaHeight = deltaHeight / 2;
+	
+	float yOrigin = [[controlView superview] convertRect:[controlView frame] toView:nil].origin.y;
+	[[NSGraphicsContext currentContext] setPatternPhase:NSMakePoint(0, yOrigin + halfDeltaHeight)];
+	
+	[super drawInteriorWithFrame:cellFrame inView:controlView];
+	
+	[[NSGraphicsContext currentContext] restoreGraphicsState];
+}
+
+- (void)setStartingColor:(NSColor *)color
+{
+	if (startingColor != color) 
+	{
+        [startingColor release];
+        startingColor = [color retain];
+		
+		[self applyGradient];
+    }
+}
+
+- (void)setEndingColor:(NSColor *)color
+{	
+	if (endingColor != color) 
+	{
+        [endingColor release];
+        endingColor = [color retain];
+		
+		[self applyGradient];
+    }
+}
+
+- (void)setSolidColor:(NSColor *)color
+{
+	if (solidColor != color) 
+	{
+        [solidColor release];
+        solidColor = [color retain];
+		
+		[self setTextColor:solidColor];
+    }
+}
+
+- (void)setHasGradient:(BOOL)flag
+{
+	hasGradient = flag;
+	
+	if (flag)
+		[self applyGradient];
+	else
+		[self setTextColor:self.solidColor];
+}
+
+@end

BWStyledTextFieldInspector.h

+//
+//  BWStyledTextFieldInspector.h
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import <InterfaceBuilderKit/InterfaceBuilderKit.h>
+#import "BWStyledTextField.h"
+
+@interface BWStyledTextFieldInspector : IBInspector 
+{
+	BWStyledTextField *textField;
+	int shadowPositionPopupSelection, fillPopupSelection;
+}
+
+@property int shadowPositionPopupSelection, fillPopupSelection;
+
+@end

BWStyledTextFieldInspector.m

+//
+//  BWStyledTextFieldInspector.m
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import "BWStyledTextFieldInspector.h"
+
+@implementation BWStyledTextFieldInspector
+
+@synthesize shadowPositionPopupSelection, fillPopupSelection;
+
+- (NSString *)viewNibName 
+{
+    return @"BWStyledTextFieldInspector";
+}
+
+- (void)refresh 
+{
+	[super refresh];
+	
+	textField = [[self inspectedObjects] objectAtIndex:0];
+	
+	// Update the popup selections in case of an undo operation
+	if (![textField hasShadow])
+	{
+		[self setShadowPositionPopupSelection:0];
+	}
+	else
+	{
+		if ([textField shadowIsBelow])
+			[self setShadowPositionPopupSelection:3];
+		else
+			[self setShadowPositionPopupSelection:2];
+	}
+	
+	if ([textField hasGradient])
+		[self setFillPopupSelection:1];
+	else
+		[self setFillPopupSelection:0];
+}
+
++ (BOOL)supportsMultipleObjectInspection
+{
+	return NO;
+}
+
+- (void)setFillPopupSelection:(int)anInt
+{
+	fillPopupSelection = anInt;
+	
+	if (fillPopupSelection == 0)
+		[textField setHasGradient:NO];
+	else
+		[textField setHasGradient:YES];
+}
+
+- (void)setShadowPositionPopupSelection:(int)anInt
+{	
+	shadowPositionPopupSelection = anInt;
+	
+	if (shadowPositionPopupSelection == 2)
+	{
+		[textField setHasShadow:YES];
+		[textField setShadowIsBelow:NO];
+	}
+	else if (shadowPositionPopupSelection == 3)
+	{
+		[textField setHasShadow:YES];
+		[textField setShadowIsBelow:YES];
+	}
+	else
+	{
+		[textField setHasShadow:NO];
+	}
+}
+
+@end

BWStyledTextFieldInspector.xib

+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
+	<data>
+		<int key="IBDocument.SystemTarget">1050</int>
+		<string key="IBDocument.SystemVersion">9J61</string>
+		<string key="IBDocument.InterfaceBuilderVersion">677</string>
+		<string key="IBDocument.AppKitVersion">949.46</string>
+		<string key="IBDocument.HIToolboxVersion">353.00</string>
+		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<integer value="1" id="9"/>
+		</object>
+		<object class="NSArray" key="IBDocument.PluginDependencies">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<string>com.apple.InterfaceBuilderKit</string>
+			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+		</object>
+		<object class="NSMutableDictionary" key="IBDocument.Metadata">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSArray" key="dict.sortedKeys">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+			<object class="NSMutableArray" key="dict.values">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+			</object>
+		</object>
+		<object class="NSMutableArray" key="IBDocument.RootObjects" id="110858478">
+			<bool key="EncodedWithXMLCoder">YES</bool>
+			<object class="NSCustomObject" id="762632889">
+				<string key="NSClassName">BWStyledTextFieldInspector</string>
+			</object>
+			<object class="NSCustomObject" id="932410077">
+				<string key="NSClassName">FirstResponder</string>
+			</object>
+			<object class="NSCustomObject" id="858592610">
+				<string key="NSClassName">NSApplication</string>
+			</object>
+			<object class="NSCustomView" id="537708911">
+				<reference key="NSNextResponder"/>
+				<int key="NSvFlags">268</int>
+				<object class="NSMutableArray" key="NSSubviews">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="NSPopUpButton" id="653463101">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<string key="NSFrame">{{81, 2}, {92, 22}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<bool key="NSEnabled">YES</bool>
+						<object class="NSPopUpButtonCell" key="NSCell" id="506782335">
+							<int key="NSCellFlags">-2076049856</int>
+							<int key="NSCellFlags2">133120</int>
+							<object class="NSFont" key="NSSupport" id="26">
+								<string key="NSName">LucidaGrande</string>
+								<double key="NSSize">1.100000e+01</double>
+								<int key="NSfFlags">3100</int>
+							</object>
+							<reference key="NSControlView" ref="653463101"/>
+							<int key="NSButtonFlags">109199615</int>
+							<int key="NSButtonFlags2">1</int>
+							<object class="NSFont" key="NSAlternateImage">
+								<string key="NSName">LucidaGrande</string>
+								<double key="NSSize">1.100000e+01</double>
+								<int key="NSfFlags">16</int>
+							</object>
+							<string key="NSAlternateContents"/>
+							<string key="NSKeyEquivalent"/>
+							<int key="NSPeriodicDelay">400</int>
+							<int key="NSPeriodicInterval">75</int>
+							<object class="NSMenuItem" key="NSMenuItem" id="289818671">
+								<reference key="NSMenu" ref="987899806"/>
+								<string key="NSTitle">None</string>
+								<string key="NSKeyEquiv"/>
+								<int key="NSMnemonicLoc">2147483647</int>
+								<int key="NSState">1</int>
+								<object class="NSCustomResource" key="NSOnImage" id="510271789">
+									<string key="NSClassName">NSImage</string>
+									<string key="NSResourceName">NSMenuCheckmark</string>
+								</object>
+								<object class="NSCustomResource" key="NSMixedImage" id="789455571">
+									<string key="NSClassName">NSImage</string>
+									<string key="NSResourceName">NSMenuMixedState</string>
+								</object>
+								<string key="NSAction">_popUpItemAction:</string>
+								<reference key="NSTarget" ref="506782335"/>
+							</object>
+							<bool key="NSMenuItemRespectAlignment">YES</bool>
+							<object class="NSMenu" key="NSMenu" id="987899806">
+								<string key="NSTitle">OtherViews</string>
+								<object class="NSMutableArray" key="NSMenuItems">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<reference ref="289818671"/>
+									<object class="NSMenuItem" id="911377428">
+										<reference key="NSMenu" ref="987899806"/>
+										<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="510271789"/>
+										<reference key="NSMixedImage" ref="789455571"/>
+										<string key="NSAction">_popUpItemAction:</string>
+										<reference key="NSTarget" ref="506782335"/>
+									</object>
+									<object class="NSMenuItem" id="690298314">
+										<reference key="NSMenu" ref="987899806"/>
+										<string key="NSTitle">Above</string>
+										<string key="NSKeyEquiv"/>
+										<int key="NSKeyEquivModMask">1048576</int>
+										<int key="NSMnemonicLoc">2147483647</int>
+										<reference key="NSOnImage" ref="510271789"/>
+										<reference key="NSMixedImage" ref="789455571"/>
+										<string key="NSAction">_popUpItemAction:</string>
+										<reference key="NSTarget" ref="506782335"/>
+									</object>
+									<object class="NSMenuItem" id="579053459">
+										<reference key="NSMenu" ref="987899806"/>
+										<string key="NSTitle">Below</string>
+										<string key="NSKeyEquiv"/>
+										<int key="NSKeyEquivModMask">1048576</int>
+										<int key="NSMnemonicLoc">2147483647</int>
+										<reference key="NSOnImage" ref="510271789"/>
+										<reference key="NSMixedImage" ref="789455571"/>
+										<string key="NSAction">_popUpItemAction:</string>
+										<reference key="NSTarget" ref="506782335"/>
+									</object>
+								</object>
+							</object>
+							<int key="NSPreferredEdge">3</int>
+							<bool key="NSUsesItemFromMenu">YES</bool>
+							<bool key="NSAltersState">YES</bool>
+							<int key="NSArrowPosition">1</int>
+						</object>
+					</object>
+					<object class="NSTextField" id="184291607">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<string key="NSFrame">{{8, 7}, {70, 14}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<bool key="NSEnabled">YES</bool>
+						<object class="NSTextFieldCell" key="NSCell" id="1056778467">
+							<int key="NSCellFlags">67239488</int>
+							<int key="NSCellFlags2">4326400</int>
+							<string key="NSContents">Shadow</string>
+							<object class="NSFont" key="NSSupport" id="853276385">
+								<string key="NSName">LucidaGrande-Bold</string>
+								<double key="NSSize">1.100000e+01</double>
+								<int key="NSfFlags">16</int>
+							</object>
+							<reference key="NSControlView" ref="184291607"/>
+							<object class="NSColor" key="NSBackgroundColor" id="895821163">
+								<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">MC42NjY2NjY2OQA</bytes>
+								</object>
+							</object>
+							<object class="NSColor" key="NSTextColor" id="676286531">
+								<int key="NSColorSpace">6</int>
+								<string key="NSCatalogName">System</string>
+								<string key="NSColorName">controlTextColor</string>
+								<object class="NSColor" key="NSColor">
+									<int key="NSColorSpace">3</int>
+									<bytes key="NSWhite">MAA</bytes>
+								</object>
+							</object>
+						</object>
+					</object>
+					<object class="NSColorWell" id="65157375">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<object class="NSMutableSet" key="NSDragTypes">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="NSArray" key="set.sortedObjects">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<string>NSColor pasteboard type</string>
+							</object>
+						</object>
+						<string key="NSFrame">{{178, 4}, {86, 20}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<bool key="NSEnabled">YES</bool>
+						<bool key="NSIsBordered">YES</bool>
+						<object class="NSColor" key="NSColor">
+							<int key="NSColorSpace">1</int>
+							<bytes key="NSRGB">MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA</bytes>
+						</object>
+					</object>
+					<object class="NSTextField" id="800354404">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<string key="NSFrame">{{8, 68}, {70, 14}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<bool key="NSEnabled">YES</bool>
+						<object class="NSTextFieldCell" key="NSCell" id="832635680">
+							<int key="NSCellFlags">67239488</int>
+							<int key="NSCellFlags2">4326400</int>
+							<string key="NSContents">Fill</string>
+							<reference key="NSSupport" ref="853276385"/>
+							<reference key="NSControlView" ref="800354404"/>
+							<reference key="NSBackgroundColor" ref="895821163"/>
+							<reference key="NSTextColor" ref="676286531"/>
+						</object>
+					</object>
+					<object class="NSPopUpButton" id="531034450">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<string key="NSFrame">{{81, 63}, {186, 22}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<bool key="NSEnabled">YES</bool>
+						<object class="NSPopUpButtonCell" key="NSCell" id="557827023">
+							<int key="NSCellFlags">-2076049856</int>
+							<int key="NSCellFlags2">133120</int>
+							<reference key="NSSupport" ref="26"/>
+							<reference key="NSControlView" ref="531034450"/>
+							<int key="NSButtonFlags">109199615</int>
+							<int key="NSButtonFlags2">129</int>
+							<string key="NSAlternateContents"/>
+							<string key="NSKeyEquivalent"/>
+							<int key="NSPeriodicDelay">400</int>
+							<int key="NSPeriodicInterval">75</int>
+							<object class="NSMenuItem" key="NSMenuItem" id="237725597">
+								<reference key="NSMenu" ref="686931426"/>
+								<string key="NSTitle">Solid Color</string>
+								<string key="NSKeyEquiv"/>
+								<int key="NSKeyEquivModMask">1048576</int>
+								<int key="NSMnemonicLoc">2147483647</int>
+								<int key="NSState">1</int>
+								<reference key="NSOnImage" ref="510271789"/>
+								<reference key="NSMixedImage" ref="789455571"/>
+								<string key="NSAction">_popUpItemAction:</string>
+								<reference key="NSTarget" ref="557827023"/>
+							</object>
+							<bool key="NSMenuItemRespectAlignment">YES</bool>
+							<object class="NSMenu" key="NSMenu" id="686931426">
+								<string key="NSTitle">OtherViews</string>
+								<object class="NSMutableArray" key="NSMenuItems">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<reference ref="237725597"/>
+									<object class="NSMenuItem" id="420892143">
+										<reference key="NSMenu" ref="686931426"/>
+										<string key="NSTitle">Gradient</string>
+										<string key="NSKeyEquiv"/>
+										<int key="NSKeyEquivModMask">1048576</int>
+										<int key="NSMnemonicLoc">2147483647</int>
+										<reference key="NSOnImage" ref="510271789"/>
+										<reference key="NSMixedImage" ref="789455571"/>
+										<string key="NSAction">_popUpItemAction:</string>
+										<reference key="NSTarget" ref="557827023"/>
+									</object>
+								</object>
+							</object>
+							<int key="NSPreferredEdge">1</int>
+							<bool key="NSUsesItemFromMenu">YES</bool>
+							<bool key="NSAltersState">YES</bool>
+							<int key="NSArrowPosition">2</int>
+						</object>
+					</object>
+					<object class="NSCustomView" id="181106928">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<object class="NSMutableArray" key="NSSubviews">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="NSColorWell" id="470367150">
+								<reference key="NSNextResponder" ref="181106928"/>
+								<int key="NSvFlags">268</int>
+								<object class="NSMutableSet" key="NSDragTypes">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<object class="NSArray" key="set.sortedObjects">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<string>NSColor pasteboard type</string>
+									</object>
+								</object>
+								<string key="NSFrame">{{2, 2}, {31, 23}}</string>
+								<reference key="NSSuperview" ref="181106928"/>
+								<bool key="NSEnabled">YES</bool>
+								<bool key="NSIsBordered">YES</bool>
+								<object class="NSColor" key="NSColor">
+									<int key="NSColorSpace">1</int>
+									<bytes key="NSRGB">MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA</bytes>
+								</object>
+							</object>
+							<object class="NSColorWell" id="645671892">
+								<reference key="NSNextResponder" ref="181106928"/>
+								<int key="NSvFlags">268</int>
+								<object class="NSMutableSet" key="NSDragTypes">
+									<bool key="EncodedWithXMLCoder">YES</bool>
+									<object class="NSArray" key="set.sortedObjects">
+										<bool key="EncodedWithXMLCoder">YES</bool>
+										<string>NSColor pasteboard type</string>
+									</object>
+								</object>
+								<string key="NSFrame">{{147, 2}, {31, 23}}</string>
+								<reference key="NSSuperview" ref="181106928"/>
+								<bool key="NSEnabled">YES</bool>
+								<bool key="NSIsBordered">YES</bool>
+								<object class="NSColor" key="NSColor">
+									<int key="NSColorSpace">1</int>
+									<bytes key="NSRGB">MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA</bytes>
+								</object>
+							</object>
+						</object>
+						<string key="NSFrame">{{84, 32}, {180, 27}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<string key="NSClassName">BWGradientWell</string>
+					</object>
+					<object class="NSColorWell" id="69318836">
+						<reference key="NSNextResponder" ref="537708911"/>
+						<int key="NSvFlags">268</int>
+						<object class="NSMutableSet" key="NSDragTypes">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="NSArray" key="set.sortedObjects">
+								<bool key="EncodedWithXMLCoder">YES</bool>
+								<string>NSColor pasteboard type</string>
+							</object>
+						</object>
+						<string key="NSFrame">{{84, 32}, {86, 27}}</string>
+						<reference key="NSSuperview" ref="537708911"/>
+						<bool key="NSEnabled">YES</bool>
+						<bool key="NSIsBordered">YES</bool>
+						<object class="NSColor" key="NSColor">
+							<int key="NSColorSpace">1</int>
+							<bytes key="NSRGB">MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA</bytes>
+						</object>
+					</object>
+				</object>
+				<string key="NSFrameSize">{272, 88}</string>
+				<reference key="NSSuperview"/>
+				<string key="NSClassName">NSView</string>
+			</object>
+			<object class="NSArrayController" id="846611715">
+				<object class="NSMutableArray" key="NSDeclaredKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>shadowPositionPopupSelection</string>
+					<string>shadowColor</string>
+					<string>fillPopupSelection</string>
+				</object>
+				<bool key="NSEditable">YES</bool>
+				<object class="_NSManagedProxy" key="_NSManagedProxy"/>
+				<bool key="NSAvoidsEmptySelection">YES</bool>
+				<bool key="NSPreservesSelection">YES</bool>
+				<bool key="NSSelectsInsertedObjects">YES</bool>
+				<bool key="NSFilterRestrictsInsertion">YES</bool>
+				<bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
+			</object>
+		</object>
+		<object class="IBObjectContainer" key="IBDocument.Objects">
+			<object class="NSMutableArray" key="connectionRecords">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">inspectorView</string>
+						<reference key="source" ref="762632889"/>
+						<reference key="destination" ref="537708911"/>
+					</object>
+					<int key="connectionID">16</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">content</string>
+						<reference key="source" ref="846611715"/>
+						<reference key="destination" ref="762632889"/>
+					</object>
+					<int key="connectionID">114</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">selectedIndex: selection.shadowPositionPopupSelection</string>
+						<reference key="source" ref="653463101"/>
+						<reference key="destination" ref="846611715"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="653463101"/>
+							<reference key="NSDestination" ref="846611715"/>
+							<string key="NSLabel">selectedIndex: selection.shadowPositionPopupSelection</string>
+							<string key="NSBinding">selectedIndex</string>
+							<string key="NSKeyPath">selection.shadowPositionPopupSelection</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">126</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: inspectedObjectsController.selection.shadowColor</string>
+						<reference key="source" ref="65157375"/>
+						<reference key="destination" ref="762632889"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="65157375"/>
+							<reference key="NSDestination" ref="762632889"/>
+							<string key="NSLabel">value: inspectedObjectsController.selection.shadowColor</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">inspectedObjectsController.selection.shadowColor</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">130</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">enabled: selection.shadowPositionPopupSelection</string>
+						<reference key="source" ref="65157375"/>
+						<reference key="destination" ref="846611715"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="65157375"/>
+							<reference key="NSDestination" ref="846611715"/>
+							<string key="NSLabel">enabled: selection.shadowPositionPopupSelection</string>
+							<string key="NSBinding">enabled</string>
+							<string key="NSKeyPath">selection.shadowPositionPopupSelection</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">133</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: inspectedObjectsController.selection.startingColor</string>
+						<reference key="source" ref="470367150"/>
+						<reference key="destination" ref="762632889"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="470367150"/>
+							<reference key="NSDestination" ref="762632889"/>
+							<string key="NSLabel">value: inspectedObjectsController.selection.startingColor</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">inspectedObjectsController.selection.startingColor</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">138</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: inspectedObjectsController.selection.endingColor</string>
+						<reference key="source" ref="645671892"/>
+						<reference key="destination" ref="762632889"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="645671892"/>
+							<reference key="NSDestination" ref="762632889"/>
+							<string key="NSLabel">value: inspectedObjectsController.selection.endingColor</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">inspectedObjectsController.selection.endingColor</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">139</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">startingColorWell</string>
+						<reference key="source" ref="181106928"/>
+						<reference key="destination" ref="470367150"/>
+					</object>
+					<int key="connectionID">149</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">endingColorWell</string>
+						<reference key="source" ref="181106928"/>
+						<reference key="destination" ref="645671892"/>
+					</object>
+					<int key="connectionID">150</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">gradientWell</string>
+						<reference key="source" ref="470367150"/>
+						<reference key="destination" ref="181106928"/>
+					</object>
+					<int key="connectionID">153</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">gradientWell</string>
+						<reference key="source" ref="645671892"/>
+						<reference key="destination" ref="181106928"/>
+					</object>
+					<int key="connectionID">154</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">selectedIndex: selection.fillPopupSelection</string>
+						<reference key="source" ref="531034450"/>
+						<reference key="destination" ref="846611715"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="531034450"/>
+							<reference key="NSDestination" ref="846611715"/>
+							<string key="NSLabel">selectedIndex: selection.fillPopupSelection</string>
+							<string key="NSBinding">selectedIndex</string>
+							<string key="NSKeyPath">selection.fillPopupSelection</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">162</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">value: inspectedObjectsController.selection.solidColor</string>
+						<reference key="source" ref="69318836"/>
+						<reference key="destination" ref="762632889"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="69318836"/>
+							<reference key="NSDestination" ref="762632889"/>
+							<string key="NSLabel">value: inspectedObjectsController.selection.solidColor</string>
+							<string key="NSBinding">value</string>
+							<string key="NSKeyPath">inspectedObjectsController.selection.solidColor</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">163</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">hidden: selection.fillPopupSelection</string>
+						<reference key="source" ref="69318836"/>
+						<reference key="destination" ref="846611715"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="69318836"/>
+							<reference key="NSDestination" ref="846611715"/>
+							<string key="NSLabel">hidden: selection.fillPopupSelection</string>
+							<string key="NSBinding">hidden</string>
+							<string key="NSKeyPath">selection.fillPopupSelection</string>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">164</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBBindingConnection" key="connection">
+						<string key="label">hidden: selection.fillPopupSelection</string>
+						<reference key="source" ref="181106928"/>
+						<reference key="destination" ref="846611715"/>
+						<object class="NSNibBindingConnector" key="connector">
+							<reference key="NSSource" ref="181106928"/>
+							<reference key="NSDestination" ref="846611715"/>
+							<string key="NSLabel">hidden: selection.fillPopupSelection</string>
+							<string key="NSBinding">hidden</string>
+							<string key="NSKeyPath">selection.fillPopupSelection</string>
+							<object class="NSDictionary" key="NSOptions">
+								<string key="NS.key.0">NSValueTransformerName</string>
+								<string key="NS.object.0">NSNegateBoolean</string>
+							</object>
+							<int key="NSNibBindingConnectorVersion">2</int>
+						</object>
+					</object>
+					<int key="connectionID">166</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<object class="NSArray" key="object" id="485438096">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+						</object>
+						<reference key="children" ref="110858478"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="762632889"/>
+						<reference key="parent" ref="485438096"/>
+						<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="932410077"/>
+						<reference key="parent" ref="485438096"/>
+						<string key="objectName">First Responder</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-3</int>
+						<reference key="object" ref="858592610"/>
+						<reference key="parent" ref="485438096"/>
+						<string key="objectName">Application</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">1</int>
+						<reference key="object" ref="537708911"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="800354404"/>
+							<reference ref="531034450"/>
+							<reference ref="653463101"/>
+							<reference ref="184291607"/>
+							<reference ref="65157375"/>
+							<reference ref="181106928"/>
+							<reference ref="69318836"/>
+						</object>
+						<reference key="parent" ref="485438096"/>
+						<string key="objectName">Inspector View</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">83</int>
+						<reference key="object" ref="653463101"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="506782335"/>
+						</object>
+						<reference key="parent" ref="537708911"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">89</int>
+						<reference key="object" ref="184291607"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1056778467"/>
+						</object>
+						<reference key="parent" ref="537708911"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">90</int>
+						<reference key="object" ref="65157375"/>
+						<reference key="parent" ref="537708911"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">93</int>
+						<reference key="object" ref="1056778467"/>
+						<reference key="parent" ref="184291607"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">101</int>
+						<reference key="object" ref="506782335"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="987899806"/>
+						</object>
+						<reference key="parent" ref="653463101"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">102</int>
+						<reference key="object" ref="987899806"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="579053459"/>
+							<reference ref="911377428"/>
+							<reference ref="289818671"/>
+							<reference ref="690298314"/>
+						</object>
+						<reference key="parent" ref="506782335"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">104</int>
+						<reference key="object" ref="579053459"/>
+						<reference key="parent" ref="987899806"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">105</int>
+						<reference key="object" ref="690298314"/>
+						<reference key="parent" ref="987899806"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">113</int>
+						<reference key="object" ref="846611715"/>
+						<reference key="parent" ref="485438096"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">131</int>
+						<reference key="object" ref="911377428"/>
+						<reference key="parent" ref="987899806"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">132</int>
+						<reference key="object" ref="289818671"/>
+						<reference key="parent" ref="987899806"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">140</int>
+						<reference key="object" ref="800354404"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="832635680"/>
+						</object>
+						<reference key="parent" ref="537708911"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">141</int>
+						<reference key="object" ref="832635680"/>
+						<reference key="parent" ref="800354404"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">142</int>
+						<reference key="object" ref="531034450"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="557827023"/>
+						</object>
+						<reference key="parent" ref="537708911"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">143</int>
+						<reference key="object" ref="557827023"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="686931426"/>
+						</object>
+						<reference key="parent" ref="531034450"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">144</int>
+						<reference key="object" ref="686931426"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="237725597"/>
+							<reference ref="420892143"/>
+						</object>
+						<reference key="parent" ref="557827023"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">145</int>
+						<reference key="object" ref="237725597"/>
+						<reference key="parent" ref="686931426"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">146</int>
+						<reference key="object" ref="420892143"/>
+						<reference key="parent" ref="686931426"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">148</int>
+						<reference key="object" ref="181106928"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="470367150"/>
+							<reference ref="645671892"/>
+						</object>
+						<reference key="parent" ref="537708911"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">134</int>
+						<reference key="object" ref="470367150"/>
+						<reference key="parent" ref="181106928"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">135</int>
+						<reference key="object" ref="645671892"/>
+						<reference key="parent" ref="181106928"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">158</int>
+						<reference key="object" ref="69318836"/>
+						<reference key="parent" ref="537708911"/>
+					</object>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="flattenedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="NSMutableArray" key="dict.sortedKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>-1.IBPluginDependency</string>
+					<string>-2.IBPluginDependency</string>
+					<string>-3.IBPluginDependency</string>
+					<string>-3.ImportedFromIB2</string>
+					<string>1.IBEditorWindowLastContentRect</string>
+					<string>1.IBPluginDependency</string>
+					<string>1.IBUserGuides</string>
+					<string>1.ImportedFromIB2</string>
+					<string>1.WindowOrigin</string>
+					<string>1.editorWindowContentRectSynchronizationRect</string>
+					<string>101.IBPluginDependency</string>
+					<string>102.IBEditorWindowLastContentRect</string>
+					<string>102.IBPluginDependency</string>
+					<string>102.editorWindowContentRectSynchronizationRect</string>
+					<string>104.IBPluginDependency</string>
+					<string>105.IBPluginDependency</string>
+					<string>113.IBPluginDependency</string>
+					<string>131.IBPluginDependency</string>
+					<string>132.IBPluginDependency</string>
+					<string>134.CustomClassName</string>
+					<string>134.IBPluginDependency</string>
+					<string>135.CustomClassName</string>
+					<string>135.IBPluginDependency</string>
+					<string>140.IBPluginDependency</string>
+					<string>141.IBPluginDependency</string>
+					<string>142.IBPluginDependency</string>
+					<string>143.IBPluginDependency</string>
+					<string>144.IBEditorWindowLastContentRect</string>
+					<string>144.IBPluginDependency</string>
+					<string>145.IBPluginDependency</string>
+					<string>146.IBPluginDependency</string>
+					<string>148.IBPluginDependency</string>
+					<string>158.IBPluginDependency</string>
+					<string>83.IBPluginDependency</string>
+					<string>89.IBPluginDependency</string>
+					<string>90.IBPluginDependency</string>
+					<string>93.IBPluginDependency</string>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilderKit</string>
+					<string>com.apple.InterfaceBuilderKit</string>
+					<reference ref="9"/>
+					<string>{{651, 371}, {272, 88}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<object class="NSMutableArray">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">1.100000e+01</float>
+							<int key="affinity">0</int>
+						</object>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">8.000000e+00</float>
+							<int key="affinity">2</int>
+						</object>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">8.400000e+01</float>
+							<int key="affinity">0</int>
+						</object>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">1.700000e+02</float>
+							<int key="affinity">0</int>
+						</object>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">1.780000e+02</float>
+							<int key="affinity">0</int>
+						</object>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">4.000000e+00</float>
+							<int key="affinity">3</int>
+						</object>
+						<object class="IBUserGuide">
+							<reference key="view" ref="537708911"/>
+							<float key="location">4.000000e+00</float>
+							<int key="affinity">1</int>
+						</object>
+					</object>
+					<reference ref="9"/>
+					<string>{84, 761}</string>
+					<string>{{767, 669}, {272, 296}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{789, 408}, {96, 64}}</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>{{117, 885}, {186, 54}}</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>BWGradientWellColorWell</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>BWGradientWellColorWell</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>{{760, 415}, {186, 37}}</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>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+				</object>
+			</object>
+			<object class="NSMutableDictionary" key="unlocalizedProperties">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="NSArray" key="dict.sortedKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="activeLocalization"/>
+			<object class="NSMutableDictionary" key="localizations">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="NSArray" key="dict.sortedKeys">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+				<object class="NSMutableArray" key="dict.values">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+				</object>
+			</object>
+			<nil key="sourceID"/>
+			<int key="maxID">166</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<bool key="EncodedWithXMLCoder">YES</bool>
+				<object class="IBPartialClassDescription">
+					<string key="className">BWGradientWell</string>
+					<string key="superclassName">NSView</string>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSMutableArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>endingColorWell</string>
+							<string>startingColorWell</string>
+						</object>
+						<object class="NSMutableArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>NSColorWell</string>
+							<string>NSColorWell</string>
+						</object>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">BWGradientWell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">BWGradientWellColorWell</string>
+					<string key="superclassName">NSColorWell</string>
+					<object class="NSMutableDictionary" key="outlets">
+						<string key="NS.key.0">gradientWell</string>
+						<string key="NS.object.0">BWGradientWell</string>
+					</object>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">BWGradientWellColorWell.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">BWStyledTextFieldInspector</string>
+					<string key="superclassName">IBInspector</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">BWStyledTextFieldInspector.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">NSView</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">NSView+BWAdditions.h</string>
+					</object>
+				</object>
+			</object>
+		</object>
+		<int key="IBDocument.localizationMode">0</int>
+		<string key="IBDocument.LastKnownRelativeProjectPath">BWToolkit.xcodeproj</string>
+		<int key="IBDocument.defaultPropertyAccessControl">3</int>
+	</data>
+</archive>

BWStyledTextFieldIntegration.m

+//
+//  BWStyledTextFieldIntegration.m
+//  BWToolkit
+//
+//  Created by Brandon Walkin (www.brandonwalkin.com)
+//  All code is provided under the New BSD license.
+//
+
+#import <InterfaceBuilderKit/InterfaceBuilderKit.h>
+#import "BWStyledTextField.h"
+#import "BWStyledTextFieldInspector.h"
+
+@implementation BWStyledTextField (BWStyledTextFieldIntegration)
+
+- (void)ibPopulateKeyPaths:(NSMutableDictionary *)keyPaths 
+{
+    [super ibPopulateKeyPaths:keyPaths];
+
+    [[keyPaths objectForKey:IBAttributeKeyPaths] addObjectsFromArray:[NSArray arrayWithObjects:@"shadowIsBelow", @"hasShadow", @"shadowColor", @"startingColor", @"endingColor", @"hasGradient", @"solidColor", nil]];
+}
+
+- (void)ibPopulateAttributeInspectorClasses:(NSMutableArray *)classes 
+{
+    [super ibPopulateAttributeInspectorClasses:classes];
+
+    [classes addObject:[BWStyledTextFieldInspector class]];
+}
+
+@end
Add a comment to this file

Library-StyledTextField.tif

Added
New image
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.