CMPlatform/src/UNIX/XCBWindow.h
2020-01-23 22:06:04 +08:00

43 lines
1022 B
C++

#include<hgl/platform/Window.h>
#include<xcb/xcb.h>
#include<xcb/xcb_atom.h>
namespace hgl
{
class XCBWindow:public Window
{
xcb_connection_t *connection;
xcb_screen_t *screen;
xcb_window_t window;
xcb_intern_atom_reply_t *atom_wm_delete_window;
private:
bool InitConnection();
public:
XCBWindow(const UTF8String &wn);
~XCBWindow();
bool Create(uint w,uint h)override;
bool Create(uint,uint,uint)override{}
void Close()override;
xcb_connection_t *GetConnection(){return connection;}
xcb_screen_t *GetScreen(){return screen;}
xcb_window_t GetWindow(){return window;}
void SetCaption(const OSString &caption) override;
void Show()override{}
void Hide()override{}
void ToMinWindow() override;
void ToMaxWindow() override;
bool MessageProc() override;
bool WaitMessage() override;
};//class XCBWindow:public Window
}//namespace hgl