#include "AIconLabel.hpp" #include namespace waybar { AIconLabel::AIconLabel(const Json::Value &config, const std::string &name, const std::string &id, const std::string &format, uint16_t interval, bool ellipsize, bool enable_click, bool enable_scroll) : ALabel(config, name, id, format, interval, ellipsize, enable_click, enable_scroll) { event_box_.remove(); box_.set_orientation(Gtk::Orientation::ORIENTATION_HORIZONTAL); // set aesthetic default spacing int spacing = config_["icon-spacing"].isInt() ? config_["icon-spacing"].asInt() : -5; box_.set_spacing(spacing); int margin_top = config_["margin-top"].isInt() ? config_["margin-top"].asInt() : 6; box_.set_margin_top(margin_top); box_.add(image_); box_.add(label_); event_box_.add(box_); } auto AIconLabel::update() -> void { image_.set_visible(image_.get_visible() && iconEnabled()); ALabel::update(); } bool AIconLabel::iconEnabled() const { return config_["icon"].isBool() ? config_["icon"].asBool() : false; } } // namespace waybar