#pragma once #include namespace mt { class Window; class Screen; } struct xcb_connection_t; struct xcb_screen_t; class XcbWindowInterface { public: static std::unique_ptr Create(); void Add(mt::Window* window, xcb_connection_t* connection, mt::Screen* screen, uint32_t eventMask) const; void Show(mt::Window* window, xcb_connection_t* connection) const; void Paint(mt::Window* window, xcb_connection_t* connection, xcb_screen_t* screen, unsigned gc) const; void Clear(mt::Window* window, xcb_connection_t* connection) const; void Map(mt::Window* window, xcb_connection_t* connection) const; }; using XcbWindowInterfacePtr = std::unique_ptr;