// Qt Viewer for libVRML97
//
// Copyright (C) 1999 by Kenneth Bentley <bentley@nuc.net>
//
// This software may be distributed under the terms of the Q
// Public License, version 1.0 or later. Please see the file LICENSE for 
// terms. 

// based on libVRML97 by Chris Morley. and gtkLookat, by Erik Andersen

// libVRML97 is Copyright (C) 1998,1999 Chris Morley (cmorley@vermontel.com)

// gtkLookat is Copyright (C) 1998 by Erik Andersen <andersee@debian.org> under
// the terms of the GNU Public License. Erik Anderson has granted permission to 
// license this derivative work under QPL.

#include <stdio.h>
#ifndef _vGLWidGET_
#define _vGLWidGET_

/**
  * vGLWidget. QWidget with an openGL context for rendering
  * VRML stuff.  VRML is handled independantly thru libVRML97
  *
**/

#include <qgl.h>

#ifdef Qt2x
#define rodent_PRESS      QEvent::MouseButtonPress
#define rodent_RELEASE    QEvent::MouseButtonRelease
#define rodent_MOVE       QEvent::MouseMove
/*  Levent == local event, just using local-to-qtlookat
 *  globals to differentiate Qt1.x from Qt2.x
 */
#define Levent_TIMER      QEvent::Timer
#define Levent_PAINT      QEvent::Paint
#define Levent_RESIZE     QEvent::Resize
#define Levent_SHOW       QEvent::Show
#define Levent_KEYPRESS   QEvent::KeyPress

#else

#define rodent_PRESS      Event_MouseButtonPress
#define rodent_RELEASE    Event_MouseButtonRelease
#define rodent_MOVE       Event_MouseMove

/*  Levent == local event, just using local-to-qtlookat
 *  globals to differentiate Qt1.x from Qt2.x
 */
#define Levent_TIMER      Event_Timer
#define Levent_PAINT      Event_Paint
#define Levent_RESIZE     Event_Resize
#define Levent_SHOW       Event_Show
#define Levent_KEYPRESS   Event_KeyPress

#endif

class ViewerQt;

class vGLWidget : public QGLWidget
{

public:
    vGLWidget( QWidget *parent=0, const char *name=0 );
    
    void setViewerPtr( ViewerQt *);

protected:
    bool event(QEvent *);
    
private:
    ViewerQt  *viewer;
    QWidget  *_parent;

};

#endif /* _vGLWidGET_ */


