@@ -26,12 +26,8 @@ namespace litehtml
26
26
bool m_skip;
27
27
std::vector<std::shared_ptr<render_item>> m_positioned;
28
28
29
- virtual int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) { return 0 ; }
30
29
containing_block_context calculate_containing_block_context (const containing_block_context& cb_context);
31
- void calc_cb_length (const css_length& len,
32
- int percent_base,
33
- int & out_value,
34
- containing_block_context::cbc_value_type& out_type) const ;
30
+ void calc_cb_length (const css_length& len, int percent_base, containing_block_context::typed_int& out_value) const ;
35
31
36
32
public:
37
33
explicit render_item (std::shared_ptr<element> src_el);
@@ -233,7 +229,7 @@ namespace litehtml
233
229
234
230
int box_sizing_width () const
235
231
{
236
- return box_sizing_left () + border_right ();
232
+ return box_sizing_left () + box_sizing_left ();
237
233
}
238
234
239
235
int box_sizing_top () const
@@ -248,7 +244,7 @@ namespace litehtml
248
244
249
245
int box_sizing_height () const
250
246
{
251
- return box_sizing_top () + border_bottom ();
247
+ return box_sizing_top () + box_sizing_bottom ();
252
248
}
253
249
254
250
void parent (const std::shared_ptr<render_item>& par)
@@ -272,10 +268,10 @@ namespace litehtml
272
268
ri->parent (shared_from_this ());
273
269
}
274
270
275
- int render (int x, int y, int max_width, const containing_block_context& containing_block_size)
276
- {
277
- return _render (x, y, max_width, containing_block_size, false ) ;
278
- }
271
+ virtual int render (int x, int y, const containing_block_context& containing_block_size, bool second_pass = false )
272
+ {
273
+ return 0 ;
274
+ }
279
275
280
276
bool have_parent () const
281
277
{
@@ -311,7 +307,7 @@ namespace litehtml
311
307
bool get_predefined_height (int & p_height, int containing_block_height) const ;
312
308
void apply_relative_shift (const containing_block_context &containing_block_size);
313
309
void calc_outlines ( int parent_width );
314
- void calc_auto_margins (int parent_width);
310
+ int calc_auto_margins (int parent_width); // returns left margin
315
311
316
312
virtual std::shared_ptr<render_item> init ();
317
313
virtual void apply_vertical_align () {}
@@ -369,21 +365,20 @@ namespace litehtml
369
365
int_int_cache m_cache_line_left;
370
366
int_int_cache m_cache_line_right;
371
367
372
- int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) override ;
373
-
374
368
/* *
375
369
* Render block content.
376
370
*
377
371
* @param x - horizontal position of the content
378
372
* @param y - vertical position of the content
379
- * @param max_width - maximal width of the content
380
373
* @param second_pass - true is this is the second pass.
381
374
* @param ret_width - input minimal width.
375
+ * @param self_size - defines calculated size of block
382
376
* @return return value is the minimal width of the content in block. Must be greater or equal to ret_width parameter
383
377
*/
384
- virtual int _render_content (int x, int y, int max_width, bool second_pass, int ret_width, const containing_block_context &containing_block_size) {return ret_width;}
378
+ virtual int _render_content (int x, int y, bool second_pass, int ret_width, const containing_block_context &self_size) {return ret_width;}
379
+ int render (int x, int y, const containing_block_context &containing_block_size, bool second_pass) override ;
385
380
386
- int place_float (const std::shared_ptr<render_item> &el, int top, int max_width, const containing_block_context &containing_block_size);
381
+ int place_float (const std::shared_ptr<render_item> &el, int top, const containing_block_context &containing_block_size);
387
382
int get_floats_height (element_float el_float = float_none) const override ;
388
383
int get_left_floats_height () const override ;
389
384
int get_right_floats_height () const override ;
@@ -393,7 +388,7 @@ namespace litehtml
393
388
void add_float (const std::shared_ptr<render_item> &el, int x, int y) override ;
394
389
int get_cleared_top (const std::shared_ptr<render_item> &el, int line_top) const ;
395
390
int find_next_line_top ( int top, int width, int def_right ) override ;
396
- virtual void fix_line_width (int max_width, element_float flt,
391
+ virtual void fix_line_width (element_float flt,
397
392
const containing_block_context &containing_block_size)
398
393
{}
399
394
void update_floats (int dy, const std::shared_ptr<render_item> &_parent) override ;
@@ -416,8 +411,8 @@ namespace litehtml
416
411
class render_item_block_context : public render_item_block
417
412
{
418
413
protected:
419
- int _render_content (int x, int y, int max_width, bool second_pass, int ret_width,
420
- const containing_block_context &containing_block_size ) override ;
414
+ int _render_content (int x, int y, bool second_pass, int ret_width,
415
+ const containing_block_context &self_size ) override ;
421
416
422
417
public:
423
418
explicit render_item_block_context (std::shared_ptr<element> src_el) : render_item_block(std::move(src_el))
@@ -455,14 +450,14 @@ namespace litehtml
455
450
std::vector<std::unique_ptr<litehtml::line_box> > m_line_boxes;
456
451
int m_max_line_width;
457
452
458
- int _render_content (int x, int y, int max_width, bool second_pass, int ret_width,
459
- const containing_block_context &containing_block_size ) override ;
460
- void fix_line_width (int max_width, element_float flt,
461
- const containing_block_context &containing_block_size ) override ;
453
+ int _render_content (int x, int y, bool second_pass, int ret_width,
454
+ const containing_block_context &self_size ) override ;
455
+ void fix_line_width (element_float flt,
456
+ const containing_block_context &self_size ) override ;
462
457
463
- std::list<std::unique_ptr<line_box_item> > finish_last_box (bool end_of_render, int max_width, const containing_block_context &containing_block_size );
464
- void place_inline (std::unique_ptr<line_box_item> item, int max_width, const containing_block_context &containing_block_size );
465
- int new_box (const std::unique_ptr<line_box_item>& el, int max_width, line_context& line_ctx, const containing_block_context &containing_block_size );
458
+ std::list<std::unique_ptr<line_box_item> > finish_last_box (bool end_of_render, const containing_block_context &self_size );
459
+ void place_inline (std::unique_ptr<line_box_item> item, const containing_block_context &self_size );
460
+ int new_box (const std::unique_ptr<line_box_item>& el, line_context& line_ctx, const containing_block_context &self_size );
466
461
void apply_vertical_align () override ;
467
462
public:
468
463
explicit render_item_inline_context (std::shared_ptr<element> src_el) : render_item_block(std::move(src_el)), m_max_line_width(0 )
@@ -484,15 +479,14 @@ namespace litehtml
484
479
int m_border_spacing_x;
485
480
int m_border_spacing_y;
486
481
487
- int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) override ;
488
-
489
482
public:
490
483
explicit render_item_table (std::shared_ptr<element> src_el);
491
484
492
485
std::shared_ptr<render_item> clone () override
493
486
{
494
487
return std::make_shared<render_item_table>(src_el ());
495
488
}
489
+ int render (int x, int y, const containing_block_context &containing_block_size, bool second_pass) override ;
496
490
void draw_children (uint_ptr hdc, int x, int y, const position* clip, draw_flag flag, int zindex) override ;
497
491
int get_draw_vertical_offset () override ;
498
492
std::shared_ptr<render_item> init () override ;
@@ -504,8 +498,6 @@ namespace litehtml
504
498
explicit render_item_table_part (std::shared_ptr<element> src_el) : render_item(std::move(src_el))
505
499
{}
506
500
507
- int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) override
508
- {return 0 ;}
509
501
std::shared_ptr<render_item> clone () override
510
502
{
511
503
return std::make_shared<render_item_table_part>(src_el ());
@@ -518,8 +510,6 @@ namespace litehtml
518
510
explicit render_item_table_row (std::shared_ptr<element> src_el) : render_item(std::move(src_el))
519
511
{}
520
512
521
- int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) override
522
- {return 0 ;}
523
513
std::shared_ptr<render_item> clone () override
524
514
{
525
515
return std::make_shared<render_item_table_row>(src_el ());
@@ -532,7 +522,6 @@ namespace litehtml
532
522
protected:
533
523
position::vector m_boxes;
534
524
535
- int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) override ;
536
525
public:
537
526
explicit render_item_inline (std::shared_ptr<element> src_el) : render_item(std::move(src_el))
538
527
{}
@@ -552,13 +541,13 @@ namespace litehtml
552
541
class render_item_image : public render_item
553
542
{
554
543
protected:
555
- int _render (int x, int y, int max_width, const containing_block_context &containing_block_size, bool second_pass) override ;
556
544
int calc_max_height (int image_height, int containing_block_height);
557
545
558
546
public:
559
547
explicit render_item_image (std::shared_ptr<element> src_el) : render_item(std::move(src_el))
560
548
{}
561
549
550
+ int render (int x, int y, const containing_block_context &containing_block_size, bool second_pass) override ;
562
551
std::shared_ptr<render_item> clone () override
563
552
{
564
553
return std::make_shared<render_item_image>(src_el ());
@@ -588,8 +577,8 @@ namespace litehtml
588
577
protected:
589
578
std::list<std::unique_ptr<flex_item>> m_flex_items;
590
579
591
- int _render_content (int x, int y, int max_width, bool second_pass, int ret_width,
592
- const containing_block_context &containing_block_size ) override ;
580
+ int _render_content (int x, int y, bool second_pass, int ret_width,
581
+ const containing_block_context &self_size ) override ;
593
582
594
583
public:
595
584
explicit render_item_flex (std::shared_ptr<element> src_el) : render_item_block(std::move(src_el))
0 commit comments