30 lines
724 B
C++
30 lines
724 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
namespace mt
|
|
{
|
|
class Window;
|
|
class Screen;
|
|
}
|
|
struct xcb_connection_t;
|
|
struct xcb_screen_t;
|
|
|
|
class XcbWindowInterface
|
|
{
|
|
public:
|
|
|
|
static std::unique_ptr<XcbWindowInterface> 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<XcbWindowInterface>;
|