left =& new EdgePDF(); $this->right =& new EdgePDF(); $this->top =& new EdgePDF(); $this->bottom =& new EdgePDF(); } function create($data) { $border =& new BorderPDF(); $border->left =& EdgePDF::create($data['left']); $border->right =& EdgePDF::create($data['right']); $border->top =& EdgePDF::create($data['top']); $border->bottom =& EdgePDF::create($data['bottom']); return $border; } /** * Optimization: note usage of '!=='. It is faster than '!=' in our * case (PHP 5.1.1, Win) */ function ©() { $border =& new BorderPDF(); if ($this->left !== CSS_PROPERTY_INHERIT) { $border->left = $this->left->copy(); } else { $border->left = CSS_PROPERTY_INHERIT; }; if ($this->right !== CSS_PROPERTY_INHERIT) { $border->right = $this->right->copy(); } else { $border->right = CSS_PROPERTY_INHERIT; }; if ($this->top !== CSS_PROPERTY_INHERIT) { $border->top = $this->top->copy(); } else { $border->top = CSS_PROPERTY_INHERIT; }; if ($this->bottom !== CSS_PROPERTY_INHERIT) { $border->bottom = $this->bottom->copy(); } else { $border->bottom = CSS_PROPERTY_INHERIT; }; return $border; } function doInherit(&$state) { if ($this->top === CSS_PROPERTY_INHERIT) { $value = $state->getInheritedProperty(CSS_BORDER_TOP); $this->top = $value->copy(); }; if ($this->right === CSS_PROPERTY_INHERIT) { $value = $state->getInheritedProperty(CSS_BORDER_RIGHT); $this->right = $value->copy(); }; if ($this->bottom === CSS_PROPERTY_INHERIT) { $value = $state->getInheritedProperty(CSS_BORDER_BOTTOM); $this->bottom = $value->copy(); }; if ($this->left === CSS_PROPERTY_INHERIT) { $value = $state->getInheritedProperty(CSS_BORDER_LEFT); $this->left = $value->copy(); }; $this->top->doInherit($state, CSS_BORDER_TOP_WIDTH, CSS_BORDER_TOP_COLOR, CSS_BORDER_TOP_STYLE); $this->right->doInherit($state, CSS_BORDER_RIGHT_WIDTH, CSS_BORDER_RIGHT_COLOR, CSS_BORDER_RIGHT_STYLE); $this->bottom->doInherit($state, CSS_BORDER_BOTTOM_WIDTH, CSS_BORDER_BOTTOM_COLOR, CSS_BORDER_BOTTOM_STYLE); $this->left->doInherit($state, CSS_BORDER_LEFT_WIDTH, CSS_BORDER_LEFT_COLOR, CSS_BORDER_LEFT_STYLE); } function &get_bottom() { return $this->bottom; } function &get_left() { return $this->left; } function &get_right() { return $this->right; } function &get_top() { return $this->top; } function is_default() { return $this->left->style == BS_NONE && $this->right->style == BS_NONE && $this->top->style == BS_NONE && $this->bottom->style == BS_NONE; } function show(&$viewport, $box) { // Show left border if ($this->left->is_visible()) { $this->left->show($viewport, $box, $box->get_left_border() , $box->get_bottom_border(), $box->get_left_border() , $box->get_top_border(), $box->get_left_border()+$this->left->get_width(), $box->get_top_border()-$this->top->get_width(), $box->get_left_border()+$this->left->get_width(), $box->get_bottom_border()+$this->bottom->get_width(), true); } // Show right border if ($this->right->is_visible()) { $this->right->show($viewport, $box, $box->get_right_border() , $box->get_bottom_border(), $box->get_right_border() , $box->get_top_border(), $box->get_right_border()-$this->right->get_width(), $box->get_top_border()-$this->top->get_width(), $box->get_right_border()-$this->right->get_width(), $box->get_bottom_border()+$this->bottom->get_width(), false); } // Show top border if ($this->top->is_visible()) { $this->top->show($viewport, $box, $box->get_left_border() , $box->get_top_border(), $box->get_right_border() , $box->get_top_border(), $box->get_right_border()-$this->right->get_width() , $box->get_top_border() - $this->top->get_width(), $box->get_left_border() +$this->left->get_width() , $box->get_top_border() - $this->top->get_width(), true); } // Show bottom border if ($this->bottom->is_visible()) { $this->bottom->show($viewport, $box, $box->get_left_border() , $box->get_bottom_border(), $box->get_right_border() , $box->get_bottom_border(), $box->get_right_border()- $this->right->get_width() , $box->get_bottom_border() + $this->bottom->get_width(), $box->get_left_border() + $this->left->get_width() , $box->get_bottom_border() + $this->bottom->get_width(), false); } } function units2pt($base_font_size) { $this->left->units2pt($base_font_size); $this->right->units2pt($base_font_size); $this->top->units2pt($base_font_size); $this->bottom->units2pt($base_font_size); } } ?>