]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveDet/AliEveTRDTrackListEditor.h
made functional track style (almost finished)
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDTrackListEditor.h
CommitLineData
2ef0687e 1#ifndef AliEveTRDTrackListEditor_H
2#define AliEveTRDTrackListEditor_H
3
4#include <TGedFrame.h>
caaf90d2 5
6class AliEveTRDTrack;
7class AliEveTRDTrackList;
4f6473f6 8class TCanvas;
9class TEveBrowser;
8e27fca1 10class TEveGedEditor;
11class TEveManager;
caaf90d2 12class TFile;
4cbab605 13class TGButtonGroup;
caaf90d2 14class TGCheckButton;
15class TGFileInfo;
4cbab605 16class TGGroupFrame;
caaf90d2 17class TGHorizontal3DLine;
18class TGHorizontalFrame;
19class TGLabel;
20class TGListBox;
4cbab605 21class TGRadioButton;
4f6473f6 22class TGString;
8e27fca1 23class TGTab;
caaf90d2 24class TGTextButton;
25class TGTextEntry;
26class TGVerticalFrame;
bcb45225 27class TH1;
caaf90d2 28class TTree;
2ef0687e 29
30class AliEveTRDTrackListEditor: public TGedFrame
31{
32public:
caaf90d2 33 AliEveTRDTrackListEditor(const TGWindow* p = 0, Int_t width = 170, Int_t height = 30,
34 UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground());
35 virtual ~AliEveTRDTrackListEditor();
2ef0687e 36
37 virtual void SetModel(TObject* obj);
38
4f6473f6 39 void AddMacro(const Char_t* path, const Char_t* name); // Adds macro to the macro list
40 void ApplyMacros(); // Apply macros
41 void BrowseMacros(); // Browse macros
42 void CloseTabs(); // Closes + deletes all the tabs opened created by this class
43 void DrawHistos(); // Draw histograms
44 Int_t GetNSelectedHistograms(); // Get the number of selected histograms for drawing
45 void HandleMacroPathSet(); // Handles the "macro path set"-signal
46 void HandleNewEventLoaded(); // Handles the "NewEventLoaded()"-signal
47 void HandleTabChangedToIndex(Int_t); // Handles the "Selected(Int_t id)"-signal (tab changed)
48 void RemoveMacros(); // Removes the selected macros from the lists
ecbbe371 49 void SetTrackModel(Int_t ind); // Sets the track model
50 void SetTrackColor(Int_t ind); // Sets the track color
4f6473f6 51 void UpdateDataFromMacroListSelection(); // Updates the selection in the "data from macro"-list
52 void UpdateHistoList(); // Updates the histogram list
53 void UpdateMacroList(); // Updates the macro list
54 void UpdateMacroListSelection(Int_t ind); // Updates the selection of the process macro list
55 void UpdateMacroSelListSelection(Int_t ind); // Updates the selection of the selection macro list
56
2ef0687e 57protected:
4f6473f6 58 AliEveTRDTrackList* fM; // Model object
2ef0687e 59
bcb45225 60 void InheritMacroList(); // Inherits macro list from the previously loaded track list
61
2ef0687e 62private:
63 AliEveTRDTrackListEditor(const AliEveTRDTrackListEditor&); // Not implemented
64 AliEveTRDTrackListEditor& operator=(const AliEveTRDTrackListEditor&); // Not implemented
65
4f6473f6 66 TCanvas* fHistoCanvas; // Canvas for the histograms
67 TGString* fHistoCanvasName; // Name of the histogram canvas
2ef0687e 68
bcb45225 69 Bool_t fInheritMacroList; // Flag indicating, whether the macro list will be inherited from the
70 // previously loaded track list within the next call of SetModel
71
ecbbe371 72 TGHorizontalFrame* fStyleFrame; // Frame for the style stuff
4f6473f6 73 TGVerticalFrame* fMainFrame; // Top frame for macro functionality.
74 TGVerticalFrame* fHistoFrame; // Top frame for the histogram stuff
75 TGVerticalFrame* fHistoSubFrame; // Frame for the histogram buttons themselves
ecbbe371 76 TGHorizontalFrame* fBrowseFrame; // Frame for features corresponding to searching macros
4cbab605 77 TGButtonGroup* fbgStyleColor; // Button group for the color model
78 TGButtonGroup* fbgStyleTrack; // Button group for the track model
79
80 TGRadioButton** frbColor; // Radio buttons for the color model
81 TGRadioButton** frbTrack; // Radio buttons for the track model
2ef0687e 82
caaf90d2 83 TGTextButton* fbBrowse; // "Browse" button
84 TGTextButton* fbApplyMacros; // "Apply macros" button
85 TGTextButton* fbRemoveMacros; // "Remove macros" button
86 TGTextButton* fbDrawHisto; // "Draw histogram" button
87 TGTextEntry* fteField; // Text field to insert macro path manually
88 TGListBox* ftlMacroList; // To display the list of (process) macros
89 TGListBox* ftlMacroSelList; // To display the list of (selection) macros
2ef0687e 90
caaf90d2 91 TGFileInfo* fFileInfo; // Holds data about opening macros
92 Char_t** fFileTypes; // File types (for macros)
2ef0687e 93
3f797131 94 // Some labels
39b891ff 95 TGLabel* fLabel1;
96 TGLabel* fLabel2;
97 TGLabel* fLabel3;
caaf90d2 98 TGLabel* fLabel4;
39b891ff 99
3f797131 100 // Some lines
39b891ff 101 TGHorizontal3DLine *fLine1;
102 TGHorizontal3DLine *fLine2;
103 TGHorizontal3DLine *fLine3;
caaf90d2 104 TGHorizontal3DLine *fLine4;
4cbab605 105 TGHorizontal3DLine *fLine5;
caaf90d2 106
107 // Check buttons for histograms
108 TGCheckButton** fCheckButtons;
3f797131 109
bcb45225 110 // Help functions
111 void SetDrawingToHistoCanvasTab(); // Sets focus on the tab for histograms and makes fHistoCanvas be the
112 // current tab
113 void UpdateHistoCanvasTab(); // Updates the histogram and the corresponding tab (including titles)
114
39b891ff 115 ClassDef(AliEveTRDTrackListEditor, 0); // Editor for AliEveTRDTrackList.
2ef0687e 116};
117
118#endif