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