#pragma once #include #include #include "AModule.hpp" #include "bar.hpp" #include "modules/niri/backend.hpp" namespace waybar::modules::niri { class Workspaces : public AModule, public EventHandler { public: Workspaces(const std::string &, const Bar &, const Json::Value &); ~Workspaces() override; void update() override; private: void onEvent(const Json::Value &ev) override; void doUpdate(); Gtk::Button &addButton(const Json::Value &ws); std::string getIcon(const std::string &value, const Json::Value &ws); const Bar &bar_; Gtk::Box box_; // Map from niri workspace id to button. std::unordered_map buttons_; }; } // namespace waybar::modules::niri