#pragma once #include #include #include #include "components/timer.hpp" #include "services/timerService.hpp" #include "gtkmm/box.h" class TimerWidget : public Gtk::Box { public: TimerWidget(); ~TimerWidget(); void addTimer(const std::string &duration, uint64_t timerId); void removeTimer(uint64_t timerId); void activateTimer(uint64_t timerId); private: std::shared_ptr timerService = TimerService::getInstance(); bool updatingText = false; std::string rawDigits; std::map> activeTimers; sigc::connection timerSetConnection; sigc::connection timerCancelledConnection; sigc::connection timerExpiredConnection; sigc::connection tickConnection; };