/** \ingroup gui * \class QgsCompoundColorWidget * A custom QGIS widget for selecting a color, including options for selecting colors via * hue wheel, color swatches, and a color sampler. * \note Added in version 2.16 */ class QgsCompoundColorWidget : QgsPanelWidget { %TypeHeaderCode #include %End public: //! Widget layout enum Layout { LayoutDefault, /*!< Use the default (rectangular) layout */ LayoutVertical, /*!< Use a narrower, vertically stacked layout */ }; /** Constructor for QgsCompoundColorWidget * @param parent parent widget * @param color initial color for dialog * @param layout widget layout to use */ QgsCompoundColorWidget( QWidget *parent /TransferThis/ = nullptr, const QColor& color = QColor(), Layout layout = LayoutDefault ); ~QgsCompoundColorWidget(); /** Returns the current color for the dialog * @returns dialog color */ QColor color() const; /** Sets whether alpha modification (transparency) is permitted * for the color dialog. Defaults to true. * @param allowAlpha set to false to disable alpha modification */ void setAllowAlpha( const bool allowAlpha ); /** Sets whether the widget's color has been "discarded" and the selected color should not * be stored in the recent color list. * @param discarded set to true to avoid adding color to recent color list on widget destruction. * @note added in QGIS 3.0 */ void setDiscarded( bool discarded ); signals: /** Emitted when the dialog's color changes * @param color current color */ void currentColorChanged( const QColor &color ); public slots: /** Sets the current color for the dialog * @param color desired color */ void setColor( const QColor &color ); /** Sets the color to show in an optional "previous color" section * @param color previous color */ void setPreviousColor( const QColor& color ); protected: void mousePressEvent( QMouseEvent* e ); void mouseMoveEvent( QMouseEvent *e ); void mouseReleaseEvent( QMouseEvent *e ); void keyPressEvent( QKeyEvent *e ); };