1 #pragma once 2 3 #include <QObject> 4 class lcQColorList; 5 6 class lcQColorPickerPopup : public QFrame 7 { 8 Q_OBJECT 9 10 public: 11 lcQColorPickerPopup(QWidget* Parent = nullptr, int ColorIndex = 0, bool AllowNoColor = false); 12 ~lcQColorPickerPopup(); 13 14 void exec(); 15 16 signals: 17 void changed(int colorIndex); 18 void selected(int colorIndex); 19 void hid(); 20 21 public slots: 22 void colorChanged(int colorIndex); 23 void colorSelected(int colorIndex); 24 25 protected: 26 void showEvent(QShowEvent* ShowEvent) override; 27 void hideEvent(QHideEvent* HideEvent) override; 28 void mouseReleaseEvent(QMouseEvent* MouseEvent) override; 29 30 private: 31 QEventLoop* eventLoop; 32 lcQColorList* colorList; 33 }; 34 35 class lcQColorPicker : public QPushButton 36 { 37 Q_OBJECT 38 39 public: 40 lcQColorPicker(QWidget* Parent = nullptr, bool AllowNoColor = false); 41 ~lcQColorPicker(); 42 43 int currentColor() const; 44 int currentColorCode() const; 45 void setCurrentColor(int colorIndex); 46 void setCurrentColorCode(int colorCode); 47 48 public slots: 49 void changed(int colorIndex); 50 void selected(int colorIndex); 51 52 signals: 53 void colorChanged(int colorIndex); 54 55 private slots: 56 void buttonPressed(bool toggled); 57 void popupClosed(); 58 59 protected: 60 void UpdateIcon(); 61 62 int mCurrentColorIndex = 0; 63 int mInitialColorIndex = 0; 64 bool mAllowNoColor = false; 65 }; 66