diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2018-05-10 11:34:26 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2018-05-10 13:37:02 +0100 |
commit | 2a03ea30490892ac52b3da325ab78e1aa888f83e (patch) | |
tree | d041e4a2aab3b224ad41612d47ea2119895e27ac /render/font.c | |
parent | 1b892391d7859398c212b9fda5b532308fa6e8fd (diff) | |
download | netsurf-2a03ea30490892ac52b3da325ab78e1aa888f83e.tar.gz netsurf-2a03ea30490892ac52b3da325ab78e1aa888f83e.tar.bz2 |
move html and text content handlers where they belong
Diffstat (limited to 'render/font.c')
-rw-r--r-- | render/font.c | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/render/font.c b/render/font.c deleted file mode 100644 index a769b476f..000000000 --- a/render/font.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright 2009 John-Mark Bell <jmb@netsurf-browser.org> - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -/** - * \file - * - * Renderer internal font handling implementation. - */ - -#include "utils/nsoption.h" -#include "netsurf/plot_style.h" -#include "css/utils.h" - -#include "render/font.h" - -/** - * Map a generic CSS font family to a generic plot font family - * - * \param css Generic CSS font family - * \return Plot font family - */ -static plot_font_generic_family_t plot_font_generic_family( - enum css_font_family_e css) -{ - plot_font_generic_family_t plot; - - switch (css) { - case CSS_FONT_FAMILY_SERIF: - plot = PLOT_FONT_FAMILY_SERIF; - break; - case CSS_FONT_FAMILY_MONOSPACE: - plot = PLOT_FONT_FAMILY_MONOSPACE; - break; - case CSS_FONT_FAMILY_CURSIVE: - plot = PLOT_FONT_FAMILY_CURSIVE; - break; - case CSS_FONT_FAMILY_FANTASY: - plot = PLOT_FONT_FAMILY_FANTASY; - break; - case CSS_FONT_FAMILY_SANS_SERIF: - default: - plot = PLOT_FONT_FAMILY_SANS_SERIF; - break; - } - - return plot; -} - -/** - * Map a CSS font weight to a plot weight value - * - * \param css CSS font weight - * \return Plot weight - */ -static int plot_font_weight(enum css_font_weight_e css) -{ - int weight; - - switch (css) { - case CSS_FONT_WEIGHT_100: - weight = 100; - break; - case CSS_FONT_WEIGHT_200: - weight = 200; - break; - case CSS_FONT_WEIGHT_300: - weight = 300; - break; - case CSS_FONT_WEIGHT_400: - case CSS_FONT_WEIGHT_NORMAL: - default: - weight = 400; - break; - case CSS_FONT_WEIGHT_500: - weight = 500; - break; - case CSS_FONT_WEIGHT_600: - weight = 600; - break; - case CSS_FONT_WEIGHT_700: - case CSS_FONT_WEIGHT_BOLD: - weight = 700; - break; - case CSS_FONT_WEIGHT_800: - weight = 800; - break; - case CSS_FONT_WEIGHT_900: - weight = 900; - break; - } - - return weight; -} - -/** - * Map a CSS font style and font variant to plot font flags - * - * \param style CSS font style - * \param variant CSS font variant - * \return Computed plot flags - */ -static plot_font_flags_t plot_font_flags(enum css_font_style_e style, - enum css_font_variant_e variant) -{ - plot_font_flags_t flags = FONTF_NONE; - - if (style == CSS_FONT_STYLE_ITALIC) - flags |= FONTF_ITALIC; - else if (style == CSS_FONT_STYLE_OBLIQUE) - flags |= FONTF_OBLIQUE; - - if (variant == CSS_FONT_VARIANT_SMALL_CAPS) - flags |= FONTF_SMALLCAPS; - - return flags; -} - - -/* exported function documented in render/font.h */ -void font_plot_style_from_css( - const nscss_len_ctx *len_ctx, - const css_computed_style *css, - plot_font_style_t *fstyle) -{ - lwc_string **families; - css_fixed length = 0; - css_unit unit = CSS_UNIT_PX; - css_color col; - - fstyle->family = plot_font_generic_family( - css_computed_font_family(css, &families)); - - css_computed_font_size(css, &length, &unit); - fstyle->size = FIXTOINT(FMUL(nscss_len2pt(len_ctx, length, unit), - INTTOFIX(FONT_SIZE_SCALE))); - - /* Clamp font size to configured minimum */ - if (fstyle->size < (nsoption_int(font_min_size) * FONT_SIZE_SCALE) / 10) - fstyle->size = (nsoption_int(font_min_size) * FONT_SIZE_SCALE) / 10; - - fstyle->weight = plot_font_weight(css_computed_font_weight(css)); - fstyle->flags = plot_font_flags(css_computed_font_style(css), - css_computed_font_variant(css)); - - css_computed_color(css, &col); - fstyle->foreground = nscss_color_to_ns(col); - fstyle->background = 0; -} |