Settings are specified by document.colors.form document.colors.use_form_color
The latter setting determines whether the color is used when document colors are being used. --- src/config/options.inc | 9 +++++++++ src/document/html/parser.c | 1 + src/document/html/parser.h | 1 + src/document/html/parser/forms.c | 18 ++++++++++++++++++ src/document/options.c | 2 ++ src/document/options.h | 2 ++ 6 files changed, 33 insertions(+), 0 deletions(-) diff --git a/src/config/options.inc b/src/config/options.inc index 323e987..340ab93 100644 --- a/src/config/options.inc +++ b/src/config/options.inc @@ -615,6 +615,15 @@ static struct option_info config_options_info[] = { "link_number", 0, "#0000ff", N_("Default link number color.")), + INIT_OPT_BOOL("document.colors", N_("Use form color"), + "use_form_color", 0, 0, + N_("Whether to use form color even colors specified by " + "the document are used.")), + + INIT_OPT_COLOR("document.colors", N_("Form color"), + "form", 0, "#000000", + N_("Default form color.")), + /* Compatibility alias: added by jonas at 2005-05-31, 0.11.CVS. */ INIT_OPT_ALIAS("document.colors", "allow_dark_on_black", OPT_ALIAS_NEGATE, "document.colors.increase_contrast"), diff --git a/src/document/html/parser.c b/src/document/html/parser.c index 65e54dd..f3305db 100644 --- a/src/document/html/parser.c +++ b/src/document/html/parser.c @@ -924,6 +924,7 @@ init_html_parser(struct uri *uri, struct document_options *options, #endif format.color.image_link = options->default_color.image_link; format.color.link_number = options->default_color.link_number; + format.color.form = options->default_color.form; par_format.align = ALIGN_LEFT; par_format.leftmargin = options->margin; diff --git a/src/document/html/parser.h b/src/document/html/parser.h index 7e61619..b28303a 100644 --- a/src/document/html/parser.h +++ b/src/document/html/parser.h @@ -31,6 +31,7 @@ struct text_attrib_color { #endif color_T image_link; color_T link_number; + color_T form; }; struct text_attrib { diff --git a/src/document/html/parser/forms.c b/src/document/html/parser/forms.c index 5f9dc47..68ec8d7 100644 --- a/src/document/html/parser/forms.c +++ b/src/document/html/parser/forms.c @@ -185,6 +185,8 @@ no_type_attr: html_context->special_f(html_context, SP_CONTROL, fc); format.form = fc; format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; } static void @@ -205,16 +207,22 @@ html_input_format(struct html_context *html_context, unsigned char *a, int i; format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; for (i = 0; i < fc->size; i++) put_chrs(html_context, "_", 1); break; } case FC_CHECKBOX: format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; put_chrs(html_context, "[ ]", 8); break; case FC_RADIO: format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; put_chrs(html_context, "( )", 8); break; case FC_IMAGE: @@ -231,6 +239,8 @@ html_input_format(struct html_context *html_context, unsigned char *a, mem_free(al); } format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; put_chrs(html_context, "[ ", 7); if (fc->alt) put_chrs(html_context, fc->alt, strlen(fc->alt)); @@ -246,6 +256,8 @@ html_input_format(struct html_context *html_context, unsigned char *a, case FC_RESET: case FC_BUTTON: format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; put_chrs(html_context, "[ ", 7); if (fc->default_value) put_chrs(html_context, fc->default_value, strlen(fc->default_value)); @@ -493,6 +505,8 @@ end_parse: html_stack_dup(html_context, ELEMENT_KILLABLE); format.form = fc; format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; max_width = 0; for (i = 0; i < order; i++) { @@ -614,6 +628,8 @@ end_parse: html_stack_dup(html_context, ELEMENT_KILLABLE); format.form = fc; format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; put_chrs(html_context, "[ ]", 3); pop_html_element(html_context); put_chrs(html_context, " ", 1); @@ -714,6 +730,8 @@ pp: html_stack_dup(html_context, ELEMENT_KILLABLE); format.form = fc; format.style.attr |= AT_BOLD; + if (html_context->options->use_form_color) + format.style.color.foreground = format.color.form; for (i = 0; i < rows; i++) { int j; diff --git a/src/document/options.c b/src/document/options.c index dabacb2..b681fda 100644 --- a/src/document/options.c +++ b/src/document/options.c @@ -47,6 +47,8 @@ init_document_options(struct session *ses, struct document_options *doo) doo->default_color.image_link = get_opt_color("document.colors.image", ses); doo->default_color.link_number = get_opt_color("document.colors.link_number", ses); doo->use_link_number_color = doo->use_document_colors == 0 || get_opt_bool("document.colors.use_link_number_color", ses); + doo->default_color.form = get_opt_color("document.colors.form", ses); + doo->use_form_color = doo->use_document_colors == 0 || get_opt_bool("document.colors.use_form_color", ses); doo->active_link.color.foreground = get_opt_color("document.browse.links.active_link.colors.text", ses); doo->active_link.color.background = get_opt_color("document.browse.links.active_link.colors.background", ses); diff --git a/src/document/options.h b/src/document/options.h index 33a7570..d3bd29a 100644 --- a/src/document/options.h +++ b/src/document/options.h @@ -33,6 +33,7 @@ struct document_options_colors { #endif color_T image_link; color_T link_number; + color_T form; }; struct document_options_image_link { @@ -64,6 +65,7 @@ struct document_options { /** @} */ unsigned int use_link_number_color:1; + unsigned int use_form_color:1; /** Color model/optimizations */ enum color_flags color_flags; -- 1.6.3 _______________________________________________ elinks-dev mailing list elinks-dev@linuxfromscratch.org http://linuxfromscratch.org/mailman/listinfo/elinks-dev