default_value = new Background(CSSBackgroundColor::default_value(),
CSSBackgroundImage::default_value(),
CSSBackgroundRepeat::default_value(),
CSSBackgroundPosition::default_value(),
CSSBackgroundAttachment::default_value());
$this->CSSPropertyHandler(true, false);
}
function inherit($state, &$new_state) {
// Determine parent 'display' value
$parent_display = $state[CSS_DISPLAY];
// If parent is a table row, inherit the background settings
$this->replace_array(($parent_display == 'table-row') ? $state[CSS_BACKGROUND] : $this->default_value(),
$new_state);
}
function default_value() {
return $this->default_value->copy();
}
function parse($value, &$pipeline) {
if ($value === 'inherit') {
return CSS_PROPERTY_INHERIT;
}
$background = new Background(CSSBackgroundColor::parse($value),
CSSBackgroundImage::parse($value, $pipeline),
CSSBackgroundRepeat::parse($value),
CSSBackgroundPosition::parse($value),
CSSBackgroundAttachment::parse($value));
return $background;
}
}
$bg = new CSSBackground;
CSS::register_css_property($bg);
CSS::register_css_property(new CSSBackgroundColor($bg, '_color'));
CSS::register_css_property(new CSSBackgroundImage($bg, '_image'));
CSS::register_css_property(new CSSBackgroundRepeat($bg, '_repeat'));
CSS::register_css_property(new CSSBackgroundPosition($bg, '_position'));
CSS::register_css_property(new CSSBackgroundAttachment($bg, '_attachment'));
?>