QSint Library  0.2.2
colorgrid.h
1 #ifndef COLORGRID_H
2 #define COLORGRID_H
3 
4 #include "colordefs.h"
5 
6 #include <QWidget>
7 
8 
9 namespace QSint
10 {
11 
12 
28 class ColorGrid : public QWidget
29 {
30  Q_OBJECT
31 
32  Q_PROPERTY(int cellSize READ cellSize WRITE setCellSize)
33  Q_PROPERTY(int widthInCells READ widthInCells WRITE setWidthInCells)
34  Q_PROPERTY(bool autoSize READ autoSize WRITE setAutoSize)
35  Q_PROPERTY(bool pickByDrag READ pickByDrag WRITE setPickByDrag)
36  Q_PROPERTY(ClickMode clickMode READ clickMode WRITE setClickMode)
37 
38 public:
40  enum ClickMode {
45  };
46 
49  ColorGrid(QWidget *parent = 0);
52  virtual ~ColorGrid();
53 
54  virtual QSize minimumSizeHint() const;
55  virtual QSize sizeHint() const;
56 
57 
60  inline int cellSize() const { return m_cellSize; }
63  void setCellSize(int size);
64 
67  inline int widthInCells() const { return m_widthInCells; }
70  void setWidthInCells(int width);
71 
74  int heightInCells() const;
75 
79  inline bool autoSize() const { return m_autoSize; }
86  void setAutoSize(bool autosize);
87 
91  inline const QColor &lastHighlighted() const { return m_hlColor; }
95  inline const QColor &lastPicked() const { return m_selColor; }
96 
100  inline bool pickByDrag() const { return m_pickDrag; }
106  inline void setPickByDrag(bool set) { m_pickDrag = set; }
107 
111  inline ClickMode clickMode() const { return m_clickMode; }
114  inline void setClickMode(ClickMode mode) { m_clickMode = mode; }
115 
119  inline ColorList* scheme() const { return m_colors; }
122  void setScheme(ColorList *scheme);
123 
124 
128  static ColorList* defaultColors();
132  static ColorList* defaultColors2();
136  static ColorList* baseColors();
140  static ColorList* namedColors();
141 
142 signals:
148  void highlighted(const QColor &color);
153  void picked(const QColor &color);
154  void accepted();
155  void rejected();
156 
157 protected:
158  virtual void paintEvent ( QPaintEvent * event );
159  virtual bool event ( QEvent * event );
160  virtual void mouseMoveEvent ( QMouseEvent * event );
161  virtual void mousePressEvent ( QMouseEvent * event );
162  virtual void mouseReleaseEvent ( QMouseEvent * event );
163  virtual void leaveEvent ( QEvent * event );
164  virtual void keyPressEvent ( QKeyEvent * event );
165 
166  void redraw();
167 
168  int index() const;
169 
170  int m_cellSize;
171  int m_widthInCells;
172  bool m_autoSize;
173  int m_row, m_col, m_idx;
174  QPixmap m_pix;
175  bool m_pickDrag;
176  ClickMode m_clickMode;
177  QPoint m_pos;
178 
179  QColor m_hlColor, m_selColor;
180 
181  ColorList *m_colors;
182 };
183 
184 
185 } // namespace
186 
187 #endif // COLORGRID_H
void setClickMode(ClickMode mode)
Definition: colorgrid.h:114
const QColor & lastPicked() const
Definition: colorgrid.h:95
virtual ~ColorGrid()
Definition: colorgrid.cpp:29
static ColorList * defaultColors()
Definition: colorgrid.cpp:349
bool autoSize() const
Definition: colorgrid.h:79
void setAutoSize(bool autosize)
Definition: colorgrid.cpp:51
ClickMode
Defines color selection behavior.
Definition: colorgrid.h:40
void setCellSize(int size)
Definition: colorgrid.cpp:59
void setWidthInCells(int width)
Definition: colorgrid.cpp:67
static ColorList * defaultColors2()
Definition: colorgrid.cpp:381
int widthInCells() const
Definition: colorgrid.h:67
void highlighted(const QColor &color)
ColorList * scheme() const
Definition: colorgrid.h:119
int heightInCells() const
Definition: colorgrid.cpp:43
a color is picked when mouse button has been released
Definition: colorgrid.h:44
bool pickByDrag() const
Definition: colorgrid.h:100
static ColorList * baseColors()
Definition: colorgrid.cpp:413
const QColor & lastHighlighted() const
Definition: colorgrid.h:91
a color is picked when mouse button has been pressed
Definition: colorgrid.h:42
Class for visual selection of a color from the color grid.
Definition: colorgrid.h:28
static ColorList * namedColors()
Definition: colorgrid.cpp:426
void picked(const QColor &color)
int cellSize() const
Definition: colorgrid.h:60
ColorGrid(QWidget *parent=0)
Definition: colorgrid.cpp:14
void setPickByDrag(bool set)
Definition: colorgrid.h:106
void setScheme(ColorList *scheme)
Definition: colorgrid.cpp:75
ClickMode clickMode() const
Definition: colorgrid.h:111

© Sintegrial Technologies 2011-2014
http://www.sintegrial.com