#include "TGFrame.h"
#include "TGLayout.h"
#include "TGLWidget.h"
#include "TGLSAFrame.h"
#include "TString.h"
#include "TGLPShapeObj.h"
#include "TGLPhysicalShape.h"
#include "TGLLogicalShape.h"
#include "TGLEmbeddedViewer.h"
#include "TGLEventHandler.h"
ClassImp(TGLEmbeddedViewer);
TGLEmbeddedViewer::TGLEmbeddedViewer(const TGWindow *parent, TVirtualPad *pad,
                                     Int_t border) :
   TGLViewer(pad, 0, 0, 400, 300),
   fFrame(0),
   fBorder(border)
{
   
   
   
   Init(parent);
}
TGLEmbeddedViewer::TGLEmbeddedViewer(const TGWindow *parent, TVirtualPad *pad,
                                     TGedEditor *ged, Int_t border) :
   TGLViewer(pad, 0, 0, 400, 300),
   fFrame(0),
   fBorder(border)
{
   
   
   
   fGedEditor = ged;
   Init(parent);
}
TGLEmbeddedViewer::~TGLEmbeddedViewer()
{
   
   delete fFrame;
   fGLWidget = 0;
}
void TGLEmbeddedViewer::Init(const TGWindow *parent)
{
   
   fFrame = new TGCompositeFrame(parent);
   CreateFrames();
   fFrame->MapSubwindows();
   fFrame->Resize(fFrame->GetDefaultSize());
   fFrame->Resize(400, 300);
}
 
void TGLEmbeddedViewer::CreateFrames()
{
   
   fGLWidget = TGLWidget::Create(fFrame, kTRUE, kTRUE, 0, 10, 10);
   
   fEventHandler = new TGLEventHandler(0, this);
   fGLWidget->SetEventHandler(fEventHandler);
   fFrame->AddFrame(fGLWidget, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY,
                                                 fBorder, fBorder, fBorder, fBorder));
}
void TGLEmbeddedViewer::CreateGLWidget()
{
   
   
   if (fGLWidget) {
      Error("CreateGLWidget", "Widget already exists.");
      return;
   }
   fGLWidget = TGLWidget::Create(fFrame, kTRUE, kTRUE, 0, 10, 10);
   fGLWidget->SetEventHandler(fEventHandler);
   fFrame->AddFrame(fGLWidget, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY,
                                                 fBorder, fBorder, fBorder, fBorder));
   fFrame->Layout();
   fGLWidget->MapWindow();
}
void TGLEmbeddedViewer::DestroyGLWidget()
{
   
   
   if (fGLWidget == 0) {
      Error("DestroyGLWidget", "Widget does not exist.");
      return;
   }
   fGLWidget->UnmapWindow();
   fGLWidget->SetEventHandler(0);
   fFrame->RemoveFrame(fGLWidget);
   fGLWidget->DeleteWindow();
   fGLWidget = 0;
}
 TGLEmbeddedViewer.cxx:100  TGLEmbeddedViewer.cxx:101  TGLEmbeddedViewer.cxx:102  TGLEmbeddedViewer.cxx:103  TGLEmbeddedViewer.cxx:104  TGLEmbeddedViewer.cxx:105  TGLEmbeddedViewer.cxx:106  TGLEmbeddedViewer.cxx:107  TGLEmbeddedViewer.cxx:108  TGLEmbeddedViewer.cxx:109  TGLEmbeddedViewer.cxx:110  TGLEmbeddedViewer.cxx:111  TGLEmbeddedViewer.cxx:112  TGLEmbeddedViewer.cxx:113  TGLEmbeddedViewer.cxx:114  TGLEmbeddedViewer.cxx:115  TGLEmbeddedViewer.cxx:116  TGLEmbeddedViewer.cxx:117  TGLEmbeddedViewer.cxx:118  TGLEmbeddedViewer.cxx:119  TGLEmbeddedViewer.cxx:120  TGLEmbeddedViewer.cxx:121  TGLEmbeddedViewer.cxx:122  TGLEmbeddedViewer.cxx:123  TGLEmbeddedViewer.cxx:124  TGLEmbeddedViewer.cxx:125  TGLEmbeddedViewer.cxx:126  TGLEmbeddedViewer.cxx:127  TGLEmbeddedViewer.cxx:128  TGLEmbeddedViewer.cxx:129  TGLEmbeddedViewer.cxx:130  TGLEmbeddedViewer.cxx:131  TGLEmbeddedViewer.cxx:132  TGLEmbeddedViewer.cxx:133  TGLEmbeddedViewer.cxx:134  TGLEmbeddedViewer.cxx:135  TGLEmbeddedViewer.cxx:136  TGLEmbeddedViewer.cxx:137  TGLEmbeddedViewer.cxx:138