28 ClassImp(TGLEmbeddedViewer);
35 TGLEmbeddedViewer::TGLEmbeddedViewer(
const TGWindow *parent, TVirtualPad *pad,
37 TGLViewer(pad, 0, 0, 400, 300),
49 TGLEmbeddedViewer::TGLEmbeddedViewer(
const TGWindow *parent, TVirtualPad *pad,
50 TGedEditor *ged, Int_t border) :
51 TGLViewer(pad, 0, 0, 400, 300),
62 TGLEmbeddedViewer::~TGLEmbeddedViewer()
71 void TGLEmbeddedViewer::Init(
const TGWindow *parent)
73 fFrame =
new TGCompositeFrame(parent);
77 fFrame->MapSubwindows();
78 fFrame->Resize(fFrame->GetDefaultSize());
79 fFrame->Resize(400, 300);
85 void TGLEmbeddedViewer::CreateFrames()
87 fGLWidget = TGLWidget::Create(fFrame, kTRUE, kTRUE, 0, 10, 10);
90 fEventHandler =
new TGLEventHandler(0,
this);
91 fGLWidget->SetEventHandler(fEventHandler);
93 fFrame->AddFrame(fGLWidget,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY,
94 fBorder, fBorder, fBorder, fBorder));
101 void TGLEmbeddedViewer::CreateGLWidget()
104 Error(
"CreateGLWidget",
"Widget already exists.");
108 fGLWidget = TGLWidget::Create(fFrame, kTRUE, kTRUE, 0, 10, 10);
109 fGLWidget->SetEventHandler(fEventHandler);
111 fFrame->AddFrame(fGLWidget,
new TGLayoutHints(kLHintsExpandX | kLHintsExpandY,
112 fBorder, fBorder, fBorder, fBorder));
115 fGLWidget->MapWindow();
122 void TGLEmbeddedViewer::DestroyGLWidget()
124 if (fGLWidget == 0) {
125 Error(
"DestroyGLWidget",
"Widget does not exist.");
129 fGLWidget->UnmapWindow();
130 fGLWidget->SetEventHandler(0);
132 fFrame->RemoveFrame(fGLWidget);
133 fGLWidget->DeleteWindow();