2003-06-30 16:44:03 +04:00
|
|
|
/*
|
2004-02-15 23:39:53 +03:00
|
|
|
* Copyright 2004 James Bursa <bursa@users.sourceforge.net>
|
2007-08-08 20:16:03 +04:00
|
|
|
*
|
|
|
|
* 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/>.
|
2003-02-09 15:58:15 +03:00
|
|
|
*/
|
|
|
|
|
2004-02-20 03:43:17 +03:00
|
|
|
/** \file
|
|
|
|
* Content for text/html (interface).
|
|
|
|
*
|
|
|
|
* These functions should in general be called via the content interface.
|
|
|
|
*/
|
|
|
|
|
2003-02-09 15:58:15 +03:00
|
|
|
#ifndef _NETSURF_RENDER_HTML_H_
|
|
|
|
#define _NETSURF_RENDER_HTML_H_
|
|
|
|
|
2004-06-09 23:55:06 +04:00
|
|
|
#include <stdbool.h>
|
2007-05-31 02:39:54 +04:00
|
|
|
#include "content/content_type.h"
|
|
|
|
#include "css/css.h"
|
2010-06-04 13:35:08 +04:00
|
|
|
#include "desktop/mouse.h"
|
2009-07-21 14:59:53 +04:00
|
|
|
#include "desktop/plot_style.h"
|
2008-09-23 06:19:50 +04:00
|
|
|
#include "render/parser_binding.h"
|
2003-09-08 01:08:13 +04:00
|
|
|
|
2010-03-28 16:56:39 +04:00
|
|
|
struct fetch_multipart_data;
|
2003-09-08 01:08:13 +04:00
|
|
|
struct box;
|
2006-02-16 02:09:55 +03:00
|
|
|
struct rect;
|
2003-09-08 01:08:13 +04:00
|
|
|
struct browser_window;
|
|
|
|
struct content;
|
2010-03-28 16:56:39 +04:00
|
|
|
struct hlcache_handle;
|
|
|
|
struct http_parameter;
|
2004-03-27 01:16:31 +03:00
|
|
|
struct imagemap;
|
2004-10-18 01:10:19 +04:00
|
|
|
struct object_params;
|
|
|
|
struct plotters;
|
2010-06-04 13:35:08 +04:00
|
|
|
struct scroll;
|
|
|
|
struct scroll_msg_data;
|
2003-09-08 01:08:13 +04:00
|
|
|
|
2004-07-31 03:40:01 +04:00
|
|
|
/* entries in stylesheet_content */
|
|
|
|
#define STYLESHEET_BASE 0 /* base style sheet */
|
2009-07-24 03:05:34 +04:00
|
|
|
#define STYLESHEET_QUIRKS 1 /* quirks mode stylesheet */
|
|
|
|
#define STYLESHEET_ADBLOCK 2 /* adblocking stylesheet */
|
2004-07-31 03:40:01 +04:00
|
|
|
#define STYLESHEET_START 3 /* start of document stylesheets */
|
|
|
|
|
2004-10-18 02:13:35 +04:00
|
|
|
extern char *default_stylesheet_url;
|
|
|
|
extern char *adblock_stylesheet_url;
|
2009-07-24 03:05:34 +04:00
|
|
|
extern char *quirks_stylesheet_url;
|
2004-10-18 02:13:35 +04:00
|
|
|
|
2010-03-28 16:56:39 +04:00
|
|
|
/**
|
|
|
|
* Container for stylesheets used by an HTML document
|
|
|
|
*/
|
|
|
|
struct html_stylesheet {
|
|
|
|
/** Type of sheet */
|
|
|
|
enum { HTML_STYLESHEET_EXTERNAL, HTML_STYLESHEET_INTERNAL } type;
|
|
|
|
union {
|
|
|
|
struct hlcache_handle *external;
|
|
|
|
struct content_css_data *internal;
|
|
|
|
} data; /**< Sheet data */
|
|
|
|
};
|
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
struct frame_dimension {
|
|
|
|
float value;
|
|
|
|
enum {
|
|
|
|
FRAME_DIMENSION_PIXELS, /* '100', '200' */
|
|
|
|
FRAME_DIMENSION_PERCENT, /* '5%', '20%' */
|
|
|
|
FRAME_DIMENSION_RELATIVE /* '*', '2*' */
|
|
|
|
} unit;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
SCROLLING_AUTO,
|
|
|
|
SCROLLING_YES,
|
|
|
|
SCROLLING_NO
|
|
|
|
} frame_scrolling;
|
|
|
|
|
|
|
|
|
2005-01-02 01:05:21 +03:00
|
|
|
/** An object (<img>, <object>, etc.) in a CONTENT_HTML document. */
|
|
|
|
struct content_html_object {
|
2010-03-28 16:56:39 +04:00
|
|
|
struct hlcache_handle *content; /**< Content, or 0. */
|
2005-01-02 01:05:21 +03:00
|
|
|
struct box *box; /**< Node in box tree containing it. */
|
|
|
|
/** Pointer to array of permitted content_type, terminated by
|
|
|
|
* CONTENT_UNKNOWN, or 0 if any type is acceptable. */
|
|
|
|
const content_type *permitted_types;
|
2005-08-21 02:52:20 +04:00
|
|
|
bool background; /**< This object is a background image. */
|
2006-09-02 19:52:41 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
/** Frame tree (<frameset>, <frame>) */
|
|
|
|
struct content_html_frames {
|
|
|
|
int cols; /** number of columns in frameset */
|
|
|
|
int rows; /** number of rows in frameset */
|
2006-11-27 18:35:18 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
struct frame_dimension width; /** frame width */
|
|
|
|
struct frame_dimension height; /** frame width */
|
|
|
|
int margin_width; /** frame margin width */
|
|
|
|
int margin_height; /** frame margin height */
|
2006-11-27 18:35:18 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
char *name; /** frame name (for targetting) */
|
|
|
|
char *url; /** frame url */
|
2006-11-27 18:35:18 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
bool no_resize; /** frame is not resizable */
|
|
|
|
frame_scrolling scrolling; /** scrolling characteristics */
|
|
|
|
bool border; /** frame has a border */
|
|
|
|
colour border_colour; /** frame border colour */
|
2006-11-27 18:35:18 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
struct content_html_frames *children; /** [cols * rows] children */
|
|
|
|
};
|
|
|
|
|
|
|
|
/** Inline frame list (<iframe>) */
|
|
|
|
struct content_html_iframe {
|
|
|
|
struct box *box;
|
|
|
|
|
|
|
|
int margin_width; /** frame margin width */
|
|
|
|
int margin_height; /** frame margin height */
|
2006-11-27 18:35:18 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
char *name; /** frame name (for targetting) */
|
|
|
|
char *url; /** frame url */
|
2006-11-27 18:35:18 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
frame_scrolling scrolling; /** scrolling characteristics */
|
|
|
|
bool border; /** frame has a border */
|
|
|
|
colour border_colour; /** frame border colour */
|
|
|
|
|
|
|
|
struct content_html_iframe *next;
|
2005-01-02 01:05:21 +03:00
|
|
|
};
|
|
|
|
|
2004-02-20 03:43:17 +03:00
|
|
|
/** Data specific to CONTENT_HTML. */
|
2003-09-08 01:08:13 +04:00
|
|
|
struct content_html_data {
|
2008-09-23 06:19:50 +04:00
|
|
|
void *parser_binding;
|
2008-09-09 01:55:20 +04:00
|
|
|
xmlDoc *document;
|
2009-07-24 03:05:34 +04:00
|
|
|
binding_quirks_mode quirks; /**< Quirkyness of document */
|
|
|
|
|
Merged revisions 4859-5013,5016-5018 via svnmerge from
svn://source.netsurf-browser.org/branches/takkaria/netsurf-hubbub
........
r4860 | takkaria | 2008-08-02 03:51:35 +0100 (Sat, 02 Aug 2008) | 2 lines
A really horribly rough first go at integrating hubbub with NetSurf. Segfaults, but I'm not sure what I've done wrong.
........
r4861 | jmb | 2008-08-02 05:01:19 +0100 (Sat, 02 Aug 2008) | 3 lines
Fix segfault caused by mismatched struct layout expectations.
Fix warnings, too.
........
r4862 | jmb | 2008-08-02 05:11:02 +0100 (Sat, 02 Aug 2008) | 2 lines
Destroy parser as soon as it's no longer needed, and flag this so that html_destroy doesn't cause things to trample all over the heap.
........
r4863 | takkaria | 2008-08-02 15:30:34 +0100 (Sat, 02 Aug 2008) | 2 lines
Remove deugging printf()s, add Aliases file, add script { display: none; } block.
........
r4868 | takkaria | 2008-08-02 22:14:55 +0100 (Sat, 02 Aug 2008) | 2 lines
Fix a segfault bug.
........
r4869 | takkaria | 2008-08-02 22:17:58 +0100 (Sat, 02 Aug 2008) | 2 lines
Add gtk/res/Aliases as a symlink to the one in !NS/Resources
........
r4870 | takkaria | 2008-08-02 22:26:31 +0100 (Sat, 02 Aug 2008) | 2 lines
Fix symlink.
........
r4885 | jmb | 2008-08-03 23:26:54 +0100 (Sun, 03 Aug 2008) | 2 lines
Make multiple parallel parser instances work correctly.
........
r4886 | tlsa | 2008-08-04 00:21:29 +0100 (Mon, 04 Aug 2008) | 1 line
Don't display contents of STYLE.
........
r4891 | jmb | 2008-08-04 01:18:07 +0100 (Mon, 04 Aug 2008) | 5 lines
Fix reparent_children to actually work
Make get_parent_node pay attention to the element_only flag
Fixup node referencing when appending a text child
Make clone_node clone attributes and namespace information in the non-deep case
........
r4918 | jmb | 2008-08-05 15:27:03 +0100 (Tue, 05 Aug 2008) | 2 lines
Fix debug target
........
r4944 | takkaria | 2008-08-07 12:56:50 +0100 (Thu, 07 Aug 2008) | 2 lines
Use talloc to allocate space for Hubbub.
........
r4993 | takkaria | 2008-08-10 17:49:47 +0100 (Sun, 10 Aug 2008) | 2 lines
Stub out the encoding change callback so NS-hubbub compiles again.
........
r4994 | takkaria | 2008-08-10 18:02:33 +0100 (Sun, 10 Aug 2008) | 2 lines
Tell Hubbub the encoding that HTTP gives us, if we have one.
........
r5001 | takkaria | 2008-08-11 02:53:24 +0100 (Mon, 11 Aug 2008) | 2 lines
First go at implementing proper <meta charset> support in NetSurf, amongst some refactoring. Probably works, but I have no pages around to test it on.
........
r5002 | takkaria | 2008-08-11 02:56:35 +0100 (Mon, 11 Aug 2008) | 2 lines
Fix (I hope) a 64-bit compiler warning.
........
r5012 | takkaria | 2008-08-11 08:40:28 +0100 (Mon, 11 Aug 2008) | 2 lines
Fix some nits from jmb. (Remove const from html->encoding, set encoding_source to something about right.)
........
r5013 | takkaria | 2008-08-11 08:48:50 +0100 (Mon, 11 Aug 2008) | 2 lines
Properly fix <meta charset> handling, by passing in the right thing as the context. No idea how this worked before. :) (credit: jmb)
........
r5017 | jmb | 2008-08-11 09:13:22 +0100 (Mon, 11 Aug 2008) | 7 lines
Pedantic typo fix.
Make Hubbub YES when building for RISC OS.
Make Hubbub AUTO when building for GTK
Ignore the presence of Hubbub on other platforms.
Remove the explicit libparserutils pkg-config stuff from the makefile (see r5016)
Add some logic that means Hubbub gets enabled correctly when building on RISC OS and when cross-compiling for it. (This is ugly and will go away when pkg-config is available on RO)
........
svn path=/trunk/netsurf/; revision=5019
2008-08-11 12:17:48 +04:00
|
|
|
char *encoding; /**< Encoding of source, 0 if unknown. */
|
2008-09-23 06:19:50 +04:00
|
|
|
binding_encoding_source encoding_source;
|
2005-01-02 01:05:21 +03:00
|
|
|
/**< Source of encoding information. */
|
2004-02-20 03:43:17 +03:00
|
|
|
|
2003-12-26 03:17:55 +03:00
|
|
|
char *base_url; /**< Base URL (may be a copy of content->url). */
|
2006-09-02 19:52:41 +04:00
|
|
|
char *base_target; /**< Base target */
|
2004-02-20 03:43:17 +03:00
|
|
|
|
|
|
|
struct box *layout; /**< Box tree, or 0. */
|
|
|
|
colour background_colour; /**< Document background colour. */
|
First merge of Adam Blokus' GSoC work from his branch 'branches/adamblokus/netsurf'.
Merged revisions 4212-4552,4554-4709,4711-4724 via svnmerge from
svn://svn.netsurf-browser.org/branches/adamblokus/netsurf
........
r4212 | adamblokus | 2008-05-26 19:42:31 +0200 (Mon, 26 May 2008) | 4 lines
Pdf plotting skeleton pinned on Print Preview in GTK.
Just creates a file and draws lines.
........
r4213 | adamblokus | 2008-05-27 00:11:03 +0200 (Tue, 27 May 2008) | 4 lines
Pdf plotter - added drawing some graphic primitives.
Still with limited functionality, but a snapshot of the
currently viewed page can be made and resembles the original.
........
r4214 | adamblokus | 2008-05-27 11:43:31 +0200 (Tue, 27 May 2008) | 2 lines
Corrected encoding name
........
r4215 | adamblokus | 2008-05-27 12:47:26 +0200 (Tue, 27 May 2008) | 3 lines
Colours and polygons added.
........
r4217 | adamblokus | 2008-05-27 21:39:35 +0200 (Tue, 27 May 2008) | 6 lines
Added rectangles, filled boxes and clipping.
Taken into consideration joty's comments.
Added a todo list for this part.
Added some debug stuff and checking boundaries.
........
r4218 | adamblokus | 2008-05-28 12:37:30 +0200 (Wed, 28 May 2008) | 2 lines
Added path ploting (not sure if valid argument order for bezier) and dashed/dotted line styles
........
r4221 | adamblokus | 2008-05-28 22:11:05 +0200 (Wed, 28 May 2008) | 3 lines
Some more options in graphic primitives and normalizing some parameters.
........
r4235 | adamblokus | 2008-05-31 22:54:56 +0200 (Sat, 31 May 2008) | 4 lines
Plotting changed as jmb suggested (is the least invasive one from the possible)
Added dummy bitmap plotting - way of plotting an image is determined by its type.
........
r4251 | adamblokus | 2008-06-03 17:12:15 +0200 (Tue, 03 Jun 2008) | 3 lines
Added plotting jpg and png images - quite a lot to improve in this code, but it seems to work ;)
........
r4263 | adamblokus | 2008-06-05 14:20:32 +0200 (Thu, 05 Jun 2008) | 3 lines
Added hadling images other than png and jpeg - with transparency.
........
r4267 | adamblokus | 2008-06-06 15:36:34 +0200 (Fri, 06 Jun 2008) | 5 lines
Added handling NULL-returns from all mallocs.
Added plot_bitmap_tile handling.
Changed code style a little.
........
r4327 | adamblokus | 2008-06-12 17:46:34 +0200 (Thu, 12 Jun 2008) | 5 lines
Added a first prototype of the paged-output organization.
Still not sure about naming, file locations etc.
Works with the same pdf plotting as before.
........
r4328 | adamblokus | 2008-06-13 13:52:15 +0200 (Fri, 13 Jun 2008) | 4 lines
Added primitive width adjustment and outputing the whole
website in multiple pages.
........
r4336 | joty | 2008-06-15 15:06:57 +0200 (Sun, 15 Jun 2008) | 1 line
Fix RISC OS build failure (change r4235 wasn't complete).
........
r4337 | joty | 2008-06-15 18:15:32 +0200 (Sun, 15 Jun 2008) | 16 lines
This enables "Export PDF" in RISC OS build:
- Docs/Doxyfile(PREDEFINED): Added WITH_PDF_EXPORT
- Makefile.sources(S_PDF): Add to RISC OS target as well.
- utils/config.h: Define WITH_PDF_EXPORT which controls if we want to have
PDF export functionality or not.
- riscos/save_pdf.c,riscos/save_pdf.h(save_as_pdf): Use PDF print API made
by Adam Blokus to write a PDF file under RISC OS.
- riscos/save.c: Call save_as_pdf added.
- riscos/menus.c: Add 'Export->PDF' menu entry.
- riscos/menus.h(menu_action): Added BROWSER_EXPORT_PDF.
- desktop/gui.h(gui_save_type): Added GUI_SAVE_PDF.
- desktop/print.c(print_run): Added return value.
- Makefile(CCACHE): Moved closed to the place where CC is set for the first time.
(LDFLAGS): Centralised adding all non-pkgconfig libraries and added Haru + PNG libs.
........
r4343 | adamblokus | 2008-06-16 01:08:52 +0200 (Mon, 16 Jun 2008) | 3 lines
Added margins and page size adjustment.
........
r4412 | adamblokus | 2008-06-21 20:22:07 +0200 (Sat, 21 Jun 2008) | 4 lines
Added 'fuzzy' margins on page bottom.
Disabled direct png embedding, because it is too unstable in Haru now.
........
r4421 | adamblokus | 2008-06-22 18:52:28 +0200 (Sun, 22 Jun 2008) | 2 lines
Added "Save as.." dialog and Export->PDF menu entry. Print preview still works with default path.
........
r4437 | adamblokus | 2008-06-25 02:44:46 +0200 (Wed, 25 Jun 2008) | 4 lines
Added skeleton of applying loose layout.
Minor code cleaning-up.
........
r4492 | adamblokus | 2008-07-02 09:02:42 +0200 (Wed, 02 Jul 2008) | 5 lines
Implemented the elementar ideas of the loose layout.
Added scaling in the printing routine.
Added some basic demonstrations.
........
r4493 | adamblokus | 2008-07-02 09:05:55 +0200 (Wed, 02 Jul 2008) | 3 lines
Cleaned up the loosing code - commited to much of leftover rubbish code.
........
r4507 | adamblokus | 2008-07-04 14:25:48 +0200 (Fri, 04 Jul 2008) | 4 lines
Added duplicating box tree and current content - window flickering during printing solved.
Minor error checking after new HPDF_Image_AddSMask call.
........
r4515 | adamblokus | 2008-07-06 22:28:16 +0200 (Sun, 06 Jul 2008) | 2 lines
Changes in loosen layout (image resizing).
........
r4517 | adamblokus | 2008-07-06 22:38:23 +0200 (Sun, 06 Jul 2008) | 2 lines
Added pdf font handling and rendering functions with the use of Haru functions.
........
r4555 | adamblokus | 2008-07-10 00:59:05 +0200 (Thu, 10 Jul 2008) | 2 lines
Added a very basic and still buggy GTK print implementation.
........
r4565 | adamblokus | 2008-07-10 14:50:16 +0200 (Thu, 10 Jul 2008) | 2 lines
Added gtk printing one more time - I have forgotten to add the main file.
........
r4566 | adamblokus | 2008-07-10 14:57:02 +0200 (Thu, 10 Jul 2008) | 2 lines
removed error with comment
........
r4569 | adamblokus | 2008-07-10 15:52:55 +0200 (Thu, 10 Jul 2008) | 5 lines
Major style improvements - added a lot of doxygen comments,
followed tlsa's style guide.
Added some more error checking, too.
........
r4575 | adamblokus | 2008-07-10 18:48:26 +0200 (Thu, 10 Jul 2008) | 2 lines
Cleaned up the code.
........
r4687 | adamblokus | 2008-07-17 14:17:19 +0200 (Thu, 17 Jul 2008) | 2 lines
Changed everything according to jmb's review plus some minor bug fixes to gtk_print.
........
r4688 | adamblokus | 2008-07-17 17:16:34 +0200 (Thu, 17 Jul 2008) | 2 lines
Solved the netsurf.glade clash from r4421.
........
r4693 | adamblokus | 2008-07-18 18:11:51 +0200 (Fri, 18 Jul 2008) | 2 lines
Fixed bug with wrong number of pages in gtk printing.
........
r4695 | adamblokus | 2008-07-18 19:59:24 +0200 (Fri, 18 Jul 2008) | 3 lines
- fixed uncommented line from the previous commit
- fixed bug with scale bigger than 1.0 (incorretly clipped page)
........
r4696 | adamblokus | 2008-07-18 23:28:00 +0200 (Fri, 18 Jul 2008) | 2 lines
Fixed bug in gtk_print_font_paint (and nsfont_paint).
........
r4697 | adamblokus | 2008-07-18 23:35:38 +0200 (Fri, 18 Jul 2008) | 2 lines
Bug fix in nsfont_paint.
........
r4711 | adamblokus | 2008-07-19 22:44:15 +0200 (Sat, 19 Jul 2008) | 2 lines
Added gtk_selection files.
........
r4712 | adamblokus | 2008-07-20 11:15:06 +0200 (Sun, 20 Jul 2008) | 2 lines
Addam missing glade files.
........
r4713 | joty | 2008-07-20 17:13:10 +0200 (Sun, 20 Jul 2008) | 1 line
Follow change r4517 for RISC OS and BeOS platforms : Added pdf font handling and rendering functions with the use of Haru functions.
........
r4714 | joty | 2008-07-20 18:19:50 +0200 (Sun, 20 Jul 2008) | 1 line
Declare haru_nsfont iso define an instance for each C source including the font_haru.h header. This fixes breakage of PDF export on RISC OS.
........
r4724 | adamblokus | 2008-07-23 03:30:08 +0200 (Wed, 23 Jul 2008) | 6 lines
Applied changes according to joty's review.
Added checking the dimensions of a plotted image to pdf plotter.
Commented out jpg embedding (it seems to cause some problems
I'll bring it back when I figure out what's wrong) .
Added back some files removed by mistake.
........
svn path=/trunk/netsurf/; revision=4741
2008-07-26 20:01:59 +04:00
|
|
|
const struct font_functions *font_func;
|
2004-02-20 03:43:17 +03:00
|
|
|
|
2010-03-28 16:56:39 +04:00
|
|
|
struct hlcache_handle *favicon; /**< the favicon for the page */
|
2009-12-18 02:55:02 +03:00
|
|
|
|
2004-02-20 03:43:17 +03:00
|
|
|
/** Number of entries in stylesheet_content. */
|
2003-09-08 01:08:13 +04:00
|
|
|
unsigned int stylesheet_count;
|
2004-07-31 03:40:01 +04:00
|
|
|
/** Stylesheets. Each may be 0. */
|
2010-03-28 16:56:39 +04:00
|
|
|
struct html_stylesheet *stylesheets;
|
2009-07-24 03:05:34 +04:00
|
|
|
/**< Style selection context */
|
|
|
|
css_select_ctx *select_ctx;
|
2004-02-20 03:43:17 +03:00
|
|
|
|
|
|
|
/** Number of entries in object. */
|
|
|
|
unsigned int object_count;
|
|
|
|
/** Objects. Each may be 0. */
|
2005-01-02 01:05:21 +03:00
|
|
|
struct content_html_object *object;
|
2005-04-09 13:47:37 +04:00
|
|
|
/** Forms, in reverse order to document. */
|
|
|
|
struct form *forms;
|
2005-08-21 02:52:20 +04:00
|
|
|
/** Hash table of imagemaps. */
|
2005-04-09 13:47:37 +04:00
|
|
|
struct imagemap **imagemaps;
|
2004-08-12 02:08:26 +04:00
|
|
|
|
2005-08-21 02:52:20 +04:00
|
|
|
/** Browser window containing this document, or 0 if not open. */
|
2004-08-12 02:08:26 +04:00
|
|
|
struct browser_window *bw;
|
2005-10-31 00:23:03 +03:00
|
|
|
|
2006-09-02 19:52:41 +04:00
|
|
|
/** Frameset information */
|
|
|
|
struct content_html_frames *frameset;
|
|
|
|
|
|
|
|
/** Inline frame information */
|
|
|
|
struct content_html_iframe *iframe;
|
|
|
|
|
2005-10-31 00:23:03 +03:00
|
|
|
/** Content of type CONTENT_HTML containing this, or 0 if not an object
|
|
|
|
* within a page. */
|
|
|
|
struct content *page;
|
|
|
|
/** Index in page->data.html.object, or 0 if not an object. */
|
|
|
|
unsigned int index;
|
|
|
|
/** Box containing this, or 0 if not an object. */
|
|
|
|
struct box *box;
|
2003-09-08 01:08:13 +04:00
|
|
|
};
|
2003-02-09 15:58:15 +03:00
|
|
|
|
2004-10-18 01:10:19 +04:00
|
|
|
/** Render padding and margin box outlines in html_redraw(). */
|
|
|
|
extern bool html_redraw_debug;
|
|
|
|
|
2004-02-20 03:43:17 +03:00
|
|
|
|
2010-03-28 16:56:39 +04:00
|
|
|
bool html_create(struct content *c, const struct http_parameter *params);
|
2010-04-03 20:37:36 +04:00
|
|
|
bool html_process_data(struct content *c, const char *data, unsigned int size);
|
2010-03-30 02:33:21 +04:00
|
|
|
bool html_convert(struct content *c);
|
2004-06-11 00:41:26 +04:00
|
|
|
void html_reformat(struct content *c, int width, int height);
|
2003-02-09 15:58:15 +03:00
|
|
|
void html_destroy(struct content *c);
|
2010-04-04 16:41:19 +04:00
|
|
|
bool html_clone(const struct content *old, struct content *new_content);
|
2009-07-24 03:05:34 +04:00
|
|
|
bool html_fetch_object(struct content *c, const char *url, struct box *box,
|
2004-05-21 18:26:59 +04:00
|
|
|
const content_type *permitted_types,
|
2004-06-10 03:13:55 +04:00
|
|
|
int available_width, int available_height,
|
2006-09-02 19:52:41 +04:00
|
|
|
bool background);
|
2004-06-21 03:09:52 +04:00
|
|
|
void html_stop(struct content *c);
|
2004-08-12 02:08:26 +04:00
|
|
|
void html_open(struct content *c, struct browser_window *bw,
|
2005-10-31 00:23:03 +03:00
|
|
|
struct content *page, unsigned int index, struct box *box,
|
2004-08-12 02:08:26 +04:00
|
|
|
struct object_params *params);
|
|
|
|
void html_close(struct content *c);
|
2009-12-18 02:55:02 +03:00
|
|
|
void html_set_status(struct content *c, const char *extra);
|
2003-11-13 01:22:45 +03:00
|
|
|
|
2010-06-04 13:35:08 +04:00
|
|
|
void html_redraw_a_box(struct hlcache_handle *h, struct box *box);
|
|
|
|
|
2004-10-18 01:10:19 +04:00
|
|
|
/* in render/html_redraw.c */
|
2004-08-11 20:26:13 +04:00
|
|
|
bool html_redraw(struct content *c, int x, int y,
|
2004-06-11 00:41:26 +04:00
|
|
|
int width, int height,
|
|
|
|
int clip_x0, int clip_y0, int clip_x1, int clip_y1,
|
2008-09-29 02:37:13 +04:00
|
|
|
float scale, colour background_colour);
|
2003-02-09 15:58:15 +03:00
|
|
|
|
2010-06-04 13:35:08 +04:00
|
|
|
/* in render/html_interaction.c */
|
|
|
|
void html_mouse_track(struct content *c, struct browser_window *bw,
|
|
|
|
browser_mouse_state mouse, int x, int y);
|
|
|
|
void html_mouse_action(struct content *c, struct browser_window *bw,
|
|
|
|
browser_mouse_state mouse, int x, int y);
|
|
|
|
void html_overflow_scroll_callback(void *client_data,
|
|
|
|
struct scroll_msg_data *scroll_data);
|
|
|
|
void html_overflow_scroll_drag_end(struct scroll *scroll,
|
|
|
|
browser_mouse_state mouse, int x, int y);
|
|
|
|
size_t html_selection_drag_end(struct hlcache_handle *h,
|
|
|
|
browser_mouse_state mouse, int x, int y, int dir);
|
2006-02-16 02:09:55 +03:00
|
|
|
|
|
|
|
bool text_redraw(const char *utf8_text, size_t utf8_len,
|
|
|
|
size_t offset, bool space,
|
2009-07-21 14:59:53 +04:00
|
|
|
const plot_font_style_t *fstyle,
|
2006-02-16 02:09:55 +03:00
|
|
|
int x, int y,
|
|
|
|
struct rect *clip,
|
|
|
|
int height,
|
2009-07-21 14:59:53 +04:00
|
|
|
float scale,
|
2006-02-16 02:09:55 +03:00
|
|
|
bool excluded);
|
|
|
|
|
2010-03-28 16:56:39 +04:00
|
|
|
xmlDoc *html_get_document(struct hlcache_handle *h);
|
|
|
|
struct box *html_get_box_tree(struct hlcache_handle *h);
|
|
|
|
const char *html_get_encoding(struct hlcache_handle *h);
|
2010-04-07 17:12:27 +04:00
|
|
|
binding_encoding_source html_get_encoding_source(struct hlcache_handle *h);
|
2010-03-28 16:56:39 +04:00
|
|
|
struct content_html_frames *html_get_frameset(struct hlcache_handle *h);
|
|
|
|
struct content_html_iframe *html_get_iframe(struct hlcache_handle *h);
|
|
|
|
const char *html_get_base_url(struct hlcache_handle *h);
|
|
|
|
const char *html_get_base_target(struct hlcache_handle *h);
|
|
|
|
struct html_stylesheet *html_get_stylesheets(struct hlcache_handle *h,
|
|
|
|
unsigned int *n);
|
|
|
|
struct content_html_object *html_get_objects(struct hlcache_handle *h,
|
2010-06-04 13:35:08 +04:00
|
|
|
unsigned int *n);
|
2010-03-28 16:56:39 +04:00
|
|
|
struct hlcache_handle *html_get_favicon(struct hlcache_handle *h);
|
2010-06-04 13:35:08 +04:00
|
|
|
bool html_get_id_offset(struct hlcache_handle *h, char *frag_id,
|
|
|
|
int *x, int *y);
|
2010-03-28 16:56:39 +04:00
|
|
|
|
2003-02-09 15:58:15 +03:00
|
|
|
#endif
|