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












class QgsSymbolSelectorWidget : QgsPanelWidget
{
%Docstring(signature="appended")
Symbol selector widget that can be used to select and build a symbol
%End

%TypeHeaderCode
#include "qgssymbolselectordialog.h"
%End
  public:

    QgsSymbolSelectorWidget( QgsSymbol *symbol, QgsStyle *style, QgsVectorLayer *vl, QWidget *parent /TransferThis/ = 0 );
%Docstring
Symbol selector widget that can be used to select and build a symbol

:param symbol: The symbol to load into the widget as a start point.
:param style: The style used by the widget.
:param vl: The vector layer for the symbol.
:param parent: 

.. note::

   The ownership of the symbol is not transferred and must exist for the lifetime of the widget.
%End



    QMenu *advancedMenu();
%Docstring
Returns menu for "advanced" button - create it if doesn't exist and show
the advanced button
%End

    void setContext( const QgsSymbolWidgetContext &context );
%Docstring
Sets the context in which the symbol widget is shown, e.g., the
associated map canvas and expression contexts.

:param context: symbol widget context

.. seealso:: :py:func:`context`
%End

    QgsSymbolWidgetContext context() const;
%Docstring
Returns the context in which the symbol widget is shown, e.g., the
associated map canvas and expression contexts.

.. seealso:: :py:func:`setContext`
%End

    QgsSymbol *symbol();
%Docstring
Returns the symbol that is currently active in the widget. Can be
``None``.

:return: The active symbol.
%End



  public slots:

    void moveLayerDown();
%Docstring
Move the active symbol layer down.
%End

    void moveLayerUp();
%Docstring
Move the active symbol layer up.
%End

    void addLayer();
%Docstring
Add a symbol layer to the bottom of the stack.
%End

    void removeLayer();
%Docstring
Remove the current active symbol layer.
%End

    void lockLayer();
%Docstring
Lock the current active symbol layer.
%End

    void duplicateLayer();
%Docstring
Duplicates the current symbol layer and places the duplicated layer
above the current symbol layer
%End

    void layerChanged();
%Docstring
Called when the layer changes in the widget. Updates the active
properties for active symbol layer.
%End

    void updateLayerPreview();
%Docstring
Update the single symbol layer preview in the widget.
%End

    void updatePreview();
%Docstring
Update the preview of the whole symbol in the interface.
%End

    void symbolChanged();
%Docstring
Slot to update tree when a new symbol from style
%End

    void changeLayer( QgsSymbolLayer *layer );
%Docstring
Alters tree and sets proper widget when Layer Type is changed

.. note::

   The layer is received from the LayerPropertiesWidget
%End

  signals:

    void symbolModified();
%Docstring
Emitted when a symbol is modified in the widget.
%End

};

class QgsSymbolSelectorDialog : QDialog
{
%Docstring(signature="appended")
A dialog that can be used to select and build a symbol.
%End

%TypeHeaderCode
#include "qgssymbolselectordialog.h"
%End
  public:
    QgsSymbolSelectorDialog( QgsSymbol *symbol, QgsStyle *style, QgsVectorLayer *vl, QWidget *parent /TransferThis/ = 0, bool embedded = false );
%Docstring
Constructor for QgsSymbolSelectorDialog.

:param symbol: The symbol
:param style: The style
:param vl: Associated vector layer
:param parent: Parent widget
:param embedded: ``True`` to embed in renderer properties dialog,
                 ``False`` otherwise
%End

    QMenu *advancedMenu();
%Docstring
Returns menu for "advanced" button - create it if doesn't exist and show
the advanced button
%End

    void setContext( const QgsSymbolWidgetContext &context );
%Docstring
Sets the context in which the symbol widget is shown, e.g., the
associated map canvas and expression contexts.

:param context: symbol widget context

.. seealso:: :py:func:`context`
%End

    QgsSymbolWidgetContext context() const;
%Docstring
Returns the context in which the symbol widget is shown, e.g., the
associated map canvas and expression contexts.

.. seealso:: :py:func:`setContext`
%End

    QgsSymbol *symbol();
%Docstring
Returns the symbol that is currently active in the widget. Can be
``None``.

:return: The active symbol.
%End


    QDialogButtonBox *buttonBox() const;
%Docstring
Returns a reference to the dialog's button box.

.. versionadded:: 3.10
%End

  public slots:

    void moveLayerDown();
    void moveLayerUp();

    void addLayer();
    void removeLayer();

    void lockLayer();

    void duplicateLayer();
%Docstring
Duplicates the current symbol layer and places the duplicated layer
above the current symbol layer
%End

    void layerChanged();

    void updateLayerPreview();
    void updatePreview();

    void symbolChanged();
%Docstring
Slot to update tree when a new symbol from style
%End

    void changeLayer( QgsSymbolLayer *layer );
%Docstring
Alters tree and sets proper widget when Layer Type is changed

.. note::

   The layer is received from the LayerPropertiesWidget
%End

  protected:
    virtual void keyPressEvent( QKeyEvent *e );


  signals:

    void symbolModified();
%Docstring
Emitted when the symbol defined in the dialog is modified.
%End

};

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