OSDN Git Service

b3600455ca0ab2ebc78bc3e1c19d790f0adc02bb
[qt-creator-jp/qt-creator-jp.git] / src / libs / qmleditorwidgets / colorbox.h
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
8 **
9 ** No Commercial Usage
10 **
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
15 **
16 ** GNU Lesser General Public License Usage
17 **
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file.  Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights.  These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
31 **
32 **************************************************************************/
33
34 #ifndef COLORBOX_H
35 #define COLORBOX_H
36
37 #include <qmleditorwidgets_global.h>
38 #include <QtGui/QWidget>
39 #include <QtDeclarative/qdeclarative.h>
40
41 namespace QmlEditorWidgets {
42
43 class QMLEDITORWIDGETS_EXPORT ColorBox : public QWidget
44 {
45     Q_OBJECT
46
47     Q_PROPERTY(QString strColor READ strColor WRITE setStrColor NOTIFY colorChanged)
48     Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
49     Q_PROPERTY(int hue READ hue WRITE setHue NOTIFY hueChanged)
50     Q_PROPERTY(int saturation READ saturation WRITE setSaturation NOTIFY saturationChanged)
51     Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)
52     Q_PROPERTY(int alpha READ alpha WRITE setAlpha NOTIFY alphaChanged)
53
54 public:
55     ColorBox(QWidget *parent = 0) : QWidget(parent), m_color(Qt::white), m_saturatedColor(Qt::white), m_lastHue(0)
56     {
57         setFixedWidth(130);
58         setFixedHeight(130);
59     }
60
61     void setHue(int newHue);
62     int hue() const;
63     void setAlpha(int newAlpha);
64     int alpha() const { return m_color.alpha(); }
65     void setStrColor(const QString &colorStr);
66     void setColor(const QColor &color);
67     QString strColor() const;
68     QColor color() const { return m_color; }
69     int saturation() const { return m_color.hsvSaturation(); }
70     void setSaturation(int newsaturation);
71     int value() const { return m_color.value(); }
72     void setValue(int newvalue);
73
74 signals:
75     void colorChanged();
76     void hueChanged();
77     void saturationChanged();
78     void valueChanged();
79     void alphaChanged();
80
81 protected:
82     void paintEvent(QPaintEvent *event);
83
84     void mousePressEvent(QMouseEvent *);
85     void mouseReleaseEvent(QMouseEvent *);
86     void mouseMoveEvent(QMouseEvent *);
87     void setCurrent(int x, int y);
88
89 private:
90     QColor m_color;
91     QColor m_saturatedColor;
92     bool m_mousePressed;
93     int m_lastHue;
94     QPixmap m_cache;
95 };
96
97 } //QmlEditorWidgets
98
99 QML_DECLARE_TYPE(QmlEditorWidgets::ColorBox)
100
101 #endif //COLORBOX_H