diff options
Diffstat (limited to 'libs/litehtml/containers/windows')
5 files changed, 43 insertions, 38 deletions
diff --git a/libs/litehtml/containers/windows/cairo/windows_container.h b/libs/litehtml/containers/windows/cairo/windows_container.h index b9cb3c6deb..daae519cab 100644 --- a/libs/litehtml/containers/windows/cairo/windows_container.h +++ b/libs/litehtml/containers/windows/cairo/windows_container.h @@ -13,6 +13,7 @@ #include "cairo-win32.h" #include <litehtml.h> #include <dib.h> +#include <txdib.h> #include "../../libs/litehtml/containers/cairo/container_cairo.h" class windows_container : public container_cairo diff --git a/libs/litehtml/containers/windows/gdiplus/gdiplus_container.cpp b/libs/litehtml/containers/windows/gdiplus/gdiplus_container.cpp index 3c4dcaa84c..5950b01882 100644 --- a/libs/litehtml/containers/windows/gdiplus/gdiplus_container.cpp +++ b/libs/litehtml/containers/windows/gdiplus/gdiplus_container.cpp @@ -1,7 +1,6 @@ #ifndef NOMINMAX #define NOMINMAX #endif -#include <algorithm> #include <windows.h> #include <gdiplus.h> #include "gdiplus_container.h" @@ -26,7 +25,7 @@ static Color gdiplus_color(web_color color) return Color(color.alpha, color.red, color.green, color.blue); } -void gdiplus_container::draw_ellipse(HDC hdc, int x, int y, int width, int height, web_color color, int line_width) +void gdiplus_container::draw_ellipse(HDC hdc, int x, int y, int width, int height, web_color color, int) { Graphics graphics(hdc); @@ -71,7 +70,7 @@ void gdiplus_container::free_image(uint_ptr img) Bitmap* bmp = (Bitmap*)img; delete bmp; } - +/* void gdiplus_container::draw_img_bg(HDC hdc, uint_ptr img, const background_paint& bg) { Bitmap* bgbmp = (Bitmap*)img; @@ -143,6 +142,7 @@ void gdiplus_container::draw_img_bg(HDC hdc, uint_ptr img, const background_pain delete scaled_img; } +*/ // length of dash and space for "dashed" style, in multiples of pen width const float dash = 3; @@ -216,7 +216,7 @@ static void draw_vert_border(Graphics& graphics, const border& border, int x, in } } -void gdiplus_container::draw_borders(uint_ptr hdc, const borders& borders, const position& draw_pos, bool root) +void gdiplus_container::draw_borders(uint_ptr hdc, const borders& borders, const position& draw_pos, bool) { apply_clip((HDC) hdc); Graphics graphics((HDC)hdc); diff --git a/libs/litehtml/containers/windows/gdiplus/gdiplus_container.h b/libs/litehtml/containers/windows/gdiplus/gdiplus_container.h index a5a61382c3..cb0e0337dc 100644 --- a/libs/litehtml/containers/windows/gdiplus/gdiplus_container.h +++ b/libs/litehtml/containers/windows/gdiplus/gdiplus_container.h @@ -17,7 +17,7 @@ protected: void fill_rect(HDC hdc, int x, int y, int width, int height, litehtml::web_color color) override; void get_img_size(uint_ptr img, litehtml::size& sz) override; void free_image(uint_ptr img) override; - void draw_img_bg(HDC hdc, uint_ptr img, const litehtml::background_paint& bg) override; + // litehtml::document_container members void draw_borders(uint_ptr hdc, const litehtml::borders& borders, const litehtml::position& draw_pos, bool root) override; }; diff --git a/libs/litehtml/containers/windows/win32/win32_container.cpp b/libs/litehtml/containers/windows/win32/win32_container.cpp index 520b1ed234..bbcbfe53dc 100644 --- a/libs/litehtml/containers/windows/win32/win32_container.cpp +++ b/libs/litehtml/containers/windows/win32/win32_container.cpp @@ -24,7 +24,7 @@ win32_container::~win32_container() ReleaseDC(NULL, m_tmp_hdc); } -int CALLBACK win32_container::EnumFontsProc(const LOGFONT* lplf, const TEXTMETRIC* lptm, DWORD dwType, LPARAM lpData) +int CALLBACK win32_container::EnumFontsProc(const LOGFONT* lplf, const TEXTMETRIC*, DWORD, LPARAM lpData) { win32_container* container = (win32_container*)lpData; container->m_installed_fonts.insert(lplf->lfFaceName); @@ -147,6 +147,32 @@ int win32_container::pt_to_px( int pt ) const return MulDiv(pt, GetDeviceCaps(m_tmp_hdc, LOGPIXELSY), 72); } +void win32_container::draw_image(litehtml::uint_ptr, const litehtml::background_layer &, const std::string &, const std::string &) +{ +} + +void win32_container::draw_solid_fill(litehtml::uint_ptr _hdc, const litehtml::background_layer &bg, const litehtml::web_color &color) +{ + HDC hdc = (HDC)_hdc; + apply_clip(hdc); + + fill_rect(hdc, bg.border_box.x, bg.border_box.y, bg.border_box.width, bg.border_box.height, color); + + release_clip(hdc); +} + +void win32_container::draw_linear_gradient(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::background_layer::linear_gradient &) +{ +} + +void win32_container::draw_radial_gradient(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::background_layer::radial_gradient &) +{ +} + +void win32_container::draw_conic_gradient(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::background_layer::conic_gradient &) +{ +} + void win32_container::draw_list_marker(uint_ptr hdc, const litehtml::list_marker& marker) { apply_clip((HDC)hdc); @@ -252,33 +278,7 @@ void win32_container::unlock_images_cache() LeaveCriticalSection(&m_img_sync); } -void win32_container::draw_background( uint_ptr _hdc, const std::vector<litehtml::background_paint>& bg ) -{ - HDC hdc = (HDC)_hdc; - apply_clip(hdc); - - auto border_box = bg.back().border_box; - auto color = bg.back().color; - fill_rect(hdc, border_box.x, border_box.y, border_box.width, border_box.height, color); - - for (int i = (int)bg.size() - 1; i >= 0; i--) - { - std::wstring url; - make_url_utf8(bg[i].image.c_str(), bg[i].baseurl.c_str(), url); - - lock_images_cache(); - images_map::iterator img = m_images.find(url); - if (img != m_images.end() && img->second) - { - draw_img_bg(hdc, img->second, bg[i]); - } - unlock_images_cache(); - } - - release_clip(hdc); -} - -void win32_container::set_clip( const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius ) +void win32_container::set_clip( const litehtml::position& pos, const litehtml::border_radiuses&) { m_clips.push_back(pos); } @@ -321,7 +321,7 @@ void win32_container::release_clip(HDC hdc) } } -litehtml::element::ptr win32_container::create_element(const char* tag_name, const litehtml::string_map& attributes, const litehtml::document::ptr& doc) +litehtml::element::ptr win32_container::create_element(const char*, const litehtml::string_map&, const litehtml::document::ptr&) { return 0; } @@ -369,7 +369,7 @@ void win32_container::transform_text(litehtml::string& text, litehtml::text_tran free(txt); } -void win32_container::link(const litehtml::document::ptr& doc, const litehtml::element::ptr& el) +void win32_container::link(const litehtml::document::ptr&, const litehtml::element::ptr&) { } diff --git a/libs/litehtml/containers/windows/win32/win32_container.h b/libs/litehtml/containers/windows/win32/win32_container.h index 93a9d81086..888a52d2e3 100644 --- a/libs/litehtml/containers/windows/win32/win32_container.h +++ b/libs/litehtml/containers/windows/win32/win32_container.h @@ -33,12 +33,17 @@ public: void draw_text(uint_ptr hdc, const char* text, uint_ptr hFont, litehtml::web_color color, const litehtml::position& pos) override; void transform_text(litehtml::string& text, litehtml::text_transform tt) override; + void draw_image(litehtml::uint_ptr, const litehtml::background_layer &, const std::string &, const std::string &) override; + void draw_solid_fill(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::web_color &) override; + void draw_linear_gradient(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::background_layer::linear_gradient &) override; + void draw_radial_gradient(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::background_layer::radial_gradient &) override; + void draw_conic_gradient(litehtml::uint_ptr, const litehtml::background_layer &, const litehtml::background_layer::conic_gradient &) override; + int pt_to_px(int pt) const override; void draw_list_marker(uint_ptr hdc, const litehtml::list_marker& marker) override; void load_image(const char* src, const char* baseurl, bool redraw_on_ready) override; void get_image_size(const char* src, const char* baseurl, litehtml::size& sz) override; - void draw_background(uint_ptr hdc, const std::vector<litehtml::background_paint>& bg) override; - + void set_clip(const litehtml::position& pos, const litehtml::border_radiuses& bdr_radius) override; void del_clip() override; litehtml::element::ptr create_element(const char* tag_name, const litehtml::string_map& attributes, const litehtml::document::ptr& doc) override; @@ -62,7 +67,6 @@ protected: void clear_images(); virtual void free_image(uint_ptr img) = 0; virtual void get_img_size(uint_ptr img, litehtml::size& sz) = 0; - virtual void draw_img_bg(HDC hdc, uint_ptr img, const litehtml::background_paint& bg) = 0; virtual void draw_ellipse(HDC hdc, int x, int y, int width, int height, litehtml::web_color color, int line_width) = 0; virtual void fill_ellipse(HDC hdc, int x, int y, int width, int height, litehtml::web_color color) = 0; |
