ROOT logo
#ifndef ALIMUONPAINTERDATASOURCEITEM_H
#define ALIMUONPAINTERDATASOURCEITEM_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup graphics
/// \class AliMUONPainterDataSourceItem
/// \brief A widget describing a single data source
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ROOT_TGFrame
#  include "TGFrame.h"
#endif

class AliMUONVTrackerDataMaker;
class TGLabel;
class TGTextButton;
class AliMUONPainterDataReader;
class TThread;

class AliMUONPainterDataSourceItem : public TGCompositeFrame
{
public:
  AliMUONPainterDataSourceItem(const TGWindow* p, UInt_t w, UInt_t h, 
                               AliMUONVTrackerDataMaker* maker);
  virtual ~AliMUONPainterDataSourceItem();
  
  void Run();
  
  void Stop(); 
  
  void Rewind();
  
  void Remove();
  
  void Update();
  
  void Reset();
  
  /// Return data source reader
  AliMUONVTrackerDataMaker* DataMaker() const { return fDataMaker; }
  
  void EnableRun();
  
  void DisableRun();
  
  void StartRunning(); //*SIGNAL*

  void StopRunning(); //*SIGNAL*

  void Save();
  
  void SaveWithDialog();
  
private:
    
    void Save(const char* filename);
  
  /// Not implemented
  AliMUONPainterDataSourceItem(const AliMUONPainterDataSourceItem& rhs);
  /// Not implemented
  AliMUONPainterDataSourceItem& operator=(const AliMUONPainterDataSourceItem& rhs);
  
  AliMUONVTrackerDataMaker* fDataMaker; ///< data source reader (not owner)  
  TGLabel* fSourceName; ///< the (short) name of the data source
  TGLabel* fSource; ///< the full uri of the data source
  TGLabel* fNumberOfEvents; ///< number of evts this source has seen so far
  TGTextButton* fRun; ///< button to start running over the source
  TGTextButton* fStop; ///< button to stop running over the source
  TGTextButton* fRewind; ///< button to rewind events for the source
  TGTextButton* fRemove; ///< button to remove the source
  TGTextButton* fSave; ///< button to save the source (filename is fixed)
  TGTextButton* fSaveAs; ///< button to save as... 
  TThread* fThread; ///< thread used to actually loop over the data
  Long_t fParams[2]; ///< used in conjunction with fThread
  
  Bool_t fShouldReset; ///< whether we should reset or not...
  
  ClassDef(AliMUONPainterDataSourceItem,3) // Data source widget
};

#endif
 AliMUONPainterDataSourceItem.h:1
 AliMUONPainterDataSourceItem.h:2
 AliMUONPainterDataSourceItem.h:3
 AliMUONPainterDataSourceItem.h:4
 AliMUONPainterDataSourceItem.h:5
 AliMUONPainterDataSourceItem.h:6
 AliMUONPainterDataSourceItem.h:7
 AliMUONPainterDataSourceItem.h:8
 AliMUONPainterDataSourceItem.h:9
 AliMUONPainterDataSourceItem.h:10
 AliMUONPainterDataSourceItem.h:11
 AliMUONPainterDataSourceItem.h:12
 AliMUONPainterDataSourceItem.h:13
 AliMUONPainterDataSourceItem.h:14
 AliMUONPainterDataSourceItem.h:15
 AliMUONPainterDataSourceItem.h:16
 AliMUONPainterDataSourceItem.h:17
 AliMUONPainterDataSourceItem.h:18
 AliMUONPainterDataSourceItem.h:19
 AliMUONPainterDataSourceItem.h:20
 AliMUONPainterDataSourceItem.h:21
 AliMUONPainterDataSourceItem.h:22
 AliMUONPainterDataSourceItem.h:23
 AliMUONPainterDataSourceItem.h:24
 AliMUONPainterDataSourceItem.h:25
 AliMUONPainterDataSourceItem.h:26
 AliMUONPainterDataSourceItem.h:27
 AliMUONPainterDataSourceItem.h:28
 AliMUONPainterDataSourceItem.h:29
 AliMUONPainterDataSourceItem.h:30
 AliMUONPainterDataSourceItem.h:31
 AliMUONPainterDataSourceItem.h:32
 AliMUONPainterDataSourceItem.h:33
 AliMUONPainterDataSourceItem.h:34
 AliMUONPainterDataSourceItem.h:35
 AliMUONPainterDataSourceItem.h:36
 AliMUONPainterDataSourceItem.h:37
 AliMUONPainterDataSourceItem.h:38
 AliMUONPainterDataSourceItem.h:39
 AliMUONPainterDataSourceItem.h:40
 AliMUONPainterDataSourceItem.h:41
 AliMUONPainterDataSourceItem.h:42
 AliMUONPainterDataSourceItem.h:43
 AliMUONPainterDataSourceItem.h:44
 AliMUONPainterDataSourceItem.h:45
 AliMUONPainterDataSourceItem.h:46
 AliMUONPainterDataSourceItem.h:47
 AliMUONPainterDataSourceItem.h:48
 AliMUONPainterDataSourceItem.h:49
 AliMUONPainterDataSourceItem.h:50
 AliMUONPainterDataSourceItem.h:51
 AliMUONPainterDataSourceItem.h:52
 AliMUONPainterDataSourceItem.h:53
 AliMUONPainterDataSourceItem.h:54
 AliMUONPainterDataSourceItem.h:55
 AliMUONPainterDataSourceItem.h:56
 AliMUONPainterDataSourceItem.h:57
 AliMUONPainterDataSourceItem.h:58
 AliMUONPainterDataSourceItem.h:59
 AliMUONPainterDataSourceItem.h:60
 AliMUONPainterDataSourceItem.h:61
 AliMUONPainterDataSourceItem.h:62
 AliMUONPainterDataSourceItem.h:63
 AliMUONPainterDataSourceItem.h:64
 AliMUONPainterDataSourceItem.h:65
 AliMUONPainterDataSourceItem.h:66
 AliMUONPainterDataSourceItem.h:67
 AliMUONPainterDataSourceItem.h:68
 AliMUONPainterDataSourceItem.h:69
 AliMUONPainterDataSourceItem.h:70
 AliMUONPainterDataSourceItem.h:71
 AliMUONPainterDataSourceItem.h:72
 AliMUONPainterDataSourceItem.h:73
 AliMUONPainterDataSourceItem.h:74
 AliMUONPainterDataSourceItem.h:75
 AliMUONPainterDataSourceItem.h:76
 AliMUONPainterDataSourceItem.h:77
 AliMUONPainterDataSourceItem.h:78
 AliMUONPainterDataSourceItem.h:79
 AliMUONPainterDataSourceItem.h:80
 AliMUONPainterDataSourceItem.h:81
 AliMUONPainterDataSourceItem.h:82
 AliMUONPainterDataSourceItem.h:83
 AliMUONPainterDataSourceItem.h:84
 AliMUONPainterDataSourceItem.h:85
 AliMUONPainterDataSourceItem.h:86