#ifndef COOKPANELBUTTON_H #define COOKPANELBUTTON_H #include #include #include #include #include #include "cookhistory.h" namespace Ui { class CookPanelButton; } class CookPanelButton : public QWidget { Q_OBJECT signals: void resized(); void clicked(CookPanelButton *); void infoClicked(CookPanelButton *); void deleteClicked(CookPanelButton *); void longPressed(CookPanelButton *); public: explicit CookPanelButton(CookRecord record, QWidget *parent = 0); ~CookPanelButton(); void setText(QString text); void showInfo(); void hideInfo(); void focusBar(); void focusInfoButton(); void focusDeleteButton(); void setLongPressEnabled(bool enabled); QPushButton *bar(); QPushButton *infoButton(); QPushButton *deleteButton(); CookRecord record; public slots: void setEnabled(bool enabled = true); protected: void keyPressEvent(QKeyEvent *event); void keyReleaseEvent(QKeyEvent *event); private slots: void emitLongPressed(); void on_pushButton_pressed(); void on_pushButton_released(); void on_pushButton_clicked(); void on_showInfoButton_clicked(); void on_deleteButton_clicked(); private: Ui::CookPanelButton *ui; QTimer longPressedTimer; bool rendered; QLabel *label; bool emitted; bool longPressEnabled; QWidget *pushed = NULL; void onEncoderLeft(); void onEncoderRight(); void onEncoderClicked(QWidget *clicked); }; #endif // COOKPANELBUTTON_H