washwindow.h 1.34 KB
#ifndef WASHWINDOW_H
#define WASHWINDOW_H

#include <QMainWindow>
#include <QTimer>

#include "udphandler.h"

namespace Ui {
class WashWindow;
}

class WashWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit WashWindow(QWidget *parent = 0);
    ~WashWindow();

protected:
    void keyPressEvent(QKeyEvent *event);
    void keyReleaseEvent(QKeyEvent *event);

private slots:
    void start(int type);
    void resume();
    void stop();
    void returnToClock();
    void updateGauge();
    void updateView();

    void showIdle();
    void showOpenDoor();
    void showCloseDoor();
    void showWash();
    void request();

    void onChanged();

    void on_backButton_clicked();
    void on_configButton_clicked();
    void on_helpButton_clicked();

private:
    Ui::WashWindow *ui;
    UdpHandler *udp;

    enum State {
        Idle, CoolDown, OpenDoor, CloseDoor, Request, Running, Stopping,
        RequestClean, RunningClean
    } state = Idle;

    enum AnimationState {
        Stopped, ShowingOpenDoor, ShowingCloseDoor, ShowingWash
    } animationState = Stopped;

    bool selected;
    bool opened;
    bool started;
    bool run;
    bool canceled;
    int type;

    QTimer returnToClockTimer;

    QWidget *pushed = NULL;

    void onEncoderLeft();
    void onEncoderRight();
    void onEncoderClicked(QWidget *clicked);
};

#endif // WASHWINDOW_H