1 #ifndef ALIMUONPAINTERMATRIXFRAME_H
2 #define ALIMUONPAINTERMATRIXFRAME_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONPainterMatrixFrame
11 /// \brief Widget to plot a matrix of painters
13 // Author Laurent Aphecetche, Subatech
18 #ifndef ROOT_RQ_OBJECT
19 # include <RQ_OBJECT.h>
23 class AliMUONPainterColorSlider;
24 class AliMUONPainterPlotSelector;
25 class AliMUONPainterMatrix;
26 class AliMUONPainterHighlighter;
27 class AliMUONVPainter;
28 class AliMUONVTrackerData;
33 class TRootEmbeddedCanvas;
35 class AliMUONPainterMatrixFrame : public TGCompositeFrame
37 RQ_OBJECT("AliMUONPainterMatrixFrame")
40 AliMUONPainterMatrixFrame(const TGWindow* window, UInt_t w, UInt_t h);
41 virtual ~AliMUONPainterMatrixFrame();
43 void Clear(Option_t* opt="");
45 void DataRangeAutoRequested();
47 void DataRangeWasChanged(Double_t* range);
49 void DataSourceWasChanged(const char* name, AliMUONVTrackerData* data, Int_t dataIndex);
51 void EventInfo(Int_t event, Int_t px, Int_t py, TObject* selected);
53 void MouseEnter(AliMUONVPainter* painter); // *SIGNAL*
55 void MouseMotion(AliMUONVPainter* painter, Double_t* position); // *SIGNAL*
57 void MouseLeave(AliMUONVPainter* painter); // *SIGNAL*
59 void ResponderButtonWasClicked(Int_t id);
61 void OutlineButtonWasClicked(Int_t id);
63 void Use(AliMUONPainterMatrix* group);
65 void TitleHasChanged(const char* newTitle); // *SIGNAL*
69 /// Get the matrix pointer
70 AliMUONPainterMatrix* Matrix() const { return fPainterMatrix; }
72 void SaveAs(const char* filename="", Option_t* option="") const;
76 AliMUONPainterMatrixFrame(const AliMUONPainterMatrixFrame& rhs);
78 AliMUONPainterMatrixFrame& operator=(const AliMUONPainterMatrixFrame& rhs);
80 void ChangeTitle(const TString& title);
82 void ChangeTitle(AliMUONVPainter* painter, const char* basename=0x0,
83 Double_t x=FLT_MAX, Double_t y=FLT_MAX);
87 void UpdateDataRange();
89 void UpdateInterface(Bool_t fromScratch);
94 AliMUONPainterMatrix* fPainterMatrix; ///< the matrix we plot (not owner)
95 TRootEmbeddedCanvas* fView; ///< the canvas used to plot
96 TGHorizontalFrame* fInterface; ///< the interface frame
97 TGButtonGroup* fResponderButtons; ///< the responder buttons
98 TGButtonGroup* fOutlineButtons; ///< the outline buttons
100 AliMUONPainterPlotSelector* fPlotSelector; ///< the data source selection
102 AliMUONPainterHighlighter* fPainterHighlighter; ///< the highlighter
104 UInt_t fCanvasWidth; ///< canvas width
105 UInt_t fCanvasHeight; ///< canvas height
107 TGCompositeFrame* fMainFrame; ///< our main frame
109 AliMUONPainterColorSlider* fColorSlider; ///< color slider (for data)
111 ClassDef(AliMUONPainterMatrixFrame,1) // Widget for drawing painter matrix