1<?php 2 3class CSSSubProperty extends CSSPropertyHandler { 4 var $_owner; 5 6 function CSSSubProperty(&$owner) { 7 $this->_owner =& $owner; 8 } 9 10 function &get(&$state) { 11 $owner =& $this->owner(); 12 $value =& $owner->get($state); 13 $subvalue =& $this->get_value($value); 14 return $subvalue; 15 } 16 17 function is_subproperty() { 18 return true; 19 } 20 21 function &owner() { 22 return $this->_owner; 23 } 24 25 function default_value() { 26 } 27 28 function inherit($old_state, &$new_state) { 29 } 30 31 function inherit_text($old_state, &$new_state) { 32 } 33 34 function replace_array($value, &$state_array) { 35 $owner =& $this->owner(); 36 37 $owner_value = $state_array[$owner->get_property_code()]; 38 39 if (is_object($owner_value)) { 40 $owner_value = $owner_value->copy(); 41 }; 42 43 if (is_object($value)) { 44 $this->set_value($owner_value, $value->copy()); 45 } else { 46 $this->set_value($owner_value, $value); 47 }; 48 49 $state_array[$owner->get_property_code()] = $owner_value; 50 } 51 52 function replace($value, &$state) { 53 $owner =& $this->owner(); 54 $owner_value = $owner->get($state->getState()); 55 56 if (is_object($owner_value)) { 57 $owner_value =& $owner_value->copy(); 58 }; 59 60 if (is_object($value)) { 61 $value_copy =& $value->copy(); 62 $this->set_value($owner_value, $value_copy); 63 } else { 64 $this->set_value($owner_value, $value); 65 }; 66 67 $owner->replaceDefault($owner_value, $state); 68 $state->set_propertyDefaultFlag($this->get_property_code(), false); 69 } 70 71 function set_value(&$owner_value, &$value) { 72 error_no_method('set_value', get_class($this)); 73 } 74 75 function &get_value(&$owner_value) { 76 error_no_method('get_value', get_class($this)); 77 } 78} 79 80?>