| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
All render_item based classes are moved into the own headers
|
|
|
|
|
| |
Also added element::children() method.
Closes issue #27
|
|
|
|
| |
Fixes issue #99
|
|
|
|
|
|
|
|
|
| |
* is_floats_holder function is renamed to is_block_formatting_context
* All floating boxes related functions are moved to new class formatting_context
* The class formatting_context was passed as argument to the render
function
* render function is now is wrapper for _render. The render function
creates formatting_context when required
|
|
|
|
|
|
| |
moved display property based re-rendering from render_item_block::render
to the top functions: place_float, place_inline and
render_item_block_context::_render_content
|
| |
|
|
|
|
|
|
|
|
| |
Also:
* refactoring: have_parent is replaced with is_root in render_item
* fixed: The tag <body> is not floats holder by default
* expanding <html> and <body> elements auto-expanding up to client
rectangle
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Removed "width: 100%; height: 100%" from <html> style
* extend <html> and <body> elements to the client rectangle if
width/height is auto
* Reverse inherit for <html> background is working again
* Always draw <html> element background into document clipping area to
fill entire "browser window".
* Added document::content_width and document::content_height. These
methodts return the document size without <html> and <body> tags for
using in tests and other applications
|
|
|
|
|
|
|
|
|
| |
* max_width argument removed from _render function
* added render_width into containing_block_context structure. This
member should be used to render element instead of max_width
* _render protected function is replaced with render function
* apply auto-margins from parent element. Auto margins must not be
applied inside render function
|
|
|
|
|
|
|
|
| |
document::height() now returns minimum height. This was used in the
render_test.cpp to find the bitmap height. Most of tests were updated
to to match real document size.
Also added ACID1 test.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* test10.htm - test for issue #247
* test11.htm - test for issue #249
* test12.htm - inline text rendering
* test13.htm - vertical align test
|
| |
|
| |
|
|
|
|
| |
changed css_properties::compute signature because shared_from_this cannot be called during construction of *this
|
|
|
|
|
|
| |
Move css property parsing from css_properties::parse (which is called from html_tag::parse_styles for every tree node)
to style::add_property (which is called during stylesheet parsing).
document::createFromString: 1287 ms -> 1048 ms on Obama wiki
|
|
|
|
|
| |
I'll readd var() support later in a way that doesn't hurt performance so much.
document::createFromString: 1730 ms -> 1287 ms on Obama wiki
|
|
|
|
| |
decreases parse_styles time by 37% (750 ms -> 468 ms on Obama wiki on my machine)
|
|
|
|
| |
closes issue #217
|
| |
|
|
* Refactored CSS properties
All CSS related properties are moved into the separate class css_properties.
Getters and setters are removed from classes element and html_tag.
Access to the css_properties rleased via css() [ro] and css_w() [rw] methods
* fix: el_text don't have to copy all css properties from parent
* Refactored rendering code
* Added flex and inline_flex values for display css property
* Implementing box generation
https://www.w3.org/TR/CSS22/visuren.html#box-gen
* Split inlines on block box inside
* Split parsing and rendering trees.
* Fixed some bugs
* Fixed: impossible to click urls on Obama wiki's toc
* Make element::get_placement work again
* Fixed: incorrect rendering table captions
* find_styles_changes function returned to the element class
* set parent correctly during render items split
* fixed urls on https://en.cppreference.com/w/cpp/container/vector
* fixed rendering blocks with width in percents
Example:
https://web.archive.org/web/20110101155107/http://www.unicode.org/
Issue #208
* Fixed placement of blocks with "overflow: hidden" with floating boxes.
* refactoring of rendering block
* Selectors :before and :after returned back with fixed behaviour.
* fixed render_item::is_last_child_inline
* fixed: text inside nested inlines has extra paddings/margins
* fixed documet test
|