1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#pragma once
#include "common.hpp"
#include "utils/concurrency.hpp"
#include "x11/connection.hpp"
POLYBAR_NS
class connection;
namespace modules {
struct event_handler_interface {
virtual ~event_handler_interface() {}
virtual void connect(connection&) {}
virtual void disconnect(connection&) {}
};
template <typename Event, typename... Events>
class event_handler : public event_handler_interface, public xpp::event::sink<Event, Events...> {
public:
virtual ~event_handler() {}
virtual void connect(connection& conn) override {
conn.attach_sink(this, SINK_PRIORITY_MODULE);
}
virtual void disconnect(connection& conn) override {
conn.detach_sink(this, SINK_PRIORITY_MODULE);
}
};
}
POLYBAR_NS_END
|