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

// Canvas for ALICE figures
//
// Author: Jochen Klein <jochen.klein@cern.ch>

#ifndef ALIFIGURE_H
#define ALIFIGURE_H

#include "TCanvas.h"
#include "TColor.h"

class TObject;
class TString;
class TCanvas;
class TText;
class TASImage;
class TStyle;
class TLatex;

class AliFigure : public TCanvas
{
 public:
  AliFigure(const char* name = "", const char* title = "", Int_t ww = 800, Int_t wh = 600);
  ~AliFigure();

  enum Status_t {
    kWorkInProgress = 0,
    kThisWork,
    kPerformance,
    kPreliminary,
    kFinal,
    kStatusLast
  };

  enum Mode_t {
    kPresentation,
    kPrint
  };

  enum Pos_t {
    kN = 0, kNE, kE, kSE, kS, kSW, kW, kNW, kCenter
  };

  void Draw(Option_t *option = "");
  void Paint(Option_t *option = "");
  void Clear(Option_t *option = "");
  void Update();

  void SetStatus(Status_t status);

  void SetLogoFilename(Status_t status, TString filename);
  void SetLogoPos(Float_t x, Float_t y);
  void SetLogoPos(Pos_t pos);
  void SetLogoSize(Float_t size);

  void SetCollSystem(TString txt);
  void SetCollSystemPos(Float_t x, Float_t y);

  void SetDataSample(TString txt);

  void SetTextSize(Float_t size);

  void SetDisabled(Bool_t disable = kTRUE) { fDisabled = disable; }
  Bool_t GetDisabled() const { return fDisabled; }

  static TStyle* Style();

 protected:
  void UpdateLogo();
  void UpdateLogoPos();
  void UpdatePad(TPad *pad);

  Bool_t   fDisabled;

  Bool_t   isMC;
  Status_t fStatus;

  TString  fDateFormat;
  Float_t  fTextSize;
  Color_t  fTextColor;

  TString  fLogoFilename[kStatusLast];
  Float_t  fLogoPosX;
  Float_t  fLogoPosY;
  Float_t  fLogoHeight;

  TPad     *fLogoPad;
  TText    *fDate;
  TText    *fStatusPad;
  TLatex   *fCollSystem;
  TLatex   *fDataSample;
  TText    *fTag;
  TASImage *fLogo;

  const char* fStatusString[kStatusLast];

  static TStyle *fgStyle;

 private:
  AliFigure(const AliFigure& rhs); // not implemented
  AliFigure& operator=(const AliFigure& rhs); // not implemented

  ClassDef(AliFigure, 1);
};

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