summaryrefslogtreecommitdiff
path: root/content/handlers/html/html_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/handlers/html/html_internal.h')
-rw-r--r--content/handlers/html/html_internal.h413
1 files changed, 0 insertions, 413 deletions
diff --git a/content/handlers/html/html_internal.h b/content/handlers/html/html_internal.h
deleted file mode 100644
index ae3182a07..000000000
--- a/content/handlers/html/html_internal.h
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
- * Copyright 2004 James Bursa <bursa@users.sourceforge.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * \file
- * Private data for text/html content.
- */
-
-#ifndef NETSURF_HTML_HTML_INTERNAL_H
-#define NETSURF_HTML_HTML_INTERNAL_H
-
-#include <libcss/libcss.h>
-#include <dom/bindings/hubbub/parser.h>
-
-#include "netsurf/types.h"
-#include "content/content_protected.h"
-#include "desktop/selection.h"
-
-
-struct gui_layout_table;
-struct scrollbar_msg_data;
-struct content_redraw_data;
-
-typedef enum {
- HTML_DRAG_NONE, /** No drag */
- HTML_DRAG_SELECTION, /** Own; Text selection */
- HTML_DRAG_SCROLLBAR, /** Not own; drag in scrollbar widget */
- HTML_DRAG_TEXTAREA_SELECTION, /** Not own; drag in textarea widget */
- HTML_DRAG_TEXTAREA_SCROLLBAR, /** Not own; drag in textarea widget */
- HTML_DRAG_CONTENT_SELECTION, /** Not own; drag in child content */
- HTML_DRAG_CONTENT_SCROLL /** Not own; drag in child content */
-} html_drag_type;
-
-/**
- * For drags we don't own
- */
-union html_drag_owner {
- bool no_owner;
- struct box *content;
- struct scrollbar *scrollbar;
- struct box *textarea;
-};
-
-typedef enum {
- HTML_SELECTION_NONE, /** No selection */
- HTML_SELECTION_TEXTAREA, /** Selection in one of our textareas */
- HTML_SELECTION_SELF, /** Selection in this html content */
- HTML_SELECTION_CONTENT /** Selection in child content */
-} html_selection_type;
-
-/**
- * For getting at selections in this content or things in this content
- */
-union html_selection_owner {
- bool none;
- struct box *textarea;
- struct box *content;
-};
-
-typedef enum {
- HTML_FOCUS_SELF, /**< Focus is our own */
- HTML_FOCUS_CONTENT, /**< Focus belongs to child content */
- HTML_FOCUS_TEXTAREA /**< Focus belongs to textarea */
-} html_focus_type;
-
-/**
- * For directing input
- */
-union html_focus_owner {
- bool self;
- struct box *textarea;
- struct box *content;
-};
-
-/**
- * Data specific to CONTENT_HTML.
- */
-typedef struct html_content {
- struct content base;
-
- dom_hubbub_parser *parser; /**< Parser object handle */
- bool parse_completed; /**< Whether the parse has been completed */
- bool conversion_begun; /**< Whether or not the conversion has begun */
-
- /** Document tree */
- dom_document *document;
- /** Quirkyness of document */
- dom_document_quirks_mode quirks;
-
- /** Encoding of source, NULL if unknown. */
- char *encoding;
- /** Source of encoding information. */
- dom_hubbub_encoding_source encoding_source;
-
- /** Base URL (may be a copy of content->url). */
- nsurl *base_url;
- /** Base target */
- char *base_target;
-
- /** CSS length conversion context for document. */
- nscss_len_ctx len_ctx;
-
- /** Content has been aborted in the LOADING state */
- bool aborted;
-
- /** Whether a meta refresh has been handled */
- bool refresh;
-
- /** Whether a layout (reflow) is in progress */
- bool reflowing;
-
- /** Whether an initial layout has been done */
- bool had_initial_layout;
-
- /** Whether scripts are enabled for this content */
- bool enable_scripting;
-
- /* Title element node */
- dom_node *title;
-
- /** A talloc context purely for the render box tree */
- int *bctx;
- /** A context pointer for the box conversion, NULL if no conversion
- * is in progress.
- */
- void *box_conversion_context;
- /** Box tree, or NULL. */
- struct box *layout;
- /** Document background colour. */
- colour background_colour;
-
- /** Font callback table */
- const struct gui_layout_table *font_func;
-
- /** Number of entries in scripts */
- unsigned int scripts_count;
- /** Scripts */
- struct html_script *scripts;
- /** javascript thread in use */
- struct jsthread *jsthread;
-
- /** Number of entries in stylesheet_content. */
- unsigned int stylesheet_count;
- /** Stylesheets. Each may be NULL. */
- struct html_stylesheet *stylesheets;
- /**< Style selection context */
- css_select_ctx *select_ctx;
- /**< Style selection media specification */
- css_media media;
- /**< Universal selector */
- lwc_string *universal;
-
- /** Number of entries in object_list. */
- unsigned int num_objects;
- /** List of objects. */
- struct content_html_object *object_list;
- /** Forms, in reverse order to document. */
- struct form *forms;
- /** Hash table of imagemaps. */
- struct imagemap **imagemaps;
-
- /** Browser window containing this document, or NULL if not open. */
- struct browser_window *bw;
-
- /** Frameset information */
- struct content_html_frames *frameset;
-
- /** Inline frame information */
- struct content_html_iframe *iframe;
-
- /** Content of type CONTENT_HTML containing this, or NULL if not an
- * object within a page. */
- struct html_content *page;
-
- /** Current drag type */
- html_drag_type drag_type;
- /** Widget capturing all mouse events */
- union html_drag_owner drag_owner;
-
- /** Current selection state */
- html_selection_type selection_type;
- /** Current selection owner */
- union html_selection_owner selection_owner;
-
- /** Current input focus target type */
- html_focus_type focus_type;
- /** Current input focus target */
- union html_focus_owner focus_owner;
-
- /** HTML content's own text selection object */
- struct selection sel;
-
- /** Open core-handled form SELECT menu,
- * or NULL if none currently open. */
- struct form_control *visible_select_menu;
-
- /** Context for free text search, or NULL if none */
- struct search_context *search;
- /** Search string or NULL */
- char *search_string;
-
-} html_content;
-
-/** Render padding and margin box outlines in html_redraw(). */
-extern bool html_redraw_debug;
-
-void html__redraw_a_box(html_content *html, struct box *box);
-
-/**
- * Set our drag status, and inform whatever owns the content
- *
- * \param html HTML content
- * \param drag_type Type of drag
- * \param drag_owner What owns the drag
- * \param rect Pointer movement bounds
- */
-void html_set_drag_type(html_content *html, html_drag_type drag_type,
- union html_drag_owner drag_owner, const struct rect *rect);
-
-/**
- * Set our selection status, and inform whatever owns the content
- *
- * \param html HTML content
- * \param selection_type Type of selection
- * \param selection_owner What owns the selection
- * \param read_only True iff selection is read only
- */
-void html_set_selection(html_content *html, html_selection_type selection_type,
- union html_selection_owner selection_owner, bool read_only);
-
-/**
- * Set our input focus, and inform whatever owns the content
- *
- * \param html HTML content
- * \param focus_type Type of input focus
- * \param focus_owner What owns the focus
- * \param hide_caret True iff caret to be hidden
- * \param x Carret x-coord rel to owner
- * \param y Carret y-coord rel to owner
- * \param height Carret height
- * \param clip Carret clip rect
- */
-void html_set_focus(html_content *html, html_focus_type focus_type,
- union html_focus_owner focus_owner, bool hide_caret,
- int x, int y, int height, const struct rect *clip);
-
-
-struct browser_window *html_get_browser_window(struct content *c);
-
-/**
- * Complete conversion of an HTML document
- *
- * \param htmlc Content to convert
- */
-void html_finish_conversion(html_content *htmlc);
-
-/**
- * Test if an HTML content conversion can begin
- *
- * \param htmlc html content to test
- * \return true iff the html content conversion can begin
- */
-bool html_can_begin_conversion(html_content *htmlc);
-
-/**
- * Begin conversion of an HTML document
- *
- * \param htmlc Content to convert
- */
-bool html_begin_conversion(html_content *htmlc);
-
-/* in html/html_redraw.c */
-bool html_redraw(struct content *c, struct content_redraw_data *data,
- const struct rect *clip, const struct redraw_context *ctx);
-
-/* in html/html_redraw_border.c */
-bool html_redraw_borders(struct box *box, int x_parent, int y_parent,
- int p_width, int p_height, const struct rect *clip, float scale,
- const struct redraw_context *ctx);
-
-bool html_redraw_inline_borders(struct box *box, struct rect b,
- const struct rect *clip, float scale, bool first, bool last,
- const struct redraw_context *ctx);
-
-/* in html/html_script.c */
-dom_hubbub_error html_process_script(void *ctx, dom_node *node);
-
-/* in html/html.c */
-bool html_exec(struct content *c, const char *src, size_t srclen);
-
-/**
- * Attempt script execution for defer and async scripts
- *
- * execute scripts using algorithm found in:
- * http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#the-script-element
- *
- * \param htmlc html content.
- * \param allow_defer allow deferred execution, if not, only async scripts.
- * \return NSERROR_OK error code.
- */
-nserror html_script_exec(html_content *htmlc, bool allow_defer);
-
-/**
- * Free all script resources and references for a html content.
- *
- * \param htmlc html content.
- * \return NSERROR_OK or error code.
- */
-nserror html_script_free(html_content *htmlc);
-
-/**
- * Check if any of the scripts loaded were insecure
- */
-bool html_saw_insecure_scripts(html_content *htmlc);
-
-/* in html/html_forms.c */
-struct form *html_forms_get_forms(const char *docenc, dom_html_document *doc);
-struct form_control *html_forms_get_control_for_node(struct form *forms,
- dom_node *node);
-
-/* in html/html_css.c */
-nserror html_css_init(void);
-void html_css_fini(void);
-
-/**
- * Initialise core stylesheets for a content
- *
- * \param c content structure to update
- * \return nserror
- */
-nserror html_css_new_stylesheets(html_content *c);
-nserror html_css_quirks_stylesheets(html_content *c);
-nserror html_css_free_stylesheets(html_content *html);
-
-/** Return if any of the stylesheets were loaded insecurely */
-bool html_saw_insecure_stylesheets(html_content *html);
-
-bool html_css_process_link(html_content *htmlc, dom_node *node);
-bool html_css_process_style(html_content *htmlc, dom_node *node);
-bool html_css_update_style(html_content *c, dom_node *style);
-
-nserror html_css_new_selection_context(html_content *c,
- css_select_ctx **ret_select_ctx);
-
-/* in html/html_css_fetcher.c */
-/**
- * Register the fetcher for the pseudo x-ns-css scheme.
- *
- * \return NSERROR_OK on successful registration or error code on failure.
- */
-nserror html_css_fetcher_register(void);
-nserror html_css_fetcher_add_item(dom_string *data, nsurl *base_url,
- uint32_t *key);
-
-/**
- * Complete the HTML content state machine *iff* all scripts are finished
- */
-nserror html_proceed_to_done(html_content *html);
-
-
-/* Events */
-/**
- * Construct an event and fire it at the DOM
- *
- */
-bool fire_generic_dom_event(dom_string *type, dom_node *target,
- bool bubbles, bool cancelable);
-
-/**
- * Construct a keyboard event and fire it at the DOM
- */
-bool fire_dom_keyboard_event(dom_string *type, dom_node *target,
- bool bubbles, bool cancelable, uint32_t key);
-
-/* Useful dom_string pointers */
-struct dom_string;
-
-extern struct dom_string *html_dom_string_map;
-extern struct dom_string *html_dom_string_id;
-extern struct dom_string *html_dom_string_name;
-extern struct dom_string *html_dom_string_area;
-extern struct dom_string *html_dom_string_a;
-extern struct dom_string *html_dom_string_nohref;
-extern struct dom_string *html_dom_string_href;
-extern struct dom_string *html_dom_string_target;
-extern struct dom_string *html_dom_string_shape;
-extern struct dom_string *html_dom_string_default;
-extern struct dom_string *html_dom_string_rect;
-extern struct dom_string *html_dom_string_rectangle;
-extern struct dom_string *html_dom_string_coords;
-extern struct dom_string *html_dom_string_circle;
-extern struct dom_string *html_dom_string_poly;
-extern struct dom_string *html_dom_string_polygon;
-extern struct dom_string *html_dom_string_text_javascript;
-extern struct dom_string *html_dom_string_type;
-extern struct dom_string *html_dom_string_src;
-
-#endif