// @(#)root/geombuilder:$Id$
// Author: Matevz Tadel   25/09/2006

//______________________________________________________________________________
//                                                                      //
//  TGeoGedFrame                                                        //
//                                                                      //
//  Common base class for geombuilder editors.                          //
//                                                                      //
//______________________________________________________________________________

#include "TGeoGedFrame.h"
#include "TGeoTabManager.h"
#include "TGedEditor.h"
#include "TGTab.h"
#include "TVirtualPad.h"

ClassImp(TGeoGedFrame)

//______________________________________________________________________________
TGeoGedFrame::TGeoGedFrame(const TGWindow *p, Int_t width, Int_t height,
                           UInt_t options, Pixel_t back) :
  TGedFrame(p, width, height, options, back),
  fTab(0), fTabMgr(0), fPad(0)
{
// Constructor.
   fTab = fGedEditor->GetTab();
   fPad = fGedEditor->GetPad();
   fTabMgr = TGeoTabManager::GetMakeTabManager(fGedEditor);
}

//______________________________________________________________________________
void TGeoGedFrame::SetActive(Bool_t active)
{
   // Set active GUI attribute frames related to the selected object.

   if (active)
      ((TGCompositeFrame*)GetParent())->ShowFrame(this);
   else
      ((TGCompositeFrame*)GetParent())->HideFrame(this);

// no need to call for every single editor Layout of TGMainFrame
//   ((TGMainFrame*)GetMainFrame())->Layout();

   // to avoid that the user changes options on a deactivated Tab
   if (fTab->IsEnabled(fTab->GetCurrent()))
      fTab->SetTab(fTab->GetCurrent());
   else
      fTab->SetTab(0);
}

//______________________________________________________________________________
void TGeoGedFrame::Update()
{
   // Override Update from TGedFrame as fGedEditor can be null.

   if (fGedEditor) {
      fGedEditor->Update();
   } else {
      fPad->Modified();
      fPad->Update();
   }
}
 TGeoGedFrame.cxx:1
 TGeoGedFrame.cxx:2
 TGeoGedFrame.cxx:3
 TGeoGedFrame.cxx:4
 TGeoGedFrame.cxx:5
 TGeoGedFrame.cxx:6
 TGeoGedFrame.cxx:7
 TGeoGedFrame.cxx:8
 TGeoGedFrame.cxx:9
 TGeoGedFrame.cxx:10
 TGeoGedFrame.cxx:11
 TGeoGedFrame.cxx:12
 TGeoGedFrame.cxx:13
 TGeoGedFrame.cxx:14
 TGeoGedFrame.cxx:15
 TGeoGedFrame.cxx:16
 TGeoGedFrame.cxx:17
 TGeoGedFrame.cxx:18
 TGeoGedFrame.cxx:19
 TGeoGedFrame.cxx:20
 TGeoGedFrame.cxx:21
 TGeoGedFrame.cxx:22
 TGeoGedFrame.cxx:23
 TGeoGedFrame.cxx:24
 TGeoGedFrame.cxx:25
 TGeoGedFrame.cxx:26
 TGeoGedFrame.cxx:27
 TGeoGedFrame.cxx:28
 TGeoGedFrame.cxx:29
 TGeoGedFrame.cxx:30
 TGeoGedFrame.cxx:31
 TGeoGedFrame.cxx:32
 TGeoGedFrame.cxx:33
 TGeoGedFrame.cxx:34
 TGeoGedFrame.cxx:35
 TGeoGedFrame.cxx:36
 TGeoGedFrame.cxx:37
 TGeoGedFrame.cxx:38
 TGeoGedFrame.cxx:39
 TGeoGedFrame.cxx:40
 TGeoGedFrame.cxx:41
 TGeoGedFrame.cxx:42
 TGeoGedFrame.cxx:43
 TGeoGedFrame.cxx:44
 TGeoGedFrame.cxx:45
 TGeoGedFrame.cxx:46
 TGeoGedFrame.cxx:47
 TGeoGedFrame.cxx:48
 TGeoGedFrame.cxx:49
 TGeoGedFrame.cxx:50
 TGeoGedFrame.cxx:51
 TGeoGedFrame.cxx:52
 TGeoGedFrame.cxx:53
 TGeoGedFrame.cxx:54
 TGeoGedFrame.cxx:55
 TGeoGedFrame.cxx:56
 TGeoGedFrame.cxx:57
 TGeoGedFrame.cxx:58
 TGeoGedFrame.cxx:59
 TGeoGedFrame.cxx:60
 TGeoGedFrame.cxx:61
 TGeoGedFrame.cxx:62
 TGeoGedFrame.cxx:63