From 1e5dee524f9fbff6c811dba66ff404882b02b900 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 25 Sep 2008 07:56:31 +0000 Subject: Mechanism for the client to select the language level. svn path=/trunk/libcss/; revision=5436 --- include/libcss/stylesheet.h | 3 ++- include/libcss/types.h | 25 ++++++++++++++++++------- src/stylesheet.c | 5 +++-- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/include/libcss/stylesheet.h b/include/libcss/stylesheet.h index 30be5ae..de4770e 100644 --- a/include/libcss/stylesheet.h +++ b/include/libcss/stylesheet.h @@ -17,7 +17,8 @@ typedef css_error (*css_import_handler)(void *pw, const char *url, css_stylesheet *sheet); -css_stylesheet *css_stylesheet_create(const char *url, const char *title, +css_stylesheet *css_stylesheet_create(css_language_level level, + const char *url, const char *title, css_origin origin, uint32_t media, css_import_handler import_callback, void *import_pw, css_alloc alloc, void *alloc_pw); diff --git a/include/libcss/types.h b/include/libcss/types.h index ad5b5bf..e361052 100644 --- a/include/libcss/types.h +++ b/include/libcss/types.h @@ -23,14 +23,15 @@ typedef enum css_charset_source { } css_charset_source; /** - * String type + * Stylesheet language level -- defines parsing rules and supported properties */ -typedef struct css_string { - uint8_t *ptr; /**< Pointer to data */ - size_t len; /**< Byte length of string */ -} css_string; - -typedef struct css_stylesheet css_stylesheet; +typedef enum css_language_level { + CSS_LEVEL_1 = 0, /**< CSS 1 */ + CSS_LEVEL_2 = 1, /**< CSS 2 */ + CSS_LEVEL_21 = 2, /**< CSS 2.1 */ + CSS_LEVEL_3 = 3, /**< CSS 3 */ + CSS_LEVEL_DEFAULT = CSS_LEVEL_21 /**< Default level */ +} css_language_level; /** * Stylesheet origin @@ -41,4 +42,14 @@ typedef enum css_origin { CSS_ORIGIN_AUTHOR = 2 /**< Author stylesheet */ } css_origin; +/** + * String type + */ +typedef struct css_string { + uint8_t *ptr; /**< Pointer to data */ + size_t len; /**< Byte length of string */ +} css_string; + +typedef struct css_stylesheet css_stylesheet; + #endif diff --git a/src/stylesheet.c b/src/stylesheet.c index b61bb56..35bc13c 100644 --- a/src/stylesheet.c +++ b/src/stylesheet.c @@ -13,6 +13,7 @@ /** * Create a stylesheet * + * \param level The language level of the stylesheet * \param url URL of stylesheet * \param title Title of stylesheet * \param origin Origin of stylesheet @@ -23,7 +24,8 @@ * \param alloc_pw Client private data for alloc * \return Pointer to stylesheet on success, NULL otherwise */ -css_stylesheet *css_stylesheet_create(const char *url, const char *title, +css_stylesheet *css_stylesheet_create(css_language_level level, + const char *url, const char *title, css_origin origin, uint32_t media, css_import_handler import_callback, void *import_pw, css_alloc alloc, void *alloc_pw) @@ -41,7 +43,6 @@ css_stylesheet *css_stylesheet_create(const char *url, const char *title, memset(sheet, 0, sizeof(css_stylesheet)); /** \todo need a parser instance */ - /** \todo need way of letting client select language level */ /** \todo create selector hash */ -- cgit v1.2.3