]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONPainterRegistry.h
bug fixed (Valerie)
[u/mrichter/AliRoot.git] / MUON / AliMUONPainterRegistry.h
1 #ifndef ALIMUONPAINTERREGISTRY_H
2 #define ALIMUONPAINTERREGISTRY_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 AliMUONPainterRegistry
11 /// \brief Registry for a bunch of AliMUONVPainter related stuff
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef ROOT_TObject
16 #  include "TObject.h"
17 #endif
18 #ifndef ROOT_TQObject
19 #  include <TQObject.h>
20 #endif
21
22 class TGPopupMenu;
23 class TObjArray;
24 class AliMUONVTrackerData;
25 class AliMUONVTrackerDataMaker;
26 class AliMUONPainterMatrix;
27 class TGMenuBar;
28
29 class AliMUONPainterRegistry : public TObject, public TQObject
30 {
31 public:
32   virtual ~AliMUONPainterRegistry();
33
34   AliMUONVTrackerDataMaker* DataReader(Int_t i) const;
35
36   AliMUONVTrackerData* DataSource(Int_t i) const;
37   
38   void DataSourceWasRegistered(AliMUONVTrackerData* data); // *SIGNAL*
39   
40   void DataSourceWasUnregistered(AliMUONVTrackerData* data); // *SIGNAL*
41
42   void DataReaderWasRegistered(AliMUONVTrackerDataMaker* reader); // *SIGNAL*
43   
44   void DataReaderWasUnregistered(AliMUONVTrackerDataMaker* reader); // *SIGNAL*
45   
46   AliMUONVTrackerData* FindDataSource(const char* name) const;
47
48   Int_t FindIndexOf(AliMUONPainterMatrix* group) const;
49   
50   Int_t FindIndexOf(AliMUONVTrackerData* data) const;
51   
52   AliMUONPainterMatrix* FindPainterMatrix(const char* groupName) const;
53   
54   void HistoryMenuActivated(Int_t i);
55   
56   static AliMUONPainterRegistry* Instance();
57   
58   Int_t NumberOfDataReaders() const;
59
60   Int_t NumberOfDataSources() const;
61
62   Int_t NumberOfPainterMatrices() const;
63
64   AliMUONPainterMatrix* PainterMatrix(Int_t i) const;
65   
66   void AddToHistory(AliMUONPainterMatrix* group);
67     
68   void PainterMatrixWasRegistered(AliMUONPainterMatrix* group); // *SIGNAL*
69   
70   void PainterMatrixWasUnregistered(AliMUONPainterMatrix* group); // *SIGNAL*
71   
72   void PainterMatrixWantToShow(AliMUONPainterMatrix* group); // *SIGNAL*
73   
74   void Print(Option_t* opt) const;
75   
76   Int_t Register(AliMUONPainterMatrix* group);
77   
78   void Register(AliMUONVTrackerData* data);
79
80   void Register(AliMUONVTrackerDataMaker* reader);
81
82   /// Set the menu bar where to put the history menu
83   void SetMenuBar(TGMenuBar* bar) { fMenuBar = bar; }
84   
85   Bool_t Unregister(AliMUONPainterMatrix* group);
86   
87   Bool_t Unregister(AliMUONVTrackerData* data);
88
89   Bool_t Unregister(AliMUONVTrackerDataMaker* reader);
90
91 private:
92   /// Not implemented
93   AliMUONPainterRegistry();
94   /// Not implemented
95   AliMUONPainterRegistry(const AliMUONPainterRegistry&);
96   /// Not implemented
97   AliMUONPainterRegistry& operator=(const AliMUONPainterRegistry&);
98   
99 private:
100   static AliMUONPainterRegistry* fgInstance; ///< unique instance
101   TObjArray* fDataSources; ///< data sources
102   TObjArray* fPainterMatrices; ///< painter matrices
103   TObjArray* fDataReaders; ///< data readers
104   TGPopupMenu* fHistoryMenu; ///< history menu
105   TGMenuBar* fMenuBar; ///< Menu bar where to put the history menu
106   Int_t fHistoryCounter; ///< index to get back history menu items
107   
108   ClassDef(AliMUONPainterRegistry,1) // Registry for AliMUONVPainter related stuff
109 };
110
111 #endif