/////////////////////////////////////////////////////////////////////////////
// Name: glcanvas.h
// Purpose: wxGLCanvas, for using OpenGL with wxWindows under Macintosh
-// Author: AUTHOR
+// Author: Stefan Csomor
// Modified by:
-// Created: ??/??/98
+// Created: 1998-01-01
// RCS-ID: $Id$
-// Copyright: (c) AUTHOR
-// Licence: wxWindows licence
+// Copyright: (c) Stefan Csomor
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma interface "glcanvas.h"
+#if defined(__GNUG__) && !defined(__APPLE__)
+# pragma interface "glcanvas.h"
#endif
#ifndef _WX_GLCANVAS_H_
#include "wx/palette.h"
#include "wx/scrolwin.h"
-
-#include <gl.h>
-#include <agl.h>
+#include "wx/app.h"
+
+#ifdef __DARWIN__
+# include <OpenGL/gl.h>
+# include <AGL/agl.h>
+#else
+# include <gl.h>
+# include <agl.h>
+#endif
//---------------------------------------------------------------------------
// Constants for attriblist
void SetCurrent();
void Update(); // must be called after window drag/grows/zoom or clut change
- void SetColour(const char *colour);
+ void SetColour(const wxChar *colour);
void SwapBuffers();
wxWindow* m_window;
};
-class WXDLLEXPORT wxGLCanvas: public wxScrolledWindow
+class WXDLLEXPORT wxGLCanvas: public wxWindow
{
DECLARE_CLASS(wxGLCanvas)
public:
wxGLCanvas(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
- const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette);
+ const wxString& name = wxT("GLCanvas") , int *attribList = 0, const wxPalette& palette = wxNullPalette);
wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "GLCanvas",
- int *attribList = (int*) NULL, const wxPalette& palette = wxNullPalette );
+ const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxT("GLCanvas"),
+ int *attribList = (int*) NULL, const wxPalette& palette = wxNullPalette );
wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0,
- const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette );
+ const wxString& name = wxT("GLCanvas"), int *attribList = 0, const wxPalette& palette = wxNullPalette );
~wxGLCanvas();
bool Create(wxWindow *parent, const wxGLContext *shared, wxWindowID id,
const wxPoint& pos, const wxSize& size, long style, const wxString& name,
- int *attribList, const wxPalette& palette);
+ int *attribList, const wxPalette& palette);
void SetCurrent();
- void SetColour(const char *colour);
+ void SetColour(const wxChar *colour);
void SwapBuffers();
void UpdateContext();
void SetViewport();
+ virtual bool Show(bool show = TRUE) ;
// Unlike some other platforms, this must get called if you override it.
// It sets the viewport correctly and update the context.
// You shouldn't call glViewport yourself either (use SetViewport if you must reset it.)
void OnSize(wxSizeEvent& event);
+
+ virtual void MacSuperChangedPosition() ;
+ virtual void MacTopLevelWindowChangedPosition() ;
+ virtual void MacSuperShown( bool show ) ;
+
+ void MacUpdateView() ;
inline wxGLContext* GetContext() const { return m_glContext; }
protected:
wxGLContext* m_glContext;
-
+ bool m_macCanvasIsShown ;
DECLARE_EVENT_TABLE()
};