Revision: 7581
http://skim-app.svn.sourceforge.net/skim-app/?rev=7581&view=rev
Author: hofman
Date: 2011-12-16 21:34:28 +0000 (Fri, 16 Dec 2011)
Log Message:
-----------
use generic dictionary formatter for text+icon cell
Modified Paths:
--------------
trunk/BookmarksWindow.xib
trunk/SKTextWithIconCell.h
trunk/SKTextWithIconCell.m
Modified: trunk/BookmarksWindow.xib
===================================================================
--- trunk/BookmarksWindow.xib 2011-12-16 18:15:22 UTC (rev 7580)
+++ trunk/BookmarksWindow.xib 2011-12-16 21:34:28 UTC (rev 7581)
@@ -45,7 +45,7 @@
<string
key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
<string key="NSWindowContentMinSize">{300,
100}</string>
<object class="NSView" key="NSWindowView"
id="598959779">
- <reference key="NSNextResponder"/>
+ <nil key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray"
key="NSSubviews">
<bool
key="EncodedWithXMLCoder">YES</bool>
@@ -54,7 +54,6 @@
<int
key="NSvFlags">290</int>
<string
key="NSFrameSize">{400, 22}</string>
<reference
key="NSSuperview" ref="598959779"/>
- <reference
key="NSWindow"/>
<string
key="NSClassName">SKStatusBar</string>
<string
key="NSExtension">NSControl</string>
</object>
@@ -73,14 +72,12 @@
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{400, 212}</string>
<reference key="NSSuperview" ref="1011170753"/>
-
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="304023328">
<reference key="NSNextResponder" ref="940762177"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{400, 17}</string>
<reference key="NSSuperview" ref="940762177"/>
-
<reference key="NSWindow"/>
<reference key="NSTableView" ref="9273418"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="806461566">
@@ -88,7 +85,6 @@
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="793888819"/>
-
<reference key="NSWindow"/>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -309,7 +305,6 @@
</object>
<string
key="NSFrame">{{0, 17}, {400, 212}}</string>
<reference key="NSSuperview" ref="793888819"/>
-
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="9273418"/>
<reference key="NSDocView" ref="9273418"/>
<reference key="NSBGColor" ref="211017390"/>
@@ -320,7 +315,6 @@
<int
key="NSvFlags">-2147483392</int>
<string
key="NSFrame">{{-30, 17}, {15, 213}}</string>
<reference key="NSSuperview" ref="793888819"/>
-
<reference key="NSWindow"/>
<reference key="NSTarget" ref="793888819"/>
<string
key="NSAction">_doScroller:</string>
<double
key="NSPercent">0.80075189999999996</double>
@@ -330,7 +324,6 @@
<int
key="NSvFlags">-2147483392</int>
<string
key="NSFrame">{{1, -30}, {385, 15}}</string>
<reference key="NSSuperview" ref="793888819"/>
-
<reference key="NSWindow"/>
<int
key="NSsFlags">1</int>
<reference key="NSTarget" ref="793888819"/>
<string
key="NSAction">_doScroller:</string>
@@ -345,7 +338,6 @@
</object>
<string
key="NSFrameSize">{400, 17}</string>
<reference key="NSSuperview" ref="793888819"/>
-
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="304023328"/>
<reference key="NSDocView" ref="304023328"/>
<reference key="NSBGColor" ref="211017390"/>
@@ -355,7 +347,6 @@
</object>
<string
key="NSFrame">{{0, 22}, {400, 229}}</string>
<reference
key="NSSuperview" ref="598959779"/>
- <reference
key="NSWindow"/>
<reference
key="NSNextKeyView" ref="1011170753"/>
<int
key="NSsFlags">560</int>
<reference
key="NSVScroller" ref="1017415117"/>
@@ -367,16 +358,11 @@
</object>
</object>
<string key="NSFrameSize">{400,
250}</string>
- <reference key="NSSuperview"/>
- <reference key="NSWindow"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1440,
938}}</string>
<string key="NSMinSize">{300, 122}</string>
<string key="NSMaxSize">{1.79769e+308,
1.79769e+308}</string>
</object>
- <object class="NSCustomObject" id="1025403429">
- <string
key="NSClassName">SKTextWithIconFormatter</string>
- </object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
@@ -437,14 +423,6 @@
</object>
<int key="connectionID">90</int>
</object>
- <object class="IBConnectionRecord">
- <object class="IBOutletConnection"
key="connection">
- <string
key="label">formatter</string>
- <reference key="source"
ref="6516295"/>
- <reference key="destination"
ref="1025403429"/>
- </object>
- <int key="connectionID">103</int>
- </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -587,11 +565,6 @@
<reference key="object"
ref="579474317"/>
<reference key="parent"
ref="744363902"/>
</object>
- <object class="IBObjectRecord">
- <int key="objectID">102</int>
- <reference key="object"
ref="1025403429"/>
- <reference key="parent"
ref="0"/>
- </object>
</object>
</object>
<object class="NSMutableDictionary"
key="flattenedProperties">
@@ -605,7 +578,6 @@
<string>101.IBNumberFormatterBehaviorMetadataKey</string>
<string>101.IBNumberFormatterLocalizesFormatMetadataKey</string>
<string>101.IBPluginDependency</string>
- <string>102.IBPluginDependency</string>
<string>37.IBPluginDependency</string>
<string>37.ImportedFromIB2</string>
<string>5.IBEditorWindowLastContentRect</string>
@@ -649,7 +621,6 @@
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>{{42, 549}, {400, 250}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1312,7 +1283,7 @@
<object class="IBPartialClassDescription">
<string
key="className">SKTextWithIconCell</string>
<string
key="superclassName">NSTextFieldCell</string>
- <object
class="IBClassDescriptionSource" key="sourceIdentifier" id="916925389">
+ <object
class="IBClassDescriptionSource" key="sourceIdentifier">
<string
key="majorKey">IBProjectSource</string>
<string
key="minorKey">SKTextWithIconCell.h</string>
</object>
@@ -1326,11 +1297,6 @@
</object>
</object>
<object class="IBPartialClassDescription">
- <string
key="className">SKTextWithIconFormatter</string>
- <string
key="superclassName">NSFormatter</string>
- <reference key="sourceIdentifier"
ref="916925389"/>
- </object>
- <object class="IBPartialClassDescription">
<string
key="className">SKWindowController</string>
<string
key="superclassName">NSWindowController</string>
<object
class="IBClassDescriptionSource" key="sourceIdentifier">
Modified: trunk/SKTextWithIconCell.h
===================================================================
--- trunk/SKTextWithIconCell.h 2011-12-16 18:15:22 UTC (rev 7580)
+++ trunk/SKTextWithIconCell.h 2011-12-16 21:34:28 UTC (rev 7581)
@@ -51,9 +51,3 @@
- (NSRect)iconRectForBounds:(NSRect)aRect;
@end
-
-#pragma mark -
-
-@interface SKTextWithIconFormatter : NSFormatter
-- (NSImage *)imageForObjectValue:(id)obj;
-@end
Modified: trunk/SKTextWithIconCell.m
===================================================================
--- trunk/SKTextWithIconCell.m 2011-12-16 18:15:22 UTC (rev 7580)
+++ trunk/SKTextWithIconCell.m 2011-12-16 21:34:28 UTC (rev 7581)
@@ -37,6 +37,7 @@
*/
#import "SKTextWithIconCell.h"
+#import "SKDictionaryFormatter.h"
#import "NSImage_SKExtensions.h"
#import "NSGeometry_SKExtensions.h"
#import "NSEvent_SKExtensions.h"
@@ -50,11 +51,27 @@
@implementation SKTextWithIconCell
+static SKDictionaryFormatter *textWithIconCellFormatter = nil;
+
++ (void)initialize {
+ SKINITIALIZE;
+ textWithIconCellFormatter = [[SKDictionaryFormatter alloc] init];
+ [textWithIconCellFormatter setKey:SKTextWithIconStringKey];
+}
+
+- (void)commonInit {
+ if (imageCell == nil) {
+ imageCell = [[NSImageCell alloc] init];
+ [imageCell setImageScaling:NSImageScaleProportionallyUpOrDown];
+ }
+ if ([self formatter] == nil)
+ [self setFormatter:textWithIconCellFormatter];
+}
+
- (id)initTextCell:(NSString *)aString {
self = [super initTextCell:aString];
if (self) {
- imageCell = [[NSImageCell alloc] init];
- [imageCell setImageScaling:NSImageScaleProportionallyUpOrDown];
+ [self commonInit];
}
return self;
}
@@ -63,10 +80,7 @@
self = [super initWithCoder:decoder];
if (self) {
imageCell = [[decoder decodeObjectForKey:@"imageCell"] retain];
- if (imageCell == nil) {
- imageCell = [[NSImageCell alloc] init];
- [imageCell setImageScaling:NSImageScaleProportionallyUpOrDown];
- }
+ [self commonInit];
}
return self;
}
@@ -135,8 +149,8 @@
- (void)setObjectValue:(id <NSCopying>)obj {
[super setObjectValue:obj];
- if ([[self formatter] respondsToSelector:@selector(imageForObjectValue:)])
- [imageCell setImage:[[self formatter] imageForObjectValue:obj]];
+ if ([(id)obj respondsToSelector:@selector(objectForKey:)])
+ [imageCell setImage:[(id)obj objectForKey:SKTextWithIconImageKey]];
}
- (NSImage *)icon {
@@ -144,24 +158,3 @@
}
@end
-
-#pragma mark -
-
-@implementation SKTextWithIconFormatter
-
-- (NSImage *)imageForObjectValue:(id)obj {
- return [obj isKindOfClass:[NSString class]] ? nil : [obj
valueForKey:SKTextWithIconImageKey];
-}
-
-- (NSString *)stringForObjectValue:(id)obj {
- return [obj isKindOfClass:[NSString class]] ? obj : [obj
valueForKey:SKTextWithIconStringKey];
-}
-
-- (BOOL)getObjectValue:(id *)obj forString:(NSString *)string
errorDescription:(NSString **)error {
- // even though 'string' is reported as immutable, it's actually changed
after this method returns and before it's returned by the control!
- string = [[string copy] autorelease];
- *obj = [NSDictionary dictionaryWithObjectsAndKeys:string,
SKTextWithIconStringKey, nil];
- return YES;
-}
-
-@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Learn Windows Azure Live! Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for
developers. It will provide a great way to learn Windows Azure and what it
provides. You can attend the event by watching it streamed LIVE online.
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit