InlineBox(); $this->_value = $value; $this->_field_name = $name; } function &create(&$root, &$pipeline) { // Text to be displayed if ($root->has_attribute('value')) { $text = trim($root->get_attribute("value")); } else { $text = ""; }; /** * Input field name */ $name = $root->get_attribute('name'); $box =& new TextInputBox($root->get_attribute("value"), $name); $box->readCSS($pipeline->getCurrentCSSState()); /** * Contents of the text box are somewhat similar to the inline box: * a sequence of the text and whitespace boxes; we generate this sequence using * the InlineBox, then copy contents of the created inline box to our button. * * @todo probably, create_from_text() function should be extracted to the common parent * of inline boxes. */ $ibox = InlineBox::create_from_text($text, WHITESPACE_PRE, $pipeline); for ($i=0, $size = count($ibox->content); $i<$size; $i++) { $box->add_child($ibox->content[$i]); }; return $box; } function get_height() { $normal_height = parent::get_height(); $hc = $this->get_height_constraint(); if ($hc->is_null()) { return $normal_height; } else { return $normal_height - $this->_get_vert_extra(); }; } function show(&$driver) { // Now set the baseline of a button box to align it vertically when flowing isude the // text line $this->default_baseline = $this->content[0]->baseline + $this->get_extra_top(); $this->baseline = $this->content[0]->baseline + $this->get_extra_top(); /** * If we're rendering the interactive form, the field content should not be rendered */ global $g_config; if ($g_config['renderforms']) { /** * Render background/borders only */ $status = GenericFormattedBox::show($driver); /** * @todo encoding name? * @todo font name? * @todo check if font is embedded for PDFLIB */ $driver->field_text($this->get_left_padding(), $this->get_top_padding(), $this->get_width() + $this->get_padding_left() + $this->get_padding_right(), $this->get_height(), $this->_value, $this->_field_name); } else { /** * Render everything, including content */ $status = GenericContainerBox::show($driver); } return $status; } } ?>