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:: shadowColor()

			Цвет тени текста

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

		.. py:method:: setShadowColor(color)

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

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

		.. py:method:: hasShadow()

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

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

		.. py:method:: enableShadow(shadow)

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

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

		.. py:method:: shadowOffset()

			Смещение тени относительно текста (зависит от размера шрифта).

			:return: смещение тени (ширина - горизонтальное, высота - вертикальное)
			:rtype: :class:`PyQt5.QtCore.QSizeF`

		.. 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:: pixelHaloWidthDevice(pixelHeight, dpi)

			Получить ширину каймы (см. data:`BackgroundType`) в пикселах устройства, исходя из указанной высоты символа и разрешения устройства.

			:param pixelHeight: высота шрифта в точках
			:type pixelHeight: :class:`float`
			:param dpi: число точек устройства на дюйм
			:type dpi: :class:`float`
			:return: Ширина каймы в точках
			:rtype: :data:`float`

		.. py:method:: pixelHaloWidthDevice(dpi)

			Получить ширину каймы (см. data:`BackgroundType`) в пикселах устройства, исходя из разрешения устройства.

			:param dpi: число точек устройства на дюйм
			:type dpi: :class:`float`
			:return: Ширина каймы в точках
			:rtype: :data:`float`

		.. py:method:: pixelHaloWidth(dpi)

			Получить ширину каймы (см. data:`BackgroundType`) в пикселах экрана, исходя из указанной высоты символа.

			:param pixelHeight: высота шрифта в точках
			:type pixelHeight: :class:`float`
			:return: Ширина каймы в точках
			:rtype: :data:`float`

		.. py:method:: pixelHaloWidth()

			Получить ширину каймы (см. data:`BackgroundType`) в пикселах экрана.

			:return: Ширина каймы в точках
			:rtype: :data:`float`

		.. py:method:: pointHaloWidthDevice(dpi)

			Получить ширину каймы (см. data:`BackgroundType`) в пунктах устройства.

			:param dpi: число точек устройства на дюйм
			:type dpi: :class:`float`
			:return: Ширина каймы в пунктах
			:rtype: :data:`float`

		.. py:method:: pointHaloWidth(pointHeight)

			Получить ширину каймы (см. data:`BackgroundType`) в пунктах экрана, исходя из указанной высоты символа.

			:param pointHeight: высота шрифта в пунктах
			:type pointHeight: :class:`float`
			:return: Ширина каймы в пунктах
			:rtype: :data:`float`

		.. py:method:: pointHaloWidth()

			Получить ширину каймы (см. data:`BackgroundType`) в пунктах экрана.

			:return: Ширина каймы в пунктах
			:rtype: :data:`float`

		.. py:method:: setPointHaloWidth(width)

			Установка абсолютную ширины каймы (см. data:`BackgroundType`) в пунктах.

			:param width: высота шрифта в пунктах
			:type width: :class:`float`

		.. py:method:: setHaloWidthPercent(widthPercent)

			Установка относительной ширины каймы (см. data:`BackgroundType`) в процентах от высоты символа.

			:param widthPercent: высота шрифта в процентах от высоты;
			:type widthPercent: :class:`int`

		.. py:method:: textSize(text)

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

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