ROOT logo
#ifndef ALIMUONPAINTERREGISTRY_H
#define ALIMUONPAINTERREGISTRY_H

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

// $Id$

/// \ingroup graphics
/// \class AliMUONPainterRegistry
/// \brief Registry for a bunch of AliMUONVPainter related stuff
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ROOT_TObject
#  include "TObject.h"
#endif
#ifndef ROOT_TQObject
#  include <TQObject.h>
#endif

class TGPopupMenu;
class TObjArray;
class AliMUONPainterMatrix;
class TGMenuBar;

class AliMUONPainterRegistry : public TObject, public TQObject
{
public:
  virtual ~AliMUONPainterRegistry();

  Int_t FindIndexOf(AliMUONPainterMatrix* group) const;
  
  void HistoryMenuActivated(Int_t i);
  
  static AliMUONPainterRegistry* Instance();
  
  Int_t NumberOfPainterMatrices() const;

  AliMUONPainterMatrix* PainterMatrix(Int_t i) const;
  
  AliMUONPainterMatrix* PainterMatrix(const char* groupName) const;
  
  void AddToHistory(AliMUONPainterMatrix* group);
    
  void PainterMatrixWasRegistered(const AliMUONPainterMatrix* group); // *SIGNAL*
  
  void PainterMatrixWasUnregistered(const AliMUONPainterMatrix* group); // *SIGNAL*
  
  void PainterMatrixWantToShow(const AliMUONPainterMatrix* group); // *SIGNAL*
  
  void Print(Option_t* opt) const;
  
  Int_t Register(AliMUONPainterMatrix* group);
  
  /// Set the menu bar where to put the history menu
  void SetMenuBar(TGMenuBar* bar) { fMenuBar = bar; }
  
  Bool_t Unregister(AliMUONPainterMatrix* group);
  
private:
  /// Not implemented
  AliMUONPainterRegistry();
  /// Not implemented
  AliMUONPainterRegistry(const AliMUONPainterRegistry&);
  /// Not implemented
  AliMUONPainterRegistry& operator=(const AliMUONPainterRegistry&);
  
private:
  static AliMUONPainterRegistry* fgInstance; ///< unique instance
  TObjArray* fPainterMatrices; ///< painter matrices
  TGPopupMenu* fHistoryMenu; ///< history menu
  TGMenuBar* fMenuBar; ///< Menu bar where to put the history menu
  Int_t fHistoryCounter; ///< index to get back history menu items
  
  ClassDef(AliMUONPainterRegistry,5) // Registry for AliMUONVPainter related stuff
};

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