00001 #ifndef ANP_EVENTDISPLAY_H
00002 #define ANP_EVENTDISPLAY_H
00003
00004
00005 #include "RQ_OBJECT.h"
00006
00007
00008 #include "PhysicsNtuple/EventTab.h"
00009 #include "RecordStore.h"
00010
00011 class TGCompositeFrame;
00012 class TGMainFrame;
00013 class TGTab;
00014
00015 namespace Anp
00016 {
00017 class EventDisplay
00018 {
00019 public:
00020
00021 static EventDisplay& Instance();
00022
00023 void Add(EventTabPtr tab);
00024 EventTabPtr Add(const std::string &name);
00025
00026 void Add(const Record &record);
00027
00028 void Init();
00029
00030
00031 void Selected(int tab);
00032 void NextEvent();
00033 void PrevEvent();
00034 void NextSnarl();
00035 void PrevSnarl();
00036 void ZoomIn();
00037 void ZoomOut();
00038 void PrintTruth();
00039 void PrintData();
00040 void PrintTab();
00041 void CloseWindow();
00042
00043 private:
00044
00045 EventDisplay(const EventDisplay &);
00046 const EventDisplay& operator=(const EventDisplay &);
00047
00048 private:
00049
00050 EventDisplay();
00051 ~EventDisplay() {}
00052
00053 void NewEvent();
00054
00055 void InitTab(EventTabPtr tab);
00056
00057 EventTabPtr GetCurrent();
00058
00059 private:
00060
00061 typedef std::vector<Anp::EventTabPtr> TabVec;
00062
00063 private:
00064
00065 static EventDisplay *fgInstance;
00066
00067 TGMainFrame *fMain;
00068 TGTab *fTab;
00069
00070 TabVec fTabs;
00071
00072 RecordStore fStore;
00073
00074 bool fZoom;
00075
00076 RQ_OBJECT("EventDisplay")
00077 };
00078 }
00079
00080 #endif