summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2011-01-30 13:40:47 +0000
committerVincent Sanders <vince@netsurf-browser.org>2011-01-30 13:40:47 +0000
commitfbb1139214f3c4fa7925c572eca05e27873e05ea (patch)
treed076cc1b3e3425aebf24728182594730e2060413 /desktop
parent42f89d4e0b35bbe768918305b624e20ef654d619 (diff)
downloadnetsurf-fbb1139214f3c4fa7925c572eca05e27873e05ea.tar.gz
netsurf-fbb1139214f3c4fa7925c572eca05e27873e05ea.tar.bz2
add default system colour handlers to each frontend
svn path=/trunk/netsurf/; revision=11530
Diffstat (limited to 'desktop')
-rw-r--r--desktop/gui.h13
-rw-r--r--desktop/netsurf.c14
-rw-r--r--desktop/options.c61
-rw-r--r--desktop/options.h29
4 files changed, 117 insertions, 0 deletions
diff --git a/desktop/gui.h b/desktop/gui.h
index abfb413cc..b50aab67f 100644
--- a/desktop/gui.h
+++ b/desktop/gui.h
@@ -56,6 +56,10 @@ typedef enum { GUI_POINTER_DEFAULT, GUI_POINTER_POINT, GUI_POINTER_CARET,
GUI_POINTER_PROGRESS } gui_pointer_shape;
#include <stdbool.h>
+
+#include <libwapcaplet/libwapcaplet.h>
+#include <libcss/libcss.h>
+
#include "utils/config.h"
#include "content/content.h"
#include "content/hlcache.h"
@@ -141,4 +145,13 @@ void gui_cert_verify(const char *url, const struct ssl_cert_info *certs,
unsigned long num, nserror (*cb)(bool proceed, void *pw),
void *cbpw);
+/** css callback to obtain named system colours from a frontend. */
+css_error gui_system_colour(void *pw, lwc_string *name, css_color *color);
+
+/** Obtain a named system colour from a frontend. */
+colour gui_system_colour_char(char *name);
+
+bool gui_system_colour_init(void);
+void gui_system_colour_finalize(void);
+
#endif
diff --git a/desktop/netsurf.c b/desktop/netsurf.c
index fc51a99e0..d0b57b569 100644
--- a/desktop/netsurf.c
+++ b/desktop/netsurf.c
@@ -152,6 +152,9 @@ nserror netsurf_init(int *pargc,
llcache_initialise(netsurf_llcache_query_handler, NULL);
+ /* Initialize system colours */
+ gui_system_colour_init();
+
return NSERROR_OK;
}
@@ -177,20 +180,31 @@ void netsurf_exit(void)
{
LOG(("Closing GUI"));
gui_quit();
+
LOG(("Closing search and related resources"));
search_web_cleanup();
+
LOG(("Finalising high-level cache"));
hlcache_finalise();
+
LOG(("Finalising low-level cache"));
llcache_finalise();
+
LOG(("Closing fetches"));
fetch_quit();
+
LOG(("Closing utf8"));
utf8_finalise();
+
LOG(("Destroying URLdb"));
urldb_destroy();
+
+ LOG(("Destroying System colours"));
+ gui_system_colour_finalize();
+
LOG(("Remaining lwc strings:"));
lwc_iterate_strings(netsurf_lwc_iterator, NULL);
+
LOG(("Exited successfully"));
}
diff --git a/desktop/options.c b/desktop/options.c
index 93e25fc63..520be7563 100644
--- a/desktop/options.c
+++ b/desktop/options.c
@@ -193,6 +193,37 @@ colour option_gui_colour_bg_1 = 0xFFCCBB; /** Background (bbggrr) */
colour option_gui_colour_fg_1 = 0x000000; /** Foreground (bbggrr) */
colour option_gui_colour_fg_2 = 0xFFFBF8; /** Foreground selected (bbggrr) */
+/* system colours */
+colour option_sys_colour_ActiveBorder = 0x00000000;
+colour option_sys_colour_ActiveCaption = 0x00000000;
+colour option_sys_colour_AppWorkspace = 0x00000000;
+colour option_sys_colour_Background = 0x00000000;
+colour option_sys_colour_ButtonFace = 0x00000000;
+colour option_sys_colour_ButtonHighlight = 0x00000000;
+colour option_sys_colour_ButtonShadow = 0x00000000;
+colour option_sys_colour_ButtonText = 0x00000000;
+colour option_sys_colour_CaptionText = 0x0000000;
+colour option_sys_colour_GrayText = 0x00000000;
+colour option_sys_colour_Highlight = 0x00000000;
+colour option_sys_colour_HighlightText = 0x00000000;
+colour option_sys_colour_InactiveBorder = 0x00000000;
+colour option_sys_colour_InactiveCaption = 0x00000000;
+colour option_sys_colour_InactiveCaptionText = 0x00000000;
+colour option_sys_colour_InfoBackground = 0x00000000;
+colour option_sys_colour_InfoText = 0x00000000;
+colour option_sys_colour_Menu = 0x00000000;
+colour option_sys_colour_MenuText = 0x0000000;
+colour option_sys_colour_Scrollbar = 0x0000000;
+colour option_sys_colour_ThreeDDarkShadow = 0x000000;
+colour option_sys_colour_ThreeDFace = 0x000000;
+colour option_sys_colour_ThreeDHighlight = 0x000000;
+colour option_sys_colour_ThreeDLightShadow = 0x000000;
+colour option_sys_colour_ThreeDShadow = 0x000000;
+colour option_sys_colour_Window = 0x000000;
+colour option_sys_colour_WindowFrame = 0x000000;
+colour option_sys_colour_WindowText = 0x000000;
+
+
EXTRA_OPTION_DEFINE
@@ -276,6 +307,36 @@ struct {
{ "gui_colour_fg_1", OPTION_COLOUR, &option_gui_colour_fg_1},
{ "gui_colour_fg_2", OPTION_COLOUR, &option_gui_colour_fg_2},
+ /* System colours */
+ { "sys_colour_ActiveBorder",OPTION_COLOUR,&option_sys_colour_ActiveBorder },
+ { "sys_colour_ActiveCaption",OPTION_COLOUR,&option_sys_colour_ActiveCaption },
+ { "sys_colour_AppWorkspace",OPTION_COLOUR,&option_sys_colour_AppWorkspace },
+ { "sys_colour_Background",OPTION_COLOUR,&option_sys_colour_Background },
+ { "sys_colour_ButtonFace",OPTION_COLOUR,&option_sys_colour_ButtonFace },
+ { "sys_colour_ButtonHighlight",OPTION_COLOUR,&option_sys_colour_ButtonHighlight },
+ { "sys_colour_ButtonShadow",OPTION_COLOUR,&option_sys_colour_ButtonShadow },
+ { "sys_colour_ButtonText",OPTION_COLOUR,&option_sys_colour_ButtonText },
+ { "sys_colour_CaptionText",OPTION_COLOUR,&option_sys_colour_CaptionText },
+ { "sys_colour_GrayText",OPTION_COLOUR,&option_sys_colour_GrayText },
+ { "sys_colour_Highlight",OPTION_COLOUR,&option_sys_colour_Highlight },
+ { "sys_colour_HighlightText",OPTION_COLOUR,&option_sys_colour_HighlightText },
+ { "sys_colour_InactiveBorder",OPTION_COLOUR,&option_sys_colour_InactiveBorder },
+ { "sys_colour_InactiveCaption",OPTION_COLOUR,&option_sys_colour_InactiveCaption },
+ { "sys_colour_InactiveCaptionText",OPTION_COLOUR,&option_sys_colour_InactiveCaptionText },
+ { "sys_colour_InfoBackground",OPTION_COLOUR,&option_sys_colour_InfoBackground },
+ { "sys_colour_InfoText",OPTION_COLOUR,&option_sys_colour_InfoText },
+ { "sys_colour_Menu",OPTION_COLOUR,&option_sys_colour_Menu },
+ { "sys_colour_MenuText",OPTION_COLOUR,&option_sys_colour_MenuText },
+ { "sys_colour_Scrollbar",OPTION_COLOUR,&option_sys_colour_Scrollbar },
+ { "sys_colour_ThreeDDarkShadow",OPTION_COLOUR,&option_sys_colour_ThreeDDarkShadow },
+ { "sys_colour_ThreeDFace",OPTION_COLOUR,&option_sys_colour_ThreeDFace },
+ { "sys_colour_ThreeDHighlight",OPTION_COLOUR,&option_sys_colour_ThreeDHighlight },
+ { "sys_colour_ThreeDLightShadow",OPTION_COLOUR,&option_sys_colour_ThreeDLightShadow },
+ { "sys_colour_ThreeDShadow",OPTION_COLOUR,&option_sys_colour_ThreeDShadow },
+ { "sys_colour_Window",OPTION_COLOUR,&option_sys_colour_Window },
+ { "sys_colour_WindowFrame",OPTION_COLOUR,&option_sys_colour_WindowFrame },
+ { "sys_colour_WindowText",OPTION_COLOUR,&option_sys_colour_WindowText },
+
EXTRA_OPTION_TABLE
};
diff --git a/desktop/options.h b/desktop/options.h
index 3fded50d4..5231322ad 100644
--- a/desktop/options.h
+++ b/desktop/options.h
@@ -113,6 +113,35 @@ extern colour option_gui_colour_bg_1;
extern colour option_gui_colour_fg_1;
extern colour option_gui_colour_fg_2;
+extern colour option_sys_colour_ActiveBorder;
+extern colour option_sys_colour_ActiveCaption;
+extern colour option_sys_colour_AppWorkspace;
+extern colour option_sys_colour_Background;
+extern colour option_sys_colour_ButtonFace;
+extern colour option_sys_colour_ButtonHighlight;
+extern colour option_sys_colour_ButtonShadow;
+extern colour option_sys_colour_ButtonText;
+extern colour option_sys_colour_CaptionText;
+extern colour option_sys_colour_GrayText;
+extern colour option_sys_colour_Highlight;
+extern colour option_sys_colour_HighlightText;
+extern colour option_sys_colour_InactiveBorder;
+extern colour option_sys_colour_InactiveCaption;
+extern colour option_sys_colour_InactiveCaptionText;
+extern colour option_sys_colour_InfoBackground;
+extern colour option_sys_colour_InfoText;
+extern colour option_sys_colour_Menu;
+extern colour option_sys_colour_MenuText;
+extern colour option_sys_colour_Scrollbar;
+extern colour option_sys_colour_ThreeDDarkShadow;
+extern colour option_sys_colour_ThreeDFace;
+extern colour option_sys_colour_ThreeDHighlight;
+extern colour option_sys_colour_ThreeDLightShadow;
+extern colour option_sys_colour_ThreeDShadow;
+extern colour option_sys_colour_Window;
+extern colour option_sys_colour_WindowFrame;
+extern colour option_sys_colour_WindowText;
+
void options_read(const char *path);
void options_write(const char *path);