2022-04-15 21:50:04 +00:00
|
|
|
#include "modules/tray.hpp"
|
|
|
|
|
|
|
|
#include "modules/meta/base.inl"
|
2022-08-28 13:15:48 +00:00
|
|
|
#include "x11/background_manager.hpp"
|
2022-04-15 21:50:04 +00:00
|
|
|
|
|
|
|
POLYBAR_NS
|
|
|
|
namespace modules {
|
|
|
|
template class module<tray_module>;
|
|
|
|
|
|
|
|
tray_module::tray_module(const bar_settings& bar_settings, string name_)
|
2022-08-28 13:15:48 +00:00
|
|
|
: static_module<tray_module>(bar_settings, move(name_))
|
|
|
|
, m_tray(connection::make(), signal_emitter::make(), m_log, bar_settings) {
|
2022-04-15 21:50:04 +00:00
|
|
|
m_formatter->add(DEFAULT_FORMAT, TAG_TRAY, {TAG_TRAY});
|
|
|
|
m_sig.attach(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
string tray_module::get_format() const {
|
|
|
|
return DEFAULT_FORMAT;
|
|
|
|
}
|
|
|
|
|
2022-08-28 13:15:48 +00:00
|
|
|
void tray_module::start() {
|
|
|
|
m_tray.setup(name_raw());
|
|
|
|
this->static_module<tray_module>::start();
|
|
|
|
}
|
|
|
|
|
2022-04-15 21:50:04 +00:00
|
|
|
bool tray_module::build(builder* builder, const string& tag) const {
|
|
|
|
if (tag == TAG_TRAY) {
|
|
|
|
builder->control(tags::controltag::t);
|
|
|
|
extent_val offset_extent = {extent_type::PIXEL, static_cast<float>(m_width)};
|
|
|
|
builder->offset(offset_extent);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool tray_module::on(const signals::ui_tray::tray_width_change& evt) {
|
|
|
|
m_width = evt.cast();
|
|
|
|
broadcast();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void tray_module::teardown() {
|
|
|
|
m_sig.detach(this);
|
|
|
|
}
|
|
|
|
|
2022-08-28 13:15:48 +00:00
|
|
|
} // namespace modules
|
2022-04-15 21:50:04 +00:00
|
|
|
POLYBAR_NS_END
|