From 79baf60fa56eb97c4cb207647bdf5bb058e81ff3 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Wed, 3 Aug 2022 15:14:01 +0100 Subject: Amiga: Add page theme toggle --- frontends/amiga/gui_options.c | 40 +++++++++++++++++++++++++++++++++++++ resources/FatMessages | 46 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 77 insertions(+), 9 deletions(-) diff --git a/frontends/amiga/gui_options.c b/frontends/amiga/gui_options.c index fa8cdee35..79af71c5d 100755 --- a/frontends/amiga/gui_options.c +++ b/frontends/amiga/gui_options.c @@ -102,6 +102,9 @@ enum GID_OPTS_SCREENNAME, GID_OPTS_WIN_SIMPLE, GID_OPTS_THEME, + GID_OPTS_THEMEPAGE, + GID_OPTS_DARK, + GID_OPTS_LIGHT, GID_OPTS_PTRTRUE, GID_OPTS_PTROS, GID_OPTS_PROXY, @@ -210,6 +213,7 @@ enum #define OPTS_LAST LAB_OPTS_LAST #define OPTS_MAX_TABS 10 #define OPTS_MAX_SCREEN 4 +#define OPTS_MAX_THEMEPAGE 3 #define OPTS_MAX_PROXY 5 #define OPTS_MAX_NATIVEBM 4 #define OPTS_MAX_DITHER 4 @@ -227,6 +231,7 @@ struct ami_gui_opts_window { #ifndef __amigaos4__ struct List clicktablist; struct List screenoptslist; + struct List pagethemeoptslist; struct List proxyoptslist; struct List nativebmoptslist; struct List ditheroptslist; @@ -246,6 +251,7 @@ static struct ami_gui_opts_window *gow = NULL; static CONST_STRPTR tabs[OPTS_MAX_TABS]; static STRPTR screenopts[OPTS_MAX_SCREEN]; +static CONST_STRPTR pagethemeopts[OPTS_MAX_THEMEPAGE]; static CONST_STRPTR proxyopts[OPTS_MAX_PROXY]; static CONST_STRPTR nativebmopts[OPTS_MAX_NATIVEBM]; static CONST_STRPTR ditheropts[OPTS_MAX_DITHER]; @@ -333,6 +339,10 @@ static void ami_gui_opts_setup(struct ami_gui_opts_window *gow) screenopts[2] = (char *)ami_utf8_easy((char *)messages_get("ScreenPublic")); screenopts[3] = NULL; + pagethemeopts[0] = (char *)ami_utf8_easy((char *)messages_get("Light")); + pagethemeopts[1] = (char *)ami_utf8_easy((char *)messages_get("Dark")); + pagethemeopts[2] = NULL; + proxyopts[0] = (char *)ami_utf8_easy((char *)messages_get("ProxyNone")); proxyopts[1] = (char *)ami_utf8_easy((char *)messages_get("ProxyNoAuth")); proxyopts[2] = (char *)ami_utf8_easy((char *)messages_get("ProxyBasic")); @@ -363,6 +373,10 @@ static void ami_gui_opts_setup(struct ami_gui_opts_window *gow) gadlab[GID_OPTS_DONOTTRACK] = (char *)ami_utf8_easy((char *)messages_get("DoNotTrack")); gadlab[GID_OPTS_FASTSCROLL] = (char *)ami_utf8_easy((char *)messages_get("FastScrolling")); gadlab[GID_OPTS_WIN_SIMPLE] = (char *)ami_utf8_easy((char *)messages_get("SimpleRefresh")); + gadlab[GID_OPTS_THEME] = (char *)ami_utf8_easy((char *)messages_get("ThemeGUI")); + gadlab[GID_OPTS_THEMEPAGE] = (char *)ami_utf8_easy((char *)messages_get("ThemePage")); + gadlab[GID_OPTS_DARK] = (char *)ami_utf8_easy((char *)messages_get("Dark")); + gadlab[GID_OPTS_LIGHT] = (char *)ami_utf8_easy((char *)messages_get("Light")); gadlab[GID_OPTS_PTRTRUE] = (char *)ami_utf8_easy((char *)messages_get("TrueColour")); gadlab[GID_OPTS_PTROS] = (char *)ami_utf8_easy((char *)messages_get("OSPointers")); gadlab[GID_OPTS_PROXY] = (char *)ami_utf8_easy((char *)messages_get("ProxyType")); @@ -466,6 +480,7 @@ static void ami_gui_opts_setup(struct ami_gui_opts_window *gow) #ifndef __amigaos4__ ami_gui_opts_array_to_list(&gow->clicktablist, tabs, NSA_LIST_CLICKTAB); ami_gui_opts_array_to_list(&gow->screenoptslist, screenopts, NSA_LIST_RADIO); + ami_gui_opts_array_to_list(&gow->pagethemeoptslist, pagethemeopts, NSA_LIST_CHOOSER); ami_gui_opts_array_to_list(&gow->proxyoptslist, proxyopts, NSA_LIST_CHOOSER); ami_gui_opts_array_to_list(&gow->nativebmoptslist, nativebmopts, NSA_LIST_CHOOSER); ami_gui_opts_array_to_list(&gow->ditheroptslist, ditheropts, NSA_LIST_CHOOSER); @@ -497,6 +512,7 @@ static void ami_gui_opts_free(struct ami_gui_opts_window *gow) #ifndef __amigaos4__ ami_gui_opts_free_list(&gow->clicktablist, NSA_LIST_CLICKTAB); ami_gui_opts_free_list(&gow->screenoptslist, NSA_LIST_RADIO); + ami_gui_opts_free_list(&gow->pagethemeoptslist, NSA_LIST_CHOOSER); ami_gui_opts_free_list(&gow->proxyoptslist, NSA_LIST_CHOOSER); ami_gui_opts_free_list(&gow->nativebmoptslist, NSA_LIST_CHOOSER); ami_gui_opts_free_list(&gow->ditheroptslist, NSA_LIST_CHOOSER); @@ -858,6 +874,23 @@ void ami_gui_opts_open(void) GETFILE_ReadOnly, TRUE, GETFILE_FullFileExpand, FALSE, GetFileEnd, + CHILD_Label, LabelObj, + LABEL_Text, gadlab[GID_OPTS_THEME], + LabelEnd, + LAYOUT_AddChild, gow->objects[GID_OPTS_THEMEPAGE] = ChooserObj, + GA_ID, GID_OPTS_THEMEPAGE, + GA_RelVerify, TRUE, + CHOOSER_PopUp, TRUE, +#ifdef __amigaos4__ + CHOOSER_LabelArray, pagethemeopts, +#else + CHOOSER_Labels, &gow->pagethemeoptslist, +#endif + CHOOSER_Selected, nsoption_bool(os_mouse_pointers), + ChooserEnd, + CHILD_Label, LabelObj, + LABEL_Text, gadlab[GID_OPTS_THEMEPAGE], + LabelEnd, LayoutEnd, // theme CHILD_WeightedHeight, 0, LAYOUT_AddChild, LayoutVObj, @@ -1754,6 +1787,13 @@ static void ami_gui_opts_use(bool save) GetAttr(GETFILE_Drawer,gow->objects[GID_OPTS_THEME],(ULONG *)&data); nsoption_set_charp(theme, (char *)strdup((char *)data)); + GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_THEMEPAGE],(ULONG *)&data); + if(data) { + nsoption_set_bool(prefer_dark_mode, true); + } else { + nsoption_set_bool(prefer_dark_mode, false); + } + GetAttr(GA_Selected,gow->objects[GID_OPTS_PTRTRUE],(ULONG *)&data); if (data) { nsoption_set_bool(truecolour_mouse_pointers, true); diff --git a/resources/FatMessages b/resources/FatMessages index 0c8668a92..3492c3f0a 100644 --- a/resources/FatMessages +++ b/resources/FatMessages @@ -2531,7 +2531,7 @@ zh_CN.beos.ViewSrcAccel:U # en.ro.Draw:Draw ⇑^F3 fr.ro.Draw:Dessiner ⇑^F3 -it.ro.Draw:Draw ^F3 +it.ro.Draw:Draw �^F3 nl.ro.Draw:Draw-bestand ⇑^F3 zh_CN.ro.Draw:绘图 ↑^F3 @@ -2659,7 +2659,7 @@ nl.all.Back:Vorige pagina zh_CN.all.Back:后退 en.beos.BackAccel:← -it.beos.BackAccel: +it.beos.BackAccel:� zh_CN.beos.BackAccel:← en.all.Forward:Forward one page @@ -2670,7 +2670,7 @@ nl.all.Forward:Volgende pagina zh_CN.all.Forward:前进 en.beos.ForwardAccel:→ -it.beos.ForwardAccel: +it.beos.ForwardAccel:� zh_CN.beos.ForwardAccel:→ en.all.UpLevel:Up one level @@ -2681,7 +2681,7 @@ nl.all.UpLevel:Niveau omhoog zh_CN.all.UpLevel:回到上级 en.beos.UpLevelAccel:↑ -it.beos.UpLevelAccel: +it.beos.UpLevelAccel:� zh_CN.beos.UpLevelAccel:↑ en.ro.Reload:Reload this page ^F5 @@ -3654,21 +3654,21 @@ zh_CN.all.ExternalApp:在外部应用中打开 en.all.Download:%s of %s • %s/s • %s remaining de.all.Download:%s von %s • %s/s • noch %s fr.all.Download:%s de %s • %s/s • %s restants -it.all.Download:%s di %s %s/s %s al termine +it.all.Download:%s di %s �� %s/s �� %s al termine nl.all.Download:%s van %s • %s/s • nog %s zh_CN.all.Download:第 %s 个,共 %s 个 • %s/s • 剩余 %s en.all.DownloadU:%s of unknown • %s/s • %s total de.all.DownloadU:%s von unbekannt • %s/s • bisher %s fr.all.DownloadU:%s sur inconnu • %s/s • %s total -it.all.DownloadU:%s sconosciuto %s/s %s totale +it.all.DownloadU:%s sconosciuto �� %s/s �� %s totale nl.all.DownloadU:%s van onbekend • %s/s • %s totaal zh_CN.all.DownloadU:未知 %s • %s/s • 总共 %s en.all.Downloaded:%s complete • average %s/s • %s total de.all.Downloaded:%s komplett • etwa %s/s • gesamt %s fr.all.Downloaded:%s effectués • moyenne %s/s • %s total -it.all.Downloaded:%s completato average %s/s %s totale +it.all.Downloaded:%s completato �� average %s/s �� %s totale nl.all.Downloaded:%s compleet • gemiddeld %s/s • %s totaal zh_CN.all.Downloaded:完成 %s • 平均 %s/s • 总共 %s @@ -7872,7 +7872,7 @@ zh_CN.ro.HelpLanguageConfig:\T语言配置 \w en.ro.HelpLanguageConfig3:\Tcurrently selected interface language.|MThe interface language is the language used for NetSurf's messages and dialogue boxes. de.ro.HelpLanguageConfig3:Das ist die aktuell eingestellte Sprache für die Bedienoberfläche.|MDiese Sprache wird genutzt, um NetSurf's Meldungen, Texte der Dialogboxen, Menüs darzustellen. fr.ro.HelpLanguageConfig3:\Tla langue d'interface sélectionnée actuellement.|MLa langue d'interface est la langue utilisée pour les messages et les boîtes de dialogue de Netsurf. -it.ro.HelpLanguageConfig3:\Tla lingua dell'interfaccia correntemente selezionata.|MLa lingua dell'interfaccia la lingua utilizzata per i messaggi e le finestre di dialogo di NetSurf. +it.ro.HelpLanguageConfig3:\Tla lingua dell'interfaccia correntemente selezionata.|MLa lingua dell'interfaccia � la lingua utilizzata per i messaggi e le finestre di dialogo di NetSurf. nl.ro.HelpLanguageConfig3:Dit is momenteel de geselecteerde gebruikersinterfacetaal.|MDe interfacetaal is de taal voor de melding- en dialoogvensters. zh_CN.ro.HelpLanguageConfig3:\T当前选择的界面语言。|M界面语言是 NetSurf 浏览器消息和对话框使用的语言。 @@ -7928,7 +7928,7 @@ zh_CN.ro.HelpSecurityConfig:\T安全配置 \w en.ro.HelpSecurityConfig2:This indicates whether NetSurf will send site referral information to web servers.|MWhen this is enabled NetSurf will tell the web server of a new page the address of the site you came from, after following a link. de.ro.HelpSecurityConfig2:NetSurf sendet Seitenreferenzinformationen an Webserver.|MIst diese Option gewählt, schickt NetSurf an den Server einer neuen Webseite die Adresse der Seite von der aus die aktuelle über einen Link aufgerufen wurde. fr.ro.HelpSecurityConfig2:Ceci indique si Netsurf doit envoyer l'information de renvoi de site aux serveurs web.|MLorsque ceci est activé Netsurf signalera au serveur web d'une nouvelle page l'adresse du site d'où vous venez, après avoir suivi un lien. -it.ro.HelpSecurityConfig2:Indica se NetSurf invierà le informazioni di riferimento del sito ai server Web.|MQuando questo abilitato, NetSurf comunicherà al server Web di una nuova pagina l'indirizzo del sito dal quale proveniva, dopo aver seguito un link. +it.ro.HelpSecurityConfig2:Indica se NetSurf invierà le informazioni di riferimento del sito ai server Web.|MQuando questo � abilitato, NetSurf comunicherà al server Web di una nuova pagina l'indirizzo del sito dal quale proveniva, dopo aver seguito un link. nl.ro.HelpSecurityConfig2:Deze optie geeft aan of site-gerelateerde informatie naar webservers wordt meegezonden.|MIndien toegestaan, ontvangt de webserver informatie over de vorige pagina waar, via een koppeling, vandaan is gekomen. zh_CN.ro.HelpSecurityConfig2:这表示 NetSurf 是否将站点推荐信息发送到网络服务器。|M启用此选项后,NetSurf 将在跟踪链接后将您的站点网址告知新网页的网络服务器。 @@ -8375,6 +8375,34 @@ it.all.Theme:Tema grafico nl.all.Theme:Thema zh_CN.all.Theme:主题 +en.ami.ThemeGUI:GUI theme +de.ami.ThemeGUI:GUI theme +fr.ami.ThemeGUI:GUI theme +it.ami.ThemeGUI:GUI theme +nl.ami.ThemeGUI:GUI theme +zh_CN.ami.ThemeGUI:GUI theme + +en.ami.ThemePage:Preferred page theme +de.ami.ThemePage:Preferred page theme +fr.ami.ThemePage:Preferred page theme +it.ami.ThemePage:Preferred page theme +nl.ami.ThemePage:Preferred page theme +zh_CN.ami.ThemePage:Preferred page theme + +en.ami.Light:Light +de.ami.Light:Light +fr.ami.Light:Light +it.ami.Light:Light +nl.ami.Light:Light +zh_CN.ami.Light:Light + +en.ami.Dark:Dark +de.ami.Dark:Dark +fr.ami.Dark:Dark +it.ami.Dark:Dark +nl.ami.Dark:Dark +zh_CN.ami.Dark:Dark + en.all.MousePointers:Mouse pointers de.all.MousePointers:Mauszeiger fr.all.MousePointers:Pointeurs de souris -- cgit v1.2.3