ToolController
=================

.. currentmodule:: axioma.gui.extension

.. class:: ToolController

	Класс-контроллер для инструментов. Позволяет управлять доступностью инструмента в зависимости от класса окна, к которому привязан инструмент контроллера. 
	Для регистрации инструмента в системе используются расширения.
	Пример использования см. в описании расширения для контроллера :class:`~axioma.gui.extension.ToolControllerExtension`.

	Унаследован от: :class:`~axioma.gui.ToolControllerTemplateBase`

		.. py:method:: ToolController(widgetClass, parent=None)

			Конструктор

			:param widgetClass: Класс виджетов, с которым будет работать инструмент. Например: axioma.gui.MapView, axioma.gui.ItemView, axioma.gui.ReportView
			:param parent: Родительский объект
			:type parent: :class:`~PyQt5.QtCore.QObject` или None
			
		.. py:method:: isEnabledFor(widget)

			Переопределяемый метод, который управляет доступностью инструмента в зависимости от параметров окна

			:param widget: Анализируемое окно приложения
			:type widget: :class:`~axioma.gui.ItemView`
			:return: True, если инструмент доступен. В противном случае False
			:rtype: :class:`bool`


DrawingToolController
======================

.. currentmodule:: axioma.gui.extension

.. class:: DrawingToolController

	Класс-контроллер для инструментов просмотра и редактирования в окне. В отличие от :class:`~axioma.gui.NativeDrawingToolController` проверка на доступность при редактировании не производится.
	Как пример, если на карте нет редактируемого слоя, инструмент будет доступен.

	Унаследован от: :class:`~axioma.gui.NativeDrawingToolController`

		.. py:method:: DrawingToolController(parent=None)

			Конструктор

			:param parent: Родительский объект
			:type parent: :class:`~PyQt5.QtCore.QObject` или None

