ROOT EVENT RECORDING SYSTEM TRecorder class provides interface for recording and replaying events in ROOT. Recorded events are: - Commands typed by user in commandline ('new TCanvas') - GUI events (mouse movement, button clicks, ...) All the recorded events from one session are stored in one TFile and can be replayed again anytime. Recording 1] To start recording TRecorder r(const char *filename, "NEW") TRecorder r(const char *filename, "RECREATE") or: TRecorder *recorder = new TRecorder; recorder->Start(const char *filename, ...) -filename Name of ROOT file in which to save recorded events. 2] To stop recording recorder->Stop() IMPORTANT: State capturing is part of recording. It means that if you want to record events for some object (window), creation of this object must be also recorded. Example: t = new TRecorder(); // Create a new recorder t->Start("logfile.root"); // ! Start recording first c = new TCanvas(); // ! Then, create an object c->Dump(); // Work with that object t->Stop(); // Stop recording It is strongly recommended to start recording with empty ROOT environment, at least with no previously created ROOT GUI. This ensures that only events for well known windows are stored. Events for windows, which were not created during recording, cannot be replayed. Replaying 1] To start replaying TRecorder r(const char *filename) TRecorder r(const char *filename, "READ") or: TRecorder *recorder = new TRecorder; recorder->Replay(const char *filename, Bool_t showMouseCursor = kTRUE); -filename A name of file with recorded events previously created with TRecorder::Start -showMouseCursor If kTRUE, mouse cursor is replayed as well. In that case it is not recommended to use mouse during replaying. In general, it is not recommended to use mouse to change positions and states of ROOT windows during replaying. IMPORTANT: The state of ROOT environment before replaying of some events must be exactly the same as before recording them. Therefore it is strongly recommended to start both recording and replaying with empty ROOT environment. 2] To pause replaying recorder->Pause() Replaying is stopped until recorder->Resume() is called. 3] To resume paused replaying recorder->Resume() Resumes previously stopped replaying. 4] To stop replaying before its end recorder->Stop()
virtual | ~TRecGuiEvent() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
static Event_t* | CreateEvent(TRecGuiEvent* ge) |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
virtual TTime | TRecEvent::GetTime() const |
virtual const char* | TObject::GetTitle() const |
virtual TRecEvent::ERecEventType | GetType() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
void | TObject::operator delete(void* ptr) |
void | TObject::operator delete(void* ptr, void* vp) |
void | TObject::operator delete[](void* ptr) |
void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
TRecGuiEvent& | operator=(const TRecGuiEvent&) |
TRecGuiEvent& | operator=(TRecGuiEvent&&) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual void | ReplayEvent(Bool_t showMouseCursor = kTRUE) |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(ostream& out, Option_t* option = "") |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | TRecEvent::SetTime(TTime t) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector& insp) const |
virtual void | Streamer(TBuffer&) |
void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
TRecGuiEvent() | |
TRecGuiEvent(const TRecGuiEvent&) | |
TRecGuiEvent(TRecGuiEvent&&) | |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | TObject::MakeZombie() |
static TObject::(anonymous) | TObject::kBitMask | |
static TRecGuiEvent::EConfigureNotifyType | kCNFilter | |
static TRecGuiEvent::EConfigureNotifyType | kCNMove | |
static TRecGuiEvent::EConfigureNotifyType | kCNMoveResize | |
static TRecGuiEvent::EConfigureNotifyType | kCNResize | |
static TObject::EStatusBits | TObject::kCanDelete | |
static TObject::EStatusBits | TObject::kCannotPick | |
static TRecEvent::ERecEventType | TRecEvent::kCmdEvent | |
static TRecEvent::ERecEventType | TRecEvent::kExtraEvent | |
static TRecEvent::ERecEventType | TRecEvent::kGuiEvent | |
static TObject::EStatusBits | TObject::kHasUUID | |
static TObject::EStatusBits | TObject::kInvalidObject | |
static TObject::(anonymous) | TObject::kIsOnHeap | |
static TObject::EStatusBits | TObject::kIsReferenced | |
static TObject::EStatusBits | TObject::kMustCleanup | |
static TObject::EStatusBits | TObject::kNoContextMenu | |
static TObject::(anonymous) | TObject::kNotDeleted | |
static TObject::EStatusBits | TObject::kObjInCanvas | |
static TObject::(anonymous) | TObject::kOverwrite | |
static TRecGuiEvent::ERootAtoms | kROOT_MESSAGE | |
static TObject::(anonymous) | TObject::kSingleKey | |
static TRecGuiEvent::ERootAtoms | kWM_DELETE_WINDOW | |
static TObject::(anonymous) | TObject::kWriteDelete | |
static TObject::(anonymous) | TObject::kZombie |
UInt_t | fCode | Key or button code |
Int_t | fCount | If non-zero, at least this many more exposes |
Int_t | fFormat | Next fields only used by kClientMessageEvent |
Handle_t | fHandle | General resource handle (used for atoms or windows) |
UInt_t | fHeight | Height of exposed area |
Window_t | fMasked | If non-zero, event recorded in HandleMaskEvent() |
Bool_t | fSendEvent | True if event came from SendEvent |
UInt_t | fState | Key or button mask |
Time_t | fTime | Time event occured in ms |
EGEventType | fType | Type of event (see EGEventType) |
Long_t | fUser[5] | 5 longs can be used by client message events |
UInt_t | fWidth | Width of exposed area |
Window_t | fWindow | Window ID which reported event is relative to |
Int_t | fX | Pointer x coordinate in event window |
Int_t | fXRoot | x coordinate relative to root |
Int_t | fY | Pointer y coordinate in event window |
Int_t | fYRoot | y coordinate relative to root |
Inheritance Chart: | |||||||||||||
|