From 99fc8d3f0dd0f9889ced412d3b855878f525907a Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 11 Feb 2013 00:41:22 +0000 Subject: Move html textarea's selection colour chooser to plot_style.h, as it could be used elsewhere. --- desktop/plot_style.h | 8 ++++++++ render/box_textarea.c | 9 ++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/desktop/plot_style.h b/desktop/plot_style.h index 8f57915a9..b4e7ab8f9 100644 --- a/desktop/plot_style.h +++ b/desktop/plot_style.h @@ -64,6 +64,14 @@ (((((c0 >> 8) & 0xff) + ((c1 >> 8) & 0xff)) >> 1) << 8) | \ (((( c0 & 0xff) + ( c1 & 0xff)) >> 1) << 0) +/* Choose either black or white, depending on which is furthest from the + * percieved lightness of the supplied colour, c0. */ +#define colour_to_bw_furthest(c0) \ + ((((((c0 & 0x0000ff) * 77) >> 8) + \ + (((c0 & 0x00ff00) * 151) >> 16) + \ + (((c0 & 0xff0000) * 28) >> 24)) > \ + (0xff / 2)) ? 0x000000 : 0xffffff) + /* get a bitmap pixel (image/bitmap.h) into a plot colour */ #define pixel_to_colour(b) \ b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24) diff --git a/render/box_textarea.c b/render/box_textarea.c index 7f38ade5e..3109904d0 100644 --- a/render/box_textarea.c +++ b/render/box_textarea.c @@ -266,14 +266,9 @@ bool box_textarea_create_textarea(html_content *html, ta_setup.text = fstyle; ta_setup.text.background = NS_TRANSPARENT; /* Make selected text either black or white, as gives greatest contrast - * with background colour. (Calc lightness of background colour and - * choose the one the lightness is furthest from.) */ - ta_setup.selected_text = - (((((fstyle.foreground & 0x0000ff) ) * 19) / 64 + - (((fstyle.foreground & 0x00ff00) >> 8) * 38) / 64 + - (((fstyle.foreground & 0xff0000) >> 16) * 7) / 64) > - (0xff / 2)) ? 0x000000 : 0xffffff; + * with background colour. */ ta_setup.selected_bg = fstyle.foreground; + ta_setup.selected_text = colour_to_bw_furthest(ta_setup.selected_bg); /* Hand reference to dom text over to gadget */ gadget->data.text.initial = dom_text; -- cgit v1.2.3