Revision: 3763
http://skim-app.svn.sourceforge.net/skim-app/?rev=3763&view=rev
Author: hofman
Date: 2008-04-18 14:06:39 -0700 (Fri, 18 Apr 2008)
Log Message:
-----------
Use string constants as binding context rather than numbers, as they have more
chance to be unique.
Modified Paths:
--------------
trunk/SKFontPicker.m
trunk/SKLineWell.m
Modified: trunk/SKFontPicker.m
===================================================================
--- trunk/SKFontPicker.m 2008-04-18 20:50:27 UTC (rev 3762)
+++ trunk/SKFontPicker.m 2008-04-18 21:06:39 UTC (rev 3763)
@@ -52,7 +52,8 @@
NSString *SKFontPickerActionKey = @"action";
NSString *SKFontPickerTargetKey = @"target";
-static NSDictionary *observationContexts = nil;
+static NSString *SKFontPickerFontNameObservationContext =
@"SKFontPickerFontNameObservationContext";
+static NSString *SKFontPickerFontSizeObservationContext =
@"SKFontPickerFontSizeObservationContext";
@interface SKFontPicker (SKPrivate)
@@ -66,10 +67,6 @@
+ (void)initialize {
OBINITIALIZE;
- id keys[2] = {SKFontPickerFontNameKey, SKFontPickerFontSizeKey};
- int values[2] = {3091, 3092};
- observationContexts = (NSDictionary *)CFDictionaryCreate(NULL, (const void
**)keys, (const void **)values, 2, &kCFCopyStringDictionaryKeyCallBacks, NULL);
-
[self exposeBinding:SKFontPickerFontNameKey];
[self exposeBinding:SKFontPickerFontSizeKey];
@@ -303,7 +300,12 @@
NSDictionary *bindingsData = [NSDictionary
dictionaryWithObjectsAndKeys:observableController, NSObservedObjectKey,
[[keyPath copy] autorelease], NSObservedKeyPathKey, [[options copy]
autorelease], NSOptionsKey, nil];
[bindingInfo setObject:bindingsData forKey:bindingName];
- void *context = (void *)[observationContexts objectForKey:bindingName];
+ void *context = NULL;
+ if ([bindingName isEqualToString:SKFontPickerFontNameKey])
+ context = SKFontPickerFontNameObservationContext;
+ else if ([bindingName isEqualToString:SKFontPickerFontSizeKey])
+ context = SKFontPickerFontSizeObservationContext;
+
[observableController addObserver:self forKeyPath:keyPath options:0
context:context];
[self observeValueForKeyPath:keyPath ofObject:observableController
change:nil context:context];
} else {
@@ -326,10 +328,9 @@
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
NSString *key = nil;
-
- if (context == [observationContexts objectForKey:SKFontPickerFontNameKey])
+ if (context == SKFontPickerFontNameObservationContext)
key = SKFontPickerFontNameKey;
- else if (context == [observationContexts
objectForKey:SKFontPickerFontSizeKey])
+ else if (context == SKFontPickerFontSizeObservationContext)
key = SKFontPickerFontSizeKey;
if (key) {
Modified: trunk/SKLineWell.m
===================================================================
--- trunk/SKLineWell.m 2008-04-18 20:50:27 UTC (rev 3762)
+++ trunk/SKLineWell.m 2008-04-18 21:06:39 UTC (rev 3763)
@@ -53,9 +53,12 @@
static NSString *SKLineWellActionKey = @"action";
static NSString *SKLineWellTargetKey = @"target";
+static NSString *SKLineWellLineWidthObservationContext =
@"SKLineWellLineWidthObservationContext";
+static NSString *SKLineWellStyleObservationContext =
@"SKLineWellStyleObservationContexty";
+static NSString *SKLineWellDashPatternObservationContext =
@"SKLineWellDashPatternObservationContext";
+static NSString *SKLineWellStartLineStyleObservationContext =
@"SKLineWellStartLineStyleObservationContext";
+static NSString *SKLineWellEndLineStyleObservationContext =
@"SKLineWellEndLineStyleObservationContext";
-static NSDictionary *observationContexts = nil;
-
static NSString *SKLineWellWillBecomeActiveNotification =
@"SKLineWellWillBecomeActiveNotification";
static NSString *SKLineWellExclusiveKey = @"exclusive";
@@ -64,10 +67,6 @@
+ (void)initialize {
OBINITIALIZE;
- id keys[5] = {SKLineWellLineWidthKey, SKLineWellStyleKey,
SKLineWellDashPatternKey, SKLineWellStartLineStyleKey,
SKLineWellEndLineStyleKey};
- int values[5] = {2091, 2092, 2093, 2094, 2095};
- observationContexts = (NSDictionary *)CFDictionaryCreate(NULL, (const void
**)keys, (const void **)values, 5, &kCFCopyStringDictionaryKeyCallBacks, NULL);
-
[self exposeBinding:SKLineWellLineWidthKey];
[self exposeBinding:SKLineWellStyleKey];
[self exposeBinding:SKLineWellDashPatternKey];
@@ -692,8 +691,19 @@
NSDictionary *bindingsData = [NSDictionary
dictionaryWithObjectsAndKeys:observableController, NSObservedObjectKey,
[[keyPath copy] autorelease], NSObservedKeyPathKey, [[options copy]
autorelease], NSOptionsKey, nil];
[bindingInfo setObject:bindingsData forKey:bindingName];
+
+ void *context = NULL;
+ if ([bindingName isEqualToString:SKLineWellLineWidthKey])
+ context = SKLineWellLineWidthObservationContext;
+ else if ([bindingName isEqualToString:SKLineWellStyleKey])
+ context = SKLineWellStyleObservationContext;
+ else if ([bindingName isEqualToString:SKLineWellDashPatternKey])
+ context = SKLineWellDashPatternObservationContext;
+ else if ([bindingName isEqualToString:SKLineWellStartLineStyleKey])
+ context = SKLineWellStartLineStyleObservationContext;
+ else if ([bindingName isEqualToString:SKLineWellEndLineStyleKey])
+ context = SKLineWellEndLineStyleObservationContext;
- void *context = (void *)[observationContexts objectForKey:bindingName];
[observableController addObserver:self forKeyPath:keyPath options:0
context:context];
[self observeValueForKeyPath:keyPath ofObject:observableController
change:nil context:context];
} else {
@@ -717,16 +727,15 @@
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
NSString *key = nil;
-
- if (context == [observationContexts objectForKey:SKLineWellLineWidthKey])
+ if (context == SKLineWellLineWidthObservationContext)
key = SKLineWellLineWidthKey;
- else if (context == [observationContexts objectForKey:SKLineWellStyleKey])
+ else if (context == SKLineWellStyleObservationContext)
key = SKLineWellStyleKey;
- else if (context == [observationContexts
objectForKey:SKLineWellDashPatternKey])
+ else if (context == SKLineWellDashPatternObservationContext)
key = SKLineWellDashPatternKey;
- else if (context == [observationContexts
objectForKey:SKLineWellStartLineStyleKey])
+ else if (context == SKLineWellStartLineStyleObservationContext)
key = SKLineWellStartLineStyleKey;
- else if (context == [observationContexts
objectForKey:SKLineWellEndLineStyleKey])
+ else if (context == SKLineWellEndLineStyleObservationContext)
key = SKLineWellEndLineStyleKey;
if (key) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit