swatch.hpp
Go to the documentation of this file.
00001 
00022 #ifndef COLOR_WIDGETS_SWATCH_HPP
00023 #define COLOR_WIDGETS_SWATCH_HPP
00024 
00025 #include <QWidget>
00026 #include <QPen>
00027 #include "color_palette.hpp"
00028 
00029 namespace color_widgets {
00030 
00034 class Swatch : public QWidget
00035 {
00036     Q_OBJECT
00037 
00041     Q_PROPERTY(const ColorPalette& palette READ palette WRITE setPalette NOTIFY paletteChanged)
00045     Q_PROPERTY(int selected READ selected WRITE setSelected NOTIFY selectedChanged)
00046 
00050     Q_PROPERTY(QSize colorSize READ colorSize WRITE setColorSize NOTIFY colorSizeChanged)
00051 
00052     Q_PROPERTY(ColorSizePolicy colorSizePolicy READ colorSizePolicy WRITE setColorSizePolicy NOTIFY colorSizePolicyChanged)
00053 
00057     Q_PROPERTY(QPen border READ border WRITE setBorder NOTIFY borderChanged)
00058 
00069     Q_PROPERTY(int forcedRows READ forcedRows WRITE setForcedRows NOTIFY forcedRowsChanged)
00070 
00081     Q_PROPERTY(int forcedColumns READ forcedColumns WRITE setForcedColumns NOTIFY forcedColumnsChanged)
00082 
00087     Q_PROPERTY(bool readOnly READ readOnly WRITE setReadOnly NOTIFY readOnlyChanged)
00088 
00089 
00090 public:
00091     enum ColorSizePolicy
00092     {
00093         Hint,    
00094         Minimum, 
00095         Fixed    
00096     };
00097     Q_ENUMS(ColorSizePolicy)
00098 
00099     Swatch(QWidget* parent = 0);
00100     ~Swatch();
00101 
00102     QSize sizeHint() const Q_DECL_OVERRIDE;
00103     QSize minimumSizeHint() const Q_DECL_OVERRIDE;
00104 
00105     const ColorPalette& palette() const;
00106     ColorPalette& palette();
00107     int selected() const;
00111     QColor selectedColor() const;
00112 
00118     int indexAt(const QPoint& p);
00119 
00124     QColor colorAt(const QPoint& p);
00125 
00126     QSize colorSize() const;
00127     ColorSizePolicy colorSizePolicy() const;
00128     QPen border() const;
00129 
00130     int forcedRows() const;
00131     int forcedColumns() const;
00132 
00133     bool readOnly() const;
00134 
00135 public slots:
00136     void setPalette(const ColorPalette& palette);
00137     void setSelected(int selected);
00138     void clearSelection();
00139     void setColorSize(const QSize& colorSize);
00140     void setColorSizePolicy(ColorSizePolicy colorSizePolicy);
00141     void setBorder(const QPen& border);
00142     void setForcedRows(int forcedRows);
00143     void setForcedColumns(int forcedColumns);
00144     void setReadOnly(bool readOnly);
00148     void removeSelected();
00149 
00150 signals:
00151     void paletteChanged(const ColorPalette& palette);
00152     void selectedChanged(int selected);
00153     void colorSelected(const QColor& color);
00154     void colorSizeChanged(const QSize& colorSize);
00155     void colorSizePolicyChanged(ColorSizePolicy colorSizePolicy);
00156     void doubleClicked(int index);
00157     void rightClicked(int index);
00158     void forcedRowsChanged(int forcedRows);
00159     void forcedColumnsChanged(int forcedColumns);
00160     void readOnlyChanged(bool readOnly);
00161     void borderChanged(const QPen& border);
00162 
00163 protected:
00164     bool event(QEvent* event) Q_DECL_OVERRIDE;
00165 
00166     void paintEvent(QPaintEvent* event) Q_DECL_OVERRIDE;
00167 
00168     void keyPressEvent(QKeyEvent* event) Q_DECL_OVERRIDE;
00169 
00170     void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
00171     void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
00172     void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
00173     void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
00174     void wheelEvent(QWheelEvent* event) Q_DECL_OVERRIDE;
00175 
00176     void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
00177     void dragMoveEvent(QDragMoveEvent* event) Q_DECL_OVERRIDE;
00178     void dragLeaveEvent(QDragLeaveEvent *event) Q_DECL_OVERRIDE;
00179     void dropEvent(QDropEvent* event) Q_DECL_OVERRIDE;
00180 
00181 protected slots:
00185     void paletteModified();
00186 
00187 private:
00188     class Private;
00189     Private* p;
00190 };
00191 
00192 
00193 } // namespace color_widgets
00194 #endif // COLOR_WIDGETS_SWATCH_HPP


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:57