/
draw_p_x11.hpp
70 lines (59 loc) · 2.21 KB
/
draw_p_x11.hpp
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**************************************************************************
* Copyright 2012 KISS Institute for Practical Robotics *
* *
* This file is part of libkovan. *
* *
* libkovan is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 2 of the License, or *
* (at your option) any later version. *
* *
* libkovan is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with libkovan. Check the LICENSE file in the project root. *
* If not, see <http://www.gnu.org/licenses/>. *
**************************************************************************/
#ifndef _DRAW_P_X11_HPP_
#define _DRAW_P_X11_HPP_
#include "build_options.h"
#if BUILD_WITH_X11
#include <cairo/cairo.h>
#include <cairo/cairo-pdf.h>
#include <cairo/cairo-ps.h>
#include <cairo/cairo-xlib.h>
#include <X11/Xlib.h>
namespace Private
{
class Draw
{
public:
Draw();
~Draw();
bool open();
void point(const int& x, const int& y);
void line(const int& sx, const int& sy, const int& ex, const int& ey);
void clear();
void setSize(const unsigned int& width, const unsigned int& height);
void raise();
void close();
bool isInited();
void init();
void update();
private:
bool m_inited;
void paint();
Display *m_display;
Window m_rootWindow;
Window m_window;
Colormap m_colorMap;
GC m_gc;
int m_screen;
cairo_surface_t *m_surface;
};
}
#endif
#endif