1<?php 2// $Header: /cvsroot/html2ps/css.border.width.inc.php,v 1.4 2007/02/04 17:08:19 Konstantin Exp $ 3 4require_once(HTML2PS_DIR.'value.border.width.class.php'); 5 6class 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?>