⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 internal.h

📁 一个很有名的浏览器
💻 H
字号:
/* $Id: internal.h,v 1.39.2.1 2005/01/04 07:52:14 jonas Exp $ */#ifndef EL__DOCUMENT_HTML_INTERNAL_H#define EL__DOCUMENT_HTML_INTERNAL_H#include "document/css/stylesheet.h"#include "document/html/parser.h"#include "util/lists.h"struct uri;/* For parser/parse.c: */void process_head(unsigned char *head);void put_chrs(unsigned char *start, int len, void (*put_chars)(struct part *, unsigned char *, int), struct part *part);struct html_context {#ifdef CONFIG_CSS	/* The default stylesheet is initially merged into it. When parsing CSS	 * from <style>-tags and external stylesheets if enabled is merged	 * added to it. */	struct css_stylesheet css_styles;#endif	/* These are global per-document base values, alterable by the <base>	 * element. */	struct uri *base_href;	unsigned char *base_target;	/* For:	 * html/parser/parse.c	 * html/parser/stack.c	 * html/parser.c */	struct list_head stack;	/* For parser/parse.c: */	unsigned char *eoff; /* For parser/forms.c too */	int line_breax;	int position;	/* -1 means that we are either starting a new "block" or ended the	 * last segment of the current "block" by a whitespace and we should	 * eat the leading whitespace of the next segment passed to put_chrs(),	 * if it starts by any. This prevents HTML whitespaces to indent new	 * blocks by one or create two consecutive whitespaces in the middle	 * of a block.	 *	 * 0 means do not do anything special.	 *	 * 1 means that we should start the next segment with a whitespace	 * (if it won't start by any on its own). It is used in an	 * "x  </y>  z" scenario when the parser hits </y> - it renders "x"	 * and sets this, so that it will then render " z". XXX: Then we could	 * of course render "x " and set -1. But we test for this value in	 * parse_html() if we hit an opening tag of an element and potentially	 * put_chrs(" "). That needs more investigation yet. --pasky */	int putsp;	int was_br; /* For parser/forms.c too */	int was_li;	int was_xmp;	/* For html/parser.c, html/renderer.c */	int margin;	/* For parser/link.c: */	int has_link_lines;	/* For parser/forms.c: */	unsigned char *startf;	/* For:	 * html/parser/parse.c	 * html/parser.c	 * html/renderer.c	 * html/tables.c */	int table_level;	/* For:	 * html/parser/forms.c	 * html/parser/link.c	 * html/parser/parse.c	 * html/parser/stack.c	 * html/parser.c */	struct part *part;	/* For:	 * html/parser/forms.c	 * html/parser/link.c	 * html/parser/parse.c	 * html/parser.c */	void (*put_chars_f)(struct part *, unsigned char *, int);	/* For:	 * html/parser/forms.c	 * html/parser/link.c	 * html/parser/parse.c	 * html/parser/stack.c	 * html/parser.c */	void (*line_break_f)(struct part *);	/* For:	 * html/parser/forms.c	 * html/parser/parse.c	 * html/parser.c */	void *(*special_f)(struct part *, enum html_special_type, ...);};#define format (((struct html_element *) html_context.stack.next)->attr)#define par_format (((struct html_element *) html_context.stack.next)->parattr)#define html_top (*(struct html_element *) html_context.stack.next)#define html_is_preformatted() (format.style.attr & AT_PREFORMATTED)#define get_html_max_width() \	int_max(par_format.width - (par_format.leftmargin + par_format.rightmargin), 0)extern struct html_context html_context;/* For parser/link.c: */void html_focusable(unsigned char *a);void html_skip(unsigned char *a);unsigned char *get_target(unsigned char *a);voidimport_css_stylesheet(struct css_stylesheet *css, struct uri *base_uri,		      unsigned char *url, int len);#endif

⌨️ 快捷键说明

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