本文整理汇总了PHP中GenericFormattedBox::get_padding_left方法的典型用法代码示例。如果您正苦于以下问题:PHP GenericFormattedBox::get_padding_left方法的具体用法?PHP GenericFormattedBox::get_padding_left怎么用?PHP GenericFormattedBox::get_padding_left使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GenericFormattedBox
的用法示例。
在下文中一共展示了GenericFormattedBox::get_padding_left方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: show
/**
* Renders the backgroung image using the specified output driver.
*
* @param OutputDriver $driver an output driver object
* @param GenericFormattedBox $box an box owning this background image
* @param int $repeat the 'background-repeat' value
* @param BackgroundPosition $position the 'background-position' value
*
* @uses BackgroundPosition
* @uses OutputDriver
*/
function show(&$driver, $box, $repeat, $position)
{
/**
* If no image should be rendered, just return
* @see BackgroundImage::$_url
*/
if ($this->_url == null) {
return;
}
if (is_null($this->_image)) {
return;
}
/**
* Setup clipping region for padding area. Note that background image is drawn in the padding
* area which in generic case is greater than content area.
*
* @see OutputDriver::clip()
*
* @link http://www.w3.org/TR/CSS21/box.html#box-padding-area CSS 2.1 definition of padding area
*/
$driver->save();
$driver->moveto($box->get_left_padding(), $box->get_top_padding());
$driver->lineto($box->get_right_padding(), $box->get_top_padding());
$driver->lineto($box->get_right_padding(), $box->get_bottom_padding());
$driver->lineto($box->get_left_padding(), $box->get_bottom_padding());
$driver->closepath();
$driver->clip();
/**
* get real image size in device points
*
* @see pt2pt()
* @see px2pt()
*/
$image_height = px2pt(imagesy($this->_image));
$image_width = px2pt(imagesx($this->_image));
/**
* Get dimensions of the rectangle to be filled with the background image
*/
$padding_width = $box->get_width() + $box->get_padding_left() + $box->get_padding_right();
$padding_height = $box->get_height() + $box->get_padding_top() + $box->get_padding_bottom();
/**
* Calculate the vertical offset from the top padding edge to the background image top edge using current
* 'background-position' value.
*
* @link file:///C:/docs/css/colors.html#propdef-background-position CSS 2 'background-position' description
*/
if ($position->x_percentage) {
$x_offset = ($padding_width - $image_width) * $position->x / 100;
} else {
$x_offset = $position->x;
}
/**
* Calculate the horizontal offset from the left padding edge to the background image left edge using current
* 'background-position' value
*
* @link file:///C:/docs/css/colors.html#propdef-background-position CSS 2 'background-position' description
*/
if ($position->y_percentage) {
$y_offset = ($padding_height - $image_height) * $position->y / 100;
} else {
$y_offset = $position->y;
}
/**
* Output the image (probably tiling it; depends on current value of 'background-repeat') using
* current output driver's tiled image output functions. Note that px2pt(1) is an image scaling factor; as all
* page element are scaled to fit the media, background images should be scaled too!
*
* @see OutputDriver::image()
* @see OutputDriver::image_rx()
* @see OutputDriver::image_ry()
* @see OutputDriver::image_rxry()
*
* @link file:///C:/docs/css/colors.html#propdef-background-repeat CSS 2.1 'background-repeat' property description
*/
switch ($repeat) {
case BR_NO_REPEAT:
/**
* 'background-repeat: no-repeat' case; no tiling at all
*/
$driver->image($this->_image, $box->get_left_padding() + $x_offset, $box->get_top_padding() - $image_height - $y_offset, px2pt(1));
break;
case BR_REPEAT_X:
/**
* 'background-repeat: repeat-x' case; horizontal tiling
*/
$driver->image_rx($this->_image, $box->get_left_padding() + $x_offset, $box->get_top_padding() - $image_height - $y_offset, $image_width, $box->get_right_padding(), $x_offset, $y_offset, px2pt(1));
break;
case BR_REPEAT_Y:
/**
//.........这里部分代码省略.........