kolibrios/programs/network/netsurf/include/libcss/computed.h

404 lines
10 KiB
C
Raw Normal View History

/*
* 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