Line data Source code
1 : #ifndef ALIMUONPAINTERPLOTSELECTOR_H
2 : #define ALIMUONPAINTERPLOTSELECTOR_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 AliMUONPainterPlotSelector
11 : /// \brief Widget to pick what to plot for the painters
12 : ///
13 : // Author Laurent Aphecetche, Subatech
14 :
15 : #ifndef ROOT_TGFrame
16 : # include "TGFrame.h"
17 : #endif
18 : #ifndef ROOT_TString
19 : # include "TString.h"
20 : #endif
21 :
22 : class AliMUONPainterMatrix;
23 : class AliMUONVTrackerData;
24 : class TGButtonGroup;
25 : class TMap;
26 :
27 : class AliMUONPainterPlotSelector : public TGCompositeFrame
28 : {
29 : public:
30 : AliMUONPainterPlotSelector(const TGWindow* window, UInt_t w=1, UInt_t h=1);
31 : virtual ~AliMUONPainterPlotSelector();
32 :
33 : void DataSourceWasRegistered(AliMUONVTrackerData* data);
34 :
35 : void DataSourceWasUnregistered(AliMUONVTrackerData* data);
36 :
37 : void DataSourceWasChanged(const char* type,
38 : AliMUONVTrackerData* data,
39 : Int_t dataIndex); // *SIGNAL*
40 :
41 : void DimensionButtonWasClicked(Int_t id);
42 :
43 : void SourceButtonWasClicked(Int_t id);
44 :
45 : void TypeButtonWasClicked(Int_t id);
46 :
47 : void Update(const AliMUONPainterMatrix& painterMatrix);
48 :
49 : void NumberOfEventsChanged();
50 :
51 : private:
52 : /// Not implemented
53 : AliMUONPainterPlotSelector(const AliMUONPainterPlotSelector& rhs);
54 : /// Not implemented
55 : AliMUONPainterPlotSelector& operator=(const AliMUONPainterPlotSelector& rhs);
56 :
57 : void BackupDimensionButtons();
58 :
59 : void CreateDimensionButtons(const char* dataSourceName);
60 :
61 : void CreateTypeButtons(const TObjArray& types);
62 :
63 : void DataSourceWasChanged();
64 :
65 : void ResetDimensionButtonMap();
66 :
67 : void RestoreDimensionButtons(const char* dataSourceName,
68 : Bool_t updateCurrentDimension);
69 :
70 : void SetCurrentData(AliMUONVTrackerData* data);
71 :
72 : void SetCurrentDimension(Long_t i);
73 :
74 : void SetCurrentType(const char* type);
75 :
76 : void UpdateDimensionButton();
77 :
78 : void UpdateSourceButton();
79 :
80 : void UpdateTypeButton();
81 :
82 : private:
83 :
84 : TGButtonGroup* fTypes; ///< types buttons
85 : TGButtonGroup* fDataSourceNames; ///< data source names buttons
86 : TGButtonGroup* fDataSourceDimensions; ///< data source dimensions buttons
87 : TMap* fDimensionButtonMap; ///< cache for button group
88 : TString fCurrentType; ///< current type
89 : AliMUONVTrackerData* fCurrentData; ///< current data
90 : Long_t fCurrentDimension; ///< current data index
91 : static const char* fgkDefaultSourceName; ///< default source name
92 :
93 12 : ClassDef(AliMUONPainterPlotSelector,1) // Widget to select what to plot for painters
94 : };
95 :
96 : #endif
|