ESD file is added to the list of proof output files. It is then automatically merged...
[u/mrichter/AliRoot.git] / MUON / AliMUONPainterMatrixFrame.h
CommitLineData
0145e89a 1#ifndef ALIMUONPAINTERMATRIXFRAME_H
2#define ALIMUONPAINTERMATRIXFRAME_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup graphics
10/// \class AliMUONPainterMatrixFrame
11/// \brief Widget to plot a matrix of painters
12///
13// Author Laurent Aphecetche, Subatech
14
15#ifndef ROOT_TGFrame
16# include "TGFrame.h"
17#endif
0145e89a 18#include <float.h>
19
20class AliMUONPainterColorSlider;
21class AliMUONPainterPlotSelector;
22class AliMUONPainterMatrix;
23class AliMUONPainterHighlighter;
24class AliMUONVPainter;
25class AliMUONVTrackerData;
26class TGButtonGroup;
27class TGToolTip;
28class TList;
29class TObjArray;
30class TRootEmbeddedCanvas;
31
32class AliMUONPainterMatrixFrame : public TGCompositeFrame
33{
0145e89a 34public:
35 AliMUONPainterMatrixFrame(const TGWindow* window, UInt_t w, UInt_t h);
36 virtual ~AliMUONPainterMatrixFrame();
37
38 void Clear(Option_t* opt="");
39
40 void DataRangeAutoRequested();
41
42 void DataRangeWasChanged(Double_t* range);
43
44 void DataSourceWasChanged(const char* name, AliMUONVTrackerData* data, Int_t dataIndex);
45
46 void EventInfo(Int_t event, Int_t px, Int_t py, TObject* selected);
47
48 void MouseEnter(AliMUONVPainter* painter); // *SIGNAL*
49
50 void MouseMotion(AliMUONVPainter* painter, Double_t* position); // *SIGNAL*
51
52 void MouseLeave(AliMUONVPainter* painter); // *SIGNAL*
53
54 void ResponderButtonWasClicked(Int_t id);
55
56 void OutlineButtonWasClicked(Int_t id);
57
58 void Use(AliMUONPainterMatrix* group);
59
60 void TitleHasChanged(const char* newTitle); // *SIGNAL*
61
62 void Update();
63
64 /// Get the matrix pointer
65 AliMUONPainterMatrix* Matrix() const { return fPainterMatrix; }
66
10eb3d17 67 void SaveAs(const char* filename="", Option_t* option="") const;
68
0145e89a 69private:
70 /// not implemented
71 AliMUONPainterMatrixFrame(const AliMUONPainterMatrixFrame& rhs);
72 /// not implemented
73 AliMUONPainterMatrixFrame& operator=(const AliMUONPainterMatrixFrame& rhs);
74
75 void ChangeTitle(const TString& title);
76
77 void ChangeTitle(AliMUONVPainter* painter, const char* basename=0x0,
78 Double_t x=FLT_MAX, Double_t y=FLT_MAX);
79
80 void CreateButtons();
81
82 void UpdateDataRange();
83
84 void UpdateInterface(Bool_t fromScratch);
85
86 void ViewModified();
87
88private:
89 AliMUONPainterMatrix* fPainterMatrix; ///< the matrix we plot (not owner)
90 TRootEmbeddedCanvas* fView; ///< the canvas used to plot
91 TGHorizontalFrame* fInterface; ///< the interface frame
92 TGButtonGroup* fResponderButtons; ///< the responder buttons
93 TGButtonGroup* fOutlineButtons; ///< the outline buttons
94
95 AliMUONPainterPlotSelector* fPlotSelector; ///< the data source selection
96
97 AliMUONPainterHighlighter* fPainterHighlighter; ///< the highlighter
98
99 UInt_t fCanvasWidth; ///< canvas width
100 UInt_t fCanvasHeight; ///< canvas height
101
102 TGCompositeFrame* fMainFrame; ///< our main frame
103
104 AliMUONPainterColorSlider* fColorSlider; ///< color slider (for data)
105
106 ClassDef(AliMUONPainterMatrixFrame,1) // Widget for drawing painter matrix
107};
108
109#endif