From fbb1139214f3c4fa7925c572eca05e27873e05ea Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 30 Jan 2011 13:40:47 +0000 Subject: add default system colour handlers to each frontend svn path=/trunk/netsurf/; revision=11530 --- desktop/gui.h | 13 ++++++++++++ desktop/netsurf.c | 14 +++++++++++++ desktop/options.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ desktop/options.h | 29 ++++++++++++++++++++++++++ 4 files changed, 117 insertions(+) (limited to 'desktop') 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 + +#include +#include + #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); -- cgit v1.2.3