#pragma once #include #include #include #include #include "services/hyprland.hpp" #include "gtkmm/overlay.h" class WorkspaceIndicator : public Gtk::Box { public: WorkspaceIndicator(int monitorId); ~WorkspaceIndicator() override; private: HyprlandService *service = HyprlandService::getInstance(); int monitorId; sigc::connection workspaceConnection; sigc::connection monitorConnection; std::map workspaceIndicators; std::map> workspaceGestures; void rebuild(); void on_workspace_update(); void on_monitor_update(); void refreshLabel(Gtk::Overlay *overlay, const HyprlandService::WorkspaceState &state); };