CSSSubProperty($owner);
$this->_defaultValue = new BorderStyle(BS_NONE,
BS_NONE,
BS_NONE,
BS_NONE);
}
function set_value(&$owner_value, &$value) {
if ($value != CSS_PROPERTY_INHERIT) {
$owner_value->top->style = $value->top;
$owner_value->right->style = $value->right;
$owner_value->bottom->style = $value->bottom;
$owner_value->left->style = $value->left;
} else {
$owner_value->top->style = CSS_PROPERTY_INHERIT;
$owner_value->right->style = CSS_PROPERTY_INHERIT;
$owner_value->bottom->style = CSS_PROPERTY_INHERIT;
$owner_value->left->style = CSS_PROPERTY_INHERIT;
};
}
function get_value(&$owner_value) {
return new BorderStyle($owner_value->top->style,
$owner_value->right->style,
$owner_value->bottom->style,
$owner_value->left->style);
}
function get_property_code() {
return CSS_BORDER_STYLE;
}
function get_property_name() {
return 'border-style';
}
function default_value() {
return $this->_defaultValue;
}
function parse_style($value) {
switch ($value) {
case "solid":
return BS_SOLID;
case "dashed":
return BS_DASHED;
case "dotted":
return BS_DOTTED;
case "double":
return BS_DOUBLE;
case "inset":
return BS_INSET;
case "outset":
return BS_OUTSET;
case "groove":
return BS_GROOVE;
case "ridge":
return BS_RIDGE;
default:
return BS_NONE;
};
}
function parse_in($value) {
$values = explode(" ",$value);
switch (count($values)) {
case 1:
$v1 = $this->parse_style($values[0]);
return array($v1, $v1, $v1, $v1);
case 2:
$v1 = $this->parse_style($values[0]);
$v2 = $this->parse_style($values[1]);
return array($v1, $v2, $v1, $v2);
case 3:
$v1 = $this->parse_style($values[0]);
$v2 = $this->parse_style($values[1]);
$v3 = $this->parse_style($values[2]);
return array($v1, $v2, $v3, $v2);
case 4:
$v1 = $this->parse_style($values[0]);
$v2 = $this->parse_style($values[1]);
$v3 = $this->parse_style($values[2]);
$v4 = $this->parse_style($values[3]);
return array($v1, $v2, $v3, $v4);
default:
return $this->default_value();
};
}
function parse($value) {
if ($value == 'inherit') {
return CSS_PROPERTY_INHERIT;
}
$values = $this->parse_in($value);
return new BorderStyle($values[0],
$values[1],
$values[2],
$values[3]);
}
}
?>