/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/processing/qgsprocessingguiregistry.h                        *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/





class QgsProcessingGuiRegistry
{
%Docstring(signature="appended")
The :py:class:`QgsProcessingGuiRegistry` is a home for widgets for
processing configuration widgets.

:py:class:`QgsProcessingGuiRegistry` is not usually directly created,
but rather accessed through :py:func:`QgsGui.processingGuiRegistry()`.

.. versionadded:: 3.2
%End

%TypeHeaderCode
#include "qgsprocessingguiregistry.h"
%End
  public:
    QgsProcessingGuiRegistry();
%Docstring
Constructor. Should never be called manually, is already created by
:py:class:`QgsGui`.
%End
    ~QgsProcessingGuiRegistry();

    void addAlgorithmConfigurationWidgetFactory( QgsProcessingAlgorithmConfigurationWidgetFactory *factory /Transfer/ );
%Docstring
Add a new configuration widget factory for customized algorithm
configuration widgets. Ownership is taken.

.. versionadded:: 3.2
%End

    void removeAlgorithmConfigurationWidgetFactory( QgsProcessingAlgorithmConfigurationWidgetFactory *factory );
%Docstring
Remove a configuration widget factory for customized algorithm
configuration widgets.

.. versionadded:: 3.2
%End

    QgsProcessingAlgorithmConfigurationWidget *algorithmConfigurationWidget( const QgsProcessingAlgorithm *algorithm ) const;
%Docstring
Gets the configuration widget for an ``algorithm``. This widget will be
shown next to parameter widgets. Most algorithms do not have a
configuration widget and in this case, ``None`` will be returned.

.. versionadded:: 3.2
%End

    bool addParameterWidgetFactory( QgsProcessingParameterWidgetFactoryInterface *factory /Transfer/ );
%Docstring
Adds a parameter widget ``factory`` to the registry, allowing widget
creation for parameters of the matching type via
:py:func:`~QgsProcessingGuiRegistry.createParameterWidgetWrapper` and
:py:func:`~QgsProcessingGuiRegistry.createModelerParameterWidget`.

Ownership of ``factory`` is transferred to the registry.

Returns ``True`` if the factory was successfully added, or ``False`` if
the factory could not be added. Each factory must return a unique value
for
:py:func:`QgsProcessingParameterWidgetFactoryInterface.parameterType()`,
and attempting to add a new factory with a duplicate type will result in
failure.

.. seealso:: :py:func:`removeParameterWidgetFactory`

.. seealso:: :py:func:`createParameterWidgetWrapper`

.. seealso:: :py:func:`createModelerParameterWidget`

.. versionadded:: 3.4
%End

    void removeParameterWidgetFactory( QgsProcessingParameterWidgetFactoryInterface *factory );
%Docstring
Removes a parameter widget ``factory`` from the registry. The factory
will be deleted.

.. seealso:: :py:func:`addParameterWidgetFactory`

.. versionadded:: 3.4
%End

    QgsAbstractProcessingParameterWidgetWrapper *createParameterWidgetWrapper( const QgsProcessingParameterDefinition *parameter, QgsProcessingGui::WidgetType type ) /Factory/;
%Docstring
Creates a new parameter widget wrapper for the given ``parameter``. The
``type`` argument dictates the type of dialog the wrapper should be
created for. The caller takes ownership of the returned wrapper.

If no factory is registered which handles the given ``parameter``,
``None`` will be returned.

.. seealso:: :py:func:`createModelerParameterWidget`

.. seealso:: :py:func:`addParameterWidgetFactory`

.. versionadded:: 3.4
%End

    QgsProcessingModelerParameterWidget *createModelerParameterWidget( QgsProcessingModelAlgorithm *model, const QString &childId, const QgsProcessingParameterDefinition *parameter, QgsProcessingContext &context ) /Factory/;
%Docstring
Creates a new modeler parameter widget for the given ``parameter``. This
widget allows configuration of the parameter's value when used inside a
Processing ``model``.

The ID of the child algorithm within the model must be specified via the
``childId`` argument. This value corresponds to the
:py:func:`QgsProcessingModelChildAlgorithm.childId()` string, which
uniquely identifies which child algorithm the parameter is associated
with inside the given ``model``.

The caller takes ownership of the returned widget. If no factory is
registered which handles the given ``parameter``, ``None`` will be
returned.

.. seealso:: :py:func:`createParameterWidgetWrapper`

.. seealso:: :py:func:`addParameterWidgetFactory`

.. versionadded:: 3.4
%End

    QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget( const QString &type, QgsProcessingContext &context, const QgsProcessingParameterWidgetContext &widgetContext, const QgsProcessingParameterDefinition *definition = 0, const QgsProcessingAlgorithm *algorithm = 0 ) /Factory/;
%Docstring
Creates a new parameter definition widget allowing for configuration of
an instance of a specific parameter ``type``.

The ``context`` argument must specify a Processing context, which will
be used by the widget to evaluate existing ``definition`` properties
such as default values. Similarly, the ``widgetContext`` argument
specifies the wider GUI context in which the widget will be used.

The optional ``definition`` argument may specify an existing parameter
definition which will be reflected in the initial state of the returned
widget. If ``definition`` is ``None``, then the returned widget will use
default settings instead.

Additionally, the optional ``algorithm`` parameter may be used to
specify the algorithm or model associated with the parameter.

If ``None`` is returned for a particular parameter ``type``, it
indicates that the parameter type cannot be configured via GUI.

.. versionadded:: 3.10
%End

};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/processing/qgsprocessingguiregistry.h                        *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
