Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
// $Header: /cvsroot/html2ps/css.border.width.inc.php,v 1.4 2007/02/04 17:08:19 Konstantin Exp $
3
 
4
require_once(HTML2PS_DIR.'value.border.width.class.php');
5
 
6
class CSSBorderWidth extends CSSSubProperty {
7
  var $_defaultValue;
8
 
9
  function CSSBorderWidth(&$owner) {
10
    $this->CSSSubProperty($owner);
11
 
12
    $this->_defaultValue = new BorderWidth(Value::fromData(0, UNIT_PT),
13
                                           Value::fromData(0, UNIT_PT),
14
                                           Value::fromData(0, UNIT_PT),
15
                                           Value::fromData(0, UNIT_PT));
16
  }
17
 
18
  function set_value(&$owner_value, &$value) {
19
    if ($value != CSS_PROPERTY_INHERIT) {
20
      $owner_value->top->width    = $value->top;
21
      $owner_value->right->width  = $value->right;
22
      $owner_value->bottom->width = $value->bottom;
23
      $owner_value->left->width   = $value->left;
24
    } else {
25
      $owner_value->top->width    = CSS_PROPERTY_INHERIT;
26
      $owner_value->right->width  = CSS_PROPERTY_INHERIT;
27
      $owner_value->bottom->width = CSS_PROPERTY_INHERIT;
28
      $owner_value->left->width   = CSS_PROPERTY_INHERIT;
29
    };
30
  }
31
 
32
  function get_value(&$owner_value) {
33
    return new BorderWidth($owner_value->top->width,
34
                           $owner_value->right->width,
35
                           $owner_value->bottom->width,
36
                           $owner_value->left->width);
37
  }
38
 
39
  function get_property_code() {
40
    return CSS_BORDER_WIDTH;
41
  }
42
 
43
  function get_property_name() {
44
    return 'border-width';
45
  }
46
 
47
  function default_value() {
48
    return $this->_defaultValue;
49
  }
50
 
51
  function parse_value($value) {
52
    switch (strtolower($value)) {
53
    case 'thin':
54
      return Value::fromString('1px');
55
    case 'medium':
56
      return Value::fromString('3px');
57
    case 'thick':
58
      return Value::fromString('5px');
59
    default:
60
      return Value::fromString($value);
61
    };
62
  }
63
 
64
  function parse($value) {
65
    if ($value == 'inherit') {
66
      return CSS_PROPERTY_INHERIT;
67
    }
68
 
69
    $values = explode(' ', $value);
70
 
71
    switch (count($values)) {
72
    case 1:
73
      $v1 = $this->parse_value($values[0]);
74
      return new BorderWidth($v1, $v1, $v1, $v1);
75
    case 2:
76
      $v1 = $this->parse_value($values[0]);
77
      $v2 = $this->parse_value($values[1]);
78
      return new BorderWidth($v1, $v2, $v1, $v2);
79
    case 3:
80
      $v1 = $this->parse_value($values[0]);
81
      $v2 = $this->parse_value($values[1]);
82
      $v3 = $this->parse_value($values[2]);
83
      return new BorderWidth($v1, $v2, $v3, $v2);
84
    case 4:
85
      $v1 = $this->parse_value($values[0]);
86
      $v2 = $this->parse_value($values[1]);
87
      $v3 = $this->parse_value($values[2]);
88
      $v4 = $this->parse_value($values[3]);
89
      return new BorderWidth($v1, $v2, $v3, $v4);
90
    default:
91
      return $this->default_value();
92
    };
93
  }
94
}
95
 
96
?>