Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / MUON / AliMUONPainterDataSourceItem.h
1 #ifndef ALIMUONPAINTERDATASOURCEITEM_H
2 #define ALIMUONPAINTERDATASOURCEITEM_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 AliMUONPainterDataSourceItem
11 /// \brief A widget describing a single data source
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef ROOT_TGFrame
16 #  include "TGFrame.h"
17 #endif
18
19 class AliMUONVTrackerDataMaker;
20 class TGLabel;
21 class TGTextButton;
22 class AliMUONPainterDataReader;
23 class TThread;
24
25 class AliMUONPainterDataSourceItem : public TGCompositeFrame
26 {
27 public:
28   AliMUONPainterDataSourceItem(const TGWindow* p, UInt_t w, UInt_t h, 
29                                AliMUONVTrackerDataMaker* maker);
30   virtual ~AliMUONPainterDataSourceItem();
31   
32   void Run();
33   
34   void Stop(); 
35   
36   void Rewind();
37   
38   void Remove();
39   
40   void Update();
41   
42   void Reset();
43   
44   /// Return data source reader
45   AliMUONVTrackerDataMaker* DataMaker() const { return fDataMaker; }
46   
47   void EnableRun();
48   
49   void DisableRun();
50   
51   void StartRunning(); //*SIGNAL*
52
53   void StopRunning(); //*SIGNAL*
54
55   void Save();
56   
57   void SaveWithDialog();
58   
59 private:
60     
61     void Save(const char* filename);
62   
63   /// Not implemented
64   AliMUONPainterDataSourceItem(const AliMUONPainterDataSourceItem& rhs);
65   /// Not implemented
66   AliMUONPainterDataSourceItem& operator=(const AliMUONPainterDataSourceItem& rhs);
67   
68   AliMUONVTrackerDataMaker* fDataMaker; ///< data source reader (not owner)  
69   TGLabel* fSourceName; ///< the (short) name of the data source
70   TGLabel* fSource; ///< the full uri of the data source
71   TGLabel* fNumberOfEvents; ///< number of evts this source has seen so far
72   TGTextButton* fRun; ///< button to start running over the source
73   TGTextButton* fStop; ///< button to stop running over the source
74   TGTextButton* fRewind; ///< button to rewind events for the source
75   TGTextButton* fRemove; ///< button to remove the source
76   TGTextButton* fSave; ///< button to save the source (filename is fixed)
77   TGTextButton* fSaveAs; ///< button to save as... 
78   TThread* fThread; ///< thread used to actually loop over the data
79   Long_t fParams[2]; ///< used in conjunction with fThread
80   
81   Bool_t fShouldReset; ///< whether we should reset or not...
82   
83   ClassDef(AliMUONPainterDataSourceItem,3) // Data source widget
84 };
85
86 #endif