ROOT logo
#ifndef ALIMUONPAINTERMASTERFRAME_H
#define ALIMUONPAINTERMASTERFRAME_H

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

// $Id$

/// \ingroup graphics
/// \class AliMUONPainterMasterFrame
/// \brief The main window for the offline "a la mood" display
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ROOT_TGFrame
#  include <TGFrame.h>
#endif
#ifndef ROOT_TArrayI
#  include <TArrayI.h>
#endif

class AliMUONAttPainter;
class AliMUONPainterMatrix;
class AliMUONPainterMatrixFrame;
class AliMUONAttPainterSelectorFrame;
class AliMUONVPainter;
class TGButton;
class TGButtonGroup;
class TGComboBox;
class TGLabel;
class TObjArray;

class AliMUONPainterMasterFrame : public TGCompositeFrame
{
public:
  AliMUONPainterMasterFrame(const TGWindow* p, UInt_t w, UInt_t h, AliMUONPainterMatrix* matrix);
  virtual ~AliMUONPainterMasterFrame();

  void Backward();

  void ChangeTitle(const char* newTitle);
  
  void Clicked(AliMUONVPainter* painter, Double_t* values);

  void ShiftClicked(AliMUONVPainter* painter, Double_t* values);

  void Forward();
  
  void PainterMatrixWantToShow(AliMUONPainterMatrix* group);

  void Update();

  void AttributesChanged(const AliMUONAttPainter* newValues);
  
  void SaveAs(const char* filename = "", Option_t* option = "") const;
  
  void PrintAs() const;

  void PrintMe() const;
  
private:
  /// not implemented
  AliMUONPainterMasterFrame(const AliMUONPainterMasterFrame& rhs);
  /// not implemented
  AliMUONPainterMasterFrame& operator=(const AliMUONPainterMasterFrame& rhs);
  
  void AddPainterMatrix(AliMUONPainterMatrix* group);
  void MakeTopPainterMatrix(UInt_t w, UInt_t h, AliMUONPainterMatrix* matrix);
  void SetNavigation(Int_t i);
  void ShowPainterMatrix(AliMUONPainterMatrix* group);  
  void UpdateNavigation();
  void UpdateAttributes(const AliMUONPainterMatrix& painterMatrix);
  
private:
  TGHorizontalFrame* fNavigationFrame; ///< top frame for navigation
  AliMUONPainterMatrixFrame* fPainterMatrixFrame; ///< main frame with painters
  
  TGButton* fBackButton; ///< navigation back 
  TGButton* fForwardButton; ///< navigation forward
  TGLabel* fGroupTitle; ///< top title
  TGButton* fPrintMeButton; ///< print button
  TGButton* fPrintAsButton; ///< print... button
  
  TArrayI fNavigation; ///< navigation "history"
    
  Int_t fCurrentNavigationPosition; ///< current position in navigation history

  AliMUONAttPainterSelectorFrame* fAttPainterSelectorFrame; ///< view type selection frame
  
  static const Int_t fgkBorderSize; ///< border sizes to use when placing frames

  ClassDef(AliMUONPainterMasterFrame,0) // Main window of display
};

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