mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-24 13:06:49 +03:00
66 lines
2.1 KiB
C
66 lines
2.1 KiB
C
|
/*
|
||
|
* Copyright 2020 Vincent Sanders <vince@netsurf-browser.org>
|
||
|
*
|
||
|
* 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
|
||
|
* HTML Box tree construction interface.
|
||
|
*/
|
||
|
|
||
|
#ifndef NETSURF_HTML_BOX_CONSTRUCT_H
|
||
|
#define NETSURF_HTML_BOX_CONSTRUCT_H
|
||
|
|
||
|
/**
|
||
|
* Construct a box tree from a dom and html content
|
||
|
*
|
||
|
* \param n dom document
|
||
|
* \param c content of type CONTENT_HTML to construct box tree in
|
||
|
* \param cb callback to report conversion completion
|
||
|
* \param box_conversion_context pointer that recives the conversion context
|
||
|
* \return netsurf error code indicating status of call
|
||
|
*/
|
||
|
nserror dom_to_box(struct dom_node *n, struct html_content *c, box_construct_complete_cb cb, void **box_conversion_context);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* aborts any ongoing box construction
|
||
|
*/
|
||
|
nserror cancel_dom_to_box(void *box_conversion_context);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Retrieve the box for a dom node, if there is one
|
||
|
*
|
||
|
* \param node The DOM node
|
||
|
* \return The box if there is one
|
||
|
*/
|
||
|
struct box *box_for_node(struct dom_node *node);
|
||
|
|
||
|
/**
|
||
|
* Extract a URL from a relative link, handling junk like whitespace and
|
||
|
* attempting to read a real URL from "javascript:" links.
|
||
|
*
|
||
|
* \param content html content
|
||
|
* \param dsrel relative URL text taken from page
|
||
|
* \param base base for relative URLs
|
||
|
* \param result updated to target URL on heap, unchanged if extract failed
|
||
|
* \return true on success, false on memory exhaustion
|
||
|
*/
|
||
|
bool box_extract_link(const struct html_content *content, const struct dom_string *dsrel, struct nsurl *base, struct nsurl **result);
|
||
|
|
||
|
#endif
|