diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-10-18 18:26:05 +0200 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-10-18 18:26:05 +0200 |
commit | b2eebc7a2704a7a945358838ab0d45935fe86a85 (patch) | |
tree | 41231446a8b18165fb0c26d41f8e97db5ba3248a | |
parent | 58e8cc02ca27066eb514eae6dcbfbfe8060eaeaa (diff) |
represent millimeter values as fractions in CssLength
E.g. for letter-spacing sub-millimeter values actually make a
difference.
The maximum value that is representable is now 65535 mm which
should be enough in most cases.
-rw-r--r-- | src/css.hh | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -63,7 +63,7 @@ typedef enum { * | <------ fixed point value ------> | * * where type is one of the CSS_LENGTH_TYPE_* values. - * CSS_LENGTH_TYPE_PX and CSS_LENGTH_TYPE_MM are stored as + * CSS_LENGTH_TYPE_PX values are stored as * 29 bit signed integer, all other types as fixed point values. */ @@ -88,13 +88,13 @@ inline CssLength CSS_CREATE_LENGTH (float v, CssLengthType t) { switch (t) { case CSS_LENGTH_TYPE_PX: - case CSS_LENGTH_TYPE_MM: iv = (int) (v + 0.5); if (iv > CSS_LENGTH_INT_MAX) iv = CSS_LENGTH_INT_MAX; else if (iv < -CSS_LENGTH_INT_MAX) iv = -CSS_LENGTH_INT_MAX; return iv << 3 | t; + case CSS_LENGTH_TYPE_MM: case CSS_LENGTH_TYPE_EM: case CSS_LENGTH_TYPE_EX: case CSS_LENGTH_TYPE_PERCENTAGE: @@ -119,8 +119,8 @@ inline CssLengthType CSS_LENGTH_TYPE (CssLength l) { inline float CSS_LENGTH_VALUE (CssLength l) { switch (CSS_LENGTH_TYPE(l)) { case CSS_LENGTH_TYPE_PX: - case CSS_LENGTH_TYPE_MM: return (float) (l >> 3); + case CSS_LENGTH_TYPE_MM: case CSS_LENGTH_TYPE_EM: case CSS_LENGTH_TYPE_EX: case CSS_LENGTH_TYPE_PERCENTAGE: |