diff options
author | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-10-02 19:32:44 +0200 |
---|---|---|
committer | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-10-05 09:47:01 +0200 |
commit | 08371f8d8532fd82cb59d9eae85cb2e5a835376f (patch) | |
tree | 1586944bfee51ee68cb47e64d630c46f25b44abe /src/css.hh | |
parent | ac56aa678cfe1666b60821f342ccb7b3d3fa7a0d (diff) |
Add support for more CSS units
Implements support for ch, rem, vw, vh, vmin and vmax units of CSS
lengths. For now the units relative to the viewport are only computed
once, and they won't change when the window is resized, but only when
the page is reloaded.
See: https://www.toomanyatoms.com/software/mobilized_dillo.html
Authored-By: dogma
Diffstat (limited to 'src/css.hh')
-rw-r--r-- | src/css.hh | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -78,6 +78,12 @@ typedef enum { millimeters. */ CSS_LENGTH_TYPE_EM, CSS_LENGTH_TYPE_EX, + CSS_LENGTH_TYPE_CH, + CSS_LENGTH_TYPE_REM, + CSS_LENGTH_TYPE_VW, + CSS_LENGTH_TYPE_VH, + CSS_LENGTH_TYPE_VMIN, + CSS_LENGTH_TYPE_VMAX, CSS_LENGTH_TYPE_PERCENTAGE, CSS_LENGTH_TYPE_RELATIVE, /**< This does not exist in CSS but is used in HTML */ @@ -104,6 +110,12 @@ inline CssLength CSS_CREATE_LENGTH (float v, CssLengthType t) { case CSS_LENGTH_TYPE_MM: case CSS_LENGTH_TYPE_EM: case CSS_LENGTH_TYPE_EX: + case CSS_LENGTH_TYPE_CH: + case CSS_LENGTH_TYPE_REM: + case CSS_LENGTH_TYPE_VW: + case CSS_LENGTH_TYPE_VH: + case CSS_LENGTH_TYPE_VMIN: + case CSS_LENGTH_TYPE_VMAX: case CSS_LENGTH_TYPE_PERCENTAGE: case CSS_LENGTH_TYPE_RELATIVE: l.f = v; @@ -131,6 +143,12 @@ inline float CSS_LENGTH_VALUE (CssLength l) { case CSS_LENGTH_TYPE_MM: case CSS_LENGTH_TYPE_EM: case CSS_LENGTH_TYPE_EX: + case CSS_LENGTH_TYPE_CH: + case CSS_LENGTH_TYPE_REM: + case CSS_LENGTH_TYPE_VW: + case CSS_LENGTH_TYPE_VH: + case CSS_LENGTH_TYPE_VMIN: + case CSS_LENGTH_TYPE_VMAX: case CSS_LENGTH_TYPE_PERCENTAGE: case CSS_LENGTH_TYPE_RELATIVE: return l.f; |