polybar-dwm/include/modules/tray.hpp

40 lines
945 B
C++
Raw Normal View History

#pragma once
#include "common.hpp"
#include "components/bar.hpp"
#include "modules/meta/static_module.hpp"
#include "modules/meta/types.hpp"
2022-08-28 13:15:48 +00:00
#include "x11/tray_manager.hpp"
POLYBAR_NS
namespace modules {
/**
* Wraps the tray_manager in a module.
*
* The module produces the `%{Pt}` formatting tag, which is used by the renderer
* to place the tray.
* The visibility of the tray icons is directly tied to the visibility of the
* module.
*/
2022-10-31 22:21:00 +00:00
class tray_module : public static_module<tray_module> {
public:
explicit tray_module(const bar_settings& bar_settings, string name_, const config&);
2022-10-31 22:21:00 +00:00
string get_format() const;
void set_visible(bool value) override;
2022-10-31 22:21:00 +00:00
void start() override;
2022-08-28 13:15:48 +00:00
2022-10-31 22:21:00 +00:00
bool build(builder* builder, const string& tag) const;
void update() {}
static constexpr auto TYPE = TRAY_TYPE;
2022-10-31 22:21:00 +00:00
private:
static constexpr const char* TAG_TRAY{"<tray>"};
2022-10-31 22:21:00 +00:00
tray::manager m_tray;
};
2022-08-28 13:15:48 +00:00
} // namespace modules
POLYBAR_NS_END