diff options
Diffstat (limited to 'desktop/options_main.h')
-rw-r--r-- | desktop/options_main.h | 400 |
1 files changed, 400 insertions, 0 deletions
diff --git a/desktop/options_main.h b/desktop/options_main.h new file mode 100644 index 000000000..fc7af3d28 --- /dev/null +++ b/desktop/options_main.h @@ -0,0 +1,400 @@ +/* + * Copyright 2004 James Bursa <bursa@users.sourceforge.net> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/** \file + * Option available on all platforms + * + * Non-platform specific options can be added by editing this file + * + * Platform specific options should be added in the platform options.h. + * + * The following types of options are supported: + * - bool (OPTION_BOOL) boolean + * - int (OPTION_INTEGER) integer + * - colour (OPTION_COLOUR) colour + * - char* (OPTION_STRING) must be allocated on heap, may be NULL + */ + +#ifndef _NETSURF_DESKTOP_OPTIONS_MAIN_H_ +#define _NETSURF_DESKTOP_OPTIONS_MAIN_H_ + +#define NSOPTION_MAIN_DEFINE \ + /** An HTTP proxy should be used. */ \ + bool http_proxy; \ + /** Hostname of proxy. */ \ + char *http_proxy_host; \ + /** Proxy port. */ \ + int http_proxy_port; \ + /** Proxy authentication method. */ \ + int http_proxy_auth; \ + /** Proxy authentication user name */ \ + char *http_proxy_auth_user; \ + /** Proxy authentication password */ \ + char *http_proxy_auth_pass; \ + /** Default font size / 0.1pt. */ \ + int font_size; \ + /** Minimum font size. */ \ + int font_min_size; \ + /** Default sans serif font */ \ + char *font_sans; \ + /** Default serif font */ \ + char *font_serif; \ + /** Default monospace font */ \ + char *font_mono; \ + /** Default cursive font */ \ + char *font_cursive; \ + /** Default fantasy font */ \ + char *font_fantasy; \ + /** Accept-Language header. */ \ + char *accept_language; \ + /** Accept-Charset header. */ \ + char *accept_charset; \ + /** Preferred maximum size of memory cache / bytes. */ \ + int memory_cache_size; \ + /** Preferred expiry age of disc cache / days. */ \ + int disc_cache_age; \ + /** Whether to block advertisements */ \ + bool block_ads; \ + /** Minimum GIF animation delay */ \ + int minimum_gif_delay; \ + /** Whether to send the referer HTTP header */ \ + bool send_referer; \ + /** Whether to fetch foreground images */ \ + bool foreground_images; \ + /** Whether to fetch background images */ \ + bool background_images; \ + /** Whether to animate images */ \ + bool animate_images; \ + /** How many days to retain URL data for */ \ + int expire_url; \ + /** Default font family */ \ + int font_default; \ + /** ca-bundle location */ \ + char *ca_bundle; \ + /** ca-path location */ \ + char *ca_path; \ + /** Cookie file location */ \ + char *cookie_file; \ + /** Cookie jar location */ \ + char *cookie_jar; \ + /** Home page location */ \ + char *homepage_url; \ + /** search web from url bar */ \ + bool search_url_bar; \ + /** URL completion in url bar */ \ + bool url_suggestion; \ + /** default web search provider */ \ + int search_provider; \ + /** default x position of new windows */ \ + int window_x; \ + /** default y position of new windows */ \ + int window_y; \ + /** default width of new windows */ \ + int window_width; \ + /** default height of new windows */ \ + int window_height; \ + /** width of screen when above options were saved */ \ + int window_screen_width; \ + /** height of screen when above options were saved */ \ + int window_screen_height; \ + /** default size of status bar vs. h scroll bar */ \ + int toolbar_status_width; \ + /** default window scale */ \ + int scale; \ + /* Whether to reflow web pages while objects are fetching */ \ + bool incremental_reflow; \ + /* Minimum time between HTML reflows while objects are fetching */ \ + unsigned int min_reflow_period; /* time in cs */ \ + bool core_select_menu; \ + /** top margin of exported page */ \ + int margin_top; \ + /** bottom margin of exported page */ \ + int margin_bottom; \ + /** left margin of exported page */ \ + int margin_left; \ + /** right margin of exported page*/ \ + int margin_right; \ + /** scale of exported content*/ \ + int export_scale; \ + /** suppressing images in printed content*/ \ + bool suppress_images; \ + /** turning off all backgrounds for printed content*/ \ + bool remove_backgrounds; \ + /** turning on content loosening for printed content*/ \ + bool enable_loosening; \ + /** compression of PDF documents*/ \ + bool enable_PDF_compression; \ + /** setting a password and encoding PDF documents*/ \ + bool enable_PDF_password; \ + \ + /* Fetcher configuration */ \ + /** Maximum simultaneous active fetchers */ \ + int max_fetchers; \ + /** Maximum simultaneous active fetchers per host. \ + * (<=option_max_fetchers else it makes no sense) Note that \ + * rfc2616 section 8.1.4 says that there should be no more \ + * than two keepalive connections per host. None of the main \ + * browsers follow this as it slows page fetches down \ + * considerably. See \ + * https://bugzilla.mozilla.org/show_bug.cgi?id=423377#c4 \ + */ \ + int max_fetchers_per_host; \ + /** Maximum number of inactive fetchers cached. The total \ + * number of handles netsurf will therefore have open is this \ + * plus option_max_fetchers. \ + */ \ + int max_cached_fetch_handles; \ + /** Suppress debug output from cURL. */ \ + bool suppress_curl_debug; \ + \ + /** Whether to allow target="_blank" */ \ + bool target_blank; \ + \ + /** Whether second mouse button opens in new tab */ \ + bool button_2_tab; \ + \ + /* Interface colours */ \ + colour gui_colour_bg_1; /** Background (bbggrr) */ \ + colour gui_colour_fg_1; /** Foreground (bbggrr) */ \ + colour gui_colour_fg_2; /** Foreground selected (bbggrr) */ \ + \ + /* system colours */ \ + colour sys_colour_ActiveBorder; \ + colour sys_colour_ActiveCaption; \ + colour sys_colour_AppWorkspace; \ + colour sys_colour_Background; \ + colour sys_colour_ButtonFace; \ + colour sys_colour_ButtonHighlight; \ + colour sys_colour_ButtonShadow; \ + colour sys_colour_ButtonText; \ + colour sys_colour_CaptionText; \ + colour sys_colour_GrayText; \ + colour sys_colour_Highlight; \ + colour sys_colour_HighlightText; \ + colour sys_colour_InactiveBorder; \ + colour sys_colour_InactiveCaption; \ + colour sys_colour_InactiveCaptionText; \ + colour sys_colour_InfoBackground; \ + colour sys_colour_InfoText; \ + colour sys_colour_Menu; \ + colour sys_colour_MenuText; \ + colour sys_colour_Scrollbar; \ + colour sys_colour_ThreeDDarkShadow; \ + colour sys_colour_ThreeDFace; \ + colour sys_colour_ThreeDHighlight; \ + colour sys_colour_ThreeDLightShadow; \ + colour sys_colour_ThreeDShadow; \ + colour sys_colour_Window; \ + colour sys_colour_WindowFrame; \ + colour sys_colour_WindowText + +#define NSOPTION_MAIN_DEFAULTS \ + .http_proxy = false, \ + .http_proxy_host = NULL, \ + .http_proxy_port = 8080, \ + .http_proxy_auth = OPTION_HTTP_PROXY_AUTH_NONE, \ + .http_proxy_auth_user = NULL, \ + .http_proxy_auth_pass = NULL, \ + .font_size = 128, \ + .font_min_size = 85, \ + .font_sans = NULL, \ + .font_serif = NULL, \ + .font_mono = NULL, \ + .font_cursive = NULL, \ + .font_fantasy = NULL, \ + .accept_language = NULL, \ + .accept_charset = NULL, \ + .memory_cache_size = 12 * 1024 * 1024, \ + .disc_cache_age = 28, \ + .block_ads = false, \ + .minimum_gif_delay = 10, \ + .send_referer = true, \ + .foreground_images = true, \ + .background_images = true, \ + .animate_images = true, \ + .expire_url = 28, \ + .font_default = PLOT_FONT_FAMILY_SANS_SERIF, \ + .ca_bundle = NULL, \ + .ca_path = NULL, \ + .cookie_file = NULL, \ + .cookie_jar = NULL, \ + .homepage_url = NULL, \ + .search_url_bar = false, \ + .url_suggestion = true, \ + .search_provider = 0, \ + .window_x = 0, \ + .window_y = 0, \ + .window_width = 0, \ + .window_height = 0, \ + .window_screen_width = 0, \ + .window_screen_height = 0, \ + .toolbar_status_width = 6667, \ + .scale = 100, \ + .incremental_reflow = true, \ + .min_reflow_period = DEFAULT_REFLOW_PERIOD, \ + .core_select_menu = false, \ + .margin_top = DEFAULT_MARGIN_TOP_MM, \ + .margin_bottom = DEFAULT_MARGIN_BOTTOM_MM, \ + .margin_left = DEFAULT_MARGIN_LEFT_MM, \ + .margin_right = DEFAULT_MARGIN_RIGHT_MM, \ + .export_scale = DEFAULT_EXPORT_SCALE * 100, \ + .suppress_images = false, \ + .remove_backgrounds = false, \ + .enable_loosening = true, \ + .enable_PDF_compression = true, \ + .enable_PDF_password = false, \ + .max_fetchers = 24, \ + .max_fetchers_per_host = 5, \ + .max_cached_fetch_handles = 6, \ + .suppress_curl_debug = true, \ + .target_blank = true, \ + .button_2_tab = true, \ + .gui_colour_bg_1 = 0xFFCCBB, \ + .gui_colour_fg_1 = 0x000000, \ + .gui_colour_fg_2 = 0xFFFBF8 + +#define NSOPTION_MAIN_SYS_COLOUR_DEFAULTS \ + .sys_colour_ActiveBorder = 0x00000000, \ + .sys_colour_ActiveCaption = 0x00000000, \ + .sys_colour_AppWorkspace = 0x00000000, \ + .sys_colour_Background = 0x00000000, \ + .sys_colour_ButtonFace = 0x00000000, \ + .sys_colour_ButtonHighlight = 0x00000000, \ + .sys_colour_ButtonShadow = 0x00000000, \ + .sys_colour_ButtonText = 0x00000000, \ + .sys_colour_CaptionText = 0x0000000, \ + .sys_colour_GrayText = 0x00000000, \ + .sys_colour_Highlight = 0x00000000, \ + .sys_colour_HighlightText = 0x00000000, \ + .sys_colour_InactiveBorder = 0x00000000, \ + .sys_colour_InactiveCaption = 0x00000000, \ + .sys_colour_InactiveCaptionText = 0x00000000, \ + .sys_colour_InfoBackground = 0x00000000, \ + .sys_colour_InfoText = 0x00000000, \ + .sys_colour_Menu = 0x00000000, \ + .sys_colour_MenuText = 0x0000000, \ + .sys_colour_Scrollbar = 0x0000000, \ + .sys_colour_ThreeDDarkShadow = 0x000000, \ + .sys_colour_ThreeDFace = 0x000000, \ + .sys_colour_ThreeDHighlight = 0x000000, \ + .sys_colour_ThreeDLightShadow = 0x000000, \ + .sys_colour_ThreeDShadow = 0x000000, \ + .sys_colour_Window = 0x000000, \ + .sys_colour_WindowFrame = 0x000000, \ + .sys_colour_WindowText = 0x000000 + + +#define NSOPTION_MAIN_TABLE \ + { "http_proxy", OPTION_BOOL, &nsoptions.http_proxy }, \ + { "http_proxy_host", OPTION_STRING, &nsoptions.http_proxy_host }, \ + { "http_proxy_port", OPTION_INTEGER, &nsoptions.http_proxy_port }, \ + { "http_proxy_auth", OPTION_INTEGER, &nsoptions.http_proxy_auth }, \ + { "http_proxy_auth_user", OPTION_STRING, &nsoptions.http_proxy_auth_user }, \ + { "http_proxy_auth_pass", OPTION_STRING, &nsoptions.http_proxy_auth_pass }, \ + { "font_size", OPTION_INTEGER, &nsoptions.font_size }, \ + { "font_min_size", OPTION_INTEGER, &nsoptions.font_min_size }, \ + { "font_sans", OPTION_STRING, &nsoptions.font_sans }, \ + { "font_serif", OPTION_STRING, &nsoptions.font_serif }, \ + { "font_mono", OPTION_STRING, &nsoptions.font_mono }, \ + { "font_cursive", OPTION_STRING, &nsoptions.font_cursive }, \ + { "font_fantasy", OPTION_STRING, &nsoptions.font_fantasy }, \ + { "accept_language", OPTION_STRING, &nsoptions.accept_language }, \ + { "accept_charset", OPTION_STRING, &nsoptions.accept_charset }, \ + { "memory_cache_size", OPTION_INTEGER, &nsoptions.memory_cache_size }, \ + { "disc_cache_age", OPTION_INTEGER, &nsoptions.disc_cache_age }, \ + { "block_advertisements", OPTION_BOOL, &nsoptions.block_ads }, \ + { "minimum_gif_delay", OPTION_INTEGER, &nsoptions.minimum_gif_delay }, \ + { "send_referer", OPTION_BOOL, &nsoptions.send_referer }, \ + { "foreground_images", OPTION_BOOL, &nsoptions.foreground_images }, \ + { "background_images", OPTION_BOOL, &nsoptions.background_images }, \ + { "animate_images", OPTION_BOOL, &nsoptions.animate_images }, \ + { "expire_url", OPTION_INTEGER, &nsoptions.expire_url }, \ + { "font_default", OPTION_INTEGER, &nsoptions.font_default }, \ + { "ca_bundle", OPTION_STRING, &nsoptions.ca_bundle }, \ + { "ca_path", OPTION_STRING, &nsoptions.ca_path }, \ + { "cookie_file", OPTION_STRING, &nsoptions.cookie_file }, \ + { "cookie_jar", OPTION_STRING, &nsoptions.cookie_jar }, \ + { "homepage_url", OPTION_STRING, &nsoptions.homepage_url }, \ + { "search_url_bar", OPTION_BOOL, &nsoptions.search_url_bar}, \ + { "search_provider", OPTION_INTEGER, &nsoptions.search_provider}, \ + { "url_suggestion", OPTION_BOOL, &nsoptions.url_suggestion }, \ + { "window_x", OPTION_INTEGER, &nsoptions.window_x }, \ + { "window_y", OPTION_INTEGER, &nsoptions.window_y }, \ + { "window_width", OPTION_INTEGER, &nsoptions.window_width }, \ + { "window_height", OPTION_INTEGER, &nsoptions.window_height }, \ + { "window_screen_width", OPTION_INTEGER, &nsoptions.window_screen_width }, \ + { "window_screen_height", OPTION_INTEGER, &nsoptions.window_screen_height }, \ + { "toolbar_status_size", OPTION_INTEGER, &nsoptions.toolbar_status_width }, \ + { "scale", OPTION_INTEGER, &nsoptions.scale }, \ + { "incremental_reflow", OPTION_BOOL, &nsoptions.incremental_reflow }, \ + { "min_reflow_period", OPTION_INTEGER, &nsoptions.min_reflow_period }, \ + { "core_select_menu", OPTION_BOOL, &nsoptions.core_select_menu }, \ + /* Fetcher options */ \ + { "max_fetchers", OPTION_INTEGER, &nsoptions.max_fetchers }, \ + { "max_fetchers_per_host", OPTION_INTEGER, &nsoptions.max_fetchers_per_host }, \ + { "max_cached_fetch_handles", OPTION_INTEGER, &nsoptions.max_cached_fetch_handles }, \ + { "suppress_curl_debug",OPTION_BOOL, &nsoptions.suppress_curl_debug }, \ + { "target_blank", OPTION_BOOL, &nsoptions.target_blank }, \ + { "button_2_tab", OPTION_BOOL, &nsoptions.button_2_tab }, \ + /* PDF / Print options*/ \ + { "margin_top", OPTION_INTEGER, &nsoptions.margin_top}, \ + { "margin_bottom", OPTION_INTEGER, &nsoptions.margin_bottom}, \ + { "margin_left", OPTION_INTEGER, &nsoptions.margin_left}, \ + { "margin_right", OPTION_INTEGER, &nsoptions.margin_right}, \ + { "export_scale", OPTION_INTEGER, &nsoptions.export_scale}, \ + { "suppress_images", OPTION_BOOL, &nsoptions.suppress_images}, \ + { "remove_backgrounds", OPTION_BOOL, &nsoptions.remove_backgrounds}, \ + { "enable_loosening", OPTION_BOOL, &nsoptions.enable_loosening}, \ + { "enable_PDF_compression", OPTION_BOOL, &nsoptions.enable_PDF_compression}, \ + { "enable_PDF_password", OPTION_BOOL, &nsoptions.enable_PDF_password}, \ + /* Interface colours */ \ + { "gui_colour_bg_1", OPTION_COLOUR, &nsoptions.gui_colour_bg_1}, \ + { "gui_colour_fg_1", OPTION_COLOUR, &nsoptions.gui_colour_fg_1}, \ + { "gui_colour_fg_2", OPTION_COLOUR, &nsoptions.gui_colour_fg_2}, \ + \ + /* System colours */ \ + { "sys_colour_ActiveBorder",OPTION_COLOUR,&nsoptions.sys_colour_ActiveBorder }, \ + { "sys_colour_ActiveCaption",OPTION_COLOUR,&nsoptions.sys_colour_ActiveCaption }, \ + { "sys_colour_AppWorkspace",OPTION_COLOUR,&nsoptions.sys_colour_AppWorkspace }, \ + { "sys_colour_Background",OPTION_COLOUR,&nsoptions.sys_colour_Background }, \ + { "sys_colour_ButtonFace",OPTION_COLOUR,&nsoptions.sys_colour_ButtonFace }, \ + { "sys_colour_ButtonHighlight",OPTION_COLOUR,&nsoptions.sys_colour_ButtonHighlight }, \ + { "sys_colour_ButtonShadow",OPTION_COLOUR,&nsoptions.sys_colour_ButtonShadow }, \ + { "sys_colour_ButtonText",OPTION_COLOUR,&nsoptions.sys_colour_ButtonText }, \ + { "sys_colour_CaptionText",OPTION_COLOUR,&nsoptions.sys_colour_CaptionText }, \ + { "sys_colour_GrayText",OPTION_COLOUR,&nsoptions.sys_colour_GrayText }, \ + { "sys_colour_Highlight",OPTION_COLOUR,&nsoptions.sys_colour_Highlight }, \ + { "sys_colour_HighlightText",OPTION_COLOUR,&nsoptions.sys_colour_HighlightText }, \ + { "sys_colour_InactiveBorder",OPTION_COLOUR,&nsoptions.sys_colour_InactiveBorder }, \ + { "sys_colour_InactiveCaption",OPTION_COLOUR,&nsoptions.sys_colour_InactiveCaption }, \ + { "sys_colour_InactiveCaptionText",OPTION_COLOUR,&nsoptions.sys_colour_InactiveCaptionText }, \ + { "sys_colour_InfoBackground",OPTION_COLOUR,&nsoptions.sys_colour_InfoBackground }, \ + { "sys_colour_InfoText",OPTION_COLOUR,&nsoptions.sys_colour_InfoText }, \ + { "sys_colour_Menu",OPTION_COLOUR,&nsoptions.sys_colour_Menu }, \ + { "sys_colour_MenuText",OPTION_COLOUR,&nsoptions.sys_colour_MenuText }, \ + { "sys_colour_Scrollbar",OPTION_COLOUR,&nsoptions.sys_colour_Scrollbar }, \ + { "sys_colour_ThreeDDarkShadow",OPTION_COLOUR,&nsoptions.sys_colour_ThreeDDarkShadow }, \ + { "sys_colour_ThreeDFace",OPTION_COLOUR,&nsoptions.sys_colour_ThreeDFace }, \ + { "sys_colour_ThreeDHighlight",OPTION_COLOUR,&nsoptions.sys_colour_ThreeDHighlight }, \ + { "sys_colour_ThreeDLightShadow", OPTION_COLOUR,&nsoptions.sys_colour_ThreeDLightShadow }, \ + { "sys_colour_ThreeDShadow", OPTION_COLOUR,&nsoptions.sys_colour_ThreeDShadow }, \ + { "sys_colour_Window", OPTION_COLOUR,&nsoptions.sys_colour_Window }, \ + { "sys_colour_WindowFrame", OPTION_COLOUR,&nsoptions.sys_colour_WindowFrame }, \ + { "sys_colour_WindowText", OPTION_COLOUR,&nsoptions.sys_colour_WindowText } + +#endif |