summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/arexx.c10
-rw-r--r--amiga/bitmap.c8
-rwxr-xr-xamiga/clipboard.c10
-rwxr-xr-xamiga/context_menu.c8
-rw-r--r--amiga/download.c8
-rw-r--r--amiga/drag.c10
-rw-r--r--amiga/dt_sound.c2
-rw-r--r--amiga/file.c3
-rw-r--r--amiga/font.c28
-rwxr-xr-xamiga/gui.c237
-rwxr-xr-xamiga/gui_options.c421
-rwxr-xr-xamiga/menu.c28
-rw-r--r--amiga/options.h318
-rwxr-xr-xamiga/plotters.c26
-rw-r--r--amiga/print.c19
-rw-r--r--amiga/stringview/urlhistory.c2
-rw-r--r--amiga/system_colour.c56
-rw-r--r--amiga/theme.c19
-rwxr-xr-xamiga/thumbnail.c10
-rwxr-xr-xamiga/tree.c68
20 files changed, 680 insertions, 611 deletions
diff --git a/amiga/arexx.c b/amiga/arexx.c
index 4809ef1c3..4a24cb428 100755
--- a/amiga/arexx.c
+++ b/amiga/arexx.c
@@ -21,7 +21,7 @@
#include "amiga/arexx.h"
#include "amiga/download.h"
#include "amiga/gui.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/theme.h"
#include "desktop/browser.h"
@@ -411,13 +411,13 @@ STATIC VOID rx_pubscreen(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__
{
cmd->ac_RC = 0;
- if(!option_use_pubscreen || option_use_pubscreen[0] == '\0')
+ if(nsoption_charp(use_pubscreen) == NULL)
{
strcpy(result,"NetSurf");
}
else
{
- strcpy(result,option_use_pubscreen);
+ strcpy(result, nsoption_charp(use_pubscreen));
}
cmd->ac_Result = result;
@@ -457,7 +457,7 @@ STATIC VOID rx_home(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unu
if((cmd->ac_ArgList[0]) && (cmd->ac_ArgList[1]))
bw = ami_find_tab(*(ULONG *)cmd->ac_ArgList[0], *(ULONG *)cmd->ac_ArgList[1]);
- if(bw) browser_window_go(bw, option_homepage_url, NULL, true);
+ if(bw) browser_window_go(bw, nsoption_charp(homepage_url), NULL, true);
}
STATIC VOID rx_reload(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((unused)))
@@ -520,7 +520,7 @@ STATIC VOID rx_active(struct ARexxCmd *cmd, struct RexxMsg *rxm __attribute__((u
int window = 0, tab = 0;
struct browser_window *bw = curbw;
struct nsObject *node, *nnode;
- struct gui_window_2 *gwin;
+ struct gui_window_2 *gwin = NULL;
cmd->ac_RC = 0;
diff --git a/amiga/bitmap.c b/amiga/bitmap.c
index 173f66349..4e1057eb6 100644
--- a/amiga/bitmap.c
+++ b/amiga/bitmap.c
@@ -28,7 +28,7 @@
#include <graphics/composite.h>
#endif
#include <graphics/gfxbase.h>
-#include "amiga/options.h"
+#include "desktop/options.h"
#include <proto/datatypes.h>
#include <datatypes/pictureclass.h>
#include <proto/dos.h>
@@ -378,7 +378,7 @@ struct BitMap *ami_getcachenativebm(struct bitmap *bitmap,int width,int height,s
bitmap->width, bitmap->height);
}
- if(option_cache_bitmaps == 2)
+ if(nsoption_int(cache_bitmaps) == 2)
{
bitmap->nativebm = tbm;
bitmap->nativebmwidth = bitmap->width;
@@ -400,7 +400,7 @@ struct BitMap *ami_getcachenativebm(struct bitmap *bitmap,int width,int height,s
uint32 flags = 0;
if(bitmap->opaque) flags |= COMPFLAG_IgnoreDestAlpha;
- if(option_scale_quality) flags |= COMPFLAG_SrcFilter;
+ if(nsoption_bool(scale_quality)) flags |= COMPFLAG_SrcFilter;
CompositeTags(comptype,tbm,scaledbm,
COMPTAG_ScaleX,COMP_FLOAT_TO_FIX(width/bitmap->width),
@@ -442,7 +442,7 @@ struct BitMap *ami_getcachenativebm(struct bitmap *bitmap,int width,int height,s
tbm = scaledbm;
bitmap->nativebm = NULL;
- if(option_cache_bitmaps >= 1)
+ if(nsoption_int(cache_bitmaps) >= 1)
{
bitmap->nativebm = tbm;
bitmap->nativebmwidth = width;
diff --git a/amiga/clipboard.c b/amiga/clipboard.c
index 2af7d81ac..193b2bcd2 100755
--- a/amiga/clipboard.c
+++ b/amiga/clipboard.c
@@ -29,7 +29,7 @@
#include "amiga/iff_cset.h"
#include "amiga/iff_dr2d.h"
#include "amiga/menu.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/utf8.h"
#include <proto/iffparse.h>
@@ -85,7 +85,7 @@ void gui_start_selection(struct gui_window *g)
{
if(!g) return;
if(!g->shared->win) return;
- if(option_kiosk_mode == true) return;
+ if(nsoption_bool(kiosk_mode) == true) return;
OnMenu(g->shared->win, AMI_MENU_CLEAR);
OnMenu(g->shared->win, AMI_MENU_COPY);
@@ -98,7 +98,7 @@ void gui_clear_selection(struct gui_window *g)
{
if(!g) return;
if(!g->shared->win) return;
- if(option_kiosk_mode == true) return;
+ if(nsoption_bool(kiosk_mode) == true) return;
OffMenu(g->shared->win, AMI_MENU_CLEAR);
OffMenu(g->shared->win, AMI_MENU_CUT);
@@ -170,7 +170,7 @@ bool gui_empty_clipboard(void)
{
if(!(PushChunk(iffh,ID_FTXT,ID_FORM,IFFSIZE_UNKNOWN)))
{
- if(option_utf8_clipboard || ami_utf8_clipboard)
+ if(nsoption_bool(utf8_clipboard) || ami_utf8_clipboard)
{
if(!(PushChunk(iffh,0,ID_CSET,32)))
{
@@ -219,7 +219,7 @@ bool ami_add_to_clipboard(const char *text, size_t length, bool space)
{
char *buffer;
- if(option_utf8_clipboard || ami_utf8_clipboard)
+ if(nsoption_bool(utf8_clipboard) || ami_utf8_clipboard)
{
WriteChunkBytes(iffh,text,length);
}
diff --git a/amiga/context_menu.c b/amiga/context_menu.c
index ec2816035..3d2625ec0 100755
--- a/amiga/context_menu.c
+++ b/amiga/context_menu.c
@@ -34,7 +34,7 @@
#include "amiga/gui.h"
#include "amiga/history_local.h"
#include "amiga/iff_dr2d.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/plugin_hack.h"
#include "amiga/theme.h"
#include "amiga/tree.h"
@@ -555,9 +555,9 @@ BOOL ami_context_menu_mouse_trap(struct gui_window_2 *gwin, BOOL trap)
{
int top, left, width, height;
- if(option_context_menu == false) return FALSE;
+ if(nsoption_bool(context_menu) == false) return FALSE;
- if((option_kiosk_mode == false) && (trap == FALSE))
+ if((nsoption_bool(kiosk_mode) == false) && (trap == FALSE))
{
if(browser_window_back_available(gwin->bw) &&
ami_gadget_hit(gwin->objects[GID_BACK],
@@ -871,7 +871,7 @@ static uint32 ami_context_menu_hook(struct Hook *hook,Object *item,APTR reserved
break;
case CMID_NAVHOME:
- browser_window_go(gwin->bw, option_homepage_url, NULL, true);
+ browser_window_go(gwin->bw, nsoption_charp(homepage_url), NULL, true);
break;
case CMID_NAVBACK:
diff --git a/amiga/download.c b/amiga/download.c
index 2a5cae8e6..ac261e52b 100644
--- a/amiga/download.c
+++ b/amiga/download.c
@@ -34,7 +34,7 @@
#include "amiga/download.h"
#include "amiga/icon.h"
#include "amiga/object.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/bitmap.h"
#include "amiga/iff_dr2d.h"
#include "amiga/theme.h"
@@ -226,14 +226,14 @@ void ami_download_window_abort(struct gui_download_window *dw)
void gui_download_window_done(struct gui_download_window *dw)
{
- struct dlnode *dln,*dln2;
+ struct dlnode *dln,*dln2 = NULL;
struct browser_window *bw = dw->bw;
bool queuedl = false;
STRPTR sendcmd = NULL;
if(!dw) return;
- if(option_download_notify)
+ if(nsoption_bool(download_notify))
{
Notify(ami_appid, APPNOTIFY_Title, messages_get("amiDownloadComplete"),
APPNOTIFY_PubScreenName, "FRONT",
@@ -366,7 +366,7 @@ BOOL ami_download_check_overwrite(const char *file, struct Window *win, ULONG si
int64 oldsize = 0;
char *overwritetext;
- if(option_ask_overwrite == false) return TRUE;
+ if(nsoption_bool(ask_overwrite) == false) return TRUE;
lock = Lock(file, ACCESS_READ);
diff --git a/amiga/drag.c b/amiga/drag.c
index 9bc8262c6..e19b27393 100644
--- a/amiga/drag.c
+++ b/amiga/drag.c
@@ -37,7 +37,7 @@
#include "amiga/drag.h"
#include "amiga/file.h"
#include "amiga/filetype.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/theme.h"
#include "desktop/selection.h"
@@ -55,9 +55,9 @@ BOOL drag_in_progress = FALSE;
void gui_drag_save_object(gui_save_type type, hlcache_handle *c,
struct gui_window *g)
{
- const char *filetype;
+ const char *filetype = NULL;
- if(strcmp(option_use_pubscreen,"Workbench")) return;
+ if(strcmp(nsoption_charp(use_pubscreen), "Workbench")) return;
switch(type)
{
@@ -108,7 +108,7 @@ void ami_drag_save(struct Window *win)
ami_drag_icon_close(NULL);
ami_autoscroll = FALSE;
- if(option_use_pubscreen && (strcmp(option_use_pubscreen,"Workbench") == 0))
+ if(nsoption_charp(use_pubscreen) && (strcmp(nsoption_charp(use_pubscreen),"Workbench") == 0))
{
which = WhichWorkbenchObject(NULL,scrn->MouseX,scrn->MouseY,
WBOBJA_Type,&type,
@@ -203,7 +203,7 @@ void ami_drag_icon_show(struct Window *win, const char *type)
drag_in_progress = TRUE;
- if(option_drag_save_icons == false)
+ if(nsoption_bool(drag_save_icons) == false)
{
ami_update_pointer(win, AMI_GUI_POINTER_DRAG);
return;
diff --git a/amiga/dt_sound.c b/amiga/dt_sound.c
index 386ffe220..4b6940210 100644
--- a/amiga/dt_sound.c
+++ b/amiga/dt_sound.c
@@ -149,7 +149,7 @@ bool amiga_dt_sound_convert(struct content *c)
amiga_dt_sound_content *plugin = (amiga_dt_sound_content *) c;
union content_msg_data msg_data;
- int width, height;
+ int width = 50, height = 50;
char title[100];
const uint8 *data;
ULONG size;
diff --git a/amiga/file.c b/amiga/file.c
index 4bae9734f..126c4e355 100644
--- a/amiga/file.c
+++ b/amiga/file.c
@@ -22,7 +22,6 @@
#include "amiga/filetype.h"
#include "amiga/icon.h"
#include "amiga/iff_dr2d.h"
-#include "amiga/options.h"
#include "amiga/save_pdf.h"
#include "amiga/theme.h"
@@ -198,7 +197,7 @@ void ami_file_req_init(void)
savereq = (struct FileRequester *)AllocAslRequestTags(ASL_FileRequest,
ASLFR_DoSaveMode, TRUE,
ASLFR_RejectIcons, TRUE,
- ASLFR_InitialDrawer, option_download_dir,
+ ASLFR_InitialDrawer, nsoption_charp(download_dir),
TAG_DONE);
aslhookfunc.h_Entry = (void *)&ami_file_asl_mime_hook;
diff --git a/amiga/font.c b/amiga/font.c
index 91b8731e9..54b943de8 100644
--- a/amiga/font.c
+++ b/amiga/font.c
@@ -22,7 +22,7 @@
#include "amiga/gui.h"
#include "amiga/utf8.h"
#include "amiga/object.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "css/css.h"
#include "css/utils.h"
#include "render/font.h"
@@ -400,23 +400,23 @@ struct OutlineFont *ami_open_outline_font(const plot_font_style_t *fstyle, BOOL
switch(fontfamily)
{
case PLOT_FONT_FAMILY_SANS_SERIF:
- fontname = option_font_sans;
+ fontname = nsoption_charp(font_sans);
break;
case PLOT_FONT_FAMILY_SERIF:
- fontname = option_font_serif;
+ fontname = nsoption_charp(font_serif);
break;
case PLOT_FONT_FAMILY_MONOSPACE:
- fontname = option_font_mono;
+ fontname = nsoption_charp(font_mono);
break;
case PLOT_FONT_FAMILY_CURSIVE:
- fontname = option_font_cursive;
+ fontname = nsoption_charp(font_cursive);
break;
case PLOT_FONT_FAMILY_FANTASY:
- fontname = option_font_fantasy;
+ fontname = nsoption_charp(font_fantasy);
break;
case NSA_UNICODE_FONT:
default:
- fontname = option_font_unicode;
+ fontname = nsoption_charp(font_unicode);
break;
}
@@ -779,12 +779,12 @@ void ami_font_setdevicedpi(int id)
{
DisplayInfoHandle dih;
struct DisplayInfo dinfo;
- ULONG ydpi = option_amiga_ydpi;
- ULONG xdpi = option_amiga_ydpi;
+ ULONG ydpi = nsoption_int(amiga_ydpi);
+ ULONG xdpi = nsoption_int(amiga_ydpi);
- nscss_screen_dpi = INTTOFIX(option_amiga_ydpi);
+ nscss_screen_dpi = INTTOFIX(nsoption_int(amiga_ydpi));
- if(id && (option_monitor_aspect_x != 0) && (option_monitor_aspect_y != 0))
+ if(id && (nsoption_int(monitor_aspect_x) != 0) && (nsoption_int(monitor_aspect_y) != 0))
{
if(dih = FindDisplayInfo(id))
{
@@ -794,12 +794,12 @@ void ami_font_setdevicedpi(int id)
int xres = dinfo.Resolution.x;
int yres = dinfo.Resolution.y;
- if((option_monitor_aspect_x != 4) || (option_monitor_aspect_y != 3))
+ if((nsoption_int(monitor_aspect_x) != 4) || (nsoption_int(monitor_aspect_y) != 3))
{
/* AmigaOS sees 4:3 modes as square in the DisplayInfo database,
* so we correct other modes to "4:3 equiv" here. */
- xres = (xres * option_monitor_aspect_x) / 4;
- yres = (yres * option_monitor_aspect_y) / 3;
+ xres = (xres * nsoption_int(monitor_aspect_x)) / 4;
+ yres = (yres * nsoption_int(monitor_aspect_y)) / 3;
}
xdpi = (yres * ydpi) / xres;
diff --git a/amiga/gui.c b/amiga/gui.c
index 1ab70b388..4a91b6960 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -63,7 +63,6 @@
#include "amiga/login.h"
#include "amiga/menu.h"
#include "amiga/misc.h"
-#include "amiga/options.h"
#include "amiga/plotters.h"
#include "amiga/plugin_hack.h"
#include "amiga/print.h"
@@ -290,9 +289,9 @@ bool ami_locate_resource(char *fullpath, const char *file)
/* Firstly check the user's selected theme. NB: ami_locate_resource()
* gets called for Messages before options are loaded */
- if(option_theme)
+ if(nsoption_charp(theme))
{
- strcpy(fullpath, option_theme);
+ strcpy(fullpath, nsoption_charp(theme));
found = ami_gui_check_resource(fullpath, file);
if(found) return true;
}
@@ -380,96 +379,96 @@ void ami_set_options(void)
** updated to show more items than can fit in one column vertically
*/
- option_core_select_menu = true;
+ nsoption_set_bool(core_select_menu, true);
#ifndef NS_AMIGA_CAIRO
/* Ensure we get some output when Cairo not available */
- option_cairo_renderer = 0;
+ nsoption_set_int(cairo_renderer, 0);
#endif
- if((!option_accept_language) || (option_accept_language[0] == '\0') ||
- (option_accept_lang_locale == true))
+ if((!nsoption_charp(accept_language)) ||
+ (nsoption_charp(accept_language)[0] == '\0') ||
+ (nsoption_bool(accept_lang_locale) == true))
{
if(tempacceptlangs = ami_locale_langs())
{
- option_accept_language = (char *)strdup(tempacceptlangs);
+ nsoption_set_charp(accept_language,
+ (char *)strdup(tempacceptlangs));
FreeVec(tempacceptlangs);
}
}
- if((!option_cookie_file) || (option_cookie_file[0] == '\0'))
- option_cookie_file = (char *)strdup("PROGDIR:Resources/Cookies");
+ nsoption_setnull_charp(cookie_file,
+ (char *)strdup("PROGDIR:Resources/Cookies"));
- if((!option_hotlist_file) || (option_hotlist_file[0] == '\0'))
- option_hotlist_file = (char *)strdup("PROGDIR:Resources/Hotlist");
+ nsoption_setnull_charp(hotlist_file,
+ (char *)strdup("PROGDIR:Resources/Hotlist"));
- if((!option_url_file) || (option_url_file[0] == '\0'))
- option_url_file = (char *)strdup("PROGDIR:Resources/URLs");
+
+ nsoption_setnull_charp(url_file,
+ (char *)strdup("PROGDIR:Resources/URLs"));
/*
- if((!option_cookie_jar) || (option_cookie_jar[0] == '\0'))
- option_cookie_jar = (char *)strdup("PROGDIR:Resources/CookieJar");
+ nsoption_setnull_charp(cookie_jar,
+ (char *)strdup("PROGDIR:Resources/CookieJar"));
*/
/* devs:curl-ca-bundle.crt is the default place for the ca bundle on OS4,
* but we can't rely on it existing, so default to our local one in resources */
- if((!option_ca_bundle) || (option_ca_bundle[0] == '\0'))
- option_ca_bundle = (char *)strdup("PROGDIR:Resources/ca-bundle");
-
- if((!option_search_engines_file) || (option_search_engines_file[0] == '\0'))
- option_search_engines_file = (char *)strdup("PROGDIR:Resources/SearchEngines");
-
- search_engines_file_location = option_search_engines_file;
-
- if((!option_font_sans) || (option_font_sans[0] == '\0'))
- option_font_sans = (char *)strdup("DejaVu Sans");
- if((!option_font_serif) || (option_font_serif[0] == '\0'))
- option_font_serif = (char *)strdup("DejaVu Serif");
+ nsoption_setnull_charp(ca_bundle,
+ (char *)strdup("PROGDIR:Resources/ca-bundle"));
- if((!option_font_mono) || (option_font_mono[0] == '\0'))
- option_font_mono = (char *)strdup("DejaVu Sans Mono");
+
+ nsoption_setnull_charp(search_engines_file,
+ (char *)strdup("PROGDIR:Resources/SearchEngines"));
- if((!option_font_cursive) || (option_font_cursive[0] == '\0'))
- option_font_cursive = (char *)strdup("DejaVu Sans");
+ search_engines_file_location = nsoption_charp(search_engines_file);
- if((!option_font_fantasy) || (option_font_fantasy[0] == '\0'))
- option_font_fantasy = (char *)strdup("DejaVu Serif");
+ /* font defaults */
+ nsoption_setnull_charp(font_sans, (char *)strdup("DejaVu Sans"));
+ nsoption_setnull_charp(font_serif, (char *)strdup("DejaVu Serif"));
+ nsoption_setnull_charp(font_mono, (char *)strdup("DejaVu Sans Mono"));
+ nsoption_setnull_charp(font_cursive, (char *)strdup("DejaVu Sans"));
+ nsoption_setnull_charp(font_fantasy, (char *)strdup("DejaVu Serif"));
- if((!option_font_unicode) || (option_font_unicode[0] == '\0'))
+ if (nsoption_charp(font_unicode) == NULL)
{
/* Search for some likely candidates */
if(lock=Lock("FONTS:Code2000.font",ACCESS_READ))
{
UnLock(lock);
- option_font_unicode = (char *)strdup("Code2000");
+ nsoption_set_charp(font_unicode,
+ (char *)strdup("Code2000"));
}
else if(lock=Lock("FONTS:Bitstream Cyberbit.font",ACCESS_READ))
{
UnLock(lock);
- option_font_unicode = (char *)strdup("Bitstream Cyberbit");
+ nsoption_set_charp(font_unicode,
+ (char *)strdup("Bitstream Cyberbit"));
+ }
+ else {
+ nsoption_set_charp(font_unicode,
+ (char *)strdup("DejaVu Sans"));
}
- else option_font_unicode = (char *)strdup("DejaVu Sans");
}
- if((!option_theme) || (option_theme[0] == '\0'))
- option_theme = (char *)strdup("PROGDIR:Resources/Themes/Default");
+ nsoption_setnull_charp(theme,
+ (char *)strdup("PROGDIR:Resources/Themes/Default"));
tree_set_icon_dir(strdup("ENV:Sys"));
- if((!option_arexx_dir) || (option_arexx_dir[0] == '\0'))
- option_arexx_dir = (char *)strdup("Rexx");
- if((!option_arexx_startup) || (option_arexx_startup[0] == '\0'))
- option_arexx_startup = (char *)strdup("Startup.nsrx");
+ nsoption_setnull_charp(arexx_dir, (char *)strdup("Rexx"));
- if((!option_arexx_shutdown) || (option_arexx_shutdown[0] == '\0'))
- option_arexx_shutdown = (char *)strdup("Shutdown.nsrx");
+ nsoption_setnull_charp(arexx_startup, (char *)strdup("Startup.nsrx"));
- if(!option_window_width) option_window_width = 800;
- if(!option_window_height) option_window_height = 600;
+ nsoption_setnull_charp(arexx_shutdown, (char *)strdup("Shutdown.nsrx"));
+
+ if(!nsoption_int(window_width)) nsoption_set_int(window_width, 800);
+ if(!nsoption_int(window_height)) nsoption_set_int(window_height, 600);
}
void ami_amiupdate(void)
@@ -554,8 +553,8 @@ void gui_init(int argc, char** argv)
window_list = NewObjList();
- urldb_load(option_url_file);
- urldb_load_cookies(option_cookie_file);
+ urldb_load(nsoption_charp(url_file));
+ urldb_load_cookies(nsoption_charp(cookie_file));
save_complete_init();
ami_theme_init();
@@ -568,15 +567,16 @@ void ami_openscreen(void)
ULONG id = 0;
ULONG compositing;
- if(option_screen_compositing == -1)
+ if (nsoption_int(screen_compositing) == -1)
compositing = ~0UL;
- else compositing = option_screen_compositing;
+ else compositing = nsoption_int(screen_compositing);
- if(!option_use_pubscreen || option_use_pubscreen[0] == '\0')
+ if (nsoption_charp(use_pubscreen) == NULL)
{
- if((option_modeid) && (strncmp(option_modeid,"0x",2) == 0))
+ if((nsoption_charp(modeid)) &&
+ (strncmp(nsoption_charp(modeid), "0x", 2) == 0))
{
- id = strtoul(option_modeid,NULL,0);
+ id = strtoul(nsoption_charp(modeid), NULL, 0);
}
else
{
@@ -589,10 +589,11 @@ void ami_openscreen(void)
ASLSM_MaxDepth,32,
TAG_DONE))
{
+ char *modeid = malloc(20);
id = screenmodereq->sm_DisplayID;
- option_modeid = malloc(20);
- sprintf(option_modeid,"0x%lx",id);
- options_write("PROGDIR:Resources/Options");
+ sprintf(modeid, "0x%lx", id);
+ nsoption_set_charp(modeid, modeid);
+ nsoption_write("PROGDIR:Resources/Options");
}
FreeAslRequest(screenmodereq);
}
@@ -619,14 +620,15 @@ void ami_openscreen(void)
}
else
{
- option_use_pubscreen = strdup("Workbench");
+ nsoption_set_charp(use_pubscreen,
+ strdup("Workbench"));
}
}
}
- if(option_use_pubscreen && option_use_pubscreen[0] != '\0')
+ if (nsoption_charp(use_pubscreen) != NULL)
{
- scrn = LockPubScreen(option_use_pubscreen);
+ scrn = LockPubScreen(nsoption_charp(use_pubscreen));
if(scrn == NULL)
{
@@ -668,18 +670,19 @@ static void gui_init2(int argc, char** argv)
glob = &browserglob;
/**/
- ami_hotlist_initialise(option_hotlist_file);
+ ami_hotlist_initialise(nsoption_charp(hotlist_file));
ami_cookies_initialise();
ami_global_history_initialise();
sslcert_init(tree_content_icon_name);
- search_web_provider_details(option_search_provider);
+ search_web_provider_details(nsoption_int(search_provider));
if(argc) // argc==0 is started from wb
{
if(args = ReadArgs(template,rarray,NULL))
{
- if(notalreadyrunning && (option_startup_no_window == false))
+ if (notalreadyrunning &&
+ (nsoption_bool(startup_no_window) == false))
ami_openscreenfirst();
if(rarray[A_URL])
@@ -708,7 +711,8 @@ static void gui_init2(int argc, char** argv)
int first=0,i=0;
char fullpath[1024];
- if(notalreadyrunning && (option_startup_no_window == false))
+ if (notalreadyrunning &&
+ (nsoption_bool(startup_no_window) == false))
ami_openscreenfirst();
for(i=0,wbarg=WBenchMsg->sm_ArgList;i<WBenchMsg->sm_NumArgs;i++,wbarg++)
@@ -739,8 +743,7 @@ static void gui_init2(int argc, char** argv)
}
}
- if ((!option_homepage_url) || (option_homepage_url[0] == '\0'))
- option_homepage_url = (char *)strdup(NETSURF_HOMEPAGE);
+ nsoption_setnull_charp(homepage_url, (char *)strdup(NETSURF_HOMEPAGE));
if(!notalreadyrunning)
{
@@ -753,7 +756,7 @@ static void gui_init2(int argc, char** argv)
}
else
{
- sendcmd = ASPrintf("OPEN \"%s\" NEW",option_homepage_url);
+ sendcmd = ASPrintf("OPEN \"%s\" NEW",nsoption_charp(homepage_url));
}
IDoMethod(arexx_obj,AM_EXECUTE,sendcmd,"NETSURF",NULL,NULL,NULL,NULL);
IDoMethod(arexx_obj,AM_EXECUTE,"TOFRONT","NETSURF",NULL,NULL,NULL,NULL);
@@ -772,7 +775,8 @@ static void gui_init2(int argc, char** argv)
{
ULONG noicon = TAG_IGNORE;
- if(option_hide_docky_icon) noicon = REGAPP_NoIcon;
+ if (nsoption_bool(hide_docky_icon))
+ noicon = REGAPP_NoIcon;
ami_appid = RegisterApplication(messages_get("NetSurf"),
REGAPP_URLIdentifier, "netsurf-browser.org",
@@ -802,8 +806,8 @@ static void gui_init2(int argc, char** argv)
if(applibport) applibsig = (1L << applibport->mp_SigBit);
}
- if(!bw && (option_startup_no_window == false))
- bw = browser_window_create(option_homepage_url, 0, 0, true,false);
+ if(!bw && (nsoption_bool(startup_no_window) == false))
+ bw = browser_window_create(nsoption_charp(homepage_url), 0, 0, true,false);
}
/** Normal entry point from OS */
@@ -835,14 +839,14 @@ int main(int argc, char** argv)
ami_gui_splash_close(splash_window);
- strncpy(script, option_arexx_dir, 1024);
- AddPart(script, option_arexx_startup, 1024);
+ strncpy(script, nsoption_charp(arexx_dir), 1024);
+ AddPart(script, nsoption_charp(arexx_startup), 1024);
ami_arexx_execute(script);
netsurf_main_loop();
- strncpy(script, option_arexx_dir, 1024);
- AddPart(script, option_arexx_shutdown, 1024);
+ strncpy(script, nsoption_charp(arexx_dir), 1024);
+ AddPart(script, nsoption_charp(arexx_shutdown), 1024);
ami_arexx_execute(script);
netsurf_exit();
@@ -1530,7 +1534,7 @@ void ami_handle_msg(void)
break;
case GID_ADDTAB:
- browser_window_create(option_homepage_url, gwin->bw, 0, true, true);
+ browser_window_create(nsoption_charp(homepage_url), gwin->bw, 0, true, true);
break;
case GID_URL:
@@ -1560,7 +1564,7 @@ void ami_handle_msg(void)
break;
case GID_HOME:
- browser_window_go(gwin->bw,option_homepage_url,NULL,true);
+ browser_window_go(gwin->bw,nsoption_charp(homepage_url),NULL,true);
break;
case GID_STOP:
@@ -1626,19 +1630,19 @@ void ami_handle_msg(void)
switch(nskey)
{
case 'n':
- if((option_kiosk_mode == false))
- browser_window_create(option_homepage_url, NULL,
+ if ((nsoption_bool(kiosk_mode) == false))
+ browser_window_create(nsoption_charp(homepage_url), NULL,
0, true, false);
break;
case 't':
- if((option_kiosk_mode == false))
- browser_window_create(option_homepage_url,
+ if((nsoption_bool(kiosk_mode) == false))
+ browser_window_create(nsoption_charp(homepage_url),
gwin->bw, 0, true, true);
break;
case 'k':
- if((option_kiosk_mode == false))
+ if((nsoption_bool(kiosk_mode) == false))
browser_window_destroy(gwin->bw);
break;
@@ -1656,7 +1660,7 @@ void ami_handle_msg(void)
break;
case 'q':
- if((option_kiosk_mode == false))
+ if((nsoption_bool(kiosk_mode) == false))
ami_quit_netsurf();
break;
@@ -1686,7 +1690,7 @@ void ami_handle_msg(void)
break;
case 'h':
- if((option_kiosk_mode == false))
+ if((nsoption_bool(kiosk_mode) == false))
ami_tree_open(hotlist_window, AMI_TREE_HOTLIST);
break;
@@ -1698,7 +1702,7 @@ void ami_handle_msg(void)
break;
/*
case 'u': // open url
- if((option_kiosk_mode == false))
+ if((nsoption_bool(kiosk_mode) == false))
ActivateGadget((struct Gadget *)gwin->objects[GID_URL],
gwin->win, NULL);
break;
@@ -1993,7 +1997,7 @@ void ami_handle_applib(void)
switch (applibmsg->type)
{
case APPLIBMT_NewBlankDoc:
- bw = browser_window_create(option_homepage_url, 0, 0, true, false);
+ bw = browser_window_create(nsoption_charp(homepage_url), 0, 0, true, false);
break;
case APPLIBMT_OpenDoc:
@@ -2017,7 +2021,7 @@ void ami_handle_applib(void)
}
else
{
- bw = browser_window_create(option_homepage_url, 0, 0, true, false);
+ bw = browser_window_create(nsoption_charp(homepage_url), 0, 0, true, false);
}
break;
@@ -2194,7 +2198,7 @@ void ami_switch_tab(struct gui_window_2 *gwin,bool redraw)
void ami_try_quit(void)
{
- if(option_close_no_quit == false)
+ if(nsoption_bool(close_no_quit) == false)
{
netsurf_quit = true;
return;
@@ -2259,9 +2263,9 @@ void gui_quit(void)
ami_theme_throbber_free();
- urldb_save(option_url_file);
- urldb_save_cookies(option_cookie_file);
- ami_hotlist_free(option_hotlist_file);
+ urldb_save(nsoption_charp(url_file));
+ urldb_save_cookies(nsoption_charp(cookie_file));
+ ami_hotlist_free(nsoption_charp(hotlist_file));
ami_cookies_free();
ami_global_history_free();
sslcert_cleanup();
@@ -2324,7 +2328,7 @@ void ami_update_buttons(struct gui_window_2 *gwin)
if(!browser_window_reload_available(gwin->bw))
reload=TRUE;
- if(option_kiosk_mode == false)
+ if(nsoption_bool(kiosk_mode) == false)
{
if(gwin->tabs <= 1)
{
@@ -2429,7 +2433,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
struct gui_window *gwin = NULL;
bool closegadg=TRUE;
struct Node *node;
- ULONG curx=option_window_x,cury=option_window_y,curw=option_window_width,curh=option_window_height;
+ ULONG curx=nsoption_int(window_x),cury=nsoption_int(window_y),curw=nsoption_int(window_width),curh=nsoption_int(window_height);
char nav_west[100],nav_west_s[100],nav_west_g[100];
char nav_east[100],nav_east_s[100],nav_east_g[100];
char stop[100],stop_s[100],stop_g[100];
@@ -2439,9 +2443,9 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
char addtab[100],addtab_s[100],addtab_g[100];
char tabthrobber[100];
- if(!scrn) ami_openscreenfirst();
+ if (!scrn) ami_openscreenfirst();
- if(option_kiosk_mode) new_tab = false;
+ if (nsoption_bool(kiosk_mode)) new_tab = false;
bw->scale = 1.0;
if(clone)
@@ -2484,7 +2488,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
TNA_CloseGadget, TRUE,
TAG_DONE);
- if(option_new_tab_last)
+ if(nsoption_bool(new_tab_last))
{
AddTail(&gwin->shared->tab_list, gwin->tab_node);
}
@@ -2503,7 +2507,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
CLICKTAB_Labels, &gwin->shared->tab_list,
TAG_DONE);
- if(option_new_tab_active)
+ if(nsoption_bool(new_tab_active))
{
RefreshSetGadgetAttrs((struct Gadget *)gwin->shared->objects[GID_TABS],gwin->shared->win,NULL,
CLICKTAB_Current,gwin->tab,
@@ -2516,7 +2520,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
gwin->shared->tabs++;
gwin->shared->next_tab++;
- if(option_new_tab_active) ami_switch_tab(gwin->shared,false);
+ if(nsoption_bool(new_tab_active)) ami_switch_tab(gwin->shared,false);
ami_update_buttons(gwin->shared);
@@ -2537,13 +2541,14 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
gwin->shared->search_ico_hook.h_Entry = (void *)ami_set_search_ico_render_hook;
gwin->shared->search_ico_hook.h_Data = gwin->shared;
- if(!option_kiosk_mode)
+ if(!nsoption_bool(kiosk_mode))
{
ULONG addtabclosegadget = TAG_IGNORE;
ULONG iconifygadget = FALSE;
- if(option_use_pubscreen && (locked_screen == TRUE) &&
- (strcmp(option_use_pubscreen,"Workbench") == 0))
+ if (nsoption_charp(use_pubscreen) &&
+ (locked_screen == TRUE) &&
+ (strcmp(nsoption_charp(use_pubscreen), "Workbench") == 0))
iconifygadget = TRUE;
ami_create_menu(gwin->shared);
@@ -2909,7 +2914,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
ICA_TARGET, ICTARGET_IDCMP,
TAG_DONE);
- if(option_kiosk_mode == false)
+ if(nsoption_bool(kiosk_mode) == false)
{
ULONG sz, size1, size2;
@@ -3031,7 +3036,7 @@ ULONG ami_get_border_gadget_balance(struct gui_window_2 *gwin, ULONG *size1, ULO
available_width = gwin->win->Width - scrn->WBorLeft - sz;
- gad1percent = option_toolbar_status_width / 10000.0;
+ gad1percent = nsoption_int(toolbar_status_width) / 10000.0;
*size1 = (ULONG)(available_width * gad1percent);
*size2 = (ULONG)(available_width * (1 - gad1percent));
@@ -3220,8 +3225,8 @@ void ami_do_redraw_tiled(struct gui_window_2 *gwin,
{
int x, y;
struct rect clip;
- int tile_x_scale = (int)(option_redraw_tile_size_x / gwin->bw->scale);
- int tile_y_scale = (int)(option_redraw_tile_size_y / gwin->bw->scale);
+ int tile_x_scale = (int)(nsoption_int(redraw_tile_size_x) / gwin->bw->scale);
+ int tile_y_scale = (int)(nsoption_int(redraw_tile_size_y) / gwin->bw->scale);
if(top < 0) {
height += top;
@@ -3255,13 +3260,13 @@ void ami_do_redraw_tiled(struct gui_window_2 *gwin,
for(y = top; y < (top + height); y += tile_y_scale) {
clip.y0 = 0;
- clip.y1 = option_redraw_tile_size_y;
+ clip.y1 = nsoption_int(redraw_tile_size_y);
if((((y - sy) * gwin->bw->scale) + clip.y1) > bbox->Height)
clip.y1 = bbox->Height - ((y - sy) * gwin->bw->scale);
for(x = left; x < (left + width); x += tile_x_scale) {
clip.x0 = 0;
- clip.x1 = option_redraw_tile_size_x;
+ clip.x1 = nsoption_int(redraw_tile_size_x);
if((((x - sx) * gwin->bw->scale) + clip.x1) > bbox->Width)
clip.x1 = bbox->Width - ((x - sx) * gwin->bw->scale);
@@ -3453,7 +3458,7 @@ void ami_do_redraw(struct gui_window_2 *g)
glob = &browserglob;
- if(option_direct_render == false)
+ if(nsoption_bool(direct_render) == false)
{
ami_do_redraw_tiled(g, hcurrent, vcurrent, width, height, hcurrent, vcurrent, bbox, &ctx);
}
@@ -3610,7 +3615,7 @@ void gui_window_set_scroll(struct gui_window *g, int sx, int sy)
}
g->shared->redraw_required = true;
- if(option_faster_scroll == true) g->shared->redraw_scroll = true;
+ if(nsoption_bool(faster_scroll) == true) g->shared->redraw_scroll = true;
else g->shared->redraw_scroll = false;
g->scrollx = sx;
@@ -3754,7 +3759,7 @@ void gui_window_set_icon(struct gui_window *g, hlcache_handle *icon)
struct IBox *bbox;
ULONG cur_tab = 0;
- if(option_kiosk_mode == true) return;
+ if(nsoption_bool(kiosk_mode) == true) return;
if(!g) return;
if(g->tab_node && (g->shared->tabs > 1)) GetAttr(CLICKTAB_Current,
@@ -3809,11 +3814,9 @@ void gui_window_set_search_ico(hlcache_handle *ico)
struct nsObject *nnode;
struct gui_window_2 *gwin;
char fname[100];
- struct bitmap *nsbm;
- bool free_bm = false;
if(IsMinListEmpty(window_list)) return;
- if(option_kiosk_mode == true) return;
+ if(nsoption_bool(kiosk_mode) == true) return;
if (ico == NULL) ico = search_web_ico();
if ((ico != NULL) && (content_get_bitmap(ico) != NULL))
@@ -3856,8 +3859,6 @@ void gui_window_set_search_ico(hlcache_handle *ico)
}
}
} while(node = nnode);
-
- if(bm && free_bm) bitmap_destroy(nsbm);
}
static uint32 ami_set_search_ico_render_hook(struct Hook *hook, APTR space,
@@ -3899,7 +3900,7 @@ void gui_window_place_caret(struct gui_window *g, int x, int y, int height)
g->c_y = y;
g->c_h = height;
- if((option_kiosk_mode == false))
+ if((nsoption_bool(kiosk_mode) == false))
OnMenu(g->shared->win, AMI_MENU_PASTE);
}
@@ -3911,7 +3912,7 @@ void gui_window_remove_caret(struct gui_window *g)
if(!g) return;
if(g->c_h == 0) return;
- if((option_kiosk_mode == false))
+ if((nsoption_bool(kiosk_mode) == false))
OffMenu(g->shared->win, AMI_MENU_PASTE);
ami_do_redraw_limits(g, g->shared->bw, g->c_x, g->c_y,
@@ -3982,7 +3983,7 @@ void ami_scroller_hook(struct Hook *hook,Object *object,struct IntuiMessage *msg
case GID_HSCROLL:
case OID_HSCROLL:
case OID_VSCROLL:
- if(option_faster_scroll == true) gwin->redraw_scroll = true;
+ if(nsoption_bool(faster_scroll) == true) gwin->redraw_scroll = true;
else gwin->redraw_scroll = false;
gwin->redraw_required = true;
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index 6b0becaaa..b66d48bc8 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -34,7 +34,7 @@
#include "amiga/gui.h"
#include "amiga/gui_options.h"
#include "utils/messages.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/utf8.h"
#include "desktop/searchweb.h"
@@ -376,7 +376,7 @@ void ami_gui_opts_open(void)
BOOL screenmodedisabled = FALSE, screennamedisabled = FALSE;
BOOL proxyhostdisabled = TRUE, proxyauthdisabled = TRUE;
BOOL disableanims, animspeeddisabled = FALSE, acceptlangdisabled = FALSE;
- BOOL scaleselected = option_scale_quality, scaledisabled = FALSE;
+ BOOL scaleselected = nsoption_bool(scale_quality), scaledisabled = FALSE;
BOOL download_notify_disabled = FALSE;
char animspeed[10];
struct TextAttr fontsans, fontserif, fontmono, fontcursive, fontfantasy, fontunicode;
@@ -388,9 +388,9 @@ void ami_gui_opts_open(void)
return;
}
- if(option_use_pubscreen && option_use_pubscreen[0] != '\0')
+ if(nsoption_charp(use_pubscreen))
{
- if(strcmp(option_use_pubscreen,"Workbench") == 0)
+ if(strcmp(nsoption_charp(use_pubscreen),"Workbench") == 0)
{
screenoptsselected = 1;
screennamedisabled = TRUE;
@@ -408,15 +408,15 @@ void ami_gui_opts_open(void)
screennamedisabled = TRUE;
}
- if((option_modeid) && (strncmp(option_modeid,"0x",2) == 0))
+ if((nsoption_charp(modeid)) && (strncmp(nsoption_charp(modeid),"0x",2) == 0))
{
- screenmodeid = strtoul(option_modeid,NULL,0);
+ screenmodeid = strtoul(nsoption_charp(modeid),NULL,0);
}
- if(option_http_proxy)
+ if(nsoption_bool(http_proxy))
{
- proxytype = option_http_proxy_auth + 1;
- switch(option_http_proxy_auth)
+ proxytype = nsoption_int(http_proxy_auth) + 1;
+ switch(nsoption_int(http_proxy_auth))
{
case OPTION_HTTP_PROXY_AUTH_BASIC:
case OPTION_HTTP_PROXY_AUTH_NTLM:
@@ -427,9 +427,9 @@ void ami_gui_opts_open(void)
}
}
- sprintf(animspeed,"%.2f",(float)(option_minimum_gif_delay/100.0));
+ sprintf(animspeed,"%.2f",(float)(nsoption_int(minimum_gif_delay)/100.0));
- if(option_animate_images)
+ if(nsoption_bool(animate_images))
{
disableanims = FALSE;
animspeeddisabled = FALSE;
@@ -440,7 +440,7 @@ void ami_gui_opts_open(void)
animspeeddisabled = TRUE;
}
- if(option_accept_lang_locale)
+ if(nsoption_bool(accept_lang_locale))
acceptlangdisabled = TRUE;
else
acceptlangdisabled = FALSE;
@@ -454,15 +454,15 @@ void ami_gui_opts_open(void)
if(ApplicationBase->lib_Version < 53)
{
download_notify_disabled = TRUE;
- option_download_notify = FALSE;
+ nsoption_set_bool(download_notify, FALSE);
}
- fontsans.ta_Name = ASPrintf("%s.font",option_font_sans);
- fontserif.ta_Name = ASPrintf("%s.font",option_font_serif);
- fontmono.ta_Name = ASPrintf("%s.font",option_font_mono);
- fontcursive.ta_Name = ASPrintf("%s.font",option_font_cursive);
- fontfantasy.ta_Name = ASPrintf("%s.font",option_font_fantasy);
- fontunicode.ta_Name = ASPrintf("%s.font",option_font_unicode);
+ fontsans.ta_Name = ASPrintf("%s.font", nsoption_charp(font_sans));
+ fontserif.ta_Name = ASPrintf("%s.font", nsoption_charp(font_serif));
+ fontmono.ta_Name = ASPrintf("%s.font", nsoption_charp(font_mono));
+ fontcursive.ta_Name = ASPrintf("%s.font", nsoption_charp(font_cursive));
+ fontfantasy.ta_Name = ASPrintf("%s.font", nsoption_charp(font_fantasy));
+ fontunicode.ta_Name = ASPrintf("%s.font", nsoption_charp(font_unicode));
fontsans.ta_Style = 0;
fontserif.ta_Style = 0;
@@ -522,7 +522,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_HOMEPAGE] = StringObject,
GA_ID, GID_OPTS_HOMEPAGE,
GA_RelVerify, TRUE,
- STRINGA_TextVal, option_homepage_url,
+ STRINGA_TextVal, nsoption_charp(homepage_url),
STRINGA_BufferPos,0,
StringEnd,
CHILD_Label, LabelObject,
@@ -556,7 +556,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_HIDEADS,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_HIDEADS],
- GA_Selected, option_block_ads,
+ GA_Selected, nsoption_bool(block_ads),
CheckBoxEnd,
LayoutEnd, // content blocking
LAYOUT_AddChild,VGroupObject,
@@ -567,14 +567,14 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_CONTENTLANG,
GA_RelVerify, TRUE,
GA_Disabled, acceptlangdisabled,
- STRINGA_TextVal, option_accept_language,
+ STRINGA_TextVal, nsoption_charp(accept_language),
STRINGA_BufferPos,0,
StringEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_FROMLOCALE] = CheckBoxObject,
GA_ID, GID_OPTS_FROMLOCALE,
GA_Text, gadlab[GID_OPTS_FROMLOCALE],
GA_RelVerify, TRUE,
- GA_Selected, option_accept_lang_locale,
+ GA_Selected, nsoption_bool(accept_lang_locale),
ButtonEnd,
// CHILD_WeightedWidth, 0,
LayoutEnd, // content language
@@ -588,7 +588,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_HISTORY] = IntegerObject,
GA_ID, GID_OPTS_CACHE_DISC,
GA_RelVerify, TRUE,
- INTEGER_Number, option_expire_url,
+ INTEGER_Number, nsoption_int(expire_url),
INTEGER_Minimum, 0,
INTEGER_Maximum, 366,
INTEGER_Arrows, TRUE,
@@ -612,13 +612,13 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_REFERRAL,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_REFERRAL],
- GA_Selected, option_send_referer,
+ GA_Selected, nsoption_bool(send_referer),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_FASTSCROLL] = CheckBoxObject,
GA_ID, GID_OPTS_FASTSCROLL,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_FASTSCROLL],
- GA_Selected, option_faster_scroll,
+ GA_Selected, nsoption_bool(faster_scroll),
CheckBoxEnd,
LayoutEnd, // misc
CHILD_WeightedHeight, 0,
@@ -655,7 +655,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_SCREENNAME,
GA_RelVerify, TRUE,
GA_Disabled,screennamedisabled,
- STRINGA_TextVal, option_use_pubscreen,
+ STRINGA_TextVal, nsoption_bool(use_pubscreen),
STRINGA_BufferPos,0,
StringEnd,
LayoutEnd,
@@ -670,7 +670,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_THEME] = GetFileObject,
GA_ID, GID_OPTS_THEME,
GA_RelVerify, TRUE,
- GETFILE_Drawer, option_theme,
+ GETFILE_Drawer, nsoption_charp(theme),
GETFILE_DrawersOnly, TRUE,
GETFILE_ReadOnly, TRUE,
GETFILE_FullFileExpand, FALSE,
@@ -685,13 +685,13 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_PTRTRUE,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_PTRTRUE],
- GA_Selected, option_truecolour_mouse_pointers,
+ GA_Selected, nsoption_bool(truecolour_mouse_pointers),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_PTROS] = CheckBoxObject,
GA_ID, GID_OPTS_PTROS,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_PTROS],
- GA_Selected, option_use_os_pointers,
+ GA_Selected, nsoption_bool(use_os_pointers),
CheckBoxEnd,
LayoutEnd, // mouse
CHILD_WeightedHeight,0,
@@ -725,14 +725,14 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_PROXY_HOST,
GA_RelVerify, TRUE,
GA_Disabled, proxyhostdisabled,
- STRINGA_TextVal, option_http_proxy_host,
+ STRINGA_TextVal, nsoption_charp(http_proxy_host),
STRINGA_BufferPos,0,
StringEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_PORT] = IntegerObject,
GA_ID, GID_OPTS_PROXY_PORT,
GA_RelVerify, TRUE,
GA_Disabled, proxyhostdisabled,
- INTEGER_Number, option_http_proxy_port,
+ INTEGER_Number, nsoption_charp(http_proxy_port),
INTEGER_Minimum, 1,
INTEGER_Maximum, 65535,
INTEGER_Arrows, FALSE,
@@ -750,7 +750,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_PROXY_USER,
GA_RelVerify, TRUE,
GA_Disabled, proxyauthdisabled,
- STRINGA_TextVal, option_http_proxy_auth_user,
+ STRINGA_TextVal, nsoption_charp(http_proxy_auth_user),
STRINGA_BufferPos,0,
StringEnd,
CHILD_Label, LabelObject,
@@ -760,7 +760,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_PROXY_PASS,
GA_RelVerify, TRUE,
GA_Disabled, proxyauthdisabled,
- STRINGA_TextVal, option_http_proxy_auth_pass,
+ STRINGA_TextVal, nsoption_charp(http_proxy_auth_pass),
STRINGA_BufferPos,0,
StringEnd,
CHILD_Label, LabelObject,
@@ -775,7 +775,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_FETCHMAX] = IntegerObject,
GA_ID, GID_OPTS_FETCHMAX,
GA_RelVerify, TRUE,
- INTEGER_Number, option_max_fetchers,
+ INTEGER_Number, nsoption_int(max_fetchers),
INTEGER_Minimum, 1,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -787,7 +787,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_FETCHHOST] = IntegerObject,
GA_ID, GID_OPTS_FETCHHOST,
GA_RelVerify, TRUE,
- INTEGER_Number, option_max_fetchers_per_host,
+ INTEGER_Number, nsoption_int(max_fetchers_per_host),
INTEGER_Minimum, 1,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -799,7 +799,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_FETCHCACHE] = IntegerObject,
GA_ID, GID_OPTS_FETCHCACHE,
GA_RelVerify, TRUE,
- INTEGER_Number, option_max_cached_fetch_handles,
+ INTEGER_Number, nsoption_int(max_cached_fetch_handles),
INTEGER_Minimum, 1,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -827,7 +827,7 @@ void ami_gui_opts_open(void)
GA_RelVerify, TRUE,
CHOOSER_PopUp, TRUE,
CHOOSER_LabelArray, nativebmopts,
- CHOOSER_Selected, option_cache_bitmaps,
+ CHOOSER_Selected, nsoption_int(cache_bitmaps),
ChooserEnd,
CHILD_Label, LabelObject,
LABEL_Text, gadlab[GID_OPTS_NATIVEBM],
@@ -880,7 +880,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_DPI_Y] = IntegerObject,
GA_ID, GID_OPTS_DPI_Y,
GA_RelVerify, TRUE,
- INTEGER_Number, option_amiga_ydpi,
+ INTEGER_Number, nsoption_int(amiga_ydpi),
INTEGER_Minimum, 60,
INTEGER_Maximum, 150,
INTEGER_Arrows, TRUE,
@@ -967,7 +967,7 @@ void ami_gui_opts_open(void)
GA_RelVerify, TRUE,
CHOOSER_PopUp, TRUE,
CHOOSER_LabelArray, fontopts,
- CHOOSER_Selected, option_font_default - PLOT_FONT_FAMILY_SANS_SERIF,
+ CHOOSER_Selected, nsoption_int(font_default) - PLOT_FONT_FAMILY_SANS_SERIF,
ChooserEnd,
CHILD_Label, LabelObject,
LABEL_Text, gadlab[GID_OPTS_FONT_DEFAULT],
@@ -983,7 +983,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_SIZE] = IntegerObject,
GA_ID, GID_OPTS_FONT_SIZE,
GA_RelVerify, TRUE,
- INTEGER_Number, option_font_size / 10,
+ INTEGER_Number, nsoption_int(font_size) / 10,
INTEGER_Minimum, 1,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -1001,7 +1001,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_MINSIZE] = IntegerObject,
GA_ID, GID_OPTS_FONT_MINSIZE,
GA_RelVerify, TRUE,
- INTEGER_Number, option_font_min_size / 10,
+ INTEGER_Number, nsoption_int(font_min_size) / 10,
INTEGER_Minimum, 1,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -1033,7 +1033,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_CACHE_MEM] = IntegerObject,
GA_ID, GID_OPTS_CACHE_MEM,
GA_RelVerify, TRUE,
- INTEGER_Number, option_memory_cache_size / 1048576,
+ INTEGER_Number, nsoption_int(memory_cache_size) / 1048576,
INTEGER_Minimum, 0,
INTEGER_Maximum, 2048,
INTEGER_Arrows, TRUE,
@@ -1058,7 +1058,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_CACHE_DISC,
GA_RelVerify, TRUE,
GA_Disabled, TRUE,
- INTEGER_Number, option_disc_cache_age,
+ INTEGER_Number, nsoption_int(disc_cache_age),
INTEGER_Minimum, 0,
INTEGER_Maximum, 366,
INTEGER_Arrows, TRUE,
@@ -1091,20 +1091,20 @@ void ami_gui_opts_open(void)
GA_RelVerify, TRUE,
GA_Disabled, FALSE,
GA_Text, gadlab[GID_OPTS_OVERWRITE],
- GA_Selected, option_ask_overwrite,
+ GA_Selected, nsoption_bool(ask_overwrite),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_NOTIFY] = CheckBoxObject,
GA_ID, GID_OPTS_NOTIFY,
GA_RelVerify, TRUE,
GA_Disabled, download_notify_disabled,
GA_Text, gadlab[GID_OPTS_NOTIFY],
- GA_Selected, option_download_notify,
+ GA_Selected, nsoption_bool(download_notify),
CheckBoxEnd,
LayoutEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_DLDIR] = GetFileObject,
GA_ID, GID_OPTS_DLDIR,
GA_RelVerify, TRUE,
- GETFILE_Drawer, option_download_dir,
+ GETFILE_Drawer, nsoption_charp(download_dir),
GETFILE_DrawersOnly, TRUE,
GETFILE_ReadOnly, TRUE,
GETFILE_FullFileExpand, FALSE,
@@ -1123,19 +1123,19 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_TAB_ACTIVE,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_TAB_ACTIVE],
- GA_Selected, !option_new_tab_active,
+ GA_Selected, !nsoption_bool(new_tab_active),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_LAST] = CheckBoxObject,
GA_ID, GID_OPTS_TAB_LAST,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_TAB_LAST],
- GA_Selected, option_new_tab_last,
+ GA_Selected, nsoption_bool(new_tab_last),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_2] = CheckBoxObject,
GA_ID, GID_OPTS_TAB_2,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_TAB_2],
- GA_Selected, option_button_2_tab,
+ GA_Selected, nsoption_bool(button_2_tab),
CheckBoxEnd,
LayoutEnd, // tabbed browsing
@@ -1147,19 +1147,19 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_STARTUP_NO_WIN,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_STARTUP_NO_WIN],
- GA_Selected, option_startup_no_window,
+ GA_Selected, nsoption_bool(startup_no_window),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_CLOSE_NO_QUIT] = CheckBoxObject,
GA_ID, GID_OPTS_CLOSE_NO_QUIT,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_CLOSE_NO_QUIT],
- GA_Selected, option_close_no_quit,
+ GA_Selected, nsoption_bool(close_no_quit),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_DOCKY] = CheckBoxObject,
GA_ID, GID_OPTS_DOCKY,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_DOCKY],
- GA_Selected, !option_hide_docky_icon,
+ GA_Selected, !nsoption_bool(hide_docky_icon),
CheckBoxEnd,
LayoutEnd, // behaviour
CHILD_WeightedHeight, 0,
@@ -1175,7 +1175,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_CLIPBOARD,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_CLIPBOARD],
- GA_Selected, option_utf8_clipboard,
+ GA_Selected, nsoption_bool(utf8_clipboard),
CheckBoxEnd,
LayoutEnd, // clipboard
CHILD_WeightedHeight, 0,
@@ -1188,7 +1188,7 @@ void ami_gui_opts_open(void)
GA_RelVerify, TRUE,
CHOOSER_PopUp, TRUE,
CHOOSER_LabelArray, websearch_list,
- CHOOSER_Selected, option_search_provider,
+ CHOOSER_Selected, nsoption_int(search_provider),
CHOOSER_MaxLabels, 40,
ChooserEnd,
CHILD_Label, LabelObject,
@@ -1207,7 +1207,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_CMENU_ENABLE,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_CMENU_ENABLE],
- GA_Selected, option_context_menu,
+ GA_Selected, nsoption_bool(context_menu),
CheckBoxEnd,
LayoutEnd, // context menus
CHILD_WeightedHeight, 0,
@@ -1230,7 +1230,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_TOP] = IntegerObject,
GA_ID, GID_OPTS_MARGIN_TOP,
GA_RelVerify, TRUE,
- INTEGER_Number, option_margin_top,
+ INTEGER_Number, nsoption_int(margin_top),
INTEGER_Minimum, 0,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -1248,7 +1248,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_LEFT] = IntegerObject,
GA_ID, GID_OPTS_MARGIN_LEFT,
GA_RelVerify, TRUE,
- INTEGER_Number, option_margin_left,
+ INTEGER_Number, nsoption_int(margin_left),
INTEGER_Minimum, 0,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -1266,7 +1266,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_BOTTOM] = IntegerObject,
GA_ID, GID_OPTS_MARGIN_BOTTOM,
GA_RelVerify, TRUE,
- INTEGER_Number, option_margin_bottom,
+ INTEGER_Number, nsoption_int(margin_bottom),
INTEGER_Minimum, 0,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -1284,7 +1284,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_RIGHT] = IntegerObject,
GA_ID, GID_OPTS_MARGIN_RIGHT,
GA_RelVerify, TRUE,
- INTEGER_Number, option_margin_right,
+ INTEGER_Number, nsoption_int(margin_right),
INTEGER_Minimum, 0,
INTEGER_Maximum, 99,
INTEGER_Arrows, TRUE,
@@ -1308,7 +1308,7 @@ void ami_gui_opts_open(void)
LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_SCALE] = IntegerObject,
GA_ID, GID_OPTS_EXPORT_SCALE,
GA_RelVerify, TRUE,
- INTEGER_Number, option_export_scale,
+ INTEGER_Number, nsoption_int(export_scale),
INTEGER_Minimum, 0,
INTEGER_Maximum, 100,
INTEGER_Arrows, TRUE,
@@ -1331,19 +1331,19 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_EXPORT_NOIMAGES,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_EXPORT_NOIMAGES],
- GA_Selected, option_suppress_images,
+ GA_Selected, nsoption_bool(suppress_images),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_NOBKG] = CheckBoxObject,
GA_ID, GID_OPTS_EXPORT_NOBKG,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_EXPORT_NOBKG],
- GA_Selected, option_remove_backgrounds,
+ GA_Selected, nsoption_bool(remove_backgrounds),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_LOOSEN] = CheckBoxObject,
GA_ID, GID_OPTS_EXPORT_LOOSEN,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_EXPORT_LOOSEN],
- GA_Selected, option_enable_loosening,
+ GA_Selected, nsoption_bool(enable_loosening),
CheckBoxEnd,
LayoutEnd, // appearance
CHILD_WeightedHeight, 0,
@@ -1355,14 +1355,14 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_EXPORT_COMPRESS,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_EXPORT_COMPRESS],
- GA_Selected, option_enable_PDF_compression,
+ GA_Selected, nsoption_bool(enable_PDF_compression),
CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_PASSWORD] = CheckBoxObject,
GA_ID, GID_OPTS_EXPORT_PASSWORD,
GA_RelVerify, TRUE,
GA_Disabled, TRUE,
GA_Text, gadlab[GID_OPTS_EXPORT_PASSWORD],
- GA_Selected, option_enable_PDF_password,
+ GA_Selected, nsoption_bool(enable_PDF_password),
CheckBoxEnd,
LayoutEnd, // export
CHILD_WeightedHeight, 0,
@@ -1406,244 +1406,303 @@ void ami_gui_opts_use(void)
char *dot;
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_HOMEPAGE],(ULONG *)&data);
- if(option_homepage_url) free(option_homepage_url);
- option_homepage_url = (char *)strdup((char *)data);
+ nsoption_set_charp(homepage_url, (char *)strdup((char *)data));
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_CONTENTLANG],(ULONG *)&data);
- if(option_accept_language) free(option_accept_language);
- option_accept_language = (char *)strdup((char *)data);
+ nsoption_set_charp(accept_language, (char *)strdup((char *)data));
GetAttr(GA_Selected, gow->objects[GID_OPTS_FROMLOCALE],(ULONG *)&data);
- if(data) option_accept_lang_locale = true;
- else option_accept_lang_locale = false;
+ if (data) {
+ nsoption_set_bool(accept_lang_locale, true);
+ } else {
+ nsoption_set_bool(accept_lang_locale, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_HIDEADS],(ULONG *)&data);
- if(data) option_block_ads = true;
- else option_block_ads = false;
+ if (data) {
+ nsoption_set_bool(block_ads, true);
+ } else {
+ nsoption_set_bool(block_ads, false);
+ }
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_HISTORY],(ULONG *)&option_expire_url);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_HISTORY],(ULONG *)&nsoption_int(expire_url));
GetAttr(GA_Selected,gow->objects[GID_OPTS_REFERRAL],(ULONG *)&data);
- if(data) option_send_referer = true;
- else option_send_referer = false;
+ if (data) {
+ nsoption_set_bool(send_referer, true);
+ } else {
+ nsoption_set_bool(send_referer, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_FASTSCROLL],(ULONG *)&data);
- if(data) option_faster_scroll = true;
- else option_faster_scroll = false;
+ if (data) {
+ nsoption_set_bool(faster_scroll, true);
+ } else {
+ nsoption_set_bool(faster_scroll, false);
+ }
GetAttr(RADIOBUTTON_Selected,gow->objects[GID_OPTS_SCREEN],(ULONG *)&data);
switch(data)
{
case 0:
- if(option_use_pubscreen) free(option_use_pubscreen);
- option_use_pubscreen = NULL;
- break;
+ nsoption_set_charp(use_pubscreen, NULL);
+ break;
case 1:
- if(option_use_pubscreen) free(option_use_pubscreen);
- option_use_pubscreen = (char *)strdup("Workbench");
- break;
+ nsoption_set_charp(use_pubscreen, (char *)strdup("Workbench"));
+ break;
case 2:
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_SCREENNAME],(ULONG *)&data);
- if(option_use_pubscreen) free(option_use_pubscreen);
- option_use_pubscreen = (char *)strdup((char *)data);
- break;
+ nsoption_set_charp(use_pubscreen, (char *)strdup((char *)data));
+ break;
}
GetAttr(GETSCREENMODE_DisplayID, gow->objects[GID_OPTS_SCREENMODE], (ULONG *)&id);
if(id)
{
- if(option_modeid) free(option_modeid);
- option_modeid = malloc(20);
- sprintf(option_modeid,"0x%lx", id);
+ char *modeid = malloc(20);
+ sprintf(modeid,"0x%lx", id);
+ nsoption_set_charp(modeid, modeid);
}
GetAttr(GETFILE_Drawer,gow->objects[GID_OPTS_THEME],(ULONG *)&data);
- if(option_theme) free(option_theme);
- option_theme = (char *)strdup((char *)data);
+ nsoption_set_charp(theme, (char *)strdup((char *)data));
GetAttr(GA_Selected,gow->objects[GID_OPTS_PTRTRUE],(ULONG *)&data);
- if(data) option_truecolour_mouse_pointers = true;
- else option_truecolour_mouse_pointers = false;
+ if (data) {
+ nsoption_set_bool(truecolour_mouse_pointers, true);
+ } else {
+ nsoption_set_bool(truecolour_mouse_pointers, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_PTROS],(ULONG *)&data);
- if(data) option_use_os_pointers = true;
- else option_use_os_pointers = false;
+ if (data) {
+ nsoption_set_bool(use_os_pointers, true);
+ } else {
+ nsoption_set_bool(use_os_pointers, false);
+ }
GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_PROXY],(ULONG *)&data);
if(data)
{
- option_http_proxy = true;
- option_http_proxy_auth = data - 1;
+ nsoption_set_bool(http_proxy, true);
+ nsoption_set_int(http_proxy_auth, data - 1);
}
else
{
- option_http_proxy = false;
+ nsoption_set_bool(http_proxy, false);
}
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_HOST],(ULONG *)&data);
- if(option_http_proxy_host) free(option_http_proxy_host);
- option_http_proxy_host = (char *)strdup((char *)data);
+ nsoption_set_charp(http_proxy_host, (char *)strdup((char *)data));
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_PROXY_PORT],(ULONG *)&option_http_proxy_port);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_PROXY_PORT],(ULONG *)&nsoption_int(http_proxy_port));
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_USER],(ULONG *)&data);
- if(option_http_proxy_auth_user) free(option_http_proxy_auth_user);
- option_http_proxy_auth_user = (char *)strdup((char *)data);
+ nsoption_set_charp(http_proxy_auth_user, (char *)strdup((char *)data));
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_PASS],(ULONG *)&data);
- if(option_http_proxy_auth_pass) free(option_http_proxy_auth_pass);
- option_http_proxy_auth_pass = (char *)strdup((char *)data);
+ nsoption_set_charp(http_proxy_auth_pass, (char *)strdup((char *)data));
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHMAX],(ULONG *)&option_max_fetchers);
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHHOST],(ULONG *)&option_max_fetchers_per_host);
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHCACHE],(ULONG *)&option_max_cached_fetch_handles);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHMAX],(ULONG *)&nsoption_int(max_fetchers));
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHHOST],(ULONG *)&nsoption_int(max_fetchers_per_host));
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHCACHE],(ULONG *)&nsoption_int(max_cached_fetch_handles));
- GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_NATIVEBM],(ULONG *)&option_cache_bitmaps);
+ GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_NATIVEBM],(ULONG *)&nsoption_int(cache_bitmaps));
GetAttr(GA_Selected,gow->objects[GID_OPTS_SCALEQ],(ULONG *)&data);
- if(data) option_scale_quality = true;
- else option_scale_quality = false;
+ if (data) {
+ nsoption_set_bool(scale_quality, true);
+ } else {
+ nsoption_set_bool(scale_quality, false);
+ }
GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_ANIMSPEED],(ULONG *)&data);
- animspeed = strtof((char *)data,NULL);
- option_minimum_gif_delay = (int)(animspeed * 100);
+ animspeed = strtof((char *)data, NULL);
+ nsoption_set_int(minimum_gif_delay, (int)(animspeed * 100));
GetAttr(GA_Selected,gow->objects[GID_OPTS_ANIMDISABLE],(ULONG *)&data);
- if(data) option_animate_images = false;
- else option_animate_images = true;
+ if(data) {
+ nsoption_set_bool(animate_images, false);
+ } else {
+ nsoption_set_bool(animate_images, true);
+ }
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_DPI_Y],(ULONG *)&option_amiga_ydpi);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_DPI_Y],(ULONG *)&nsoption_int(amiga_ydpi));
ami_font_setdevicedpi(id); // id set above
GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_SANS],(ULONG *)&data);
tattr = (struct TextAttr *)data;
- if(option_font_sans) free(option_font_sans);
+
if(dot = strrchr(tattr->ta_Name,'.')) *dot = '\0';
- option_font_sans = (char *)strdup((char *)tattr->ta_Name);
+ nsoption_set_charp(font_sans, (char *)strdup((char *)tattr->ta_Name));
GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_SERIF],(ULONG *)&data);
tattr = (struct TextAttr *)data;
- if(option_font_serif) free(option_font_serif);
+
if(dot = strrchr(tattr->ta_Name,'.')) *dot = '\0';
- option_font_serif = (char *)strdup((char *)tattr->ta_Name);
+ nsoption_set_charp(font_serif, (char *)strdup((char *)tattr->ta_Name));
GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_MONO],(ULONG *)&data);
tattr = (struct TextAttr *)data;
- if(option_font_mono) free(option_font_mono);
+
if(dot = strrchr(tattr->ta_Name,'.')) *dot = '\0';
- option_font_mono = (char *)strdup((char *)tattr->ta_Name);
+ nsoption_set_charp(font_mono, (char *)strdup((char *)tattr->ta_Name));
GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_CURSIVE],(ULONG *)&data);
tattr = (struct TextAttr *)data;
- if(option_font_cursive) free(option_font_cursive);
+
if(dot = strrchr(tattr->ta_Name,'.')) *dot = '\0';
- option_font_cursive = (char *)strdup((char *)tattr->ta_Name);
+ nsoption_set_charp(font_cursive, (char *)strdup((char *)tattr->ta_Name));
GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_FANTASY],(ULONG *)&data);
tattr = (struct TextAttr *)data;
- if(option_font_fantasy) free(option_font_fantasy);
+
if(dot = strrchr(tattr->ta_Name,'.')) *dot = '\0';
- option_font_fantasy = (char *)strdup((char *)tattr->ta_Name);
+ nsoption_set_charp(font_fantasy, (char *)strdup((char *)tattr->ta_Name));
GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_UNICODE],(ULONG *)&data);
tattr = (struct TextAttr *)data;
- if(option_font_unicode) free(option_font_unicode);
+
if(dot = strrchr(tattr->ta_Name,'.')) *dot = '\0';
- option_font_unicode = (char *)strdup((char *)tattr->ta_Name);
+ nsoption_set_charp(font_unicode, (char *)strdup((char *)tattr->ta_Name));
- GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_FONT_DEFAULT],(ULONG *)&option_font_default);
- option_font_default += PLOT_FONT_FAMILY_SANS_SERIF;
+ GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_FONT_DEFAULT],(ULONG *)&nsoption_int(font_default));
+ nsoption_set_int(font_default, nsoption_int(font_default) + PLOT_FONT_FAMILY_SANS_SERIF);
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FONT_SIZE],(ULONG *)&option_font_size);
- option_font_size *= 10;
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FONT_SIZE],(ULONG *)&nsoption_int(font_size));
+ nsoption_set_int(font_size, nsoption_int(font_size) * 10);
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FONT_MINSIZE],(ULONG *)&option_font_min_size);
- option_font_min_size *= 10;
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FONT_MINSIZE],(ULONG *)&nsoption_int(font_min_size));
+ nsoption_set_int(font_min_size, nsoption_int(font_min_size) * 10);
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_CACHE_MEM],(ULONG *)&option_memory_cache_size);
- option_memory_cache_size *= 1048576;
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_CACHE_MEM],(ULONG *)&nsoption_int(memory_cache_size));
+ nsoption_set_int(memory_cache_size, nsoption_int(memory_cache_size) * 1048576);
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_CACHE_DISC],(ULONG *)&option_disc_cache_age);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_CACHE_DISC],(ULONG *)&nsoption_int(disc_cache_age));
GetAttr(GA_Selected,gow->objects[GID_OPTS_OVERWRITE],(ULONG *)&data);
- if(data) option_ask_overwrite = true;
- else option_ask_overwrite = false;
+ if (data) {
+ nsoption_set_bool(ask_overwrite, true);
+ } else {
+ nsoption_set_bool(ask_overwrite, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_NOTIFY],(ULONG *)&data);
- if(data) option_download_notify = true;
- else option_download_notify = false;
+ if (data) {
+ nsoption_set_bool(download_notify, true);
+ } else {
+ nsoption_set_bool(download_notify, false);
+ }
GetAttr(GETFILE_Drawer,gow->objects[GID_OPTS_DLDIR],(ULONG *)&data);
- if(option_download_dir) free(option_download_dir);
- option_download_dir = (char *)strdup((char *)data);
+ nsoption_set_charp(download_dir, (char *)strdup((char *)data));
GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_ACTIVE],(ULONG *)&data);
- if(data) option_new_tab_active = false;
- else option_new_tab_active = true;
+ if (data) {
+ nsoption_set_bool(new_tab_active, false);
+ } else {
+ nsoption_set_bool(new_tab_active, true);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_LAST],(ULONG *)&data);
- if(data) option_new_tab_last = true;
- else option_new_tab_last = false;
+ if (data) {
+ nsoption_set_bool(new_tab_last, true);
+ } else {
+ nsoption_set_bool(new_tab_last, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_2],(ULONG *)&data);
- if(data) option_button_2_tab = true;
- else option_button_2_tab = false;
+ if (data) {
+ nsoption_set_bool(button_2_tab, true);
+ } else {
+ nsoption_set_bool(button_2_tab, false);
+ }
- GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_SEARCH_PROV],(ULONG *)&option_search_provider);
- search_web_provider_details(option_search_provider);
+ GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_SEARCH_PROV],(ULONG *)&nsoption_int(search_provider));
+ search_web_provider_details(nsoption_int(search_provider));
search_web_retrieve_ico(false);
GetAttr(GA_Selected,gow->objects[GID_OPTS_CLIPBOARD],(ULONG *)&data);
- if(data) option_utf8_clipboard = true;
- else option_utf8_clipboard = false;
+ if (data) {
+ nsoption_set_bool(utf8_clipboard, true);
+ } else {
+ nsoption_set_bool(utf8_clipboard, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_CMENU_ENABLE],(ULONG *)&data);
- if(data) option_context_menu = true;
- else option_context_menu = false;
+ if (data) {
+ nsoption_set_bool(context_menu, true);
+ } else {
+ nsoption_set_bool(context_menu, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_STARTUP_NO_WIN],(ULONG *)&data);
- if(data) option_startup_no_window = true;
- else option_startup_no_window = false;
+ if (data) {
+ nsoption_set_bool(startup_no_window, true);
+ } else {
+ nsoption_set_bool(startup_no_window, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_CLOSE_NO_QUIT],(ULONG *)&data);
- if(data) option_close_no_quit = true;
- else option_close_no_quit = false;
+ if (data) {
+ nsoption_set_bool(close_no_quit, true);
+ } else {
+ nsoption_set_bool(close_no_quit, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_DOCKY],(ULONG *)&data);
- if(data) option_hide_docky_icon = false;
- else option_hide_docky_icon = true;
+ if (data) {
+ nsoption_set_bool(hide_docky_icon, false);
+ } else {
+ nsoption_set_bool(hide_docky_icon, true);
+ }
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_TOP],(ULONG *)&option_margin_top);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_TOP],(ULONG *)&nsoption_int(margin_top));
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_LEFT],(ULONG *)&option_margin_left);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_LEFT],(ULONG *)&nsoption_int(margin_left));
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_BOTTOM],(ULONG *)&option_margin_bottom);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_BOTTOM],(ULONG *)&nsoption_int(margin_bottom));
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_RIGHT],(ULONG *)&option_margin_right);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_RIGHT],(ULONG *)&nsoption_int(margin_right));
- GetAttr(INTEGER_Number,gow->objects[GID_OPTS_EXPORT_SCALE],(ULONG *)&option_export_scale);
+ GetAttr(INTEGER_Number,gow->objects[GID_OPTS_EXPORT_SCALE],(ULONG *)&nsoption_int(export_scale));
GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_NOIMAGES],(ULONG *)&data);
- if(data) option_suppress_images = true;
- else option_suppress_images = false;
+ if (data) {
+ nsoption_set_bool(suppress_images, true);
+ } else {
+ nsoption_set_bool(suppress_images, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_NOBKG],(ULONG *)&data);
- if(data) option_remove_backgrounds = true;
- else option_remove_backgrounds = false;
+ if (data) {
+ nsoption_set_bool(remove_backgrounds, true);
+ } else {
+ nsoption_set_bool(remove_backgrounds, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_LOOSEN],(ULONG *)&data);
- if(data) option_enable_loosening = true;
- else option_enable_loosening = false;
+ if (data) {
+ nsoption_set_bool(enable_loosening, true);
+ } else {
+ nsoption_set_bool(enable_loosening, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_COMPRESS],(ULONG *)&data);
- if(data) option_enable_PDF_compression = true;
- else option_enable_PDF_compression = false;
+ if (data) {
+ nsoption_set_bool(enable_PDF_compression, true);
+ } else {
+ nsoption_set_bool(enable_PDF_compression, false);
+ }
GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_PASSWORD],(ULONG *)&data);
- if(data) option_enable_PDF_password = true;
- else option_enable_PDF_password = false;
+ if (data) {
+ nsoption_set_bool(enable_PDF_password, true);
+ } else {
+ nsoption_set_bool(enable_PDF_password, false);
+ }
}
void ami_gui_opts_close(void)
@@ -1675,7 +1734,7 @@ BOOL ami_gui_opts_event(void)
{
case GID_OPTS_SAVE:
ami_gui_opts_use();
- options_write("PROGDIR:Resources/Options");
+ nsoption_write("PROGDIR:Resources/Options");
ami_gui_opts_close();
return TRUE;
break;
@@ -1852,9 +1911,9 @@ STRPTR *ami_gui_opts_websearch(void)
websearchlist = AllocVec(200, MEMF_CLEAR);
- if (option_search_engines_file == NULL) return websearchlist;
+ if (nsoption_charp(search_engines_file) == NULL) return websearchlist;
- FILE *f = fopen(option_search_engines_file, "r");
+ FILE *f = fopen(nsoption_charp(search_engines_file), "r");
if (f == NULL) return websearchlist;
while (fgets(buf, sizeof(buf), f) != NULL) {
diff --git a/amiga/menu.c b/amiga/menu.c
index 92f366c95..60858823e 100755
--- a/amiga/menu.c
+++ b/amiga/menu.c
@@ -50,7 +50,7 @@
#include "amiga/history_local.h"
#include "amiga/hotlist.h"
#include "amiga/menu.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/print.h"
#include "amiga/search.h"
#include "amiga/theme.h"
@@ -300,8 +300,8 @@ struct NewMenu *ami_create_menu(struct gui_window_2 *gwin)
ami_menu_arexx_scan(gwin);
/* Set up scheduler to refresh the hotlist menu */
- if(option_menu_refresh > 0)
- schedule(option_menu_refresh, (void *)ami_menu_refresh, gwin);
+ if(nsoption_int(menu_refresh) > 0)
+ schedule(nsoption_int(menu_refresh), (void *)ami_menu_refresh, gwin);
return(gwin->menu);
}
@@ -316,7 +316,7 @@ void ami_menu_arexx_scan(struct gui_window_2 *gwin)
LONG cont;
struct ExAllData *ead;
- if(lock = Lock(option_arexx_dir,SHARED_LOCK))
+ if(lock = Lock(nsoption_charp(arexx_dir), SHARED_LOCK))
{
if(buffer = AllocVec(1024,MEMF_PRIVATE | MEMF_CLEAR))
{
@@ -457,11 +457,11 @@ void ami_menupick(ULONG code,struct gui_window_2 *gwin,struct MenuItem *item)
switch(itemnum)
{
case 0: // new window
- bw = browser_window_create(option_homepage_url, NULL, 0, true, false);
+ bw = browser_window_create(nsoption_charp(homepage_url), NULL, 0, true, false);
break;
case 1: // new tab
- bw = browser_window_create(option_homepage_url, gwin->bw, 0, true, true);
+ bw = browser_window_create(nsoption_charp(homepage_url), gwin->bw, 0, true, true);
break;
case 3: // open local file
@@ -680,14 +680,14 @@ void ami_menupick(ULONG code,struct gui_window_2 *gwin,struct MenuItem *item)
break;
case 2: // snapshot
- option_window_x = gwin->win->LeftEdge;
- option_window_y = gwin->win->TopEdge;
- option_window_width = gwin->win->Width;
- option_window_height = gwin->win->Height;
+ nsoption_set_int(window_x, gwin->win->LeftEdge);
+ nsoption_set_int(window_y, gwin->win->TopEdge);
+ nsoption_set_int(window_width, gwin->win->Width);
+ nsoption_set_int(window_height, gwin->win->Height);
break;
case 3: // save settings
- options_write("PROGDIR:Resources/Options");
+ nsoption_write("PROGDIR:Resources/Options");
break;
}
break;
@@ -700,7 +700,7 @@ void ami_menupick(ULONG code,struct gui_window_2 *gwin,struct MenuItem *item)
ASLFR_TitleText,messages_get("NetSurf"),
ASLFR_Screen,scrn,
ASLFR_DoSaveMode,FALSE,
- ASLFR_InitialDrawer,option_arexx_dir,
+ ASLFR_InitialDrawer,nsoption_charp(arexx_dir),
ASLFR_InitialPattern,"#?.nsrx",
TAG_DONE))
{
@@ -719,7 +719,7 @@ void ami_menupick(ULONG code,struct gui_window_2 *gwin,struct MenuItem *item)
{
if(temp = AllocVec(1024,MEMF_PRIVATE | MEMF_CLEAR))
{
- strcpy(temp,option_arexx_dir);
+ strcpy(temp,nsoption_charp(arexx_dir));
AddPart(temp,GTMENUITEM_USERDATA(item),1024);
ami_arexx_execute(temp);
FreeVec(temp);
@@ -735,7 +735,7 @@ void ami_menu_update_disabled(struct gui_window *g, hlcache_handle *c)
{
struct Window *win = g->shared->win;
- if(option_kiosk_mode == true) return;
+ if(nsoption_bool(kiosk_mode) == true) return;
OffMenu(win,AMI_MENU_CUT);
OffMenu(win,AMI_MENU_COPY);
diff --git a/amiga/options.h b/amiga/options.h
index fe0487560..1c260c59e 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -16,165 +16,171 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#ifndef _NETSURF_DESKTOP_OPTIONS_INCLUDING_
+#error "Frontend options header cannot be included directly"
+#endif
+
#ifndef AMIGA_OPTIONS_H
#define AMIGA_OPTIONS_H
-#include "desktop/options.h"
-extern char *option_url_file;
-extern char *option_hotlist_file;
-extern char *option_use_pubscreen;
-extern char *option_modeid;
-extern int option_screen_compositing;
-extern int option_cache_bitmaps;
-extern char *option_theme;
-extern bool option_utf8_clipboard;
-extern bool option_context_menu;
-extern bool option_truecolour_mouse_pointers;
-extern bool option_use_os_pointers;
-extern bool option_new_tab_active;
-extern bool option_new_tab_last;
-extern bool option_kiosk_mode;
-extern char *option_search_engines_file;
-extern char *option_arexx_dir;
-extern char *option_arexx_startup;
-extern char *option_arexx_shutdown;
-extern char *option_download_dir;
-extern bool option_download_notify;
-extern bool option_faster_scroll;
-extern bool option_scale_quality;
-extern bool option_ask_overwrite;
-extern int option_printer_unit;
-extern int option_print_scale;
-extern bool option_startup_no_window;
-extern bool option_close_no_quit;
-extern bool option_hide_docky_icon;
-extern char *option_font_unicode;
-extern bool option_drag_save_icons;
-extern int option_hotlist_window_xpos;
-extern int option_hotlist_window_ypos;
-extern int option_hotlist_window_xsize;
-extern int option_hotlist_window_ysize;
-extern int option_history_window_xpos;
-extern int option_history_window_ypos;
-extern int option_history_window_xsize;
-extern int option_history_window_ysize;
-extern int option_cookies_window_xpos;
-extern int option_cookies_window_ypos;
-extern int option_cookies_window_xsize;
-extern int option_cookies_window_ysize;
-extern int option_cairo_renderer;
-extern bool option_direct_render;
-extern int option_amiga_ydpi;
-extern int option_redraw_tile_size_x;
-extern int option_redraw_tile_size_y;
-extern int option_monitor_aspect_x;
-extern int option_monitor_aspect_y;
-extern bool option_accept_lang_locale;
-extern int option_menu_refresh;
+#define NSOPTION_EXTRA_DEFINE \
+ char *url_file; \
+ char *hotlist_file; \
+ char *use_pubscreen; \
+ char *modeid; \
+ int screen_compositing; \
+ int cache_bitmaps; \
+ char *theme; \
+ bool utf8_clipboard; \
+ bool context_menu; \
+ bool truecolour_mouse_pointers; \
+ bool use_os_pointers; \
+ bool new_tab_active; \
+ bool new_tab_last; \
+ bool kiosk_mode; \
+ char *search_engines_file; \
+ char *arexx_dir; \
+ char *arexx_startup; \
+ char *arexx_shutdown; \
+ char *download_dir; \
+ bool download_notify; \
+ bool faster_scroll; \
+ bool scale_quality; \
+ bool ask_overwrite; \
+ int printer_unit; \
+ int print_scale; \
+ bool startup_no_window; \
+ bool close_no_quit; \
+ bool hide_docky_icon; \
+ char *font_unicode; \
+ bool drag_save_icons; \
+ int hotlist_window_xpos; \
+ int hotlist_window_ypos; \
+ int hotlist_window_xsize; \
+ int hotlist_window_ysize; \
+ int history_window_xpos; \
+ int history_window_ypos; \
+ int history_window_xsize; \
+ int history_window_ysize; \
+ int cookies_window_xpos; \
+ int cookies_window_ypos; \
+ int cookies_window_xsize; \
+ int cookies_window_ysize; \
+ int cairo_renderer; \
+ bool direct_render; \
+ int amiga_ydpi; \
+ int redraw_tile_size_x; \
+ int redraw_tile_size_y; \
+ int monitor_aspect_x; \
+ int monitor_aspect_y; \
+ bool accept_lang_locale; \
+ int menu_refresh
+
+
+#define NSOPTION_EXTRA_DEFAULTS \
+ .url_file = NULL, \
+ .hotlist_file = NULL, \
+ .use_pubscreen = NULL, \
+ .modeid = NULL, \
+ .screen_compositing = -1, \
+ .cache_bitmaps = 0, \
+ .theme = NULL, \
+ .utf8_clipboard = false, \
+ .context_menu = true, \
+ .truecolour_mouse_pointers = false, \
+ .use_os_pointers = true, \
+ .new_tab_active = false, \
+ .new_tab_last = false, \
+ .kiosk_mode = false, \
+ .search_engines_file = NULL, \
+ .arexx_dir = NULL, \
+ .arexx_startup = NULL, \
+ .arexx_shutdown = NULL, \
+ .download_dir = NULL, \
+ .download_notify = false, \
+ .faster_scroll = true, \
+ .scale_quality = false, \
+ .ask_overwrite = true, \
+ .printer_unit = 0, \
+ .print_scale = 100, \
+ .startup_no_window = false, \
+ .close_no_quit = false, \
+ .hide_docky_icon = false, \
+ .font_unicode = NULL, \
+ .drag_save_icons = true, \
+ .hotlist_window_xpos = 0, \
+ .hotlist_window_ypos = 0, \
+ .hotlist_window_xsize = 0, \
+ .hotlist_window_ysize = 0, \
+ .history_window_xpos = 0, \
+ .history_window_ypos = 0, \
+ .history_window_xsize = 0, \
+ .history_window_ysize = 0, \
+ .cookies_window_xpos = 0, \
+ .cookies_window_ypos = 0, \
+ .cookies_window_xsize = 0, \
+ .cookies_window_ysize = 0, \
+ .cairo_renderer = 1, \
+ .direct_render = false, \
+ .amiga_ydpi = 72, \
+ .redraw_tile_size_x = 400, \
+ .redraw_tile_size_y = 150, \
+ .monitor_aspect_x = 0, \
+ .monitor_aspect_y = 0, \
+ .accept_lang_locale = true, \
+ .menu_refresh = 0
-#define EXTRA_OPTION_DEFINE \
-char *option_url_file = 0; \
-char *option_hotlist_file = 0; \
-char *option_use_pubscreen = 0; \
-char *option_modeid = 0; \
-int option_screen_compositing = -1; \
-int option_cache_bitmaps = 0; \
-char *option_theme = 0; \
-bool option_utf8_clipboard = false; \
-bool option_context_menu = true; \
-bool option_truecolour_mouse_pointers = false; \
-bool option_use_os_pointers = true; \
-bool option_new_tab_active = false; \
-bool option_new_tab_last = false; \
-bool option_kiosk_mode = false; \
-char *option_search_engines_file = 0; \
-char *option_arexx_dir = 0; \
-char *option_arexx_startup = 0; \
-char *option_arexx_shutdown = 0; \
-char *option_download_dir = 0; \
-bool option_download_notify = false; \
-bool option_faster_scroll = true; \
-bool option_scale_quality = false; \
-bool option_ask_overwrite = true; \
-int option_printer_unit = 0; \
-int option_print_scale = 100; \
-bool option_startup_no_window = false; \
-bool option_close_no_quit = false; \
-bool option_hide_docky_icon = false; \
-char *option_font_unicode = 0; \
-bool option_drag_save_icons = true; \
-int option_hotlist_window_xpos = 0; \
-int option_hotlist_window_ypos = 0; \
-int option_hotlist_window_xsize = 0; \
-int option_hotlist_window_ysize = 0; \
-int option_history_window_xpos = 0; \
-int option_history_window_ypos = 0; \
-int option_history_window_xsize = 0; \
-int option_history_window_ysize = 0; \
-int option_cookies_window_xpos = 0; \
-int option_cookies_window_ypos = 0; \
-int option_cookies_window_xsize = 0; \
-int option_cookies_window_ysize = 0; \
-int option_cairo_renderer = 1; \
-bool option_direct_render = false; \
-int option_amiga_ydpi = 72; \
-int option_redraw_tile_size_x = 400; \
-int option_redraw_tile_size_y = 150; \
-int option_monitor_aspect_x = 0; \
-int option_monitor_aspect_y = 0; \
-bool option_accept_lang_locale = true; \
-int option_menu_refresh = 0; \
+#define NSOPTION_EXTRA_TABLE \
+{ "url_file", OPTION_STRING, &nsoptions.url_file }, \
+{ "hotlist_file", OPTION_STRING, &nsoptions.hotlist_file }, \
+{ "use_pubscreen", OPTION_STRING, &nsoptions.use_pubscreen}, \
+{ "screen_modeid", OPTION_STRING, &nsoptions.modeid}, \
+{ "screen_compositing", OPTION_INTEGER, &nsoptions.screen_compositing}, \
+{ "cache_bitmaps", OPTION_INTEGER, &nsoptions.cache_bitmaps}, \
+{ "theme", OPTION_STRING, &nsoptions.theme}, \
+{ "clipboard_write_utf8", OPTION_BOOL, &nsoptions.utf8_clipboard}, \
+{ "context_menu", OPTION_BOOL, &nsoptions.context_menu}, \
+{ "truecolour_mouse_pointers", OPTION_BOOL, &nsoptions.truecolour_mouse_pointers}, \
+{ "os_mouse_pointers", OPTION_BOOL, &nsoptions.use_os_pointers}, \
+{ "new_tab_is_active", OPTION_BOOL, &nsoptions.new_tab_active}, \
+{ "new_tab_last", OPTION_BOOL, &nsoptions.new_tab_last}, \
+{ "kiosk_mode", OPTION_BOOL, &nsoptions.kiosk_mode}, \
+{ "search_engines_file",OPTION_STRING, &nsoptions.search_engines_file }, \
+{ "arexx_dir", OPTION_STRING, &nsoptions.arexx_dir }, \
+{ "arexx_startup", OPTION_STRING, &nsoptions.arexx_startup }, \
+{ "arexx_shutdown", OPTION_STRING, &nsoptions.arexx_shutdown }, \
+{ "download_dir", OPTION_STRING, &nsoptions.download_dir }, \
+{ "download_notify", OPTION_BOOL, &nsoptions.download_notify}, \
+{ "faster_scroll", OPTION_BOOL, &nsoptions.faster_scroll}, \
+{ "scale_quality", OPTION_BOOL, &nsoptions.scale_quality}, \
+{ "ask_overwrite", OPTION_BOOL, &nsoptions.ask_overwrite}, \
+{ "printer_unit", OPTION_INTEGER, &nsoptions.printer_unit}, \
+{ "print_scale", OPTION_INTEGER, &nsoptions.print_scale}, \
+{ "startup_no_window", OPTION_BOOL, &nsoptions.startup_no_window}, \
+{ "close_no_quit", OPTION_BOOL, &nsoptions.close_no_quit}, \
+{ "hide_docky_icon", OPTION_BOOL, &nsoptions.hide_docky_icon}, \
+{ "font_unicode", OPTION_STRING, &nsoptions.font_unicode }, \
+{ "drag_save_icons", OPTION_BOOL, &nsoptions.drag_save_icons}, \
+{ "hotlist_window_xpos", OPTION_INTEGER, &nsoptions.hotlist_window_xpos}, \
+{ "hotlist_window_ypos", OPTION_INTEGER, &nsoptions.hotlist_window_ypos}, \
+{ "hotlist_window_xsize", OPTION_INTEGER, &nsoptions.hotlist_window_xsize}, \
+{ "hotlist_window_ysize", OPTION_INTEGER, &nsoptions.hotlist_window_ysize}, \
+{ "history_window_xpos", OPTION_INTEGER, &nsoptions.history_window_xpos}, \
+{ "history_window_ypos", OPTION_INTEGER, &nsoptions.history_window_ypos}, \
+{ "history_window_xsize", OPTION_INTEGER, &nsoptions.history_window_xsize}, \
+{ "history_window_ysize", OPTION_INTEGER, &nsoptions.history_window_ysize}, \
+{ "cookies_window_xpos", OPTION_INTEGER, &nsoptions.cookies_window_xpos}, \
+{ "cookies_window_ypos", OPTION_INTEGER, &nsoptions.cookies_window_ypos}, \
+{ "cookies_window_xsize", OPTION_INTEGER, &nsoptions.cookies_window_xsize}, \
+{ "cookies_window_ysize", OPTION_INTEGER, &nsoptions.cookies_window_ysize}, \
+{ "cairo_renderer", OPTION_INTEGER, &nsoptions.cairo_renderer}, \
+{ "direct_render", OPTION_BOOL, &nsoptions.direct_render}, \
+{ "amiga_ydpi", OPTION_INTEGER, &nsoptions.amiga_ydpi}, \
+{ "redraw_tile_size_x", OPTION_INTEGER, &nsoptions.redraw_tile_size_x}, \
+{ "redraw_tile_size_y", OPTION_INTEGER, &nsoptions.redraw_tile_size_y}, \
+{ "monitor_aspect_x", OPTION_INTEGER, &nsoptions.monitor_aspect_x}, \
+{ "monitor_aspect_y", OPTION_INTEGER, &nsoptions.monitor_aspect_y}, \
+{ "accept_lang_locale", OPTION_BOOL, &nsoptions.accept_lang_locale}, \
+{ "menu_refresh", OPTION_INTEGER, &nsoptions.menu_refresh}
-#define EXTRA_OPTION_TABLE \
-{ "url_file", OPTION_STRING, &option_url_file }, \
-{ "hotlist_file", OPTION_STRING, &option_hotlist_file }, \
-{ "use_pubscreen", OPTION_STRING, &option_use_pubscreen}, \
-{ "screen_modeid", OPTION_STRING, &option_modeid}, \
-{ "screen_compositing", OPTION_INTEGER, &option_screen_compositing}, \
-{ "cache_bitmaps", OPTION_INTEGER, &option_cache_bitmaps}, \
-{ "theme", OPTION_STRING, &option_theme}, \
-{ "clipboard_write_utf8", OPTION_BOOL, &option_utf8_clipboard}, \
-{ "context_menu", OPTION_BOOL, &option_context_menu}, \
-{ "truecolour_mouse_pointers", OPTION_BOOL, &option_truecolour_mouse_pointers}, \
-{ "os_mouse_pointers", OPTION_BOOL, &option_use_os_pointers}, \
-{ "new_tab_is_active", OPTION_BOOL, &option_new_tab_active}, \
-{ "new_tab_last", OPTION_BOOL, &option_new_tab_last}, \
-{ "kiosk_mode", OPTION_BOOL, &option_kiosk_mode}, \
-{ "search_engines_file", OPTION_STRING, &option_search_engines_file }, \
-{ "arexx_dir", OPTION_STRING, &option_arexx_dir }, \
-{ "arexx_startup", OPTION_STRING, &option_arexx_startup }, \
-{ "arexx_shutdown", OPTION_STRING, &option_arexx_shutdown }, \
-{ "download_dir", OPTION_STRING, &option_download_dir }, \
-{ "download_notify", OPTION_BOOL, &option_download_notify}, \
-{ "faster_scroll", OPTION_BOOL, &option_faster_scroll}, \
-{ "scale_quality", OPTION_BOOL, &option_scale_quality}, \
-{ "ask_overwrite", OPTION_BOOL, &option_ask_overwrite}, \
-{ "printer_unit", OPTION_INTEGER, &option_printer_unit}, \
-{ "print_scale", OPTION_INTEGER, &option_print_scale}, \
-{ "startup_no_window", OPTION_BOOL, &option_startup_no_window}, \
-{ "close_no_quit", OPTION_BOOL, &option_close_no_quit}, \
-{ "hide_docky_icon", OPTION_BOOL, &option_hide_docky_icon}, \
-{ "font_unicode", OPTION_STRING, &option_font_unicode }, \
-{ "drag_save_icons", OPTION_BOOL, &option_drag_save_icons}, \
-{ "hotlist_window_xpos", OPTION_INTEGER, &option_hotlist_window_xpos}, \
-{ "hotlist_window_ypos", OPTION_INTEGER, &option_hotlist_window_ypos}, \
-{ "hotlist_window_xsize", OPTION_INTEGER, &option_hotlist_window_xsize}, \
-{ "hotlist_window_ysize", OPTION_INTEGER, &option_hotlist_window_ysize}, \
-{ "history_window_xpos", OPTION_INTEGER, &option_history_window_xpos}, \
-{ "history_window_ypos", OPTION_INTEGER, &option_history_window_ypos}, \
-{ "history_window_xsize", OPTION_INTEGER, &option_history_window_xsize}, \
-{ "history_window_ysize", OPTION_INTEGER, &option_history_window_ysize}, \
-{ "cookies_window_xpos", OPTION_INTEGER, &option_cookies_window_xpos}, \
-{ "cookies_window_ypos", OPTION_INTEGER, &option_cookies_window_ypos}, \
-{ "cookies_window_xsize", OPTION_INTEGER, &option_cookies_window_xsize}, \
-{ "cookies_window_ysize", OPTION_INTEGER, &option_cookies_window_ysize}, \
-{ "cairo_renderer", OPTION_INTEGER, &option_cairo_renderer}, \
-{ "direct_render", OPTION_BOOL, &option_direct_render}, \
-{ "amiga_ydpi", OPTION_INTEGER, &option_amiga_ydpi}, \
-{ "redraw_tile_size_x", OPTION_INTEGER, &option_redraw_tile_size_x}, \
-{ "redraw_tile_size_y", OPTION_INTEGER, &option_redraw_tile_size_y}, \
-{ "monitor_aspect_x", OPTION_INTEGER, &option_monitor_aspect_x}, \
-{ "monitor_aspect_y", OPTION_INTEGER, &option_monitor_aspect_y}, \
-{ "accept_lang_locale", OPTION_BOOL, &option_accept_lang_locale}, \
-{ "menu_refresh", OPTION_INTEGER, &option_menu_refresh},
#endif
diff --git a/amiga/plotters.c b/amiga/plotters.c
index 4dd6256ff..c2a5c0b2e 100755
--- a/amiga/plotters.c
+++ b/amiga/plotters.c
@@ -25,7 +25,7 @@
#include <graphics/gfxmacros.h>
#include <graphics/gfxbase.h>
#include "amiga/utf8.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#ifdef __amigaos4__
#include <graphics/blitattr.h>
#include <graphics/composite.h>
@@ -121,10 +121,10 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height)
struct BitMap *friend = NULL; /* Required to be NULL for Cairo and ARGB bitmaps */
- if(option_redraw_tile_size_x <= 0) option_redraw_tile_size_x = scrn->Width;
- if(option_redraw_tile_size_y <= 0) option_redraw_tile_size_y = scrn->Height;
- if(!width) width = option_redraw_tile_size_x;
- if(!height) height = option_redraw_tile_size_y;
+ if(nsoption_int(redraw_tile_size_x) <= 0) nsoption_set_int(redraw_tile_size_x, scrn->Width);
+ if(nsoption_int(redraw_tile_size_y) <= 0) nsoption_set_int(redraw_tile_size_y, scrn->Height);
+ if(!width) width = nsoption_int(redraw_tile_size_x);
+ if(!height) height = nsoption_int(redraw_tile_size_y);
gg->layerinfo = NewLayerInfo();
gg->areabuf = AllocVec(100,MEMF_PRIVATE | MEMF_CLEAR);
@@ -206,7 +206,7 @@ bool ami_rectangle(int x0, int y0, int x1, int y1, const plot_style_t *style)
if (style->fill_type != PLOT_OP_TYPE_NONE) {
- if(option_cairo_renderer < 2)
+ if(nsoption_int(cairo_renderer) < 2)
{
SetRPAttrs(glob->rp, RPTAG_APenColor,
p96EncodeColor(RGBFB_A8B8G8R8, style->fill_colour),
@@ -228,7 +228,7 @@ bool ami_rectangle(int x0, int y0, int x1, int y1, const plot_style_t *style)
}
if (style->stroke_type != PLOT_OP_TYPE_NONE) {
- if(option_cairo_renderer < 2)
+ if(nsoption_int(cairo_renderer) < 2)
{
glob->rp->PenWidth = style->stroke_width;
glob->rp->PenHeight = style->stroke_width;
@@ -301,7 +301,7 @@ bool ami_line(int x0, int y0, int x1, int y1, const plot_style_t *style)
LOG(("[ami_plotter] Entered ami_line()"));
#endif
- if(option_cairo_renderer < 2)
+ if(nsoption_int(cairo_renderer) < 2)
{
glob->rp->PenWidth = style->stroke_width;
glob->rp->PenHeight = style->stroke_width;
@@ -377,7 +377,7 @@ bool ami_polygon(const int *p, unsigned int n, const plot_style_t *style)
int k;
- if(option_cairo_renderer < 1)
+ if(nsoption_int(cairo_renderer) < 1)
{
ULONG cx,cy;
@@ -443,7 +443,7 @@ bool ami_clip(const struct rect *clip)
}
#ifdef NS_AMIGA_CAIRO
- if(option_cairo_renderer == 2)
+ if(nsoption_int(cairo_renderer) == 2)
{
cairo_reset_clip(glob->cr);
cairo_rectangle(glob->cr, clip->x0, clip->y0,
@@ -472,7 +472,7 @@ bool ami_disc(int x, int y, int radius, const plot_style_t *style)
LOG(("[ami_plotter] Entered ami_disc()"));
#endif
- if(option_cairo_renderer < 2)
+ if(nsoption_int(cairo_renderer) < 2)
{
if (style->fill_type != PLOT_OP_TYPE_NONE) {
SetRPAttrs(glob->rp,
@@ -525,7 +525,7 @@ bool ami_arc(int x, int y, int radius, int angle1, int angle2, const plot_style_
LOG(("[ami_plotter] Entered ami_arc()"));
#endif
- if(option_cairo_renderer >= 1)
+ if(nsoption_int(cairo_renderer) >= 1)
{
#ifdef NS_AMIGA_CAIRO
ami_cairo_set_colour(glob->cr, style->fill_colour);
@@ -801,7 +801,7 @@ bool ami_path(const float *p, unsigned int n, colour fill, float width,
/* We should probably check if the off-screen bitmap is 32-bit and render
* using Cairo regardless if it is. For now, we respect user preferences.
*/
- if(option_cairo_renderer >= 1)
+ if(nsoption_int(cairo_renderer) >= 1)
{
unsigned int i;
cairo_matrix_t old_ctm, n_ctm;
diff --git a/amiga/print.c b/amiga/print.c
index 9a2bd54d9..405d55b09 100644
--- a/amiga/print.c
+++ b/amiga/print.c
@@ -20,7 +20,7 @@
#include "amiga/plotters.h"
#include "render/font.h"
#include "amiga/gui.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/print.h"
#include "utils/messages.h"
#include "utils/utils.h"
@@ -255,7 +255,7 @@ void ami_print_ui(struct hlcache_handle *c)
GA_RelVerify, TRUE,
GA_TabCycle, TRUE,
CHOOSER_LabelArray, printers,
- CHOOSER_Selected, option_printer_unit,
+ CHOOSER_Selected, nsoption_int(printer_unit),
ChooserEnd,
CHILD_Label, LabelObject,
LABEL_Text, gadlab[PGID_PRINTER],
@@ -278,7 +278,7 @@ void ami_print_ui(struct hlcache_handle *c)
GA_ID, PGID_SCALE,
GA_RelVerify, TRUE,
GA_TabCycle, TRUE,
- INTEGER_Number, option_print_scale,
+ INTEGER_Number, nsoption_int(print_scale),
INTEGER_Minimum, 0,
INTEGER_Maximum, 100,
INTEGER_Arrows, TRUE,
@@ -331,6 +331,8 @@ BOOL ami_print_event(struct ami_print_window *pw)
uint16 code;
struct hlcache_handle *c;
int copies;
+ int print_scale;
+ int printer_unit;
while((result = RA_HandleInput(pw->objects[OID_MAIN],&code)) != WMHI_LASTMSG)
{
@@ -341,11 +343,14 @@ BOOL ami_print_event(struct ami_print_window *pw)
{
case PGID_PRINT:
GetAttr(INTEGER_Number, pw->gadgets[PGID_SCALE],
- (ULONG *)&option_print_scale);
+ (ULONG *)&print_scale);
GetAttr(INTEGER_Number, pw->gadgets[PGID_COPIES],
(ULONG *)&copies);
GetAttr(CHOOSER_Selected, pw->gadgets[PGID_PRINTER],
- (ULONG *)&option_printer_unit);
+ (ULONG *)&printer_unit);
+
+ nsoption_set_int(print_scale, print_scale);
+ nsoption_set_int(printer_unit, printer_unit);
c = pw->c;
ami_print_close(pw);
@@ -372,7 +377,7 @@ BOOL ami_print_event(struct ami_print_window *pw)
void ami_print(struct hlcache_handle *c, int copies)
{
double height, print_height;
- float scale = option_print_scale / 100.0;
+ float scale = nsoption_int(print_scale) / 100.0;
if(!ami_print_info.msgport) return;
@@ -383,7 +388,7 @@ void ami_print(struct hlcache_handle *c, int copies)
ASO_NoTrack, FALSE,
TAG_DONE))) return;
- if(OpenDevice("printer.device", option_printer_unit,
+ if(OpenDevice("printer.device", nsoption_int(printer_unit),
(struct IORequest *)ami_print_info.PReq, 0))
{
warn_user("CompError","printer.device");
diff --git a/amiga/stringview/urlhistory.c b/amiga/stringview/urlhistory.c
index 659e7d4c7..af9c35b13 100644
--- a/amiga/stringview/urlhistory.c
+++ b/amiga/stringview/urlhistory.c
@@ -106,7 +106,7 @@ struct Node * URLHistory_FindPage( const char *urlString )
void URLHistory_AddPage( const char * urlString )
{
- if(!option_url_suggestion) return;
+ if(!nsoption_bool(url_suggestion)) return;
// Only search if length > 0
if( strlen( urlString ) > 0 )
diff --git a/amiga/system_colour.c b/amiga/system_colour.c
index e5dace808..2c7f7d343 100644
--- a/amiga/system_colour.c
+++ b/amiga/system_colour.c
@@ -49,189 +49,189 @@ static struct gui_system_colour_ctx colour_list[] = {
"ActiveBorder",
SLEN("ActiveBorder"),
0xff000000,
- &option_sys_colour_ActiveBorder,
+ &nsoption_colour(sys_colour_ActiveBorder),
FILLPEN,
NULL
}, {
"ActiveCaption",
SLEN("ActiveCaption"),
0xffdddddd,
- &option_sys_colour_ActiveCaption,
+ &nsoption_colour(sys_colour_ActiveCaption),
FILLPEN,
NULL
}, {
"AppWorkspace",
SLEN("AppWorkspace"),
0xffeeeeee,
- &option_sys_colour_AppWorkspace,
+ &nsoption_colour(sys_colour_AppWorkspace),
BACKGROUNDPEN,
NULL
}, {
"Background",
SLEN("Background"),
0xff0000aa,
- &option_sys_colour_Background,
+ &nsoption_colour(sys_colour_Background),
BACKGROUNDPEN,
NULL
}, {
"ButtonFace",
SLEN("ButtonFace"),
0xffaaaaaa,
- &option_sys_colour_ButtonFace,
+ &nsoption_colour(sys_colour_ButtonFace),
FOREGROUNDPEN,
NULL
}, {
"ButtonHighlight",
SLEN("ButtonHighlight"),
0xffdddddd,
- &option_sys_colour_ButtonHighlight,
+ &nsoption_colour(sys_colour_ButtonHighlight),
FORESHINEPEN,
NULL
}, {
"ButtonShadow",
SLEN("ButtonShadow"),
0xffbbbbbb,
- &option_sys_colour_ButtonShadow,
+ &nsoption_colour(sys_colour_ButtonShadow),
FORESHADOWPEN,
NULL
}, {
"ButtonText",
SLEN("ButtonText"),
0xff000000,
- &option_sys_colour_ButtonText,
+ &nsoption_colour(sys_colour_ButtonText),
TEXTPEN,
NULL
}, {
"CaptionText",
SLEN("CaptionText"),
0xff000000,
- &option_sys_colour_CaptionText,
+ &nsoption_colour(sys_colour_CaptionText),
FILLTEXTPEN,
NULL
}, {
"GrayText",
SLEN("GrayText"),
0xffcccccc,
- &option_sys_colour_GrayText,
+ &nsoption_colour(sys_colour_GrayText),
DISABLEDTEXTPEN,
NULL
}, {
"Highlight",
SLEN("Highlight"),
0xff0000ee,
- &option_sys_colour_Highlight,
+ &nsoption_colour(sys_colour_Highlight),
SELECTPEN,
NULL
}, {
"HighlightText",
SLEN("HighlightText"),
0xff000000,
- &option_sys_colour_HighlightText,
+ &nsoption_colour(sys_colour_HighlightText),
SELECTTEXTPEN,
NULL
}, {
"InactiveBorder",
SLEN("InactiveBorder"),
0xffffffff,
- &option_sys_colour_InactiveBorder,
+ &nsoption_colour(sys_colour_InactiveBorder),
INACTIVEFILLPEN,
NULL
}, {
"InactiveCaption",
SLEN("InactiveCaption"),
0xffffffff,
- &option_sys_colour_InactiveCaption,
+ &nsoption_colour(sys_colour_InactiveCaption),
INACTIVEFILLPEN,
NULL
}, {
"InactiveCaptionText",
SLEN("InactiveCaptionText"),
0xffcccccc,
- &option_sys_colour_InactiveCaptionText,
+ &nsoption_colour(sys_colour_InactiveCaptionText),
INACTIVEFILLTEXTPEN,
NULL
}, {
"InfoBackground",
SLEN("InfoBackground"),
0xffaaaaaa,
- &option_sys_colour_InfoBackground,
+ &nsoption_colour(sys_colour_InfoBackground),
BACKGROUNDPEN, /* This is wrong, HelpHint backgrounds are pale yellow but doesn't seem to be a DrawInfo pen defined for it. */
NULL
}, {
"InfoText",
SLEN("InfoText"),
0xff000000,
- &option_sys_colour_InfoText,
+ &nsoption_colour(sys_colour_InfoText),
TEXTPEN,
NULL
}, {
"Menu",
SLEN("Menu"),
0xffaaaaaa,
- &option_sys_colour_Menu,
+ &nsoption_colour(sys_colour_Menu),
MENUBACKGROUNDPEN,
NULL
}, {
"MenuText",
SLEN("MenuText"),
0xff000000,
- &option_sys_colour_MenuText,
+ &nsoption_colour(sys_colour_MenuText),
MENUTEXTPEN,
NULL
}, {
"Scrollbar",
SLEN("Scrollbar"),
0xffaaaaaa,
- &option_sys_colour_Scrollbar,
+ &nsoption_colour(sys_colour_Scrollbar),
AMINS_SCROLLERPEN,
NULL
}, {
"ThreeDDarkShadow",
SLEN("ThreeDDarkShadow"),
0xff555555,
- &option_sys_colour_ThreeDDarkShadow,
+ &nsoption_colour(sys_colour_ThreeDDarkShadow),
FORESHADOWPEN,
NULL
}, {
"ThreeDFace",
SLEN("ThreeDFace"),
0xffdddddd,
- &option_sys_colour_ThreeDFace,
+ &nsoption_colour(sys_colour_ThreeDFace),
FOREGROUNDPEN,
NULL
}, {
"ThreeDHighlight",
SLEN("ThreeDHighlight"),
0xffaaaaaa,
- &option_sys_colour_ThreeDHighlight,
+ &nsoption_colour(sys_colour_ThreeDHighlight),
FORESHINEPEN,
NULL
}, {
"ThreeDLightShadow",
SLEN("ThreeDLightShadow"),
0xff999999,
- &option_sys_colour_ThreeDLightShadow,
+ &nsoption_colour(sys_colour_ThreeDLightShadow),
HALFSHINEPEN,
NULL
}, {
"ThreeDShadow",
SLEN("ThreeDShadow"),
0xff777777,
- &option_sys_colour_ThreeDShadow,
+ &nsoption_colour(sys_colour_ThreeDShadow),
HALFSHADOWPEN,
NULL
}, {
"Window",
SLEN("Window"),
0xffaaaaaa,
- &option_sys_colour_Window,
+ &nsoption_colour(sys_colour_Window),
BACKGROUNDPEN,
NULL
}, {
"WindowFrame",
SLEN("WindowFrame"),
0xff000000,
- &option_sys_colour_WindowFrame,
+ &nsoption_colour(sys_colour_WindowFrame),
INACTIVEFILLPEN,
NULL
}, {
@@ -239,7 +239,7 @@ static struct gui_system_colour_ctx colour_list[] = {
"WindowText",
SLEN("WindowText"),
0xff000000,
- &option_sys_colour_WindowText,
+ &nsoption_colour(sys_colour_WindowText),
INACTIVEFILLTEXTPEN,
NULL
},
diff --git a/amiga/theme.c b/amiga/theme.c
index bee0a0b75..1bcd6a7be 100644
--- a/amiga/theme.c
+++ b/amiga/theme.c
@@ -36,7 +36,7 @@
#include <workbench/icon.h>
#include "amiga/drag.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "amiga/theme.h"
#include "desktop/searchweb.h"
#include "utils/messages.h"
@@ -100,17 +100,16 @@ void ami_theme_init(void)
char searchico[1024];
BPTR lock = 0;
- strcpy(themefile,option_theme);
+ strcpy(themefile,nsoption_charp(theme));
AddPart(themefile,"Theme",100);
lock = Lock(themefile,ACCESS_READ);
if(!lock)
{
- warn_user("ThemeApplyErr",option_theme);
+ warn_user("ThemeApplyErr",nsoption_charp(theme));
strcpy(themefile,"PROGDIR:Resources/Themes/Default/Theme");
- free(option_theme);
- option_theme = (char *)strdup("PROGDIR:Resources/Themes/Default");
+ nsoption_set_charp(theme, (char *)strdup("PROGDIR:Resources/Themes/Default"));
}
else
{
@@ -194,7 +193,7 @@ void ami_get_theme_filename(char *filename, char *themestring, bool protocol)
}
else
{
- strcat(filename, option_theme);
+ strcat(filename, nsoption_charp(theme));
AddPart(filename, messages_get(themestring), 100);
}
}
@@ -209,7 +208,7 @@ void ami_update_pointer(struct Window *win, gui_pointer_shape shape)
if(mouseptrcurrent == shape) return;
if(drag_save_data) return;
- if(option_use_os_pointers)
+ if(nsoption_bool(use_os_pointers))
{
switch(shape)
{
@@ -287,7 +286,7 @@ void ami_init_mouse_pointers(void)
mouseptrobj[i] = NULL;
char ptrfname[1024];
- if(option_truecolour_mouse_pointers)
+ if(nsoption_bool(truecolour_mouse_pointers))
{
ami_get_theme_filename((char *)&ptrfname,ptrs32[i], false);
if(dobj = GetIconTags(ptrfname,ICONGETA_UseFriendBitMap,TRUE,TAG_DONE))
@@ -405,7 +404,7 @@ void gui_window_start_throbber(struct gui_window *g)
ULONG cur_tab = 0;
if(!g) return;
- if(option_kiosk_mode) return;
+ if(nsoption_bool(kiosk_mode)) return;
if(g->tab_node && (g->shared->tabs > 1))
{
@@ -435,7 +434,7 @@ void gui_window_stop_throbber(struct gui_window *g)
ULONG cur_tab = 0;
if(!g) return;
- if(option_kiosk_mode) return;
+ if(nsoption_bool(kiosk_mode)) return;
if(g->tab_node && (g->shared->tabs > 1))
{
diff --git a/amiga/thumbnail.c b/amiga/thumbnail.c
index ae8993a72..08ab90a95 100755
--- a/amiga/thumbnail.c
+++ b/amiga/thumbnail.c
@@ -20,7 +20,7 @@
#include "desktop/browser.h"
#include "amiga/gui.h"
#include "amiga/bitmap.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "content/urldb.h"
#include "desktop/plotters.h"
#include "desktop/thumbnail.h"
@@ -42,15 +42,15 @@ bool thumbnail_create(hlcache_handle *content, struct bitmap *bitmap,
struct BitScaleArgs bsa;
int plot_width;
int plot_height;
- int redraw_tile_size = option_redraw_tile_size_x;
+ int redraw_tile_size = nsoption_int(redraw_tile_size_x);
struct redraw_context ctx = {
.interactive = false,
.background_images = true,
.plot = &amiplot
};
- if(option_redraw_tile_size_y < option_redraw_tile_size_x)
- redraw_tile_size = option_redraw_tile_size_y;
+ if(nsoption_int(redraw_tile_size_y) < nsoption_int(redraw_tile_size_x))
+ redraw_tile_size = nsoption_int(redraw_tile_size_y);
plot_width = MIN(content_get_width(content), redraw_tile_size);
plot_height = ((plot_width * bitmap->height) + (bitmap->width / 2)) /
@@ -70,7 +70,7 @@ bool thumbnail_create(hlcache_handle *content, struct bitmap *bitmap,
{
float resample_scale = bitmap->width / (float)plot_width;
uint32 flags = COMPFLAG_IgnoreDestAlpha | COMPFLAG_SrcAlphaOverride;
- if(option_scale_quality) flags |= COMPFLAG_SrcFilter;
+ if(nsoption_bool(scale_quality)) flags |= COMPFLAG_SrcFilter;
CompositeTags(COMPOSITE_Src,browserglob.bm,bitmap->nativebm,
COMPTAG_ScaleX,
diff --git a/amiga/tree.c b/amiga/tree.c
index 51cb35865..0ec527ec7 100755
--- a/amiga/tree.c
+++ b/amiga/tree.c
@@ -53,7 +53,7 @@
#include "amiga/drag.h" /* drag icon stuff */
#include "amiga/theme.h" /* pointers */
#include "amiga/filetype.h"
-#include "amiga/options.h"
+#include "desktop/options.h"
#include "content/urldb.h"
#include "desktop/cookies.h"
#include "desktop/history_global_core.h"
@@ -573,26 +573,26 @@ void ami_tree_open(struct treeview_window *twin,int type)
ULONG top = (scrn->Height / 2) - (height / 2);
ULONG left = (scrn->Width / 2) - (width / 2);
- if((type == AMI_TREE_HOTLIST) && (option_hotlist_window_xsize > 0))
+ if((type == AMI_TREE_HOTLIST) && (nsoption_int(hotlist_window_xsize) > 0))
{
- top = option_hotlist_window_ypos;
- left = option_hotlist_window_xpos;
- width = option_hotlist_window_xsize;
- height = option_hotlist_window_ysize;
+ top = nsoption_int(hotlist_window_ypos);
+ left = nsoption_int(hotlist_window_xpos);
+ width = nsoption_int(hotlist_window_xsize);
+ height = nsoption_int(hotlist_window_ysize);
}
- else if((type == AMI_TREE_HISTORY) && (option_history_window_xsize > 0))
+ else if((type == AMI_TREE_HISTORY) && (nsoption_int(history_window_xsize) > 0))
{
- top = option_history_window_ypos;
- left = option_history_window_xpos;
- width = option_history_window_xsize;
- height = option_history_window_ysize;
+ top = nsoption_int(history_window_ypos);
+ left = nsoption_int(history_window_xpos);
+ width = nsoption_int(history_window_xsize);
+ height = nsoption_int(history_window_ysize);
}
- else if((type == AMI_TREE_COOKIES) && (option_cookies_window_xsize > 0))
+ else if((type == AMI_TREE_COOKIES) && (nsoption_int(cookies_window_xsize) > 0))
{
- top = option_cookies_window_ypos;
- left = option_cookies_window_xpos;
- width = option_cookies_window_xsize;
- height = option_cookies_window_ysize;
+ top = nsoption_int(cookies_window_ypos);
+ left = nsoption_int(cookies_window_xpos);
+ width = nsoption_int(cookies_window_xsize);
+ height = nsoption_int(cookies_window_ysize);
}
twin->objects[OID_MAIN] = WindowObject,
@@ -1093,22 +1093,22 @@ BOOL ami_tree_event(struct treeview_window *twin)
switch(twin->type)
{
case AMI_TREE_HISTORY:
- option_history_window_ypos = twin->win->TopEdge;
- option_history_window_xpos = twin->win->LeftEdge;
- option_history_window_xsize = twin->win->Width;
- option_history_window_ysize = twin->win->Height;
+ nsoption_set_int(history_window_ypos, twin->win->TopEdge);
+ nsoption_set_int(history_window_xpos, twin->win->LeftEdge);
+ nsoption_set_int(history_window_xsize, twin->win->Width);
+ nsoption_set_int(history_window_ysize, twin->win->Height);
break;
case AMI_TREE_COOKIES:
- option_cookies_window_ypos = twin->win->TopEdge;
- option_cookies_window_xpos = twin->win->LeftEdge;
- option_cookies_window_xsize = twin->win->Width;
- option_cookies_window_ysize = twin->win->Height;
+ nsoption_set_int(cookies_window_ypos, twin->win->TopEdge);
+ nsoption_set_int(cookies_window_xpos, twin->win->LeftEdge);
+ nsoption_set_int(cookies_window_xsize, twin->win->Width);
+ nsoption_set_int(cookies_window_ysize, twin->win->Height);
break;
case AMI_TREE_HOTLIST:
- option_hotlist_window_ypos = twin->win->TopEdge;
- option_hotlist_window_xpos = twin->win->LeftEdge;
- option_hotlist_window_xsize = twin->win->Width;
- option_hotlist_window_ysize = twin->win->Height;
+ nsoption_set_int(hotlist_window_ypos, twin->win->TopEdge);
+ nsoption_set_int(hotlist_window_xpos, twin->win->LeftEdge);
+ nsoption_set_int(hotlist_window_xsize, twin->win->Width);
+ nsoption_set_int(hotlist_window_ysize, twin->win->Height);
break;
}
break;
@@ -1248,14 +1248,14 @@ void ami_tree_redraw_request(int x, int y, int width, int height, void *data)
y = pos_y;
}
- for(tile_y = y; tile_y < (y + height); tile_y += option_redraw_tile_size_y) {
- tile_h = option_redraw_tile_size_y;
- if(((y + height) - tile_y) < option_redraw_tile_size_y)
+ for(tile_y = y; tile_y < (y + height); tile_y += nsoption_int(redraw_tile_size_y)) {
+ tile_h = nsoption_int(redraw_tile_size_y);
+ if(((y + height) - tile_y) < nsoption_int(redraw_tile_size_y))
tile_h = (y + height) - tile_y;
- for(tile_x = x; tile_x < (x + width); tile_x += option_redraw_tile_size_x) {
- tile_w = option_redraw_tile_size_x;
- if(((x + width) - tile_x) < option_redraw_tile_size_x)
+ for(tile_x = x; tile_x < (x + width); tile_x += nsoption_int(redraw_tile_size_x)) {
+ tile_w = nsoption_int(redraw_tile_size_x);
+ if(((x + width) - tile_x) < nsoption_int(redraw_tile_size_x))
tile_w = (x + width) - tile_x;
tree_draw(twin->tree, - tile_x, - tile_y,