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

Reply via email to