1<?php 2// $Header: /cvsroot/html2ps/css.border.color.inc.php,v 1.3 2006/11/11 13:43:52 Konstantin Exp $ 3 4require_once(HTML2PS_DIR.'value.border.color.class.php'); 5 6class CSSBorderColor extends CSSSubProperty { 7 var $_defaultValue; 8 9 function CSSBorderColor(&$owner) { 10 $this->CSSSubProperty($owner); 11 12 $this->_defaultValue = new BorderColor(new Color(array(0,0,0), true), 13 new Color(array(0,0,0), true), 14 new Color(array(0,0,0), true), 15 new Color(array(0,0,0), true)); 16 } 17 18 function set_value(&$owner_value, &$value) { 19 if ($value != CSS_PROPERTY_INHERIT) { 20 $owner_value->top->setColor($value->top); 21 $owner_value->right->setColor($value->right); 22 $owner_value->bottom->setColor($value->bottom); 23 $owner_value->left->setColor($value->left); 24 } else { 25 $owner_value->top->setColor(CSS_PROPERTY_INHERIT); 26 $owner_value->right->setColor(CSS_PROPERTY_INHERIT); 27 $owner_value->bottom->setColor(CSS_PROPERTY_INHERIT); 28 $owner_value->left->setColor(CSS_PROPERTY_INHERIT); 29 }; 30 } 31 32 function get_value(&$owner_value) { 33 return new BorderColor($owner_value->top->color, 34 $owner_value->right->color, 35 $owner_value->bottom->color, 36 $owner_value->left->color); 37 } 38 39 function get_property_code() { 40 return CSS_BORDER_COLOR; 41 } 42 43 function get_property_name() { 44 return 'border-color'; 45 } 46 47 function default_value() { 48 return $this->_defaultValue; 49 } 50 51 function parse_in($value) { 52 $values = preg_split("/(?<![,(\s])\s+/ ",$value); 53 54 switch (count($values)) { 55 case 1: 56 $v1 = parse_color_declaration($values[0]); 57 return array($v1, $v1, $v1, $v1); 58 case 2: 59 $v1 = parse_color_declaration($values[0]); 60 $v2 = parse_color_declaration($values[1]); 61 return array($v1, $v2, $v1, $v2); 62 case 3: 63 $v1 = parse_color_declaration($values[0]); 64 $v2 = parse_color_declaration($values[1]); 65 $v3 = parse_color_declaration($values[2]); 66 return array($v1, $v2, $v3, $v2); 67 case 4: 68 $v1 = parse_color_declaration($values[0]); 69 $v2 = parse_color_declaration($values[1]); 70 $v3 = parse_color_declaration($values[2]); 71 $v4 = parse_color_declaration($values[3]); 72 return array($v1, $v2, $v3, $v4); 73 default: 74 return $this->default_value(); 75 }; 76 } 77 78 function parse($value) { 79 if ($value == 'inherit') { 80 return CSS_PROPERTY_INHERIT; 81 } 82 83 $colors = $this->parse_in($value); 84 85 return new BorderColor($colors[0], 86 $colors[1], 87 $colors[2], 88 $colors[3]); 89 } 90} 91 92?>