00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef COLORPOPUPMENU_H
00034 #define COLORPOPUPMENU_H
00035
00036 #include <qframe.h>
00037 #include <qpopupmenu.h>
00038
00039 class QWidget;
00040 class QGridLayout;
00041
00052 class OColorPanelButton : public QFrame
00053 {
00054 Q_OBJECT
00055
00056 public:
00057
00068 OColorPanelButton(const QColor& color, QWidget* parent = 0, const char* name = 0);
00069
00074 ~OColorPanelButton();
00075
00085 void setActive(bool active);
00086
00096 void enterEvent(QEvent* e);
00097
00107 void leaveEvent(QEvent* e);
00108
00117 void paintEvent(QPaintEvent* e);
00118
00130 void mouseReleaseEvent(QMouseEvent* e);
00131
00132 signals:
00133
00143 void selected(const QColor&);
00144
00145 private:
00146 QColor m_color;
00147 bool m_active : 1;
00148 class ColorPanelButtonPrivate;
00149 ColorPanelButtonPrivate *d;
00150 };
00151
00165 class OColorPopupMenu : public QPopupMenu
00166 {
00167 Q_OBJECT
00168
00169 public:
00170
00181
00182 OColorPopupMenu( const QColor& color, QWidget* parent = 0, const char* name = 0 );
00183
00188 ~OColorPopupMenu();
00189
00190 private:
00191 class ColorPopupMenuPrivate;
00192 ColorPopupMenuPrivate *d;
00193 QColor m_color;
00194 QWidget* colorPanel;
00195 QGridLayout* colorLayout;
00196
00208 void addColor( const QColor& color, int row, int col );
00209
00210 signals:
00211
00221 void colorSelected( const QColor& color );
00222
00223 protected slots:
00224
00238 void buttonSelected( const QColor& color );
00239
00252 void moreColorClicked();
00253 };
00254
00255 #endif // COLORPOPUPMENUANEL_H