Font size and preferred language settings

This commit is contained in:
anthony 2021-08-09 19:45:53 +01:00
parent 87e33083da
commit 617b761fcb
5 changed files with 326 additions and 0 deletions

View File

@ -92,6 +92,8 @@ R_RESOURCES := \
Bookmarks.gorm \
CreateBookmark.gorm \
Preferences.gorm \
Languages.plist \
R_RESOURCES := $(addprefix $(FRONTEND_RESOURCES_DIR)/,$(R_RESOURCES))

View File

@ -108,5 +108,11 @@ typedef NS_ENUM(NSInteger, PreferenceType) {
-(FontType)defaultFont;
-(void)setDefaultFont: (FontType)value;
-(NSString*)preferredLanguage;
-(void)setPreferredLanguage: (NSString*)value;
-(NSUInteger)fontSize;
-(void)setFontSize: (NSUInteger)value;
+(Preferences*)defaultPreferences;
@end

View File

@ -289,6 +289,29 @@
[self saveNetsurfPrefsFile];
}
-(NSString*)preferredLanguage {
char *lang = nsoption_charp(accept_language);
if (lang == NULL) {
return @"en";
} else {
return [NSString stringWithCString: lang];
}
}
-(void)setPreferredLanguage: (NSString*)value {
NSLog(@"Set to %@", value);
nsoption_set_charp(accept_language, strdup([value cString]));
[self saveNetsurfPrefsFile];
}
-(NSUInteger)fontSize {
return (NSUInteger)nsoption_int(font_size);
}
-(void)setFontSize: (NSUInteger)value {
nsoption_set_int(font_size, (int)value);
[self saveNetsurfPrefsFile];
}
+(Preferences*)defaultPreferences {
static Preferences *prefs;

View File

@ -274,14 +274,41 @@
? NSOnState : NSOffState];
FontType fontType = [[Preferences defaultPreferences] defaultFont];
[defaultFontButton selectItemAtIndex: (NSInteger)fontType];
NSUInteger selectedIndex = 0;
NSString *preferredLanguage = [[Preferences defaultPreferences] preferredLanguage];
NSString *languagesPath = [[NSBundle mainBundle] pathForResource: @"Languages" ofType: @"plist"];
NSArray *languages = [NSArray arrayWithContentsOfFile: languagesPath];
for (NSUInteger i = 0; i < [languages count]; i++) {
[preferredLanguageButton addItemWithTitle: [languages objectAtIndex: i]];
if ([[languages objectAtIndex: i] isEqualTo: preferredLanguage]) {
selectedIndex = i;
}
}
[preferredLanguageButton selectItemAtIndex: selectedIndex];
NSUInteger fontSize = [[Preferences defaultPreferences] fontSize];
[fontSizeField setStringValue: [NSString stringWithFormat: @"%u", fontSize]];
[fontSizeStepper setIntegerValue: fontSize];
}
-(void)didChangeFontSizeStepper: (id)sender {
NSLog(@"didChangeFontSizeStepper");
NSInteger value = [sender integerValue];
if (value < 1) {
value = 1;
[sender setIntegerValue: value];
}
[fontSizeField setStringValue: [NSString stringWithFormat: @"%u", value]];
[[Preferences defaultPreferences] setFontSize: value];
}
-(void)didEnterFontSize: (id)sender {
NSLog(@"didEnterFontSize");
NSInteger value = [[sender stringValue] integerValue];
if (value < 1)
value = 1;
[fontSizeStepper setIntegerValue: value];
[[Preferences defaultPreferences] setFontSize: (NSUInteger)value];
}
-(void)didPickDefaultFont: (id)sender {
@ -327,6 +354,7 @@
-(void)didPickPreferredLanguage: (id)sender {
NSLog(@"didPickPreferredLanguage");
[[Preferences defaultPreferences] setPreferredLanguage: [sender title]];
}
@end

View File

@ -0,0 +1,267 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>aa</string>
<string>ab</string>
<string>ae</string>
<string>af</string>
<string>ak</string>
<string>am</string>
<string>an</string>
<string>ar</string>
<string>ar-ae</string>
<string>ar-bh</string>
<string>ar-dz</string>
<string>ar-eg</string>
<string>ar-iq</string>
<string>ar-jo</string>
<string>ar-kw</string>
<string>ar-lb</string>
<string>ar-ly</string>
<string>ar-ma</string>
<string>ar-om</string>
<string>ar-qa</string>
<string>ar-sa</string>
<string>ar-sy</string>
<string>ar-tn</string>
<string>ar-ye</string>
<string>as</string>
<string>ast</string>
<string>av</string>
<string>az</string>
<string>ba</string>
<string>be</string>
<string>bg</string>
<string>bh</string>
<string>bi</string>
<string>bm</string>
<string>bn</string>
<string>bo</string>
<string>br</string>
<string>bs</string>
<string>ca</string>
<string>ce</string>
<string>ch</string>
<string>co</string>
<string>cr</string>
<string>cs</string>
<string>cu</string>
<string>cv</string>
<string>cy</string>
<string>da</string>
<string>de</string>
<string>de-at</string>
<string>de-ch</string>
<string>de-de</string>
<string>de-li</string>
<string>de-lu</string>
<string>dv</string>
<string>dz</string>
<string>ee</string>
<string>el</string>
<string>en</string>
<string>en-au</string>
<string>en-bz</string>
<string>en-ca</string>
<string>en-gb</string>
<string>en-ie</string>
<string>en-jm</string>
<string>en-nz</string>
<string>en-ph</string>
<string>en-tt</string>
<string>en-us</string>
<string>en-za</string>
<string>en-zw</string>
<string>eo</string>
<string>es</string>
<string>es-ar</string>
<string>es-bo</string>
<string>es-cl</string>
<string>es-co</string>
<string>es-cr</string>
<string>es-do</string>
<string>es-ec</string>
<string>es-es</string>
<string>es-gt</string>
<string>es-hn</string>
<string>es-mx</string>
<string>es-ni</string>
<string>es-pa</string>
<string>es-pe</string>
<string>es-pr</string>
<string>es-py</string>
<string>es-sv</string>
<string>es-uy</string>
<string>es-ve</string>
<string>et</string>
<string>eu</string>
<string>fa</string>
<string>fa-ir</string>
<string>ff</string>
<string>fi</string>
<string>fj</string>
<string>fo</string>
<string>fr</string>
<string>fr-be</string>
<string>fr-ca</string>
<string>fr-ch</string>
<string>fr-fr</string>
<string>fr-lu</string>
<string>fr-mc</string>
<string>fur</string>
<string>fy</string>
<string>ga</string>
<string>gd</string>
<string>gl</string>
<string>gn</string>
<string>gu</string>
<string>gv</string>
<string>ha</string>
<string>he</string>
<string>hi</string>
<string>ho</string>
<string>hsb</string>
<string>hr</string>
<string>ht</string>
<string>hu</string>
<string>hy</string>
<string>hz</string>
<string>ia</string>
<string>id</string>
<string>ie</string>
<string>ig</string>
<string>ii</string>
<string>ik</string>
<string>io</string>
<string>is</string>
<string>it</string>
<string>it-ch</string>
<string>iu</string>
<string>ja</string>
<string>jv</string>
<string>ka</string>
<string>kg</string>
<string>ki</string>
<string>kk</string>
<string>kl</string>
<string>km</string>
<string>kn</string>
<string>ko</string>
<string>ko-kp</string>
<string>ko-kr</string>
<string>kok</string>
<string>kr</string>
<string>ks</string>
<string>ku</string>
<string>kv</string>
<string>kw</string>
<string>ky</string>
<string>la</string>
<string>lb</string>
<string>lg</string>
<string>li</string>
<string>ln</string>
<string>lo</string>
<string>lt</string>
<string>lu</string>
<string>lv</string>
<string>mg</string>
<string>mh</string>
<string>mi</string>
<string>mk</string>
<string>mk-mk</string>
<string>ml</string>
<string>mn</string>
<string>mo</string>
<string>mr</string>
<string>ms</string>
<string>mt</string>
<string>my</string>
<string>na</string>
<string>nb</string>
<string>nd</string>
<string>ne</string>
<string>ng</string>
<string>nl</string>
<string>nl-be</string>
<string>nn</string>
<string>no</string>
<string>nr</string>
<string>nso</string>
<string>nv</string>
<string>ny</string>
<string>oc</string>
<string>oj</string>
<string>om</string>
<string>or</string>
<string>os</string>
<string>pa</string>
<string>pa-in</string>
<string>pa-pk</string>
<string>pi</string>
<string>pl</string>
<string>ps</string>
<string>pt</string>
<string>pt-br</string>
<string>qu</string>
<string>rm</string>
<string>rn</string>
<string>ro</string>
<string>ro-mo</string>
<string>ru</string>
<string>ru-mo</string>
<string>sa</string>
<string>sc</string>
<string>sd</string>
<string>sg</string>
<string>si</string>
<string>sk</string>
<string>sl</string>
<string>so</string>
<string>sq</string>
<string>sr</string>
<string>ss</string>
<string>st</string>
<string>su</string>
<string>sv</string>
<string>sv-fi</string>
<string>sv-se</string>
<string>sw</string>
<string>ta</string>
<string>te</string>
<string>tg</string>
<string>th</string>
<string>ti</string>
<string>tig</string>
<string>tk</string>
<string>tl</string>
<string>tlh</string>
<string>tn</string>
<string>to</string>
<string>tr</string>
<string>ts</string>
<string>tt</string>
<string>tw</string>
<string>ty</string>
<string>ug</string>
<string>uk</string>
<string>ur</string>
<string>uz</string>
<string>ve</string>
<string>vi</string>
<string>vo</string>
<string>wa</string>
<string>wo</string>
<string>xh</string>
<string>yi</string>
<string>yo</string>
<string>za</string>
<string>zh</string>
<string>zh-cn</string>
<string>zh-hk</string>
<string>zh-sg</string>
<string>zh-tw</string>
<string>zu</string>
</array>
</plist>