]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/window.h
More code for Window
[libs/gltk.git] / source / window.h
index 13febaeea936dffc3d85c6d1fecfdb3ce25804ff..2b2b0646e5d6ac73d1ec544a352242a5f8ff6aeb 100644 (file)
@@ -6,13 +6,44 @@
 namespace Msp {
 namespace GLtk {
 
+struct DisplayOptions
+{
+       unsigned width;
+       unsigned height;
+       unsigned depth;
+       bool alpha;
+       bool doublebuffer;
+       unsigned multisample;
+       bool fullscreen;
+
+       DisplayOptions();
+};
+
 class Window
 {
 public:
-       Window();
+       sigc::signal<int, int, unsigned, unsigned> signal_button_press;
+       sigc::signal<int, int, unsigned, unsigned> signal_button_release;
+       sigc::signal<int, int> signal_pointer_motion;
+       sigc::signal<unsigned, unsigned, wchar_t> signal_key_press;
+       sigc::signal<unsigned, unsigned> signal_key_release;
+
+       Window(unsigned, unsigned);
+       Window(const DisplayOptions &);
+       ~Window();
+
+       unsigned get_width() const  { return options.width; }
+       unsigned get_height() const { return options.height; }
+       void show();
+       void add(Widget &);
+       void tick();
 private:
        Display *display;
-       Window  window;
+       DisplayOptions options;
+       ::Window  window;
+
+       void init(const DisplayOptions &);
+       void process_event(const XEvent &);
 };
 
 } // namespace GLtk