<?

// имитирует выключение панелей и groupBox, затеняя все объекты в нем
/*

	$step_stat = new Enabled_component('step_stat', array('label1', 'label2'));
	$step_stat->enabled(true);

*/
class Enabled_component {
	
	public $enabled_color = 0x000000;
	public $hidden_color = 0x777777;
	public $component_name = '';
	public $objs_name = array();

	public $FmName = 'Fm';

	function __construct($component_name, $objs_name) {

		if(!get_ui($this->FmName.'->'.$component_name))
			throw new Error_def("Не найден объект с именем $component_name");

		// проверяем чтобы все объекты существовали
		foreach($objs_name as $name) 
			if(!get_ui($this->FmName.'->'.$name))
				throw new Error_def("Не найден объект с именем $name");

		$this->component_name = $component_name;
		$this->objs_name = $objs_name;
	}


	function enabled($is_enabled) {
		// если включаем, цвет делаем черным
		if($is_enabled)
			$color = $this->enabled_color;
		else $color = $this->hidden_color;

		c($this->FmName.'->'.$this->component_name)->font->color = $color;
		c($this->FmName.'->'.$this->component_name)->color = $color;

		foreach($this->objs_name as $name) {
			$obj = get_ui($this->FmName.'->'.$name);
			if(!$obj) continue;

			$obj->font->color = $color;
			//$log->line($obj->name . ' красим в ' . $color);
		}
	}
}




?>