Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
require_once(HTML2PS_DIR.'value.margin.class.php');
4
 
5
class CSSMargin extends CSSPropertyHandler {
6
  var $default_value;
7
 
8
  function CSSMargin() {
9
    $this->default_value = $this->parse("0");
10
    $this->CSSPropertyHandler(false, false);
11
  }
12
 
13
  function default_value() {
14
    return $this->default_value->copy();
15
  }
16
 
17
  function parse_in($value) {
18
    $values = preg_split('/\s+/', trim($value));
19
 
20
    switch (count($values)) {
21
    case 1:
22
      $v1 = $values[0];
23
      return array($v1, $v1, $v1, $v1);
24
    case 2:
25
      $v1 = $values[0];
26
      $v2 = $values[1];
27
      return array($v1, $v2, $v1, $v2);
28
    case 3:
29
      $v1 = $values[0];
30
      $v2 = $values[1];
31
      $v3 = $values[2];
32
      return array($v1, $v2, $v3, $v2);
33
    case 4:
34
      $v1 = $values[0];
35
      $v2 = $values[1];
36
      $v3 = $values[2];
37
      $v4 = $values[3];
38
      return array($v1, $v2, $v3, $v4);
39
    default:
40
      // We newer should get there, because 'margin' value can contain from 1 to 4 widths
41
      return array(0,0,0,0);
42
    };
43
  }
44
 
45
  function parse($value) {
46
    if ($value === 'inherit') {
47
      return CSS_PROPERTY_INHERIT;
48
    };
49
 
50
    $value = MarginValue::init($this->parse_in($value));
51
    return $value;
52
  }
53
 
54
  function get_property_code() {
55
    return CSS_MARGIN;
56
  }
57
 
58
  function get_property_name() {
59
    return 'margin';
60
  }
61
}
62
 
63
class CSSMarginTop extends CSSSubFieldProperty {
64
  function parse($value) {
65
    if ($value === 'inherit') { return CSS_PROPERTY_INHERIT; };
66
    return MarginSideValue::init($value);
67
  }
68
 
69
  function get_property_code() {
70
    return CSS_MARGIN_TOP;
71
  }
72
 
73
  function get_property_name() {
74
    return 'margin-top';
75
  }
76
}
77
 
78
class CSSMarginRight extends CSSSubFieldProperty {
79
  function parse($value) {
80
    if ($value === 'inherit') { return CSS_PROPERTY_INHERIT; };
81
    return MarginSideValue::init($value);
82
  }
83
 
84
  function get_property_code() {
85
    return CSS_MARGIN_RIGHT;
86
  }
87
 
88
  function get_property_name() {
89
    return 'margin-right';
90
  }
91
}
92
 
93
class CSSMarginLeft extends CSSSubFieldProperty {
94
  function parse($value) {
95
    if ($value === 'inherit') { return CSS_PROPERTY_INHERIT; };
96
    return MarginSideValue::init($value);
97
  }
98
 
99
  function get_property_code() {
100
    return CSS_MARGIN_LEFT;
101
  }
102
 
103
  function get_property_name() {
104
    return 'margin-left';
105
  }
106
}
107
 
108
class CSSMarginBottom extends CSSSubFieldProperty {
109
  function parse($value) {
110
    if ($value === 'inherit') { return CSS_PROPERTY_INHERIT; };
111
    return MarginSideValue::init($value);
112
  }
113
 
114
  function get_property_code() {
115
    return CSS_MARGIN_BOTTOM;
116
  }
117
 
118
  function get_property_name() {
119
    return 'margin-bottom';
120
  }
121
}
122
 
123
$mh = new CSSMargin;
124
CSS::register_css_property($mh);
125
CSS::register_css_property(new CSSMarginLeft($mh, 'left'));
126
CSS::register_css_property(new CSSMarginRight($mh, 'right'));
127
CSS::register_css_property(new CSSMarginTop($mh, 'top'));
128
CSS::register_css_property(new CSSMarginBottom($mh, 'bottom'));
129
 
130
?>