#pragma once #include #include #include "ArtifactCountChangedEvent.h" #include "BossWaveUpdatedEvent.h" #include "BuildingBlocksChangedEvent.h" #include "EventHandler.h" #include "GameSpeedChangedEvent.h" #include "Tick.h" #include "TickAdvancedEvent.h" class QLabel; class QPushButton; class HeaderBar : public QWidget, public CombinedEventHandler { Q_OBJECT public: explicit HeaderBar(QWidget* parent = nullptr); ~HeaderBar() override; private slots: void onSpeedButton(int index); private: void handleEvent(std::shared_ptr event) override; void handleEvent(std::shared_ptr event) override; void handleEvent(std::shared_ptr event) override; void handleEvent(std::shared_ptr event) override; void handleEvent(std::shared_ptr event) override; QLabel* m_timeLabel; QLabel* m_blocksLabel; QLabel* m_artifactsLabel; QLabel* m_bossLabel; std::vector m_speedButtons; static const double kSpeeds[]; static const int kSpeedCount; };