summaryrefslogtreecommitdiff
path: root/desktop/options_main.h
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/options_main.h')
-rw-r--r--desktop/options_main.h400
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