Revision: 15558
          http://sourceforge.net/p/skim-app/code/15558
Author:   hofman
Date:     2025-06-28 16:55:23 +0000 (Sat, 28 Jun 2025)
Log Message:
-----------
Display summary of display settings in preferences

Modified Paths:
--------------
    trunk/Base.lproj/GeneralPreferences.xib
    trunk/NSValueTransformer_SKExtensions.h
    trunk/NSValueTransformer_SKExtensions.m

Modified: trunk/Base.lproj/GeneralPreferences.xib
===================================================================
--- trunk/Base.lproj/GeneralPreferences.xib     2025-06-28 09:21:29 UTC (rev 
15557)
+++ trunk/Base.lproj/GeneralPreferences.xib     2025-06-28 16:55:23 UTC (rev 
15558)
@@ -15,7 +15,7 @@
         <customObject id="-1" userLabel="First Responder" 
customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
-            <rect key="frame" x="0.0" y="0.0" width="340" height="451"/>
+            <rect key="frame" x="0.0" y="0.0" width="412" height="451"/>
             <subviews>
                 <button toolTip="Open the contents pane only when the file has 
a table of contents" horizontalHuggingPriority="252" 
verticalHuggingPriority="750" imageHugsTitle="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="3">
                     <rect key="frame" x="18" y="317" width="252" height="18"/>
@@ -38,10 +38,10 @@
                     </connections>
                 </button>
                 <box verticalHuggingPriority="750" boxType="separator" 
translatesAutoresizingMaskIntoConstraints="NO" id="5">
-                    <rect key="frame" x="12" y="372" width="316" height="5"/>
+                    <rect key="frame" x="12" y="372" width="388" height="5"/>
                 </box>
                 <box verticalHuggingPriority="750" boxType="separator" 
translatesAutoresizingMaskIntoConstraints="NO" id="6">
-                    <rect key="frame" x="12" y="91" width="316" height="5"/>
+                    <rect key="frame" x="12" y="91" width="388" height="5"/>
                 </box>
                 <textField horizontalHuggingPriority="252" 
verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" 
id="7" userLabel="Check for Skim updates:">
                     <rect key="frame" x="18" y="109" width="153" height="16"/>
@@ -52,7 +52,7 @@
                     </textFieldCell>
                 </textField>
                 <box verticalHuggingPriority="750" boxType="separator" 
translatesAutoresizingMaskIntoConstraints="NO" id="8">
-                    <rect key="frame" x="12" y="136" width="316" height="5"/>
+                    <rect key="frame" x="12" y="136" width="388" height="5"/>
                 </box>
                 <popUpButton horizontalHuggingPriority="252" 
verticalHuggingPriority="750" imageHugsTitle="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="9">
                     <rect key="frame" x="174" y="102" width="88" height="25"/>
@@ -85,7 +85,7 @@
                     </connections>
                 </button>
                 <box verticalHuggingPriority="750" boxType="separator" 
translatesAutoresizingMaskIntoConstraints="NO" id="11">
-                    <rect key="frame" x="12" y="199" width="316" height="5"/>
+                    <rect key="frame" x="12" y="199" width="388" height="5"/>
                 </box>
                 <button toolTip="Automatically save a Skim notes file with the 
same file name whenever you save a PDF file" horizontalHuggingPriority="252" 
verticalHuggingPriority="750" imageHugsTitle="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="12">
                     <rect key="frame" x="18" y="150" width="265" height="18"/>
@@ -98,7 +98,7 @@
                     </connections>
                 </button>
                 <button toolTip="Choose this to use different PDF view 
settings in full screen mode and normal mode" horizontalHuggingPriority="252" 
verticalHuggingPriority="750" tag="1" imageHugsTitle="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="13" userLabel="Full Screen 
Button">
-                    <rect key="frame" x="169" y="207" width="68" height="32"/>
+                    <rect key="frame" x="204" y="207" width="68" height="32"/>
                     <buttonCell key="cell" type="push" title="Edit…" 
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="37">
                         <behavior key="behavior" pushIn="YES" 
lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
@@ -108,7 +108,7 @@
                     </connections>
                 </button>
                 <button toolTip="Set the initial PDF view settings for newly 
opened documents" horizontalHuggingPriority="252" verticalHuggingPriority="750" 
imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="14" 
userLabel="Normal Button">
-                    <rect key="frame" x="169" y="239" width="68" height="32"/>
+                    <rect key="frame" x="204" y="239" width="68" height="32"/>
                     <buttonCell key="cell" type="push" title="Edit…" 
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="36">
                         <behavior key="behavior" pushIn="YES" 
lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
@@ -145,7 +145,7 @@
                     </connections>
                 </button>
                 <box verticalHuggingPriority="750" boxType="separator" 
translatesAutoresizingMaskIntoConstraints="NO" id="19">
-                    <rect key="frame" x="12" y="50" width="316" height="5"/>
+                    <rect key="frame" x="12" y="50" width="388" height="5"/>
                 </box>
                 <textField horizontalHuggingPriority="252" 
verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" 
id="20" userLabel="Save passwords in Keychain:">
                     <rect key="frame" x="18" y="23" width="178" height="16"/>
@@ -234,15 +234,75 @@
                         <color key="backgroundColor" name="controlColor" 
catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
+                <imageView horizontalHuggingPriority="251" 
verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" 
id="krj-lQ-Yls">
+                    <rect key="frame" x="184" y="250" width="19" height="15"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="15" 
id="Fco-v2-LYc"/>
+                        <constraint firstAttribute="width" constant="19" 
id="ZuU-AQ-CjZ"/>
+                    </constraints>
+                    <imageCell key="cell" refusesFirstResponder="YES" 
alignment="left" id="b6u-6B-WAW"/>
+                    <connections>
+                        <binding destination="58" name="value" 
keyPath="values.SKDefaultPDFDisplaySettings" id="Dcp-T4-6yk">
+                            <dictionary key="options">
+                                <string 
key="NSValueTransformerName">SKDisplayModeImage</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
+                </imageView>
+                <textField horizontalHuggingPriority="251" 
verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" 
id="fiY-dG-n4g">
+                    <rect key="frame" x="174" y="249" width="4" height="16"/>
+                    <textFieldCell key="cell" lineBreakMode="clipping" 
id="w0W-AB-7oK">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="labelColor" 
catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" 
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                    <connections>
+                        <binding destination="58" name="value" 
keyPath="values.SKDefaultPDFDisplaySettings" id="xBf-SL-3gZ">
+                            <dictionary key="options">
+                                <string 
key="NSValueTransformerName">SKScaleFactor</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
+                </textField>
+                <textField horizontalHuggingPriority="251" 
verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" 
id="hdM-1x-c8a">
+                    <rect key="frame" x="174" y="217" width="4" height="16"/>
+                    <textFieldCell key="cell" lineBreakMode="clipping" 
id="JUa-v7-AnV">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="labelColor" 
catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" 
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                    <connections>
+                        <binding destination="58" name="value" 
keyPath="values.SKDefaultFullScreenPDFDisplaySettings" id="4vV-z6-pim">
+                            <dictionary key="options">
+                                <string 
key="NSValueTransformerName">SKScaleFactor</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
+                </textField>
+                <imageView horizontalHuggingPriority="251" 
verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" 
id="C1M-te-Zg5">
+                    <rect key="frame" x="184" y="218" width="19" height="15"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="19" 
id="9Id-kP-ZDw"/>
+                        <constraint firstAttribute="height" constant="15" 
id="GRN-4I-yh1"/>
+                    </constraints>
+                    <imageCell key="cell" refusesFirstResponder="YES" 
alignment="left" id="Mw7-rW-fRV"/>
+                    <connections>
+                        <binding destination="58" name="value" 
keyPath="values.SKDefaultFullScreenPDFDisplaySettings" id="AAS-In-clw">
+                            <dictionary key="options">
+                                <string 
key="NSValueTransformerName">SKDisplayModeImage</string>
+                            </dictionary>
+                        </binding>
+                    </connections>
+                </imageView>
             </subviews>
             <constraints>
                 <constraint firstItem="11" firstAttribute="top" 
secondItem="13" secondAttribute="bottom" constant="12" id="0FC-yH-TEU"/>
                 <constraint firstItem="10" firstAttribute="top" secondItem="3" 
secondAttribute="bottom" constant="6" symbolic="YES" id="0kE-Qf-IKS"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="18" secondAttribute="trailing" 
constant="20" symbolic="YES" id="1dC-9R-56p"/>
-                <constraint firstItem="14" firstAttribute="leading" 
secondItem="15" secondAttribute="trailing" constant="8" symbolic="YES" 
id="1pJ-ZZ-JaA"/>
                 <constraint firstItem="YMN-MA-BZc" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="20r-lI-K3p"/>
                 <constraint firstItem="f9u-Df-2s9" firstAttribute="leading" 
relation="greaterThanOrEqual" secondItem="1" secondAttribute="leading" 
constant="20" symbolic="YES" id="32P-dV-Eex"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="13" secondAttribute="trailing" 
constant="20" symbolic="YES" id="3k2-tt-YTb"/>
+                <constraint firstItem="14" firstAttribute="leading" 
secondItem="krj-lQ-Yls" secondAttribute="trailing" constant="8" symbolic="YES" 
id="4l7-ly-FGP"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="hos-Of-u1Q" 
secondAttribute="trailing" constant="20" symbolic="YES" id="6l3-zE-gSM"/>
                 <constraint firstItem="3" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="7ep-6b-PdA"/>
                 <constraint firstItem="14" firstAttribute="leading" 
secondItem="13" secondAttribute="leading" id="8iP-uW-VDS"/>
@@ -249,8 +309,10 @@
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="9" secondAttribute="trailing" 
constant="20" symbolic="YES" id="9zb-Rk-CmA"/>
                 <constraint firstItem="lVN-xI-ijg" firstAttribute="top" 
secondItem="hos-Of-u1Q" secondAttribute="bottom" constant="8" symbolic="YES" 
id="A23-MT-CLp"/>
                 <constraint firstItem="19" firstAttribute="leading" 
secondItem="5" secondAttribute="leading" id="CG0-Ds-aXI"/>
+                <constraint firstItem="C1M-te-Zg5" firstAttribute="centerY" 
secondItem="f9u-Df-2s9" secondAttribute="centerY" id="CYv-P4-hyq"/>
                 <constraint firstItem="3" firstAttribute="top" 
secondItem="ClK-rQ-vsN" secondAttribute="bottom" constant="8" symbolic="YES" 
id="Dcc-qq-NoQ"/>
                 <constraint firstItem="15" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="Doc-wp-yxY"/>
+                <constraint firstItem="hdM-1x-c8a" 
firstAttribute="firstBaseline" secondItem="f9u-Df-2s9" 
secondAttribute="firstBaseline" id="EVP-yw-5EN"/>
                 <constraint firstItem="5" firstAttribute="top" 
secondItem="lVN-xI-ijg" secondAttribute="bottom" constant="12" id="EXD-Ez-Qk4"/>
                 <constraint firstItem="6" firstAttribute="leading" 
secondItem="5" secondAttribute="leading" id="GHw-r2-IJp"/>
                 <constraint firstItem="YMN-MA-BZc" firstAttribute="top" 
secondItem="11" secondAttribute="bottom" constant="12" id="GZE-6M-v8w"/>
@@ -263,13 +325,17 @@
                 <constraint firstItem="f9u-Df-2s9" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="Kj1-8n-wxA"/>
                 <constraint firstItem="ClK-rQ-vsN" firstAttribute="top" 
secondItem="5" secondAttribute="bottom" constant="12" id="Lpu-p7-gyl"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="14" secondAttribute="trailing" 
constant="20" symbolic="YES" id="Lyc-Te-X32"/>
+                <constraint firstItem="fiY-dG-n4g" firstAttribute="leading" 
secondItem="15" secondAttribute="trailing" constant="8" symbolic="YES" 
id="Mem-6q-ZD4"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="15" secondAttribute="trailing" 
constant="20" symbolic="YES" id="Nkq-Ax-nJg"/>
                 <constraint firstItem="lVN-xI-ijg" firstAttribute="leading" 
secondItem="1" secondAttribute="leading" constant="32" id="Oje-sg-FbU"/>
                 <constraint firstItem="15" firstAttribute="leading" 
relation="greaterThanOrEqual" secondItem="1" secondAttribute="leading" 
constant="20" symbolic="YES" id="P2b-oG-3nq"/>
+                <constraint firstItem="hdM-1x-c8a" firstAttribute="leading" 
secondItem="f9u-Df-2s9" secondAttribute="trailing" constant="8" symbolic="YES" 
id="PtE-WF-LmK"/>
                 <constraint firstItem="19" firstAttribute="top" secondItem="4" 
secondAttribute="bottom" constant="12" id="Q1S-8k-zDI"/>
                 <constraint firstItem="8" firstAttribute="top" secondItem="12" 
secondAttribute="bottom" constant="12" id="QXC-51-fr8"/>
                 <constraint firstAttribute="trailing" secondItem="duc-5M-yv6" 
secondAttribute="trailing" priority="251" constant="20" symbolic="YES" 
id="QpV-2B-8gq"/>
+                <constraint firstItem="13" firstAttribute="leading" 
secondItem="C1M-te-Zg5" secondAttribute="trailing" constant="8" symbolic="YES" 
id="SGr-qX-I5n"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="3" secondAttribute="trailing" 
constant="20" symbolic="YES" id="Sbi-6D-vkH"/>
+                <constraint firstItem="15" firstAttribute="centerY" 
secondItem="krj-lQ-Yls" secondAttribute="centerY" id="Scn-9T-dlB"/>
                 <constraint firstItem="19" firstAttribute="trailing" 
secondItem="5" secondAttribute="trailing" id="TSo-3c-YFG"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="4" secondAttribute="trailing" 
constant="20" symbolic="YES" id="U8O-JV-nun"/>
                 <constraint firstItem="9" firstAttribute="leading" 
secondItem="7" secondAttribute="trailing" constant="8" symbolic="YES" 
id="UHb-CR-xG0"/>
@@ -283,6 +349,8 @@
                 <constraint firstItem="12" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="bLu-jp-YjC"/>
                 <constraint firstItem="hos-Of-u1Q" firstAttribute="top" 
secondItem="1" secondAttribute="top" constant="20" symbolic="YES" 
id="bPi-A8-Wp7"/>
                 <constraint firstItem="18" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="dt2-ti-H14"/>
+                <constraint firstItem="C1M-te-Zg5" firstAttribute="leading" 
secondItem="hdM-1x-c8a" secondAttribute="trailing" constant="8" symbolic="YES" 
id="egg-kN-Twa"/>
+                <constraint firstItem="fiY-dG-n4g" firstAttribute="leading" 
secondItem="hdM-1x-c8a" secondAttribute="leading" id="fbM-jI-97E"/>
                 <constraint firstItem="11" firstAttribute="trailing" 
secondItem="5" secondAttribute="trailing" id="fmK-oo-I6v"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="20" secondAttribute="trailing" 
constant="20" symbolic="YES" id="g4n-FP-2OB"/>
                 <constraint firstItem="13" firstAttribute="width" 
secondItem="14" secondAttribute="width" id="iDb-LY-iDA"/>
@@ -295,14 +363,15 @@
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="duc-5M-yv6" 
secondAttribute="trailing" constant="20" symbolic="YES" id="ldM-OS-AyE"/>
                 <constraint firstItem="18" firstAttribute="top" 
secondItem="10" secondAttribute="bottom" constant="6" symbolic="YES" 
id="n6b-L7-vO4"/>
                 <constraint firstItem="13" firstAttribute="top" 
secondItem="14" secondAttribute="bottom" constant="12" symbolic="YES" 
id="npT-XL-y6y"/>
+                <constraint firstItem="krj-lQ-Yls" firstAttribute="leading" 
secondItem="fiY-dG-n4g" secondAttribute="trailing" constant="8" symbolic="YES" 
id="obG-T7-WAj"/>
                 <constraint firstItem="12" firstAttribute="top" 
secondItem="YMN-MA-BZc" secondAttribute="bottom" constant="6" symbolic="YES" 
id="pRs-P8-idK"/>
                 <constraint firstAttribute="bottom" secondItem="duc-5M-yv6" 
secondAttribute="bottom" constant="20" symbolic="YES" id="prN-jO-7Ys"/>
-                <constraint firstItem="13" firstAttribute="leading" 
secondItem="f9u-Df-2s9" secondAttribute="trailing" constant="8" symbolic="YES" 
id="qPH-G3-xAj"/>
                 <constraint firstItem="ClK-rQ-vsN" 
firstAttribute="firstBaseline" secondItem="16" secondAttribute="firstBaseline" 
id="rVj-ct-mRq"/>
                 <constraint firstItem="5" firstAttribute="leading" 
secondItem="1" secondAttribute="leading" constant="12" id="rkP-h4-vkE"/>
                 <constraint firstItem="duc-5M-yv6" firstAttribute="top" 
secondItem="19" secondAttribute="bottom" constant="12" id="rxL-uA-y9K"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="12" secondAttribute="trailing" 
constant="20" symbolic="YES" id="sf3-2d-1Yx"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="ClK-rQ-vsN" 
secondAttribute="trailing" constant="20" symbolic="YES" id="t5G-XJ-g2V"/>
+                <constraint firstItem="fiY-dG-n4g" 
firstAttribute="firstBaseline" secondItem="15" secondAttribute="firstBaseline" 
id="twR-Yt-ajh"/>
                 <constraint firstAttribute="trailing" secondItem="5" 
secondAttribute="trailing" constant="12" id="uYa-Mh-FS5"/>
                 <constraint firstItem="10" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="vK9-EU-mar"/>
                 <constraint firstItem="13" firstAttribute="firstBaseline" 
secondItem="f9u-Df-2s9" secondAttribute="firstBaseline" id="vRB-kQ-LI2"/>
@@ -309,7 +378,7 @@
                 <constraint firstItem="9" firstAttribute="top" secondItem="8" 
secondAttribute="bottom" constant="12" id="wRZ-ah-TXh"/>
                 <constraint firstItem="9" firstAttribute="firstBaseline" 
secondItem="7" secondAttribute="firstBaseline" id="xO9-QM-sbG"/>
             </constraints>
-            <point key="canvasLocation" x="139.5" y="154.5"/>
+            <point key="canvasLocation" x="139" y="154.5"/>
         </customView>
         <userDefaultsController representsSharedInstance="YES" id="58"/>
     </objects>

Modified: trunk/NSValueTransformer_SKExtensions.h
===================================================================
--- trunk/NSValueTransformer_SKExtensions.h     2025-06-28 09:21:29 UTC (rev 
15557)
+++ trunk/NSValueTransformer_SKExtensions.h     2025-06-28 16:55:23 UTC (rev 
15558)
@@ -44,6 +44,8 @@
 extern NSString *SKUnarchiveColorArrayTransformerName;
 extern NSString *SKTypeImageTransformerName;
 extern NSString *SKHasWindowImageTransformerName;
+extern NSString *SKDisplayModeImageTransformerName;
+extern NSString *SKScaleFactorTransformerName;
 extern NSString *SKIsZeroTransformerName;
 extern NSString *SKIsOneTransformerName;
 extern NSString *SKIsTwoTransformerName;

Modified: trunk/NSValueTransformer_SKExtensions.m
===================================================================
--- trunk/NSValueTransformer_SKExtensions.m     2025-06-28 09:21:29 UTC (rev 
15557)
+++ trunk/NSValueTransformer_SKExtensions.m     2025-06-28 16:55:23 UTC (rev 
15558)
@@ -39,11 +39,14 @@
 #import "NSValueTransformer_SKExtensions.h"
 #import "NSImage_SKExtensions.h"
 #import <SkimNotes/SkimNotes.h>
+#import <Quartz/Quartz.h>
 
 NSString *SKUnarchiveColorTransformerName = @"SKUnarchiveColor";
 NSString *SKUnarchiveColorArrayTransformerName = @"SKUnarchiveColorArray";
 NSString *SKTypeImageTransformerName = @"SKTypeImage";
 NSString *SKHasWindowImageTransformerName = @"SKHasWindowImage";
+NSString *SKDisplayModeImageTransformerName = @"SKDisplayModeImage";
+NSString *SKScaleFactorTransformerName = @"SKScaleFactor";
 NSString *SKIsZeroTransformerName = @"SKIsZero";
 NSString *SKIsOneTransformerName = @"SKIsOne";
 NSString *SKIsTwoTransformerName = @"SKIsTwo";
@@ -68,6 +71,16 @@
 
 #pragma mark -
 
+@interface SKDisplayModeImageTransformer : NSValueTransformer
+@end
+
+#pragma mark -
+
+@interface SKScaleFactorTransformer : NSValueTransformer
+@end
+
+#pragma mark -
+
 @interface SKRadioTransformer : NSValueTransformer {
     NSInteger targetValue;
 }
@@ -83,6 +96,8 @@
     [NSValueTransformer setValueTransformer:[[SKUnarchiveColorArrayTransformer 
alloc] init] forName:SKUnarchiveColorArrayTransformerName];
     [NSValueTransformer setValueTransformer:[[SKTypeImageTransformer alloc] 
init] forName:SKTypeImageTransformerName];
     [NSValueTransformer setValueTransformer:[[SKHasWindowImageTransformer 
alloc] init] forName:SKHasWindowImageTransformerName];
+    [NSValueTransformer setValueTransformer:[[SKDisplayModeImageTransformer 
alloc] init] forName:SKDisplayModeImageTransformerName];
+    [NSValueTransformer setValueTransformer:[[SKScaleFactorTransformer alloc] 
init] forName:SKScaleFactorTransformerName];
     [NSValueTransformer setValueTransformer:[[SKRadioTransformer alloc] 
initWithTargetValue:0] forName:SKIsZeroTransformerName];
     [NSValueTransformer setValueTransformer:[[SKRadioTransformer alloc] 
initWithTargetValue:1] forName:SKIsOneTransformerName];
     [NSValueTransformer setValueTransformer:[[SKRadioTransformer alloc] 
initWithTargetValue:2] forName:SKIsTwoTransformerName];
@@ -237,6 +252,71 @@
 
 #pragma mark -
 
+@implementation SKDisplayModeImageTransformer
+
++ (Class)transformedValueClass {
+    return [NSImage class];
+}
+
++ (BOOL)allowsReverseTransformation {
+    return NO;
+}
+
+- (id)transformedValue:(id)settings {
+    NSNumber *displayMode = [settings objectForKey:@"displayMode"];
+    if (displayMode == nil)
+        return nil;
+    switch ([displayMode integerValue]) {
+        case kPDFDisplaySinglePage:
+            return [NSImage imageNamed:SKImageNameToolbarSinglePage];
+        case kPDFDisplaySinglePageContinuous:
+            if ([[settings objectForKey:@"displayDirection"] boolValue])
+                return [NSImage imageNamed:SKImageNameToolbarHorizontal];
+            else
+                return [NSImage 
imageNamed:SKImageNameToolbarSinglePageContinuous];
+        case kPDFDisplayTwoUp:
+            return [NSImage imageNamed:SKImageNameToolbarTwoUp];
+        case kPDFDisplayTwoUpContinuous:
+            if ([[settings objectForKey:@"displaysAsBook"] boolValue])
+                return [NSImage imageNamed:SKImageNameToolbarBookMode];
+            else
+                return [NSImage imageNamed:SKImageNameToolbarTwoUpContinuous];
+        default:
+            return nil;
+    }
+}
+
+@end
+
+#pragma mark -
+
+@implementation SKScaleFactorTransformer
+
++ (Class)transformedValueClass {
+    return [NSString class];
+}
+
++ (BOOL)allowsReverseTransformation {
+    return NO;
+}
+
+- (id)transformedValue:(id)settings {
+    if ([settings count] == 0)
+        return nil;
+    if ([[settings objectForKey:@"autoScales"] boolValue])
+        return [[NSBundle mainBundle] localizedStringForKey:@"Auto" value:@"" 
table:@"ZoomValues"];
+    static NSNumberFormatter *formatter = nil;
+    if (formatter == nil) {
+        formatter = [[NSNumberFormatter alloc] init];
+        [formatter setNumberStyle:NSNumberFormatterPercentStyle];
+    }
+    return [formatter stringFromNumber:[settings objectForKey:@"scaleFactor"]];
+}
+
+@end
+
+#pragma mark -
+
 @implementation SKRadioTransformer
 
 + (Class)transformedValueClass {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to