1<?php 2// $Header: /cvsroot/html2ps/box.input.text.php,v 1.28 2007/01/03 19:39:29 Konstantin Exp $ 3 4/// define('SIZE_SPACE_KOEFF',1.65); (defined in tag.input.inc.php) 5 6class TextInputBox extends InlineControlBox { 7 /** 8 * @var String contains the default value of this text field 9 * @access private 10 */ 11 var $_value; 12 13 function TextInputBox($value, $name) { 14 $this->InlineControlBox(); 15 16 $this->_value = $value; 17 $this->_field_name = $name; 18 } 19 20 function &create(&$root, &$pipeline) { 21 // Text to be displayed 22 if ($root->has_attribute('value')) { 23 $text = trim($root->get_attribute('value')); 24 } else { 25 $text = ''; 26 }; 27 28 /** 29 * Input field name 30 */ 31 $name = $root->get_attribute('name'); 32 33 $box =& new TextInputBox($root->get_attribute("value"), $name); 34 $box->readCSS($pipeline->get_current_css_state()); 35 $box->setup_content($text, $pipeline); 36 37 return $box; 38 } 39 40 function get_height() { 41 $normal_height = parent::get_height(); 42 43 $hc = $this->get_height_constraint(); 44 if ($hc->is_null()) { 45 return $normal_height; 46 } else { 47 return $normal_height - $this->_get_vert_extra(); 48 }; 49 } 50 51 function show(&$driver) { 52 // Now set the baseline of a button box to align it vertically when flowing isude the 53 // text line 54 55 $this->default_baseline = $this->content[0]->baseline + $this->get_extra_top(); 56 $this->baseline = $this->content[0]->baseline + $this->get_extra_top(); 57 58 /** 59 * If we're rendering the interactive form, the field content should not be rendered 60 */ 61 global $g_config; 62 if ($g_config['renderforms']) { 63 /** 64 * Render background/borders only 65 */ 66 $status = GenericFormattedBox::show($driver); 67 68 /** 69 * @todo encoding name? 70 * @todo font name? 71 * @todo check if font is embedded for PDFLIB 72 */ 73 $driver->field_text($this->get_left_padding(), 74 $this->get_top_padding(), 75 $this->get_width() + $this->get_padding_left() + $this->get_padding_right(), 76 $this->get_height(), 77 $this->_value, 78 $this->_field_name); 79 } else { 80 /** 81 * Render everything, including content 82 */ 83 $status = GenericContainerBox::show($driver); 84 } 85 86 return $status; 87 } 88} 89?>