1
0
Fork 0
mirror of https://github.com/polybar/polybar.git synced 2024-11-25 13:55:47 -05:00
polybar/include/components/screen.hpp

53 lines
1 KiB
C++
Raw Normal View History

#pragma once
#include "common.hpp"
#include "components/types.hpp"
#include "events/signal_emitter.hpp"
2016-12-26 04:27:30 -05:00
#include "events/signal_fwd.hpp"
2016-12-26 22:58:41 -05:00
#include "x11/extensions/randr.hpp"
2016-12-26 04:27:30 -05:00
#include "x11/types.hpp"
#include "x11/window.hpp"
POLYBAR_NS
// fwd
class config;
class logger;
class connection;
class signal_emitter;
class screen : public xpp::event::sink<evt::randr_screen_change_notify> {
public:
2016-12-09 03:40:46 -05:00
using make_type = unique_ptr<screen>;
static make_type make();
2016-12-09 03:02:47 -05:00
explicit screen(connection& conn, signal_emitter& emitter, const logger& logger, const config& conf);
~screen();
struct size size() const {
return m_size;
}
xcb_window_t root() const {
return m_root;
}
protected:
void handle(const evt::randr_screen_change_notify& evt);
private:
connection& m_connection;
signal_emitter& m_sig;
const logger& m_log;
const config& m_conf;
xcb_window_t m_root;
2016-12-01 02:41:49 -05:00
xcb_window_t m_proxy{XCB_NONE};
2016-12-03 10:44:31 -05:00
vector<monitor_t> m_monitors;
2016-12-26 04:37:14 -05:00
struct size m_size {0U, 0U};
bool m_sigraised{false};
};
POLYBAR_NS_END