summaryrefslogtreecommitdiff
path: root/include/libcss/types.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libcss/types.h')
-rw-r--r--include/libcss/types.h184
1 files changed, 160 insertions, 24 deletions
diff --git a/include/libcss/types.h b/include/libcss/types.h
index ffaf13c..3fb28d3 100644
--- a/include/libcss/types.h
+++ b/include/libcss/types.h
@@ -60,10 +60,10 @@ typedef enum css_media_type {
CSS_MEDIA_TTY = (1 << 8),
CSS_MEDIA_TV = (1 << 9),
CSS_MEDIA_ALL = CSS_MEDIA_AURAL | CSS_MEDIA_BRAILLE |
- CSS_MEDIA_EMBOSSED | CSS_MEDIA_HANDHELD |
- CSS_MEDIA_PRINT | CSS_MEDIA_PROJECTION |
- CSS_MEDIA_SCREEN | CSS_MEDIA_SPEECH |
- CSS_MEDIA_TTY | CSS_MEDIA_TV
+ CSS_MEDIA_EMBOSSED | CSS_MEDIA_HANDHELD |
+ CSS_MEDIA_PRINT | CSS_MEDIA_PROJECTION |
+ CSS_MEDIA_SCREEN | CSS_MEDIA_SPEECH |
+ CSS_MEDIA_TTY | CSS_MEDIA_TV
} css_media_type;
/**
@@ -80,29 +80,165 @@ typedef uint32_t css_color;
/* CSS unit */
typedef enum css_unit {
- CSS_UNIT_PX = 0x0,
- CSS_UNIT_EX = 0x1,
- CSS_UNIT_EM = 0x2,
- CSS_UNIT_IN = 0x3,
- CSS_UNIT_CM = 0x4,
- CSS_UNIT_MM = 0x5,
- CSS_UNIT_PT = 0x6,
- CSS_UNIT_PC = 0x7,
-
- CSS_UNIT_PCT = 0x8, /* Percentage */
-
- CSS_UNIT_DEG = 0x9,
- CSS_UNIT_GRAD = 0xa,
- CSS_UNIT_RAD = 0xb,
-
- CSS_UNIT_MS = 0xc,
- CSS_UNIT_S = 0xd,
-
- CSS_UNIT_HZ = 0xe,
- CSS_UNIT_KHZ = 0xf
+ CSS_UNIT_PX = 0x00,
+ CSS_UNIT_EX = 0x01,
+ CSS_UNIT_EM = 0x02,
+ CSS_UNIT_IN = 0x03,
+ CSS_UNIT_CM = 0x04,
+ CSS_UNIT_MM = 0x05,
+ CSS_UNIT_PT = 0x06,
+ CSS_UNIT_PC = 0x07,
+ CSS_UNIT_CH = 0x08,
+ CSS_UNIT_REM = 0x09,
+ CSS_UNIT_LH = 0x0a,
+ CSS_UNIT_VH = 0x0b,
+ CSS_UNIT_VW = 0x0c,
+ CSS_UNIT_VI = 0x0d,
+ CSS_UNIT_VB = 0x0e,
+ CSS_UNIT_VMIN = 0x0f,
+ CSS_UNIT_VMAX = 0x10,
+ CSS_UNIT_Q = 0x11,
+
+ CSS_UNIT_PCT = 0x15, /* Percentage */
+
+ CSS_UNIT_DEG = 0x16,
+ CSS_UNIT_GRAD = 0x17,
+ CSS_UNIT_RAD = 0x18,
+
+ CSS_UNIT_MS = 0x19,
+ CSS_UNIT_S = 0x1a,
+
+ CSS_UNIT_HZ = 0x1b,
+ CSS_UNIT_KHZ = 0x1c
} css_unit;
/**
+ * Media orientations
+ */
+typedef enum css_media_orientation {
+ CSS_MEDIA_ORIENTATION_PORTRAIT = 0,
+ CSS_MEDIA_ORIENTATION_LANDSCAPE = 1
+} css_media_orientation;
+
+/**
+ * Media scans
+ */
+typedef enum css_media_scan {
+ CSS_MEDIA_SCAN_PROGRESSIVE = 0,
+ CSS_MEDIA_SCAN_INTERLACE = 1
+} css_media_scan;
+
+/**
+ * Media update-frequencies
+ */
+typedef enum css_media_update_frequency {
+ CSS_MEDIA_UPDATE_FREQUENCY_NORMAL = 0,
+ CSS_MEDIA_UPDATE_FREQUENCY_SLOW = 1,
+ CSS_MEDIA_UPDATE_FREQUENCY_NONE = 2
+} css_media_update_frequency;
+
+/**
+ * Media block overflows
+ */
+typedef enum css_media_overflow_block {
+ CSS_MEDIA_OVERFLOW_BLOCK_NONE = 0,
+ CSS_MEDIA_OVERFLOW_BLOCK_SCROLL = 1,
+ CSS_MEDIA_OVERFLOW_BLOCK_OPTIONAL_PAGED = 2,
+ CSS_MEDIA_OVERFLOW_BLOCK_PAGED = 3
+} css_media_overflow_block;
+
+/**
+ * Media inline overflows
+ */
+typedef enum css_media_overflow_inline {
+ CSS_MEDIA_OVERFLOW_INLINE_NONE = 0,
+ CSS_MEDIA_OVERFLOW_INLINE_SCROLL = 1
+} css_media_overflow_inline;
+
+/**
+ * Media pointers
+ */
+typedef enum css_media_pointer {
+ CSS_MEDIA_POINTER_NONE = 0,
+ CSS_MEDIA_POINTER_COARSE = 1,
+ CSS_MEDIA_POINTER_FINE = 2
+} css_media_pointer;
+
+/**
+ * Media hovers
+ */
+typedef enum css_media_hover {
+ CSS_MEDIA_HOVER_NONE = 0,
+ CSS_MEDIA_HOVER_ON_DEMAND = 1,
+ CSS_MEDIA_HOVER_HOVER = 2
+} css_media_hover;
+
+/**
+ * Media light-levels
+ */
+typedef enum css_media_light_level {
+ CSS_MEDIA_LIGHT_LEVEL_NORMAL = 0,
+ CSS_MEDIA_LIGHT_LEVEL_DIM = 1,
+ CSS_MEDIA_LIGHT_LEVEL_WASHED = 2
+} css_media_light_level;
+
+/**
+ * Media scriptings
+ */
+typedef enum css_media_scripting {
+ CSS_MEDIA_SCRIPTING_NONE = 0,
+ CSS_MEDIA_SCRIPTING_INITIAL_ONLY = 1,
+ CSS_MEDIA_SCRIPTING_ENABLED = 2
+} css_media_scripting;
+
+typedef struct css_media_resolution {
+ css_fixed value;
+ css_unit unit;
+} css_media_resolution;
+
+/**
+ * Media specification
+ */
+typedef struct css_media {
+ /* Media type */
+ css_media_type type;
+
+ /* Viewport / page media features */
+ css_fixed width; /* In css pixels */
+ css_fixed height; /* In css pixels */
+ css_fixed aspect_ratio;
+ css_media_orientation orientation;
+
+ /* Display quality media features */
+ css_media_resolution resolution;
+ css_media_scan scan;
+ css_fixed grid; /** boolean: {0|1} */
+ css_media_update_frequency update;
+ css_media_overflow_block overflow_block;
+ css_media_overflow_inline overflow_inline;
+
+ /* Color media features */
+ css_fixed color; /* colour bpp (0 for monochrome) */
+ css_fixed color_index;
+ css_fixed monochrome; /* monochrome bpp (0 for colour) */
+ css_fixed inverted_colors; /** boolean: {0|1} */
+
+ lwc_string *prefers_color_scheme; /* "light", "dark" */
+
+ /* Interaction media features */
+ css_media_pointer pointer;
+ css_media_pointer any_pointer;
+ css_media_hover hover;
+ css_media_hover any_hover;
+
+ /* Environmental media features */
+ css_media_light_level light_level;
+
+ /* Scripting media features */
+ css_media_scripting scripting;
+} css_media;
+
+/**
* Type of a qualified name
*/
typedef struct css_qname {