| 18 | } |
| 19 | |
| 20 | auto waybar::modules::Load::update() -> void { |
| 21 | // TODO: as creating dynamic fmt::arg arrays is buggy we have to calc both |
| 22 | auto [load1, load5, load15] = Load::getLoad(); |
| 23 | if (tooltipEnabled()) { |
| 24 | auto tooltip = fmt::format("Load 1: {}\nLoad 5: {}\nLoad 15: {}", load1, load5, load15); |
| 25 | label_.set_tooltip_text(tooltip); |
| 26 | } |
| 27 | auto format = format_; |
| 28 | auto state = getState(load1); |
| 29 | if (!state.empty() && config_["format-" + state].isString()) { |
| 30 | format = config_["format-" + state].asString(); |
| 31 | } |
| 32 | |
| 33 | if (format.empty()) { |
| 34 | event_box_.hide(); |
| 35 | } else { |
| 36 | event_box_.show(); |
| 37 | auto icons = std::vector<std::string>{state}; |
| 38 | fmt::dynamic_format_arg_store<fmt::format_context> store; |
| 39 | store.push_back(fmt::arg("load1", load1)); |
| 40 | store.push_back(fmt::arg("load5", load5)); |
| 41 | store.push_back(fmt::arg("load15", load15)); |
| 42 | store.push_back(fmt::arg("icon1", getIcon(load1, icons))); |
| 43 | store.push_back(fmt::arg("icon5", getIcon(load5, icons))); |
| 44 | store.push_back(fmt::arg("icon15", getIcon(load15, icons))); |
| 45 | label_.set_markup(fmt::vformat(format, store)); |
| 46 | } |
| 47 | |
| 48 | // Call parent update |
| 49 | ALabel::update(); |
| 50 | } |
| 51 | |
| 52 | std::tuple<double, double, double> waybar::modules::Load::getLoad() { |
| 53 | double load[3]; |