-////////////////////////////////////////////////////////////////////////////////
-// This program is free software; you can redistribute it and/or //
-// modify it under the terms of the GNU General Public License //
-// version 2 as published by the Free Software Foundation. //
-// //
-// This program 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. //
-// //
-// Written and (C) by François Fleuret //
-// Contact <francois.fleuret@epfl.ch> for comments & bug reports //
-////////////////////////////////////////////////////////////////////////////////
+// Written and (C) by Francois Fleuret
+// Contact <francois.fleuret@idiap.ch> for comments & bug reports
#ifndef SIMPLE_WINDOW_H
#define SIMPLE_WINDOW_H
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+#include <X11/XKBlib.h>
+
+#ifdef CAIRO_SUPPORT
+#include <cairo.h>
+#include <cairo-xlib.h>
+#endif
class SimpleEvent {
public:
class SimpleWindow {
Display *_display;
+ int _screen;
+ Visual *_visual;
Window _window;
Pixmap _pixmap;
GC _gc;
+#ifdef CAIRO_SUPPORT
+ cairo_t *_cairo_context;
+ cairo_surface_t *_cairo_surface;
+#endif
+
protected:
int _red_mask, _green_mask, _blue_mask;
int _red_shift, _green_shift, _blue_shift;
int _width, _height;
public:
- SimpleWindow(char *name, int x, int y, int w, int h);
+ SimpleWindow(const char *name, int x, int y, int w, int h);
virtual ~SimpleWindow();
virtual int width();
virtual void draw_point(int x, int y);
virtual void draw_line(int x1, int y1, int x2, int y2);
virtual void draw_circle(int x, int y, int r);
- virtual void draw_text(char *s, int x, int y);
+ virtual void draw_text(const char *s, int x, int y);
virtual void fill_rectangle(int x, int y, int w, int h);
virtual void fill_polygon(int nb, int *x, int *y);
virtual void show();
virtual int file_descriptor();
virtual SimpleEvent event();
+
+#ifdef CAIRO_SUPPORT
+ virtual cairo_t *get_cairo_context_resource();
+#endif
};
#endif