From 1490b52a6b96b6a69a0c4fe9e0515dc717425128 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 22 Mar 2012 09:34:34 +0000 Subject: NetSurf options rework (a=vince r=daniels,jmb) svn path=/trunk/netsurf/; revision=13548 --- amiga/arexx.c | 10 +- amiga/bitmap.c | 8 +- amiga/clipboard.c | 10 +- amiga/context_menu.c | 8 +- amiga/download.c | 8 +- amiga/drag.c | 10 +- amiga/dt_sound.c | 2 +- amiga/file.c | 3 +- amiga/font.c | 28 +-- amiga/gui.c | 237 ++++++++++++------------ amiga/gui_options.c | 421 ++++++++++++++++++++++++------------------ amiga/menu.c | 28 +-- amiga/options.h | 318 +++++++++++++++---------------- amiga/plotters.c | 26 +-- amiga/print.c | 19 +- amiga/stringview/urlhistory.c | 2 +- amiga/system_colour.c | 56 +++--- amiga/theme.c | 19 +- amiga/thumbnail.c | 10 +- amiga/tree.c | 68 +++---- 20 files changed, 680 insertions(+), 611 deletions(-) (limited to 'amiga') 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 #endif #include -#include "amiga/options.h" +#include "desktop/options.h" #include #include #include @@ -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 @@ -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;ism_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 . */ +#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 #include #include "amiga/utf8.h" -#include "amiga/options.h" +#include "desktop/options.h" #ifdef __amigaos4__ #include #include @@ -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 #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, -- cgit v1.2.3