]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/glcanvas/gtk/glcanvas.h
Fixes to avoid an endless event looping for wxGTK
[wxWidgets.git] / utils / glcanvas / gtk / glcanvas.h
index 837d92f3c530928d5c6515e9417922c86ff9a894..3b7cb08cbd15e672b14815060cbca7ad31d3cf1d 100644 (file)
@@ -54,10 +54,7 @@ class wxGLCanvas;
 
 class wxGLContext: public wxObject
 {
-  DECLARE_CLASS(wxGLContext)
-   
-  public:
-  
+public:
     wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette );
     wxGLContext( 
                bool WXUNUSED(isRGB), wxWindow *win, 
@@ -79,13 +76,15 @@ class wxGLContext: public wxObject
     inline GtkWidget* GetWidget() const { return m_widget; }
     inline GLXContext GetContext() const { return m_glContext; }
 
- public:
-
+public:
    GLXContext       m_glContext;
 
    GtkWidget       *m_widget;
    wxPalette        m_palette;
    wxWindow*        m_window;
+   
+private:
+  DECLARE_CLASS(wxGLContext)
 };
 
 //---------------------------------------------------------------------------
@@ -94,9 +93,7 @@ class wxGLContext: public wxObject
 
 class wxGLCanvas: public wxScrolledWindow
 {
-   DECLARE_CLASS(wxGLCanvas)
-   
- public:
+public:
    wxGLCanvas( wxWindow *parent, wxWindowID id = -1, 
         const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize, 
@@ -111,6 +108,14 @@ class wxGLCanvas: public wxScrolledWindow
         int *attribList = (int*) NULL, 
         const wxPalette& palette = wxNullPalette );
 
+   inline wxGLCanvas() {
+      m_glContext = (wxGLContext*) NULL;
+      m_sharedContext = (wxGLContext*) NULL;
+      m_glWidget = (GtkWidget*) NULL;
+      m_vi = (void*) NULL;
+      m_exposed = FALSE;
+   }
+
    bool Create( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
         wxWindowID id = -1, 
         const wxPoint& pos = wxDefaultPosition,
@@ -126,21 +131,22 @@ class wxGLCanvas: public wxScrolledWindow
    void SwapBuffers();
 
    void OnSize(wxSizeEvent& event);
+   
+   void OnInternalIdle();
 
    inline wxGLContext* GetContext() const { return m_glContext; } 
 
  // implementation
   
-    virtual void DoSetSize( int x, int y, int width, int height,
-      int sizeFlags = wxSIZE_AUTO );
-    
-    virtual GtkWidget *GetConnectWidget();
-    bool IsOwnGtkWindow( GdkWindow *window );
-  
-    wxGLContext      *m_glContext; 
+    wxGLContext      *m_glContext,
+                     *m_sharedContext;
+    void             *m_vi;
     GtkWidget        *m_glWidget;
+    bool              m_exposed;
 
-  DECLARE_EVENT_TABLE()
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_CLASS(wxGLCanvas)
 };
 
 #endif