Line data Source code
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
18 : #include <float.h>
19 :
20 : class AliMUONPainterColorSlider;
21 : class AliMUONPainterPlotSelector;
22 : class AliMUONPainterMatrix;
23 : class AliMUONPainterHighlighter;
24 : class AliMUONVPainter;
25 : class AliMUONVTrackerData;
26 : class TGButtonGroup;
27 : class TGToolTip;
28 : class TList;
29 : class TObjArray;
30 : class TRootEmbeddedCanvas;
31 :
32 : class AliMUONPainterMatrixFrame : public TGCompositeFrame
33 : {
34 : public:
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(const AliMUONVPainter* painter); // *SIGNAL*
53 :
54 : void ResponderButtonWasClicked(Int_t id);
55 :
56 : void OutlineButtonWasClicked(Int_t id);
57 :
58 : void ColorSliderDefaultButtonWasClicked();
59 :
60 : void ColorSliderSetDefaultButtonWasClicked(Double_t* range);
61 :
62 : void Use(AliMUONPainterMatrix* group);
63 :
64 : void TitleHasChanged(const char* newTitle); // *SIGNAL*
65 :
66 : void Update();
67 :
68 : /// Get the matrix pointer
69 0 : AliMUONPainterMatrix* Matrix() const { return fPainterMatrix; }
70 :
71 : void SaveAs(const char* filename="", Option_t* option="") const;
72 :
73 : void UpdateInterface(Bool_t fromScratch);
74 :
75 : private:
76 : /// not implemented
77 : AliMUONPainterMatrixFrame(const AliMUONPainterMatrixFrame& rhs);
78 : /// not implemented
79 : AliMUONPainterMatrixFrame& operator=(const AliMUONPainterMatrixFrame& rhs);
80 :
81 : void ChangeTitle(const TString& title);
82 :
83 : void ChangeTitle(AliMUONVPainter* painter, const char* basename=0x0,
84 : Double_t x=FLT_MAX, Double_t y=FLT_MAX);
85 :
86 : void CreateButtons();
87 :
88 : void UpdateDataRange();
89 :
90 : void ViewModified();
91 :
92 : private:
93 : AliMUONPainterMatrix* fPainterMatrix; ///< the matrix we plot (not owner)
94 : TRootEmbeddedCanvas* fView; ///< the canvas used to plot
95 : TGHorizontalFrame* fInterface; ///< the interface frame
96 : TGButtonGroup* fResponderButtons; ///< the responder buttons
97 : TGButtonGroup* fOutlineButtons; ///< the outline buttons
98 :
99 : AliMUONPainterPlotSelector* fPlotSelector; ///< the data source selection
100 :
101 : AliMUONPainterHighlighter* fPainterHighlighter; ///< the highlighter
102 :
103 : UInt_t fCanvasWidth; ///< canvas width
104 : UInt_t fCanvasHeight; ///< canvas height
105 :
106 : TGCompositeFrame* fMainFrame; ///< our main frame
107 :
108 : AliMUONPainterColorSlider* fColorSlider; ///< color slider (for data)
109 :
110 12 : ClassDef(AliMUONPainterMatrixFrame,1) // Widget for drawing painter matrix
111 : };
112 :
113 : #endif
|