Photon 1.0.0
Loading...
Searching...
No Matches
document_container.h
Go to the documentation of this file.
1#ifndef LH_DOCUMENT_CONTAINER_H
2#define LH_DOCUMENT_CONTAINER_H
3
4#include "os_types.h"
5#include "types.h"
6#include "web_color.h"
7#include "background.h"
8#include "borders.h"
9#include "element.h"
10#include <memory>
11#include <functional>
12
13namespace litehtml
14{
25
31
32 // call back interface to draw text, images and other elements
34 {
35 public:
36 virtual litehtml::uint_ptr create_font(const char* faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics* fm) = 0;
37 virtual void delete_font(litehtml::uint_ptr hFont) = 0;
38 virtual int text_width(const char* text, litehtml::uint_ptr hFont) = 0;
39 virtual void draw_text(litehtml::uint_ptr hdc, const char* text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) = 0;
40 virtual int pt_to_px(int pt) const = 0;
41 virtual int get_default_font_size() const = 0;
42 virtual const char* get_default_font_name() const = 0;
43 virtual void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker& marker) = 0;
44 virtual void load_image(const char* src, const char* baseurl, bool redraw_on_ready) = 0;
45 virtual void get_image_size(const char* src, const char* baseurl, litehtml::size& sz) = 0;
46 virtual void draw_image(litehtml::uint_ptr hdc, const background_layer& layer, const std::string& url, const std::string& base_url) = 0;
47 virtual void draw_solid_fill(litehtml::uint_ptr hdc, const background_layer& layer, const web_color& color) = 0;
51 virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) = 0;
52
53 virtual void set_caption(const char* caption) = 0;
54 virtual void set_base_url(const char* base_url) = 0;
55 virtual void link(const std::shared_ptr<litehtml::document>& doc, const litehtml::element::ptr& el) = 0;
56 virtual void on_anchor_click(const char* url, const litehtml::element::ptr& el) = 0;
58 virtual void set_cursor(const char* cursor) = 0;
59 virtual void transform_text(litehtml::string& text, litehtml::text_transform tt) = 0;
60 virtual void import_css(litehtml::string& text, const litehtml::string& url, litehtml::string& baseurl) = 0;
61 virtual void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius) = 0;
62 virtual void del_clip() = 0;
63 virtual void get_client_rect(litehtml::position& client) const = 0;
64 virtual litehtml::element::ptr create_element( const char* tag_name,
65 const litehtml::string_map& attributes,
66 const std::shared_ptr<litehtml::document>& doc) = 0;
67
68 virtual void get_media_features(litehtml::media_features& media) const = 0;
69 virtual void get_language(litehtml::string& language, litehtml::string& culture) const = 0;
70 virtual litehtml::string resolve_color(const litehtml::string& /*color*/) const { return litehtml::string(); }
71 virtual void split_text(const char* text, const std::function<void(const char*)>& on_word, const std::function<void(const char*)>& on_space);
72
73 protected:
74 virtual ~document_container() = default;
75 };
76}
77
78#endif // LH_DOCUMENT_CONTAINER_H
Definition background.h:14
Definition document_container.h:34
virtual void on_anchor_click(const char *url, const litehtml::element::ptr &el)=0
virtual void draw_conic_gradient(litehtml::uint_ptr hdc, const background_layer &layer, const background_layer::conic_gradient &gradient)=0
virtual void draw_linear_gradient(litehtml::uint_ptr hdc, const background_layer &layer, const background_layer::linear_gradient &gradient)=0
virtual void link(const std::shared_ptr< litehtml::document > &doc, const litehtml::element::ptr &el)=0
virtual void get_media_features(litehtml::media_features &media) const =0
virtual void import_css(litehtml::string &text, const litehtml::string &url, litehtml::string &baseurl)=0
virtual void split_text(const char *text, const std::function< void(const char *)> &on_word, const std::function< void(const char *)> &on_space)
Definition document_container.cpp:4
virtual void set_base_url(const char *base_url)=0
virtual void get_language(litehtml::string &language, litehtml::string &culture) const =0
virtual void get_image_size(const char *src, const char *baseurl, litehtml::size &sz)=0
virtual int get_default_font_size() const =0
virtual void draw_borders(litehtml::uint_ptr hdc, const litehtml::borders &borders, const litehtml::position &draw_pos, bool root)=0
virtual ~document_container()=default
virtual litehtml::string resolve_color(const litehtml::string &) const
Definition document_container.h:70
virtual void set_caption(const char *caption)=0
virtual void delete_font(litehtml::uint_ptr hFont)=0
virtual void set_clip(const litehtml::position &pos, const litehtml::border_radiuses &bdr_radius)=0
virtual void transform_text(litehtml::string &text, litehtml::text_transform tt)=0
virtual void draw_radial_gradient(litehtml::uint_ptr hdc, const background_layer &layer, const background_layer::radial_gradient &gradient)=0
virtual void draw_solid_fill(litehtml::uint_ptr hdc, const background_layer &layer, const web_color &color)=0
virtual litehtml::element::ptr create_element(const char *tag_name, const litehtml::string_map &attributes, const std::shared_ptr< litehtml::document > &doc)=0
virtual int pt_to_px(int pt) const =0
virtual void draw_image(litehtml::uint_ptr hdc, const background_layer &layer, const std::string &url, const std::string &base_url)=0
virtual void set_cursor(const char *cursor)=0
virtual void draw_text(litehtml::uint_ptr hdc, const char *text, litehtml::uint_ptr hFont, litehtml::web_color color, const litehtml::position &pos)=0
virtual litehtml::uint_ptr create_font(const char *faceName, int size, int weight, litehtml::font_style italic, unsigned int decoration, litehtml::font_metrics *fm)=0
virtual void draw_list_marker(litehtml::uint_ptr hdc, const litehtml::list_marker &marker)=0
virtual int text_width(const char *text, litehtml::uint_ptr hFont)=0
virtual const char * get_default_font_name() const =0
virtual void get_client_rect(litehtml::position &client) const =0
virtual void on_mouse_event(const litehtml::element::ptr &el, litehtml::mouse_event event)=0
virtual void load_image(const char *src, const char *baseurl, bool redraw_on_ready)=0
std::shared_ptr< element > ptr
Definition element.h:25
Definition gradient.h:89
Definition url.h:41
Definition background.h:12
text_transform
Definition types.h:582
std::uintptr_t uint_ptr
Definition types.h:17
font_style
Definition types.h:374
std::map< string, string > string_map
Definition types.h:31
list_style_type
Definition types.h:402
mouse_event
Definition document_container.h:27
@ mouse_event_enter
Definition document_container.h:28
@ mouse_event_leave
Definition document_container.h:29
Definition Bitmap.h:10
Definition borders.h:67
Definition borders.h:250
Definition types.h:197
Definition document_container.h:16
string image
Definition document_container.h:17
const char * baseurl
Definition document_container.h:18
int index
Definition document_container.h:22
position pos
Definition document_container.h:21
web_color color
Definition document_container.h:20
uint_ptr font
Definition document_container.h:23
list_style_type marker_type
Definition document_container.h:19
Definition types.h:878
Definition types.h:103
Definition types.h:89
Definition web_color.h:9
annotation caption
Definition tag_strings.h:101
annotation tt
Definition tag_strings.h:155