#pragma once #include #include #include #include "services/hyprland.hpp" class WorkspaceIndicator : public Gtk::Box { public: WorkspaceIndicator(HyprlandService &service, int monitorId); ~WorkspaceIndicator() override; private: HyprlandService &service; int monitorId; sigc::connection workspaceConnection; sigc::connection monitorConnection; std::map workspaceLabels; void rebuild(); void on_workspace_update(); void on_monitor_update(); void refreshLabel(Gtk::Label *label, HyprlandService::WorkspaceState state); };