get_current_css_state(); if ($this->applicable($css_state)) { $this->replace($this->parse($value, $pipeline), $css_state); }; } function applicable($css_state) { return true; } function clearDefaultFlags(&$state) { $state->set_propertyDefaultFlag($this->get_property_code(), false); } function CSSPropertyHandler($inheritable, $inheritable_text) { $this->_inheritable = $inheritable; $this->_inheritable_text = $inheritable_text; } /** * Optimization: this function is called very often, so * we minimize the overhead by calling $this->get_property_code() * once per property handler object instead of calling in every * CSSPropertyHandler::get() call. */ function &get(&$state) { static $property_code = null; if (is_null($property_code)) { $property_code = $this->get_property_code(); }; if (!isset($state[$property_code])) { $null = null; return $null; }; return $state[$property_code]; } function inherit($old_state, &$new_state) { $code = $this->get_property_code(); $new_state[$code] = ($this->_inheritable ? $old_state[$code] : $this->default_value()); } function isInheritableText() { return $this->_inheritable_text; } function isInheritable() { return $this->_inheritable; } function inherit_text($old_state, &$new_state) { $code = $this->get_property_code(); if ($this->_inheritable_text) { $new_state[$code] = $old_state[$code]; } else { $new_state[$code] = $this->default_value(); }; } function is_default($value) { if (is_object($value)) { return $value->is_default(); } else { return $this->default_value() === $value; }; } function is_subproperty() { return false; } function replace($value, &$state) { $state->set_property($this->get_property_code(), $value); } function replaceDefault($value, &$state) { $state->set_propertyDefault($this->get_property_code(), $value); } function replace_array($value, &$state) { static $property_code = null; if (is_null($property_code)) { $property_code = $this->get_property_code(); }; $state[$property_code] = $value; } } ?>