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