// @(#)root/treeviewer:$Name: $:$Id: TTVSession.h,v 1.4 2004/03/22 15:57:30 rdm Exp $
//Author : Andrei Gheata 21/02/01
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TTVSession
#define ROOT_TTVSession
///////////////////////////////////////////////////////////////////////////////
// //
// TTVSession and TTVRecord - I/O classes for TreeViewer session handling //
// TTreeViewer //
// //
///////////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif
class TTreeViewer;
class TClonesArray;
class TGVButtonGroup;
class TTVRecord : public TObject {
public:
TString fName; // name of this record
TString fX, fXAlias; // X expression and alias
TString fY, fYAlias; // Y expression and alias
TString fZ, fZAlias; // Z expression and alias
TString fCut, fCutAlias; // cut expression and alias
TString fOption; // graphic option
Bool_t fScanRedirected; // redirect switch
Bool_t fCutEnabled; // true if current cut is active
TString fUserCode; // command executed when record is conected
Bool_t fAutoexec; // autoexecute user code command
public:
TTVRecord(); // default constructor
~TTVRecord() {} // destructor
void ExecuteUserCode();
void FormFrom(TTreeViewer *tv);
void PlugIn(TTreeViewer *tv);
const char *GetX() const {return fX;}
const char *GetY() const {return fY;}
const char *GetZ() const {return fZ;}
virtual const char *GetName() const {return fName;}
const char *GetUserCode() const {return fUserCode;}
Bool_t HasUserCode() const {return fUserCode.Length() != 0 ? kTRUE : kFALSE;}
Bool_t MustExecuteCode() const {return fAutoexec;}
void SetAutoexec(Bool_t autoexec=kTRUE) {fAutoexec=autoexec;} // *TOGGLE* *GETTER=MustExecuteCode
void SetName(const char* name = "") {fName = name;}
void SetX(const char *x = "", const char *xal = "-empty-") {fX = x; fXAlias = xal;}
void SetY(const char *y = "", const char *yal = "-empty-") {fY = y; fYAlias = yal;}
void SetZ(const char *z = "", const char *zal = "-empty-") {fZ = z; fZAlias = zal;}
void SetCut(const char *cut = "", const char *cal = "-empty-") {fCut = cut; fCutAlias = cal;}
void SetOption(const char *option = "") {fOption = option;}
void SetRC(Bool_t redirect = kFALSE, Bool_t cut = kTRUE) {fScanRedirected = redirect; fCutEnabled = cut;}
void SetUserCode(const char *code, Bool_t autoexec=kTRUE) {fUserCode = code; fAutoexec=autoexec;} // *MENU*
void SaveSource(ofstream &out);
ClassDef(TTVRecord, 0) // A draw record for TTreeViewer
};
class TTVSession : public TObject {
private:
TClonesArray *fList; // list of TV records
TString fName; // name of this session
TTreeViewer *fViewer; // associated tree viewer
Int_t fCurrent; // index of current record
Int_t fRecords; // number of records
public:
TTVSession(TTreeViewer *tv);
~TTVSession();
virtual const char *GetName() const {return fName;}
void SetName(const char *name) {fName = name;}
void SetRecordName(const char* name);
TTVRecord *AddRecord(Bool_t fromFile = kFALSE);
Int_t GetEntries() {return fRecords;}
TTVRecord *GetCurrent() {return GetRecord(fCurrent);}
TTVRecord *GetRecord(Int_t i);
TTVRecord *First() {return GetRecord(0);}
TTVRecord *Last() {return GetRecord(fRecords-1);}
TTVRecord *Next() {return GetRecord(fCurrent+1);}
TTVRecord *Previous() {return GetRecord(fCurrent-1);}
void RemoveLastRecord();
void Show(TTVRecord *rec);
void SaveSource(ofstream &out);
void UpdateRecord(const char *name);
ClassDef(TTVSession, 0) // A tree viewer session
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1