summaryrefslogtreecommitdiff
path: root/content/handlers/css/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/handlers/css/utils.h')
-rw-r--r--content/handlers/css/utils.h85
1 files changed, 71 insertions, 14 deletions
diff --git a/content/handlers/css/utils.h b/content/handlers/css/utils.h
index 58a5ea6e6..ee241e2cc 100644
--- a/content/handlers/css/utils.h
+++ b/content/handlers/css/utils.h
@@ -27,23 +27,80 @@
extern css_fixed nscss_screen_dpi;
/**
- * Convert an absolute CSS length to points.
- *
- * \param[in] length Absolute CSS length.
- * \param[in] unit Unit of the length.
- * \return length in points
+ * Temporary helper wrappers for for libcss computed style getter, while
+ * we don't support all values of display.
*/
-css_fixed nscss_len2pt(css_fixed length, css_unit unit);
+static inline uint8_t ns_computed_display(
+ const css_computed_style *style, bool root)
+{
+ uint8_t value = css_computed_display(style, root);
+
+ switch (value) {
+ case CSS_DISPLAY_GRID:
+ return CSS_DISPLAY_BLOCK;
+
+ case CSS_DISPLAY_INLINE_GRID:
+ return CSS_DISPLAY_INLINE_BLOCK;
+
+ default:
+ break;
+ }
+
+ return value;
+}
/**
- * Convert a CSS length to pixels.
- *
- * \param length Length to convert
- * \param unit Corresponding unit
- * \param style Computed style applying to length. May be NULL if unit is
- * neither em nor ex
- * \return length in pixels
+ * Temporary helper wrappers for for libcss computed style getter, while
+ * we don't support all values of display.
*/
-css_fixed nscss_len2px(css_fixed length, css_unit unit, const css_computed_style *style);
+static inline uint8_t ns_computed_display_static(
+ const css_computed_style *style)
+{
+ uint8_t value = css_computed_display_static(style);
+
+ switch (value) {
+ case CSS_DISPLAY_GRID:
+ return CSS_DISPLAY_BLOCK;
+
+ case CSS_DISPLAY_INLINE_GRID:
+ return CSS_DISPLAY_INLINE_BLOCK;
+
+ default:
+ break;
+ }
+
+ return value;
+}
+
+static inline uint8_t ns_computed_min_height(
+ const css_computed_style *style,
+ css_fixed *length, css_unit *unit)
+{
+ uint8_t value = css_computed_min_height(style, length, unit);
+
+ if (value == CSS_MIN_HEIGHT_AUTO) {
+ value = CSS_MIN_HEIGHT_SET;
+ *length = 0;
+ *unit = CSS_UNIT_PX;
+ }
+
+ return value;
+}
+
+
+static inline uint8_t ns_computed_min_width(
+ const css_computed_style *style,
+ css_fixed *length, css_unit *unit)
+{
+ uint8_t value = css_computed_min_width(style, length, unit);
+
+ if (value == CSS_MIN_WIDTH_AUTO) {
+ value = CSS_MIN_WIDTH_SET;
+ *length = 0;
+ *unit = CSS_UNIT_PX;
+ }
+
+ return value;
+}
#endif