property.h

来自「elinks下lynx是最重要的二个文本浏览器, 在linux下非常实用, el」· C头文件 代码 · 共 101 行

H
101
字号
#ifndef EL__DOCUMENT_CSS_PROPERTY_H#define EL__DOCUMENT_CSS_PROPERTY_H#include "document/html/parser.h"#include "util/color.h"#include "util/lists.h"/* The {struct css_property} describes one CSS declaration in a rule, therefore * being basically a parsed instance of {struct css_property_info}. One list of * these contains all the declarations contained in one rule. */struct css_property {	LIST_HEAD(struct css_property);	/* Declared property. The enum item name is derived from the property	 * name, just uppercase it and tr/-/_/. */	enum css_property_type {		CSS_PT_NONE,		CSS_PT_BACKGROUND,		CSS_PT_BACKGROUND_COLOR,		CSS_PT_COLOR,		CSS_PT_DISPLAY,		CSS_PT_FONT_STYLE,		CSS_PT_FONT_WEIGHT,		CSS_PT_TEXT_ALIGN,		CSS_PT_TEXT_DECORATION,		CSS_PT_WHITE_SPACE,		CSS_PT_LAST,	} type;	/* Property value. If it is a pointer, it points always to a memory	 * to be free()d together with this structure. */	enum css_property_value_type {		CSS_VT_NONE,		CSS_VT_COLOR,		CSS_VT_DISPLAY,		CSS_VT_FONT_ATTRIBUTE,		CSS_VT_TEXT_ALIGN,		CSS_VT_LAST,	} value_type;	union css_property_value {		void *none;		color_T color;		enum css_display {			CSS_DISP_INLINE,			CSS_DISP_BLOCK,		} display;		struct {			enum format_attr add, rem;		} font_attribute;		enum format_align text_align;		/* TODO:		 * Generic numbers		 * Percentages		 * URL		 * Align (struct format_align) */		/* TODO: The size units will be fun yet. --pasky */	} value;};/* The {struct css_property_info} describes what values the properties can * have and what internal type they have. */struct css_property_info;struct scanner;typedef int (*css_property_value_parser_T)(struct css_property_info *propinfo,					 union css_property_value *value,					 struct scanner *scanner);struct css_property_info {	unsigned char *name;	enum css_property_type type;	/* This is the storage type, basically describing what to save to	 * css_property.value. Many properties can share the same valtype.	 * The value is basically output of the value parser. */	enum css_property_value_type value_type;	/* This is the property value parser, processing the written form of a	 * property value. Its job is to take the value string (or scanner's	 * token list in the future) and transform it to a @value form	 * according to the property's @value_type. Although some properties	 * can share a parser, it is expected that most properties will either	 * use a custom one or use a generic parser with property-specific	 * backend specified in @parser_data. */	css_property_value_parser_T parser;	/* In case you use a generic @parser, it can be useful to still give	 * it some specific data. You can do so through @parser_data. The	 * content is @parser-specific. */	void *parser_data;};/* This table contains info about all the known CSS properties. */extern struct css_property_info css_property_info[];#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?