1<?php 2/** 3 * Handles the '##PAGES##' text field. 4 * 5 */ 6class BoxTextFieldPages extends TextBoxString { 7 function BoxTextFieldPages() { 8 $this->TextBoxString("", "iso-8859-1"); 9 } 10 11 function from_box(&$box) { 12 $field = new BoxTextFieldPages; 13 14 $field->copy_style($box); 15 16 $field->words = array("000"); 17 $field->encodings = array("iso-8859-1"); 18 $field->_left = $box->_left; 19 $field->_top = $box->_top; 20 $field->baseline = $box->baseline; 21 22 return $field; 23 } 24 25 function show(&$viewport) { 26 $font = $this->get_css_property(CSS_FONT); 27 28 $this->words[0] = sprintf("%d", $viewport->expected_pages); 29 30 $field_width = $this->width; 31 $field_left = $this->_left; 32 33 if ($font->size->getPoints() > 0) { 34 $value_width = $viewport->stringwidth($this->words[0], 35 $this->_get_font_name($viewport, 0), 36 $this->encodings[0], 37 $font->size->getPoints()); 38 if (is_null($value_width)) { 39 return null; 40 }; 41 } else { 42 $value_width = 0; 43 }; 44 $this->width = $value_width; 45 $this->_left += ($field_width - $value_width) / 2; 46 47 if (is_null(TextBoxString::show($viewport))) { 48 return null; 49 }; 50 51 $this->width = $field_width; 52 $this->_left = $field_left; 53 54 return true; 55 } 56 57 function show_fixed(&$viewport) { 58 $font = $this->get_css_property(CSS_FONT); 59 60 $this->words[0] = sprintf("%d", $viewport->expected_pages); 61 62 $field_width = $this->width; 63 $field_left = $this->_left; 64 65 if ($font->size->getPoints() > 0) { 66 $value_width = $viewport->stringwidth($this->words[0], 67 $this->_get_font_name($viewport, 0), 68 $this->encodings[0], 69 $font->size->getPoints()); 70 if (is_null($value_width)) { 71 return null; 72 }; 73 } else { 74 $value_width = 0; 75 }; 76 $this->width = $value_width; 77 $this->_left += ($field_width - $value_width) / 2; 78 79 if (is_null(TextBoxString::show_fixed($viewport))) { 80 return null; 81 }; 82 83 $this->width = $field_width; 84 $this->_left = $field_left; 85 86 return true; 87 } 88} 89?>