1<?php 2// $Header: /cvsroot/html2ps/box.legend.php,v 1.14 2006/07/09 09:07:44 Konstantin Exp $ 3 4class LegendBox extends GenericContainerBox { 5 function &create(&$root, &$pipeline) { 6 $box = new LegendBox($root); 7 $box->readCSS($pipeline->get_current_css_state()); 8 $box->create_content($root, $pipeline); 9 10 return $box; 11 } 12 13 function LegendBox(&$root) { 14 // Call parent constructor 15 $this->GenericContainerBox(); 16 17 $this->_current_x = 0; 18 $this->_current_y = 0; 19 } 20 21 // Flow-control 22 function reflow(&$parent, &$context) { 23 GenericFormattedBox::reflow($parent, $context); 24 25 // Determine upper-left _content_ corner position of current box 26 $this->put_left($parent->get_left_padding()); 27 $this->put_top($parent->get_top_padding()); 28 29 // Legends will not wrap 30 $this->put_full_width($this->get_max_width($context)); 31 32 // Reflow contents 33 $this->reflow_content($context); 34 35 // Adjust legend position 36 $height = $this->get_full_height(); 37 $this->offset(units2pt(LEGEND_HORIZONTAL_OFFSET) + $this->get_extra_left(), 38 $height/2); 39 // Adjust parent position 40 $parent->offset(0, -$height/2); 41 // Adjust parent content position 42 for ($i=0; $i<count($parent->content); $i++) { 43 if ($parent->content[$i]->uid != $this->uid) { 44 $parent->content[$i]->offset(0, -$height/2); 45 } 46 } 47 $parent->_current_y -= $height/2; 48 49 $parent->extend_height($this->get_bottom_margin()); 50 } 51 52 function show(&$driver) { 53 // draw generic box 54 return GenericContainerBox::show($driver); 55 } 56} 57?>