/var/www/hkosl.com/littleark/webadmin/libraies/dompdf/dompdf/src/FrameDecorator/ListBullet.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/**
 * @package dompdf
 * @link    http://dompdf.github.com/
 * @author  Benj Carson <benjcarson@digitaljunkies.ca>
 * @author  Helmut Tischer <htischer@weihenstephan.org>
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 */
namespace Dompdf\FrameDecorator;

use 
Dompdf\Dompdf;
use 
Dompdf\Frame;

/**
 * Decorates frames for list bullet rendering
 *
 * @package dompdf
 */
class ListBullet extends AbstractFrameDecorator
{

    const 
BULLET_PADDING 1// Distance from bullet to text in pt
    // As fraction of font size (including descent). See also DECO_THICKNESS.
    
const BULLET_THICKNESS 0.04// Thickness of bullet outline. Screen: 0.08, print: better less, e.g. 0.04
    
const BULLET_DESCENT 0.3//descent of font below baseline. Todo: Guessed for now.
    
const BULLET_SIZE 0.35// bullet diameter. For now 0.5 of font_size without descent.

    
static $BULLET_TYPES = array("disc""circle""square");

    
//........................................................................

    
function __construct(Frame $frameDompdf $dompdf)
    {
        
parent::__construct($frame$dompdf);
    }

    function 
get_margin_width()
    {
        
$style $this->_frame->get_style();

        
// Small hack to prevent extra indenting of list text on list_style_position === "inside"
        // and on suppressed bullet
        
if ($style->list_style_position === "outside" ||
            
$style->list_style_type === "none"
        
) {
            return 
0;
        }

        return 
$style->get_font_size() * self::BULLET_SIZE self::BULLET_PADDING;
    }

    
//hits only on "inset" lists items, to increase height of box
    
function get_margin_height()
    {
        
$style $this->_frame->get_style();

        if (
$style->list_style_type === "none") {
            return 
0;
        }

        return 
$style->get_font_size() * self::BULLET_SIZE self::BULLET_PADDING;
    }

    function 
get_width()
    {
        return 
$this->get_margin_height();
    }

    function 
get_height()
    {
        return 
$this->get_margin_height();
    }

    
//........................................................................
}