<?

// столбец графика
class Gr_singlebar_col extends Gr_col {

	// только для signlebar графика
	private $width=0;
	
	function __construct($gr, $x, $nomer, $key_value, $color, $def_value=0) {
		parent::__construct($gr, $x, $nomer, $key_value, $color, $def_value);
	}

	function set_value($value, $is_redraw=true) {
		if($value < $this->value) {
			$this->graph->need_redraw_all = true;
		}
		$this->value = $value;

		// надо пересчитывать координаты потому что они меняются в зависимости от высоты столбца
		$this->graph->calc_coord_size();

		if($is_redraw)
			$this->redraw();
	}


	function redraw() {
		GLOBAL $log, $Measure_convert;

		$gr = $this->graph;
		$value_factor = $gr->value_factor;

		if(!$this->value)
			return true;

		// вычисляем координаты столбца
		$y1 = $gr->yZero - $gr->col_width;
		$y2 = $gr->yZero;
		$x1 = $this->x;
		$x2 = $this->x + $this->height; // height вычисляется в calc_coords


		if($gr->value_label) {	
			// надпись на столбце - размер
			$text_x = $x1;
			$text_y = $y1 - $gr->value_font_size * $gr->factor_font_size;

			// если больше, то при текущей ширине, цифры вроде 233.22g будут наезжать на соседний столбец. 
			// это кол-во цифр, точка не входит
			$text = $Measure_convert->pretty_size($this->value, 'MB', true, 4); 

			$text = strtolower($text); // делаем букву маленькой. Так хоть какое то будет визуальное разграничение если надписи идут впритык. Потому что большая буква сливается с цифрами
			
			// нельзя добавлять пробелы, потому что не факт что будет перерисован следующий столбец. Либо специально запускать его перерисовку, а значит нужно и дальше перерисовывать
			//$text .= "     "; // добавляем пробелы чтобы гарантированно закрыть всю ширину столбца. Так как следующий столбец рисуется потом, 
			$font_color = $gr->value_font_color;
			//}

			// столбец фоновой краски сверху
			
			// выводим текст
			$gr->cv->font->color = $font_color;
			$gr->cv->brush->color = $gr->value_font_bg;
			$gr->cv->font->size = $gr->value_font_size;
			$gr->cv->textOut($text_x, $text_y, $text); 
		}

		// выводим блок
		$color = $color_pen = $this->color[0];

		$gr->cv->pen->color = $color_pen;
		$gr->cv->brush->color = $color;
		$gr->cv->rectangle($x1, $y1, $x2, $y2);
	}

}

?>