This commit was generated by cvs2svn to compensate for changes in r13732,
[u/mrichter/AliRoot.git] / EVE / Reve / RGBrowser.h
1 #ifndef REVE_RGBrowser_H
2 #define REVE_RGBrowser_H
3
4 #include <TGFrame.h>
5 #include <TGButton.h>
6 #include <TGListTree.h>
7 #include <TGNumberEntry.h>
8 #include <TGColorSelect.h>
9
10 #include <TParticle.h>
11 #include <TTree.h>
12 #include <TCanvas.h>
13 #include <TGeoVolume.h>
14 #include <TContextMenu.h>
15
16 namespace Reve {
17
18 class RGEditor;
19
20 /**************************************************************************/
21 // TG wrappers used in detail view.
22 /**************************************************************************/
23
24 class ReveValuator : public TGNumberEntry
25 {
26 protected:
27   void* fUserData;
28
29 public:
30   ReveValuator(const TGWindow* parent = 0, Double_t val = 0, Int_t digitwidth = 5, Int_t id = -1, TGNumberFormat::EStyle style = kNESReal, TGNumberFormat::EAttribute attr = kNEAAnyNumber, TGNumberFormat::ELimit limits = kNELNoLimits, Double_t min = 0, Double_t max = 1) :
31     TGNumberEntry(parent, val, digitwidth, id, style, attr, limits, min, max),
32     fUserData(0)
33   {}
34   virtual ~ReveValuator();
35
36   void* GetUserData() const   { return fUserData; }
37   void  SetUserData(void* ud) { fUserData = ud; }
38
39   ClassDef(ReveValuator, 1);
40 };
41
42
43 class ReveColorSelect: public TGColorSelect
44 {
45  public:
46   ReveColorSelect(const TGWindow* p = 0, Pixel_t color = 0, Int_t id = -1) :
47     TGColorSelect(p, color,id)
48   {}
49   virtual ~ReveColorSelect() {}
50
51   void UpdateColor(Pixel_t col){
52     fColor=col; 
53     fDrawGC.SetForeground(col);  
54     gClient->NeedRedraw(this);
55   }
56
57   ClassDef(ReveColorSelect, 1);
58 };
59
60
61 /**************************************************************************/
62 // RGBrowser
63 /**************************************************************************/
64
65 class RGBrowser : public TGCompositeFrame
66 {
67 protected:
68   TGCompositeFrame* fMainFrame;
69   TGVerticalFrame*  fV1;
70   TGVerticalFrame*  fV2;
71
72   TGCompositeFrame* fSelectionFrame; // in fact list-tree frame
73   TGCanvas*         fTreeView;
74
75   TGCanvas*         fCanvasWindow;
76   TGCompositeFrame* fDisplayFrame;   // detailed-vire frame, used in Classic look
77   
78   TGListTree*       fListTree;
79   TContextMenu*     fCtxMenu;
80
81  protected:
82   void SetupCintExport(TClass* cl);
83
84  public:
85   RGBrowser(const TGWindow *p, UInt_t w, UInt_t h);
86   virtual ~RGBrowser() {}
87
88   void SetupClassicLook();
89   void SetupEditorLook(RGEditor* editor);
90   void SetupGLViewerLook(RGEditor* editor, TVirtualPad* glpad);
91
92   void RedrawListTree();
93
94   void ItemClicked(TGListTreeItem *entry, Int_t btn, Int_t x, Int_t y);
95   void ExportToCINT(Text_t* var_name, TObject* obj);
96   void DisplayChildren(TGListTreeItem *entry, Int_t btn);
97
98   void SetVolumeColor(UInt_t col);
99   void NodeVis(Bool_t vis);
100   void VolumeDaughterVis(Bool_t vis);
101
102   void DbClickListItem(TGListTreeItem* item, Int_t btn);
103   void UpdateListItems(TGListTreeItem* item, Int_t btn);
104   void SetTransparency(Long_t val);
105
106   // TrackRnrStyle
107   void SetMaxR(Long_t);
108   void SetMaxZ(Long_t);
109   void SetMaxOrbs(Long_t);
110
111   // GuiPOintRnrStyle
112   void SetMarkerStyle(Long_t style);
113
114
115   TGListTree* GetListTree() { return fListTree; }
116
117   ClassDef(RGBrowser, 1);
118 };
119
120 } // namespace Reve
121
122 #endif