#pragma once

#include <QMovie>
#include <QLabel>
#include <QPushButton>

#include "common/util.h"
#include "selfdrive/ui/ui.h"

class RecordButton : public QPushButton {
  Q_OBJECT

public:
  RecordButton(QWidget* parent = 0);

private:
  void paintEvent(QPaintEvent*) override;
};

class BodyWindow : public QWidget {
  Q_OBJECT

public:
  BodyWindow(QWidget* parent = 0);

private:
  bool charging = false;
  uint64_t last_button = 0;
  FirstOrderFilter fuel_filter;
  QLabel *face;
  QMovie *awake, *sleep;
  RecordButton *btn;
  void paintEvent(QPaintEvent*) override;

private slots:
  void updateState(const UIState &s);
  void offroadTransition(bool onroad);
};