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
[email protected]
http://linuxfromscratch.org/mailman/listinfo/elinks-dev