// HQWidget.h - Public interface for the HOOPS/Qt Class HQWidget
// 
// More about this class
 

#ifndef HQWIDGET_H
#define HQWIDGET_H

// Qt includes
#include <qwidget.h>
 

#ifdef PARASOLID
#include "HSolidModel.h"
#include "HSolidView.h"
#else
#include "HBaseModel.h"
#include "HBaseView.h"
#endif

class HQWidget : public QWidget
{

 Q_OBJECT

public:

 HQWidget( QWidget* parent=0, const char* name=0, WFlags f=0 );
 ~HQWidget();

protected:

 long GetColorMap(); 
 long GetWindowId();

 virtual void Init(); 
 virtual void OnRightButtonDown();
 virtual void OnRightButtonUp();

 void paintEvent( QPaintEvent* );
 void resizeEvent( QResizeEvent* );
 
 void keyPressEvent ( QKeyEvent * e );
 void keyReleaseEvent ( QKeyEvent * e );
 
 void mousePressEvent( QMouseEvent * mev);
 void mouseReleaseEvent( QMouseEvent * mev);
 void mouseMoveEvent( QMouseEvent * mev);
 

#ifdef PARASOLID

 HSolidView * m_pHView;
 HSolidModel * m_pHBaseModel;

#else

 HBaseView * m_pHView;
 HBaseModel * m_pHBaseModel;

#endif

private:
 
 bool initDone;

 // X11 and Windows Specific versions supplied - 
 // chosen at compile time by defining IS_X11 or IS_WINDOWS
 // X11        version of setup_Window
 // MS Windows version of setup_window
 void setup_window();

 unsigned long state2flags(unsigned long state);

 unsigned long my_colormap; 
 unsigned long my_windowid;

};
 

#endif