@@ -135,6 +135,9 @@ - (PSPDFConfiguration *)configuration:(NSDictionary *)dictionary isImageDocument
135135 if (dictionary[@" isFirstPageAlwaysSingle" ]) {
136136 builder.firstPageAlwaysSingle = [dictionary[@" isFirstPageAlwaysSingle" ] boolValue ];
137137 }
138+ if (dictionary[@" settingsMenuItems" ]) {
139+ builder.settingsOptions = [self settingsOptions: dictionary[@" settingsMenuItems" ]];
140+ }
138141 }];
139142}
140143
@@ -331,6 +334,36 @@ - (PSPDFPageMode)pageMode:(NSDictionary *)dictionary {
331334 return pageMode;
332335}
333336
337+ - (PSPDFSettingsOptions)settingsOptions : (nullable NSArray <NSString *> *)options {
338+ if ((id )options == NSNull .null || !options || options.count == 0 ) {
339+ return PSPDFSettingsOptionDefault;
340+ }
341+
342+ PSPDFSettingsOptions finalOptions = 0 ;
343+
344+ for (NSString *option in options) {
345+ if ([option isEqualToString: @" scrollDirection" ]) {
346+ finalOptions |= PSPDFSettingsOptionScrollDirection;
347+ } else if ([option isEqualToString: @" pageTransition" ]) {
348+ finalOptions |= PSPDFSettingsOptionPageTransition;
349+ } else if ([option isEqualToString: @" appearance" ]) {
350+ finalOptions |= PSPDFSettingsOptionAppearance;
351+ } else if ([option isEqualToString: @" brightness" ]) {
352+ finalOptions |= PSPDFSettingsOptionBrightness;
353+ } else if ([option isEqualToString: @" pageMode" ]) {
354+ finalOptions |= PSPDFSettingsOptionPageMode;
355+ } else if ([option isEqualToString: @" spreadFitting" ]) {
356+ finalOptions |= PSPDFSettingsOptionSpreadFitting;
357+ }
358+ }
359+
360+ if (finalOptions == 0 ) {
361+ finalOptions = PSPDFSettingsOptionDefault;
362+ }
363+
364+ return finalOptions;
365+ }
366+
334367- (void )setToolbarTitle : (NSString *)toolbarTitle {
335368 // Early return if the toolbar title is not explicitly set in the configuration dictionary.
336369 if (!toolbarTitle) {
0 commit comments