]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant3/AliGuiGeomMain.h
New field map for the ZDC
[u/mrichter/AliRoot.git] / TGeant3 / AliGuiGeomMain.h
1 #ifndef ALIGUIGEOMMAIN_H
2 #define ALIGUIGEOMMAIN_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "TClonesArray.h"
9 #include "TGFrame.h"
10 #include "TGListTree.h"
11 #include "TGComboBox.h"
12
13 class TGTab;
14 class TGMenuBar;
15 class TGPopupMenu;
16 class TGTextBuffer;
17 class TGTextEntry;
18 class TGLabel;
19 class TGTextButton;
20
21 class AliGUIMaterial;
22 class AliGUIMedium;
23 class AliGuiGeomDialog;
24
25 class AliGuiGeomMain : public TGMainFrame {
26  public:
27     AliGuiGeomMain(const TGWindow *p, UInt_t w, UInt_t h);
28     virtual ~AliGuiGeomMain();
29     // Destroy the main window
30     virtual void CloseWindow();
31     // Add item to ListTree
32     virtual TGListTreeItem *
33         AddItem(TObject *obj, TGListTreeItem* parent,
34                 const char* name,
35                 const TGPicture* open, const TGPicture* closed);
36     // Add Material to ComboBox
37     virtual void AddMaterial(AliGUIMaterial *Material, Int_t i);
38     // Add Medium to ComboBox
39     virtual void AddMedium(AliGUIMedium *Medium, Int_t i);
40     // Process messages from this window
41     virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
42     // Update widgets
43     virtual void Update();
44     // Update ComboBoxes
45     virtual void UpdateCombo();
46     virtual void UpdateListBox();
47     // Relate objects to ComboEntries
48     // Currently ComboBox Entries are strings only, hence we need this construction
49     virtual void SetComboEntries(TClonesArray *entries) {fComboEntries=entries;}
50     virtual void SetMediaComboEntries(TClonesArray *entries)
51         {fComboMediaEntries=entries;}
52     virtual void Plot();
53 private:
54     TGTab              *fTab;           // Contains Tab entries: volumes, materials..
55     TGCanvas           *fCanvasWindow;  // Canvas window for list tree
56     TGCompositeFrame   *fF2, *fF21, *fF3, *fF31, *fF4, *fF5;      // Frames for combos
57     TGCompositeFrame   *fF6, *fF61, *fF62, *fF63;                 // Frames for combos
58     TGListTree         *fLt;                                      // Volumes list tree
59     TGMenuBar          *fMenuBar;                                 // Menu bar: File, Draw Control ...
60     TGPopupMenu        *fMenuFile, *fMenuTest, *fMenuHelp;        // Pop-up menus
61     TGLayoutHints      *fMenuBarItemLayout, *fMenuBarHelpLayout,  // Lay-out hints
62                        *fMenuBarLayout, fLTab;                    // Lay-out hints
63     TGLayoutHints      *fL2;                                      // Lay-out hints
64     AliGuiGeomDialog   *fDialog;                                  //! no output please
65     TGComboBox         *fMaterialCombo;                           // Material  combo box
66     TGComboBox         *fMechanismCombo;                          // Mechanism combo box
67     TGComboBox         *fMediaCombo, *fParticleCombo;             // Media and particle combo boxes
68     TGListBox          *fProcessLB, *fCutsLB;                     // List boxes for cuts and processes
69     TClonesArray       *fComboEntries;                            // List of materials
70     TClonesArray       *fComboMediaEntries;                       // List of media
71     TGHorizontalFrame  *fHframe[6],*fHframeM[8];                  // sub frames 
72     TGTextBuffer       *fTbh[6], *fTbhM[8], *fTbh61, *fTbh62, *fTbh63;  // text frames
73     TGTextEntry        *fTeh[6], *fTehM[8], *fTeh61, *fTeh62, *fTeh63;  // text entries
74     TGLabel            *fLabel[6], *fLabelM[8], *fSLabel61;             // labels
75     TGTextButton       *fPlotButton;                                    // Plot-Button
76     Float_t            fEmin;         // minimum energy for de/dx plot
77     Float_t            fEmax;         // maximum energy for de/dx plot
78     Int_t              fNbins;        // number of bins for de/dx plot
79
80   AliGuiGeomMain(const AliGuiGeomMain &gm) 
81     : TGMainFrame((const TGMainFrame&)gm) {}
82   virtual AliGuiGeomMain & operator=(const AliGuiGeomMain &) {return *this;}
83     
84
85     ClassDef(AliGuiGeomMain,1)  // MainFrame for Geometry Browser
86 };
87
88 R__EXTERN AliGUIMaterial *gCurrentMaterial;
89 R__EXTERN AliGUIMedium   *gCurrentMedium;
90
91 #endif