Update.
[universe.git] / simple_window.h
index 3761fcd..5981aef 100644 (file)
@@ -1,17 +1,6 @@
 
 
-////////////////////////////////////////////////////////////////////////////////
-// 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
 
 #ifndef SIMPLE_WINDOW_H
 #define SIMPLE_WINDOW_H
@@ -23,6 +12,12 @@ using namespace std;
 
 #include <X11/Xlib.h>
 #include <X11/Xutil.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 SimpleEvent {
 public:
@@ -42,17 +37,24 @@ public:
 
 class SimpleWindow {
   Display *_display;
 
 class SimpleWindow {
   Display *_display;
+  int _screen;
+  Visual *_visual;
   Window _window;
   Pixmap _pixmap;
   GC _gc;
 
   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:
 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 ~SimpleWindow();
 
   virtual int width();
@@ -64,7 +66,7 @@ public:
   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_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 void fill_rectangle(int x, int y, int w, int h);
   virtual void fill_polygon(int nb, int *x, int *y);
   virtual void show();
@@ -72,6 +74,10 @@ public:
 
   virtual int file_descriptor();
   virtual SimpleEvent event();
 
   virtual int file_descriptor();
   virtual SimpleEvent event();
+
+#ifdef CAIRO_SUPPORT
+  virtual cairo_t *get_cairo_context_resource();
+#endif
 };
 
 #endif
 };
 
 #endif