TextRenderer
=================

.. currentmodule:: axioma.render

.. class:: TextRenderer

	Класс для отрисовки текстовых объектов

		.. py:method:: TextRenderer()

			Конструктор со значениями по умолчанию

		.. py:method:: TextRenderer(other)

			Копирующий конструктор

			:param other: Исходный объект TextRenderer, на базе которого необходимо сделать копию. 
			:type other: :class:`TextRenderer`

		.. csv-table:: Промежуток между строками :data:`LineSpace`:
				:header: "Наименование величины", "Значение", "Описание"

				Single, 0, "Одинарный"
				OneAndHalf, 1, "Полуторный"
				Double, 2, "Двойной"

		.. csv-table:: Вид фона у текста :data:`BackgroundType`:
				:header: "Наименование величины", "Значение", "Описание"

				None, 0, "Отсутствует"
				Outline, 1, "Кайма"
				Frame, 2, "Рамка"
				
		.. csv-table:: Параметры масштабирования :data:`ResizeOption`:
				:header: "Наименование величины", "Значение", "Описание"

				KeepHeight, 0, "С сохранением высоты"
				KeepWidth, 1, "С сохранением ширины"
				
		.. py:method:: draw(text, context, rect, angle=0)

			Отрисовка текста в заданном контексте внутри прямоугольника

			:param text: Текст для отрисовки
			:type text: :class:`str`
			:param context: Контекст, в котором будет отрисован текст
			:type context: :class:`~axioma.render.Context`
			:param rect: Прямоугольник, в который должен быть вписан текст
			:type rect: :class:`~PyQt5.QtCore.QRectF`
			:param angle: Угол поворота текста
			:type angle: :class:`float`

		.. py:method:: draw(text, context, point, angle=0)

			Отрисовка текста в заданном контексте относительно базовой точки

			:param text: Текст для отрисовки
			:type text: :class:`str`
			:param context: Контекст, в котором будет отрисован текст
			:type context: :class:`~axioma.render.Context`
			:param point: Точка, относительно которой рисуется текст. y - задается по центру,  x - по левому краю
			:type point: :class:`~PyQt5.QtCore.QPointF`
			:param angle: Угол поворота текста
			:type angle: :class:`float`

		.. py:method:: font()

			Текущий установленный шрифт текста

			:return: Шрифт
			:rtype: :class:`~PyQt5.QtGui.QFont`

		.. py:method:: setFont(font)

			Установка шрифта текста

			:param font: шрифт
			:type font: :class:`~PyQt5.QtGui.QFont`

		.. py:method:: lineSpace()

			Текущий промежуток между строками

			:return: Значение
			:rtype: :class:`LineSpace`

		.. py:method:: setLineSpace(linespace)

			Установка промежутка между строками

			:param linespace: Новое значение
			:type linespace: :class:`LineSpace`

		.. py:method:: alignment()

			Выравнивание текста

			:return: Текущее установленное значение
			:rtype: :data:`Qt.AlignmentFlag`

		.. py:method:: setAlignment(alignment)

			Установка типа выравнивания текста

			:param `Qt.AlignmentFlag` alignment: Новое значение

		.. py:method:: color()

			Цвет текста

			:return: Установленный цвет текста
			:rtype: :class:`~PyQt5.QtGui.QColor`

		.. py:method:: setColor(color)

			Установка цвета текста

			:param color: Цвет
			:type color: :class:`~PyQt5.QtGui.QColor`

		.. py:method:: backgroundColor()

			Цвет фона текста

			:return: Установленный цвет фона текста
			:rtype: :class:`~PyQt5.QtGui.QColor`

		.. py:method:: setBackgroundColor(color)

			Установка цвета фона текста

			:param color: Цвет фона текста
			:type color: :class:`~PyQt5.QtGui.QColor`

		.. py:method:: capital()

			Включен ли режим верхнего регистра для текста

			:return: True, если да. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: setCapital(capital)

			Установка режима отображения текста в верхнем регистре

			:param capital: True, если режим необходимо включить.
			:type capital: :class:`bool`

		.. py:method:: letterSpacing()

			Включен ли режим прореживания текста

			:return: True, если да. В противном случае False
			:rtype: :class:`bool`

		.. py:method:: setLetterSpacing(letterSpacing)

			Включение режима прореживания текста

			:param letterSpacing: True, если режим необходимо включить.
			:type letterSpacing: :class:`bool`

		.. py:method:: textBackground()

			Установленный тип фона текста

			:return: Значение
			:rtype: :data:`BackgroundType`

		.. py:method:: setBackgroundType(type)

			Установка типа фона текста

			:param type: Значение типа фона
			:type type: :data:`BackgroundType`

		.. py:method:: textSize(text)

			Производит расчет размера текста при текущих заданных параметрах

			:param text: Анализируемый текст
			:type text: :class:`str`
			:return: Размер текста
			:rtype: :class:`~PyQt5.QtCore.QSizeF`
