qcolordialog.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
00004 ** All rights reserved.
00005 ** Contact: Nokia Corporation (qt-info@nokia.com)
00006 **
00007 ** This file is part of the QtGui module of the Qt Toolkit.
00008 **
00009 ** $QT_BEGIN_LICENSE:LGPL$
00010 ** Commercial Usage
00011 ** Licensees holding valid Qt Commercial licenses may use this file in
00012 ** accordance with the Qt Commercial License Agreement provided with the
00013 ** Software or, alternatively, in accordance with the terms contained in
00014 ** a written agreement between you and Nokia.
00015 **
00016 ** GNU Lesser General Public License Usage
00017 ** Alternatively, this file may be used under the terms of the GNU Lesser
00018 ** General Public License version 2.1 as published by the Free Software
00019 ** Foundation and appearing in the file LICENSE.LGPL included in the
00020 ** packaging of this file.  Please review the following information to
00021 ** ensure the GNU Lesser General Public License version 2.1 requirements
00022 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
00023 **
00024 ** In addition, as a special exception, Nokia gives you certain additional
00025 ** rights.  These rights are described in the Nokia Qt LGPL Exception
00026 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this module.
00027 **
00028 ** GNU General Public License Usage
00029 ** Alternatively, this file may be used under the terms of the GNU
00030 ** General Public License version 3.0 as published by the Free Software
00031 ** Foundation and appearing in the file LICENSE.GPL included in the
00032 ** packaging of this file.  Please review the following information to
00033 ** ensure the GNU General Public License version 3.0 requirements will be
00034 ** met: http://www.gnu.org/copyleft/gpl.html.
00035 **
00036 ** If you have questions regarding the use of this file, please contact
00037 ** Nokia at qt-info@nokia.com.
00038 ** $QT_END_LICENSE$
00039 **
00040 ****************************************************************************/
00041 
00042 #ifndef QCOLORDIALOG_H
00043 #define QCOLORDIALOG_H
00044 
00045 #include <QtGui/qdialog.h>
00046 
00047 QT_BEGIN_HEADER
00048 
00049 QT_BEGIN_NAMESPACE
00050 
00051 QT_MODULE(Gui)
00052 
00053 #ifndef QT_NO_COLORDIALOG
00054 
00055 class QColorDialogPrivate;
00056 
00057 class Q_GUI_EXPORT QColorDialog : public QDialog
00058 {
00059     Q_OBJECT
00060     Q_DECLARE_PRIVATE(QColorDialog)
00061     Q_ENUMS(ColorDialogOption)
00062     Q_PROPERTY(QColor currentColor READ currentColor WRITE setCurrentColor
00063                NOTIFY currentColorChanged)
00064     Q_PROPERTY(ColorDialogOptions options READ options WRITE setOptions)
00065 
00066 public:
00067     enum ColorDialogOption {
00068         ShowAlphaChannel    = 0x00000001,
00069         NoButtons           = 0x00000002,
00070         DontUseNativeDialog = 0x00000004
00071     };
00072 
00073     Q_DECLARE_FLAGS(ColorDialogOptions, ColorDialogOption)
00074 
00075     explicit QColorDialog(QWidget *parent = 0);
00076     explicit QColorDialog(const QColor &initial, QWidget *parent = 0);
00077     ~QColorDialog();
00078 
00079     void setCurrentColor(const QColor &color);
00080     QColor currentColor() const;
00081 
00082     QColor selectedColor() const;
00083 
00084     void setOption(ColorDialogOption option, bool on = true);
00085     bool testOption(ColorDialogOption option) const;
00086     void setOptions(ColorDialogOptions options);
00087     ColorDialogOptions options() const;
00088 
00089 #ifdef Q_NO_USING_KEYWORD
00090     void open() { QDialog::open(); }
00091 #else
00092     using QDialog::open;
00093 #endif
00094     void open(QObject *receiver, const char *member);
00095 
00096     void setVisible(bool visible);
00097 
00098     // ### Qt 5: merge overloads with title = QString()
00099     static QColor getColor(const QColor &initial, QWidget *parent, const QString &title,
00100                            ColorDialogOptions options = 0);
00101     static QColor getColor(const QColor &initial = Qt::white, QWidget *parent = 0);
00102 
00103     // obsolete
00104     static QRgb getRgba(QRgb rgba = 0xffffffff, bool *ok = 0, QWidget *parent = 0);
00105 
00106     // ### Qt 5: use QColor in signatures
00107     static int customCount();
00108     static QRgb customColor(int index);
00109     static void setCustomColor(int index, QRgb color);
00110     static void setStandardColor(int index, QRgb color);
00111 
00112 #ifdef QT3_SUPPORT
00113     static QColor getColor(const QColor &init, QWidget *parent, const char *name)
00114         { Q_UNUSED(name); return getColor(init, parent); }
00115     static QRgb getRgba(QRgb rgba, bool *ok, QWidget *parent, const char *name)
00116         { Q_UNUSED(name); return getRgba(rgba, ok, parent); }
00117 #endif
00118 
00119 Q_SIGNALS:
00120     void currentColorChanged(const QColor &color);
00121     void colorSelected(const QColor &color);
00122 
00123 protected:
00124     void changeEvent(QEvent *event);
00125     void done(int result);
00126 
00127 private:
00128     Q_DISABLE_COPY(QColorDialog)
00129 
00130     Q_PRIVATE_SLOT(d_func(), void _q_addCustom())
00131     Q_PRIVATE_SLOT(d_func(), void _q_newHsv(int h, int s, int v))
00132     Q_PRIVATE_SLOT(d_func(), void _q_newColorTypedIn(QRgb rgb))
00133     Q_PRIVATE_SLOT(d_func(), void _q_newCustom(int, int))
00134     Q_PRIVATE_SLOT(d_func(), void _q_newStandard(int, int))
00135 #if defined(Q_WS_MAC)
00136     Q_PRIVATE_SLOT(d_func(), void _q_macRunNativeAppModalPanel())
00137 #endif
00138 
00139     friend class QColorShower;
00140 };
00141 
00142 Q_DECLARE_OPERATORS_FOR_FLAGS(QColorDialog::ColorDialogOptions)
00143 
00144 #endif // QT_NO_COLORDIALOG
00145 
00146 QT_END_NAMESPACE
00147 
00148 QT_END_HEADER
00149 
00150 #endif // QCOLORDIALOG_H