diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2012-04-13 11:43:13 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2012-04-13 11:43:13 +0000 |
commit | 89ef7a8acf13143ac0283aa1cfa5ea504b92324b (patch) | |
tree | 26564857b03f2c495a05073d3418af7f7a4a5d99 /src/select/computed.c | |
parent | 3f008ebef592b39c93b21dd66dfbe2fd23b6860e (diff) | |
download | libcss-89ef7a8acf13143ac0283aa1cfa5ea504b92324b.tar.gz libcss-89ef7a8acf13143ac0283aa1cfa5ea504b92324b.tar.bz2 |
Complete widows and orphans support. Thanks to James Montgomerie.
svn path=/trunk/libcss/; revision=13864
Diffstat (limited to 'src/select/computed.c')
-rw-r--r-- | src/select/computed.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/select/computed.c b/src/select/computed.c index 991a9a8..9f21d4a 100644 --- a/src/select/computed.c +++ b/src/select/computed.c @@ -2223,6 +2223,59 @@ uint8_t css_computed_page_break_inside( #undef CSS_PAGE_BREAK_INSIDE_SHIFT #undef CSS_PAGE_BREAK_INSIDE_INDEX +#define CSS_ORPHANS_INDEX 1 +#define CSS_ORPHANS_SHIFT 0 +#define CSS_ORPHANS_MASK 0x1 +uint8_t css_computed_orphans( + const css_computed_style *style, + int32_t *orphans) +{ + if (style->page != NULL) { + uint8_t bits = style->page->bits[CSS_ORPHANS_INDEX]; + bits &= CSS_ORPHANS_MASK; + bits >>= CSS_ORPHANS_SHIFT; + + *orphans = FIXTOINT(style->page->orphans);; + + /* 1bit: type */ + return bits; + } + + /* Use initial value */ + *orphans = 2; + + return CSS_ORPHANS_SET; +} +#undef CSS_ORPHANS_MASK +#undef CSS_ORPHANS_SHIFT +#undef CSS_ORPHANS_INDEX + +#define CSS_WIDOWS_INDEX 1 +#define CSS_WIDOWS_SHIFT 1 +#define CSS_WIDOWS_MASK 0x2 +uint8_t css_computed_widows( + const css_computed_style *style, + int32_t *widows) +{ + if (style->page != NULL) { + uint8_t bits = style->page->bits[CSS_WIDOWS_INDEX]; + bits &= CSS_WIDOWS_MASK; + bits >>= CSS_WIDOWS_SHIFT; + + *widows = FIXTOINT(style->page->widows); + + /* 1bit: type */ + return bits; + } + + /* Use initial value */ + *widows = 2; + + return CSS_WIDOWS_SET; +} +#undef CSS_WIDOWS_MASK +#undef CSS_WIDOWS_SHIFT +#undef CSS_WIDOWS_INDEX /****************************************************************************** |