Line data Source code
1 : #ifndef ALIMUONPAINTERMASTERFRAME_H
2 : #define ALIMUONPAINTERMASTERFRAME_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 AliMUONPainterMasterFrame
11 : /// \brief The main window for the offline "a la mood" display
12 : ///
13 : // Author Laurent Aphecetche, Subatech
14 :
15 : #ifndef ROOT_TGFrame
16 : # include <TGFrame.h>
17 : #endif
18 : #ifndef ROOT_TArrayI
19 : # include <TArrayI.h>
20 : #endif
21 :
22 : class AliMUONAttPainter;
23 : class AliMUONPainterMatrix;
24 : class AliMUONPainterMatrixFrame;
25 : class AliMUONAttPainterSelectorFrame;
26 : class AliMUONVPainter;
27 : class TGButton;
28 : class TGButtonGroup;
29 : class TGComboBox;
30 : class TGLabel;
31 : class TObjArray;
32 :
33 : class AliMUONPainterMasterFrame : public TGCompositeFrame
34 : {
35 : public:
36 : AliMUONPainterMasterFrame(const TGWindow* p, UInt_t w, UInt_t h, AliMUONPainterMatrix* matrix);
37 : virtual ~AliMUONPainterMasterFrame();
38 :
39 : void Backward();
40 :
41 : void ChangeTitle(const char* newTitle);
42 :
43 : void Clicked(AliMUONVPainter* painter, Double_t* values);
44 :
45 : void ShiftClicked(AliMUONVPainter* painter, Double_t* values);
46 :
47 : void Forward();
48 :
49 : void PainterMatrixWantToShow(AliMUONPainterMatrix* group);
50 :
51 : void Update();
52 :
53 : void AttributesChanged(const AliMUONAttPainter* newValues);
54 :
55 : void SaveAs(const char* filename = "", Option_t* option = "") const;
56 :
57 : void PrintAs() const;
58 :
59 : void PrintMe() const;
60 :
61 : private:
62 : /// not implemented
63 : AliMUONPainterMasterFrame(const AliMUONPainterMasterFrame& rhs);
64 : /// not implemented
65 : AliMUONPainterMasterFrame& operator=(const AliMUONPainterMasterFrame& rhs);
66 :
67 : void AddPainterMatrix(AliMUONPainterMatrix* group);
68 : void MakeTopPainterMatrix(UInt_t w, UInt_t h, AliMUONPainterMatrix* matrix);
69 : void SetNavigation(Int_t i);
70 : void ShowPainterMatrix(AliMUONPainterMatrix* group);
71 : void UpdateNavigation();
72 : void UpdateAttributes(const AliMUONPainterMatrix& painterMatrix);
73 :
74 : private:
75 : TGHorizontalFrame* fNavigationFrame; ///< top frame for navigation
76 : AliMUONPainterMatrixFrame* fPainterMatrixFrame; ///< main frame with painters
77 :
78 : TGButton* fBackButton; ///< navigation back
79 : TGButton* fForwardButton; ///< navigation forward
80 : TGLabel* fGroupTitle; ///< top title
81 : TGButton* fPrintMeButton; ///< print button
82 : TGButton* fPrintAsButton; ///< print... button
83 :
84 : TArrayI fNavigation; ///< navigation "history"
85 :
86 : Int_t fCurrentNavigationPosition; ///< current position in navigation history
87 :
88 : AliMUONAttPainterSelectorFrame* fAttPainterSelectorFrame; ///< view type selection frame
89 :
90 : static const Int_t fgkBorderSize; ///< border sizes to use when placing frames
91 :
92 12 : ClassDef(AliMUONPainterMasterFrame,0) // Main window of display
93 : };
94 :
95 : #endif
|