#include <QtCore>
#include <QWidget>
+#include <QFrame>
-class QSpinBox;
+class QFrame;
#ifdef Q_WS_X11
#include <X11/Xlib.h>
-class KCDPickerFilter;
#endif
+
+class MyFrame : public QFrame
+{
+ Q_OBJECT
+public:
+ explicit MyFrame(QWidget* parent = 0);
+
+protected:
+ void hideEvent ( QHideEvent * event );
+
+signals:
+ void getColor();
+};
+
/**
* @class ColorPickerWidget
* @brief A widget to pick a color anywhere on the screen.
public:
/** @brief Sets up the widget. */
- ColorPickerWidget(QWidget *parent = 0);
+ explicit ColorPickerWidget(QWidget *parent = 0);
/** @brief Makes sure the event filter is removed. */
virtual ~ColorPickerWidget();
protected:
- virtual void mousePressEvent(QMouseEvent *event);
- virtual void mouseReleaseEvent(QMouseEvent *event);
- virtual void keyPressEvent(QKeyEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ bool eventFilter(QObject *object, QEvent *event);
private:
/** @brief Closes the event filter and makes mouse and keyboard work again on other widgets/windows. */
void closeEventFilter();
- /** @brief Calculates the average color for a rect around @param pos with m_size->value() as width. */
-
- QColor averagePickedColor(const QPoint pos);
-
/** @brief Color of the screen at point @param p.
* @param p Position of color requested
* @param destroyImage (optional) Whether or not to keep the XImage in m_image
QColor grabColor(const QPoint &p, bool destroyImage = true);
bool m_filterActive;
- QSpinBox *m_size;
+ QRect m_grabRect;
+ QFrame *m_grabRectFrame;
#ifdef Q_WS_X11
XImage *m_image;
- KCDPickerFilter *m_filter;
#else
QImage m_image;
-#endif
-
+#endif
+
private slots:
/** @brief Sets up an event filter for picking a color. */
void slotSetupEventFilter();
+ /** @brief Calculates the average color for the pixels in the rect m_grabRect and emits colorPicked. */
+ void slotGetAverageColor();
+
signals:
- void colorPicked(QColor);
+ void colorPicked(const QColor&);
+ void displayMessage(const QString&, int);
+ /** @brief When user wants to pick a color, it's better to disable filter so we get proper color values. */
+ void disableCurrentFilter(bool);
};
#endif