0,0 → 1,403 |
/* |
* This file is part of LibCSS |
* Licensed under the MIT License, |
* http://www.opensource.org/licenses/mit-license.php |
* Copyright 2009 John-Mark Bell <jmb@netsurf-browser.org> |
*/ |
|
#ifndef libcss_computed_h_ |
#define libcss_computed_h_ |
|
#ifdef __cplusplus |
extern "C" |
{ |
#endif |
|
#include <libwapcaplet/libwapcaplet.h> |
|
#include <libcss/errors.h> |
#include <libcss/functypes.h> |
#include <libcss/properties.h> |
#include <libcss/types.h> |
|
struct css_hint; |
struct css_select_handler; |
|
typedef struct css_computed_counter { |
lwc_string *name; |
css_fixed value; |
} css_computed_counter; |
|
typedef struct css_computed_clip_rect { |
css_fixed top; |
css_fixed right; |
css_fixed bottom; |
css_fixed left; |
|
css_unit tunit; |
css_unit runit; |
css_unit bunit; |
css_unit lunit; |
|
bool top_auto; |
bool right_auto; |
bool bottom_auto; |
bool left_auto; |
} css_computed_clip_rect; |
|
enum css_computed_content_type { |
CSS_COMPUTED_CONTENT_NONE = 0, |
CSS_COMPUTED_CONTENT_STRING = 1, |
CSS_COMPUTED_CONTENT_URI = 2, |
CSS_COMPUTED_CONTENT_COUNTER = 3, |
CSS_COMPUTED_CONTENT_COUNTERS = 4, |
CSS_COMPUTED_CONTENT_ATTR = 5, |
CSS_COMPUTED_CONTENT_OPEN_QUOTE = 6, |
CSS_COMPUTED_CONTENT_CLOSE_QUOTE = 7, |
CSS_COMPUTED_CONTENT_NO_OPEN_QUOTE = 8, |
CSS_COMPUTED_CONTENT_NO_CLOSE_QUOTE = 9 |
}; |
|
typedef struct css_computed_content_item { |
uint8_t type; |
union { |
lwc_string *string; |
lwc_string *uri; |
lwc_string *attr; |
struct { |
lwc_string *name; |
uint8_t style; |
} counter; |
struct { |
lwc_string *name; |
lwc_string *sep; |
uint8_t style; |
} counters; |
} data; |
} css_computed_content_item; |
|
css_error css_computed_style_create(css_allocator_fn alloc, void *pw, |
css_computed_style **result); |
css_error css_computed_style_destroy(css_computed_style *style); |
|
css_error css_computed_style_initialise(css_computed_style *style, |
struct css_select_handler *handler, void *pw); |
|
css_error css_computed_style_compose(const css_computed_style *parent, |
const css_computed_style *child, |
css_error (*compute_font_size)(void *pw, |
const struct css_hint *parent, |
struct css_hint *size), |
void *pw, |
css_computed_style *result); |
|
/****************************************************************************** |
* Property accessors below here * |
******************************************************************************/ |
|
uint8_t css_computed_letter_spacing( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_outline_color( |
const css_computed_style *style, css_color *color); |
|
uint8_t css_computed_outline_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_border_spacing( |
const css_computed_style *style, |
css_fixed *hlength, css_unit *hunit, |
css_fixed *vlength, css_unit *vunit); |
|
uint8_t css_computed_word_spacing( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_counter_increment( |
const css_computed_style *style, |
const css_computed_counter **counters); |
|
uint8_t css_computed_counter_reset( |
const css_computed_style *style, |
const css_computed_counter **counters); |
|
uint8_t css_computed_cursor( |
const css_computed_style *style, |
lwc_string ***urls); |
|
uint8_t css_computed_clip( |
const css_computed_style *style, |
css_computed_clip_rect *rect); |
|
uint8_t css_computed_content( |
const css_computed_style *style, |
const css_computed_content_item **content); |
|
uint8_t css_computed_vertical_align( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_font_size( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_border_top_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_border_right_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_border_bottom_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_border_left_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_background_image( |
const css_computed_style *style, |
lwc_string **url); |
|
uint8_t css_computed_color( |
const css_computed_style *style, |
css_color *color); |
|
uint8_t css_computed_list_style_image( |
const css_computed_style *style, |
lwc_string **url); |
|
uint8_t css_computed_quotes( |
const css_computed_style *style, |
lwc_string ***quotes); |
|
uint8_t css_computed_top( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_right( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_bottom( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_left( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_border_top_color( |
const css_computed_style *style, |
css_color *color); |
|
uint8_t css_computed_border_right_color( |
const css_computed_style *style, |
css_color *color); |
|
uint8_t css_computed_border_bottom_color( |
const css_computed_style *style, |
css_color *color); |
|
uint8_t css_computed_border_left_color( |
const css_computed_style *style, |
css_color *color); |
|
uint8_t css_computed_height( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_line_height( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_background_color( |
const css_computed_style *style, |
css_color *color); |
|
uint8_t css_computed_z_index( |
const css_computed_style *style, |
int32_t *z_index); |
|
uint8_t css_computed_margin_top( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_margin_right( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_margin_bottom( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_margin_left( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_background_attachment( |
const css_computed_style *style); |
|
uint8_t css_computed_border_collapse( |
const css_computed_style *style); |
|
uint8_t css_computed_caption_side( |
const css_computed_style *style); |
|
uint8_t css_computed_direction( |
const css_computed_style *style); |
|
uint8_t css_computed_max_height( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_max_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_empty_cells( |
const css_computed_style *style); |
|
uint8_t css_computed_float( |
const css_computed_style *style); |
|
uint8_t css_computed_font_style( |
const css_computed_style *style); |
|
uint8_t css_computed_min_height( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_min_width( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_background_repeat( |
const css_computed_style *style); |
|
uint8_t css_computed_clear( |
const css_computed_style *style); |
|
uint8_t css_computed_padding_top( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_padding_right( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_padding_bottom( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_padding_left( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_overflow( |
const css_computed_style *style); |
|
uint8_t css_computed_position( |
const css_computed_style *style); |
|
uint8_t css_computed_opacity( |
const css_computed_style *style, |
css_fixed *opacity); |
|
uint8_t css_computed_text_transform( |
const css_computed_style *style); |
|
uint8_t css_computed_text_indent( |
const css_computed_style *style, |
css_fixed *length, css_unit *unit); |
|
uint8_t css_computed_white_space( |
const css_computed_style *style); |
|
uint8_t css_computed_background_position( |
const css_computed_style *style, |
css_fixed *hlength, css_unit *hunit, |
css_fixed *vlength, css_unit *vunit); |
|
uint8_t css_computed_display( |
const css_computed_style *style, bool root); |
|
uint8_t css_computed_display_static( |
const css_computed_style *style); |
|
uint8_t css_computed_font_variant( |
const css_computed_style *style); |
|
uint8_t css_computed_text_decoration( |
const css_computed_style *style); |
|
uint8_t css_computed_font_family( |
const css_computed_style *style, |
lwc_string ***names); |
|
uint8_t css_computed_border_top_style( |
const css_computed_style *style); |
|
uint8_t css_computed_border_right_style( |
const css_computed_style *style); |
|
uint8_t css_computed_border_bottom_style( |
const css_computed_style *style); |
|
uint8_t css_computed_border_left_style( |
const css_computed_style *style); |
|
uint8_t css_computed_font_weight( |
const css_computed_style *style); |
|
uint8_t css_computed_list_style_type( |
const css_computed_style *style); |
|
uint8_t css_computed_outline_style( |
const css_computed_style *style); |
|
uint8_t css_computed_table_layout( |
const css_computed_style *style); |
|
uint8_t css_computed_unicode_bidi( |
const css_computed_style *style); |
|
uint8_t css_computed_visibility( |
const css_computed_style *style); |
|
uint8_t css_computed_list_style_position( |
const css_computed_style *style); |
|
uint8_t css_computed_text_align( |
const css_computed_style *style); |
|
uint8_t css_computed_page_break_after( |
const css_computed_style *style); |
|
uint8_t css_computed_page_break_before( |
const css_computed_style *style); |
|
uint8_t css_computed_page_break_inside( |
const css_computed_style *style); |
|
uint8_t css_computed_orphans( |
const css_computed_style *style, |
int32_t *orphans); |
|
uint8_t css_computed_widows( |
const css_computed_style *style, |
int32_t *widows); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |