QGIS/python/gui/qgscolorwidgets.sip
Matthias Kuhn e66dd998d6 Use full height on attribute form with drag and drop layout
And fix some file permission issues
2015-06-05 02:46:16 +02:00

429 lines
12 KiB
Plaintext

/** \ingroup gui
* \class QgsColorWidget
* A base class for interactive color widgets. Widgets can either allow setting a single component of
* a color (eg the red or green components), or an entire color. The QgsColorWidget also keeps track of
* any explicitly set hue for the color, so that this information is not lost when the widget is
* set to a color with an ambiguous hue (eg black or white shades).
* \note Added in version 2.5
*/
class QgsColorWidget : QWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/*! Specifies the color component which the widget alters
*/
enum ColorComponent
{
Multiple = 0, /*!< widget alters multiple color components */
Red, /*!< red component of color */
Green, /*!< green component of color */
Blue, /*!< blue component of color */
Hue, /*!< hue component of color (based on HSV model) */
Saturation, /*!< saturation component of color (based on HSV model) */
Value, /*!< value component of color (based on HSV model) */
Alpha /*!< alpha component (opacity) of color */
};
/**Construct a new color widget.
* @param parent parent QWidget for the widget
* @param component color component the widget alters
*/
QgsColorWidget( QWidget* parent /TransferThis/ = 0, const ColorComponent component = Multiple );
virtual ~QgsColorWidget();
/**Returns the current color for the widget
* @returns current widget color
* @see setColor
*/
QColor color() const;
/**Returns the color component which the widget controls
* @returns color component for widget
* @see setComponent
*/
ColorComponent component() const;
/**Returns the current value of the widget's color component
* @returns value of color component, or -1 if widget has multiple components or an invalid color
* set
* @see setComponentValue
* @see component
*/
int componentValue() const;
/**Create an icon for dragging colors
* @param color for icon
*/
static QPixmap createDragIcon( const QColor &color );
public slots:
/**Sets the color for the widget
* @param color widget color
* @param emitSignals set to true to emit the colorChanged signal after setting color
* @see color
*/
virtual void setColor( const QColor &color, const bool emitSignals = false );
/**Sets the color component which the widget controls
* @param component color component for widget
* @see component
*/
virtual void setComponent( const ColorComponent component );
/**Alters the widget's color by setting the value for the widget's color component
* @param value value for widget's color component. This value is automatically
* clipped to the range of valid values for the color component.
* @see componentValue
* @see setComponent
* @note this method has no effect if the widget is set to the QgsColorWidget::Multiple
* component
*/
virtual void setComponentValue( const int value );
signals:
/**Emitted when the widget's color changes
* @param color new widget color
*/
void colorChanged( const QColor &color );
protected:
/**Returns the range of valid values for the color widget's component
* @returns maximum value allowed for color component, or -1 if widget has multiple components
*/
int componentRange() const;
/**Returns the range of valid values a color component
* @returns maximum value allowed for color component
*/
int componentRange( const ColorComponent component ) const;
/**Returns the value of a component of the widget's current color. This method correctly
* handles hue values when the color has an ambiguous hue (eg black or white shades)
* @param component color component to return
* @returns value of color component, or -1 if widget has an invalid color set
* @see hue
*/
int componentValue( const ColorComponent component ) const;
/**Returns the hue for the widget. This may differ from the hue for the QColor returned by color(),
* as QColor returns a hue of -1 if the color's hue is ambiguous (eg, if the saturation is zero).
* @returns explicitly set hue for widget
*/
int hue() const;
/**Alters a color by modifiying the value of a specific color component
* @param color color to alter
* @param component color component to alter
* @param newValue new value of color component. Values are automatically clipped to a
* valid range for the color component.
*/
void alterColor( QColor& color, const QgsColorWidget::ColorComponent component, const int newValue ) const;
/**Generates a checkboard pattern pixmap for use as a background to transparent colors
* @returns checkerboard pixmap
*/
static const QPixmap& transparentBackground();
//Reimplemented to accept dragged colors
void dragEnterEvent( QDragEnterEvent * e );
//Reimplemented to accept dropped colors
void dropEvent( QDropEvent *e );
};
/** \ingroup gui
* \class QgsColorWheel
* A color wheel widget. This widget consists of an outer ring which allows for hue selection, and an
* inner rotating triangle which allows for saturation and value selection.
* \note Added in version 2.5
*/
class QgsColorWheel : QgsColorWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/**Constructs a new color wheel widget.
* @param parent parent QWidget for the widget
*/
QgsColorWheel( QWidget* parent /TransferThis/ = 0 );
virtual ~QgsColorWheel();
void paintEvent( QPaintEvent* event );
public slots:
virtual void setColor( const QColor &color, const bool emitSignals = false );
protected:
virtual void resizeEvent( QResizeEvent *event );
virtual void mouseMoveEvent( QMouseEvent *event );
virtual void mousePressEvent( QMouseEvent *event );
virtual void mouseReleaseEvent( QMouseEvent *event );
};
/** \ingroup gui
* \class QgsColorBox
* A color box widget. This widget consists of a two dimensional rectangle filled with color
* variations, where a different color component varies along both the horizontal and vertical
* axis.
* \note Added in version 2.5
*/
class QgsColorBox : QgsColorWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/**Construct a new color box widget.
* @param parent parent QWidget for the widget
* @param component constant color component for the widget. The color components
* which vary along the horizontal and vertical axis are automatically assigned
* based on this constant color component.
*/
QgsColorBox( QWidget* parent /TransferThis/ = 0, const ColorComponent component = Value );
virtual ~QgsColorBox();
virtual QSize sizeHint() const;
void paintEvent( QPaintEvent* event );
virtual void setComponent( const ColorComponent component );
public slots:
virtual void setColor( const QColor &color, const bool emitSignals = false );
protected:
virtual void resizeEvent( QResizeEvent *event );
virtual void mouseMoveEvent( QMouseEvent *event );
virtual void mousePressEvent( QMouseEvent *event );
};
/** \ingroup gui
* \class QgsColorRampWidget
* A color ramp widget. This widget consists of an interactive box filled with a color which varies along
* its length by a single color component (eg, varying saturation from 0 to 100%).
* \note Added in version 2.5
*/
class QgsColorRampWidget : QgsColorWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/*! Specifies the orientation of a color ramp
*/
enum Orientation
{
Horizontal, /*!< horizontal ramp */
Vertical /*!< vertical ramp */
};
/**Construct a new color ramp widget.
* @param parent parent QWidget for the widget
* @param component color component which varies along the ramp
* @param orientation orientation for widget
*/
QgsColorRampWidget( QWidget* parent /TransferThis/ = 0,
const ColorComponent component = QgsColorWidget::Red,
const Orientation orientation = QgsColorRampWidget::Horizontal );
virtual ~QgsColorRampWidget();
virtual QSize sizeHint() const;
void paintEvent( QPaintEvent* event );
/**Sets the orientation for the color ramp
* @param orientation new orientation for the ramp
* @see orientation
*/
void setOrientation( const Orientation orientation );
/**Fetches the orientation for the color ramp
* @returns orientation for the ramp
* @see setOrientation
*/
Orientation orientation() const;
/**Sets the margin between the edge of the widget and the ramp
* @param margin margin around the ramp
* @see interiorMargin
*/
void setInteriorMargin( const int margin );
/**Fetches the margin between the edge of the widget and the ramp
* @returns margin around the ramp
* @see setInteriorMargin
*/
int interiorMargin() const;
/**Sets whether the ramp should be drawn within a frame
* @param showFrame set to true to draw a frame around the ramp
* @see showFrame
*/
void setShowFrame( const bool showFrame );
/**Fetches whether the ramp is drawn within a frame
* @returns true if a frame is drawn around the ramp
* @see setShowFrame
*/
bool showFrame() const;
/**Sets the size for drawing the triangular markers on the ramp
* @param markerSize marker size in pixels
*/
void setMarkerSize( const int markerSize );
signals:
/**Emitted when the widget's color component value changes
* @param value new value of color component
*/
void valueChanged( const int value );
protected:
virtual void mouseMoveEvent( QMouseEvent *event );
virtual void mousePressEvent( QMouseEvent *event );
virtual void keyPressEvent( QKeyEvent * event );
};
/** \ingroup gui
* \class QgsColorSliderWidget
* A composite horizontal color ramp widget and associated spinbox for manual value entry.
* \note Added in version 2.5
*/
class QgsColorSliderWidget : QgsColorWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/**Construct a new color slider widget.
* @param parent parent QWidget for the widget
* @param component color component which is controlled by the slider
*/
QgsColorSliderWidget( QWidget* parent /TransferThis/ = 0, const ColorComponent component = QgsColorWidget::Red );
virtual ~QgsColorSliderWidget();
virtual void setComponent( const ColorComponent component );
virtual void setComponentValue( const int value );
virtual void setColor( const QColor &color, const bool emitSignals = false );
};
/** \ingroup gui
* \class QgsColorTextWidget
* A line edit widget which displays colors as text and accepts string representations
* of colors.
* \note Added in version 2.5
*/
class QgsColorTextWidget : QgsColorWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/**Construct a new color line edit widget.
* @param parent parent QWidget for the widget
*/
QgsColorTextWidget( QWidget* parent /TransferThis/ = 0 );
virtual ~QgsColorTextWidget();
virtual void setColor( const QColor &color, const bool emitSignals = false );
protected:
void resizeEvent( QResizeEvent * event );
};
/** \ingroup gui
* \class QgsColorPreviewWidget
* A preview box which displays one or two colors as swatches.
* \note Added in version 2.5
*/
class QgsColorPreviewWidget : QgsColorWidget
{
%TypeHeaderCode
#include <qgscolorwidgets.h>
%End
public:
/**Construct a new color preview widget.
* @param parent parent QWidget for the widget
*/
QgsColorPreviewWidget( QWidget* parent /TransferThis/ = 0 );
virtual ~QgsColorPreviewWidget();
void paintEvent( QPaintEvent* event );
/**Returns the secondary color for the widget
* @returns secondary widget color, or an invalid color if the widget
* has no secondary color
* @see color
* @see setColor2
*/
QColor color2() const;
public slots:
/**Sets the second color for the widget
* @param color secondary widget color. Set to an invalid color to prevent
* drawing of a secondary color
* @see setColor
* @see color2
*/
virtual void setColor2( const QColor& color );
protected:
//reimplemented to allow dragging colors
void mousePressEvent( QMouseEvent* e );
//reimplemented to click colors
void mouseReleaseEvent( QMouseEvent* e );
//reimplemented to allow dragging colors
void mouseMoveEvent( QMouseEvent *e );
};