// 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.


#ifndef _dMAINwgT_
#define _dMAINwgT_


#include <qwidget.h>
#include <stdio.h> // temp for fprintf to stderr--will put in debug later.

class QPushButton;
class QFrame;
class QLabel;

class ViewerQt;
class vGLWidget;
class VrmlScene;

class globalSignaller : public QObject
{
    Q_OBJECT
signals:
     void destroy_scene();
public:
     void sig_destroy_world()
     {
         //fprintf(stderr, "globalSignaller emitting destroy_scene()\n");
         emit destroy_scene();
     }
};

static globalSignaller GS;

class mainWgt : public QWidget
{
     Q_OBJECT
public:
    mainWgt( QWidget *parent=0, const char *name=0 );
    ~mainWgt();

signals:
    void key_quit();

public slots:
    void load();
    void load( const char *fileName );
    void save();
    void print();
    void closeDoc();
    void sys_mesg(const char *);
    void SetStop( bool );
    void SceneDestroy( );

public:
    VrmlScene   *vrmlScene;
    VrmlScene *scene() { return vrmlScene;}
    ViewerQt *Viewer() { return viewer;}

protected:
    void  resizeEvent( QResizeEvent * );
//    void closeEvent( QCloseEvent * );
    void keyPressEvent( QKeyEvent * );

private:
    ViewerQt    *viewer;
    vGLWidget   *canvas;

    QFrame	*frame;
    QLabel      *status;
    QLabel      *uistatus;
};

#endif // _dMAINwgT_

