summaryrefslogtreecommitdiff
path: root/src/select/computed.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-04-13 11:43:13 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2012-04-13 11:43:13 +0000
commit89ef7a8acf13143ac0283aa1cfa5ea504b92324b (patch)
tree26564857b03f2c495a05073d3418af7f7a4a5d99 /src/select/computed.c
parent3f008ebef592b39c93b21dd66dfbe2fd23b6860e (diff)
downloadlibcss-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.c53
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
/******************************************************************************