<?


// Выводит текст, но без мигания при обновлении текста.
class Label_no_blink {

	public $bg_color = FORM_BG;//0xEAEAEA;
	public $font_size = 8;
	public $style = '';
	public $color = 0x000000;
	public $cv;
	private $text = '';

	protected $fmName = 'Fm';
	/*
		'fsBold';
		'fsItalic';
		'fsUnderline';
		'fsStrikeOut';
	*/

	function __construct($name, $font_size=false, $style=false, $color=false) {
		
		if(!$ui = get_ui($this->fmName.'->'.$name))
			throw new Error_def("Не найден объект с именем $name");

		$this->name = $name;
		$this->ui = $ui;
		$ui->text = ''; // убираем текст если он есть

		if($font_size) $this->font_size = $font_size;
		if($style) $this->style = $style;
		if($color) $this->color = $color;

		// полотно на котором будем генерировать изображение
		$this->bitmap = $btm = new TBitmap();
		$btm->setSizes($ui->w, $ui->h);
		$this->cv = $cv = new TControlCanvas($btm);

		$GLOBALS['All_canvas'][] = $this; // чтобы обновлять при изменении окна, прокрутки и прочей мути

		$cv->brush->color = $this->bg_color;
		$cv->font->size = $this->font_size;
		$cv->font->style = $this->style;
		$cv->font->color = $this->color;
		$cv->clear();

		/*
			$graph->cv->font->color = $font_color;
			$graph->cv->brush->color = $graph->value_font_bg;
			$graph->cv->font->size = $graph->value_font_size;
		*/

		// создаем плоскость
		// на ней ничего не рисуем, только загружаем в нее готовый bitmap
		$this->real_cv = new TControlCanvas;
		$this->real_cv->control = c($this->fmName.'->'.$this->name, 1);
	}

	function set_text($text) {
		GLOBAL $log;

		if($text == $this->text)
			return true;

		$this->text = $text;
		$cv = $this->cv;
		
		$cv->clear();
		$cv->textOut(0, 0, $text);

		// показываем то что нарисовали
		$this->canvas_refresh();
	}

	function canvas_refresh() {
		// показываем то что нарисовали
		$this->real_cv->drawBitmap($this->bitmap);
	}
}

?>