コード例 #1
0
 function move($offset_x, $offset_y, $ignore_self = false)
 {
     list($x, $y) = $this->_frame->get_position();
     if (!$ignore_self) {
         $this->_frame->set_position($x + $offset_x, $y + $offset_y);
     }
     foreach ($this->_frame->get_children() as $child) {
         $child->move($offset_x, $offset_y);
     }
 }
コード例 #2
0
ファイル: Fixed.php プロジェクト: BrunoDeBarros/dompdf
 function position(AbstractFrameDecorator $frame)
 {
     $style = $frame->get_original_style();
     $root = $frame->get_root();
     $initialcb = $root->get_containing_block();
     $initialcb_style = $root->get_style();
     $p = $frame->find_block_parent();
     if ($p) {
         $p->add_line();
     }
     // Compute the margins of the @page style
     $margin_top = $initialcb_style->length_in_pt($initialcb_style->margin_top, $initialcb["h"]);
     $margin_right = $initialcb_style->length_in_pt($initialcb_style->margin_right, $initialcb["w"]);
     $margin_bottom = $initialcb_style->length_in_pt($initialcb_style->margin_bottom, $initialcb["h"]);
     $margin_left = $initialcb_style->length_in_pt($initialcb_style->margin_left, $initialcb["w"]);
     // The needed computed style of the element
     $height = $style->length_in_pt($style->height, $initialcb["h"]);
     $width = $style->length_in_pt($style->width, $initialcb["w"]);
     $top = $style->length_in_pt($style->top, $initialcb["h"]);
     $right = $style->length_in_pt($style->right, $initialcb["w"]);
     $bottom = $style->length_in_pt($style->bottom, $initialcb["h"]);
     $left = $style->length_in_pt($style->left, $initialcb["w"]);
     $y = $margin_top;
     if (isset($top)) {
         $y = $top + $margin_top;
         if ($top === "auto") {
             $y = $margin_top;
             if (isset($bottom) && $bottom !== "auto") {
                 $y = $initialcb["h"] - $bottom - $margin_bottom;
                 $margin_height = $frame->get_margin_height();
                 if ($margin_height !== "auto") {
                     $y -= $margin_height;
                 } else {
                     $y -= $height;
                 }
             }
         }
     }
     $x = $margin_left;
     if (isset($left)) {
         $x = $left + $margin_left;
         if ($left === "auto") {
             $x = $margin_left;
             if (isset($right) && $right !== "auto") {
                 $x = $initialcb["w"] - $right - $margin_right;
                 $margin_width = $frame->get_margin_width();
                 if ($margin_width !== "auto") {
                     $x -= $margin_width;
                 } else {
                     $x -= $width;
                 }
             }
         }
     }
     $frame->set_position($x, $y);
     $children = $frame->get_children();
     foreach ($children as $child) {
         $child->set_position($x, $y);
     }
 }
コード例 #3
0
 function move(AbstractFrameDecorator $frame, $offset_x, $offset_y, $ignore_self = false)
 {
     list($x, $y) = $frame->get_position();
     if (!$ignore_self) {
         $frame->set_position($x + $offset_x, $y + $offset_y);
     }
     foreach ($frame->get_children() as $child) {
         $child->move($offset_x, $offset_y);
     }
 }