#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;
}
ResetInitGL();
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;
}
ResetInitGL();
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 TGLEmbeddedViewer.cxx:139 TGLEmbeddedViewer.cxx:140 TGLEmbeddedViewer.cxx:141 TGLEmbeddedViewer.cxx:142