<?

// регистрация событий мыши
// пока используем только чтобы убирать фокус с меню. Поскольку у самого меню событие "выход за пределы" не работает как надо
class Ui_mouse_event {

	static $cur_focus = ''; // имя объекта на котором фокус в данный момент
	static $cur_enter = ''; // текущее имя объекта над которым мышка

	static function enter($obj) {
		GLOBAL $log, $GOP, $Graphs;

		//if(self::$cur_focus == 'disc_name' and $obj->name != 'disc_name') {
		if(self::$cur_focus && self::$cur_focus != $obj->name) {
			get_ui('Fm->'.$GOP['reset_focus'])->setFocus();
			self::$cur_focus = '';
			//$log->line(time() . ' убираем фокус');
		}


		// обновляем график скорости, поскольку он может частично перекрываться подсказкой
#		$Graphs['disk']->canvas_refresh();


		// обработка лога. При перемещении на полосу прокрутки, срабатывает событие "выход за пределы".
		//Поэтому делаем событие сами
		// курсор в логе
		if($obj->name == 'display_log') {
			$log->display_no_update = true;
			//$log->line('курсор в логе');
		}

		// правильная имитация события "выход за пределы лога"
		if(self::$cur_enter != $obj->name) {
			// курсор вышел запределы лога
			if(self::$cur_enter == 'display_log') {
				$log->display_no_update = false;
				//$log->line('курсор вышел за лог');
			}
		}


		self::$cur_enter = $obj->name;
	}

	// событие срабатываемое когда выход за пределы главной формы
	static function outRootForm() {
		GLOBAL $log;

		if(isset($log)) {
			$log->display_no_update = false;
			//$log->line(time());
		}
	}

	// если надо отслеживать потерю фокуса, прописываем объекту установку фокуса
	static function focus($obj) {
		self::$cur_focus = $obj->name;
	}
}


?>