195 if ((opt ==
"NEW") || (opt ==
"RECREATE"))
290 if (delPreviousState)
363 "RegisterWindow(Window_t)");
416 Error(
"TRecorderReplaying::Initialize",
417 "The ROOT file is not valid event logfile.");
428 Error(
"TRecorderReplaying::Initialize",
429 "The ROOT file is not valid event logfile");
435 Info(
"TRecorderReplaying::Initialize",
436 "Log file empty. No event to replay.");
445 gClient->Connect(
"RegisteredWindow(Window_t)",
"TRecorderReplaying",
446 this,
"RegisterWindow(Window_t)");
448 Info(
"TRecorderReplaying::Initialize",
"Replaying of file %s started",
452 if (
f && !
f->IsZombie()) {
453 TIter nextkey(
f->GetListOfKeys());
456 while ((key = (
TKey*)nextkey())) {
466 while ((canvas = (
TCanvas*)nextc())) {
476 fTimer->
Connect(
"Timeout()",
"TRecorderReplaying",
this,
"ReplayRealtime()");
498 if (
win->GetParent()->InheritsFrom(
"TGStatusBar")) {
512 Error(
"TRecorderReplaying::RegisterWindow",
513 "More windows registered than expected");
519 std::ios::fmtflags
f = std::cout.flags();
520 std::cout <<
" Window registered: new ID: " << std::hex <<
w <<
521 " previous ID: " <<
fWin << std::dec << std::endl;
522 std::cout.flags(
f );
541 std::ios::fmtflags
f = std::cout.flags();
543 " registered." << std::dec << std::endl;
544 std::cout.flags(
f );
582 for (
Int_t i = 0; i < 5; ++i) {
603 std::ios_base::fmtflags org_flags = std::cout.flags();
608 std::cout.flags(org_flags);
784 Error(
"TRecorderReplaying::CanOverlap()",
"fGuiEvent = 0");
794 std::cout <<
"Event overlapping " <<
832 gROOT->SetEditorMode();
861 gVirtualX->LookupString(
e, str,
sizeof(str), keysym);
863 if ((keysym & ~0x20) ==
kKey_S) {
884 Info(
"TRecorderReplaying::ReplayRealtime",
"Replaying finished");
906 Info(
"TRecorderReplaying::Pause",
"Replaying paused.");
914 Info(
"TRecorderReplaying::ReplayStop",
"Replaying cancelled");
969 r->ChangeState(replay);
992 if (
file->IsZombie() || !
file->IsOpen()) {
999 Error(
"TRecorderInactive::List",
1000 "The ROOT file is not valid event logfile.");
1008 Int_t entries =
t1->GetEntries();
1009 for (
Int_t i = 0; i < entries; ++i) {
1011 std::cout <<
"[" << i <<
"] " <<
"fTime=" <<
1013 fCmdEvent->
GetText() << std::endl;
1015 std::cout << std::endl;
1035 if (
file->IsZombie() || !
file->IsOpen()) {
1042 Error(
"TRecorderInactive::ListGui",
1043 "The ROOT file is not valid event logfile.");
1051 Int_t entries =
t1->GetEntries();
1053 for (
Int_t i = 0; i < entries ; ++i) {
1068 std::ios::fmtflags
f = std::cout.flags();
1069 std::cout <<
"[" <<
n <<
"] " << std::dec << std::setw(10)
1071 <<
" fW:" << std::hex <<
e->fWindow
1072 <<
" t:" << std::dec <<
e->fTime
1082 <<
" se:" <<
e->fSendEvent
1083 <<
" h:" <<
e->fHandle
1087 for (
Int_t i=0; i<5; ++i)
1092 std::cout <<
" | fM:" << std::hex <<
e->fMasked;
1094 std::cout << std::endl;
1095 std::cout.flags(
f );
1105 if (
f && !
f->IsZombie()) {
1131 Info(
"TRecorderPaused::Resume",
"Replaying resumed");
1144 Info(
"TRecorderReplaying::ReplayStop",
"Replaying cancelled");
1186 "RecordMousePosition()");
1231 this,
"RecordCmdEvent(const char*)");
1235 gClient->Connect(
"RegisteredWindow(Window_t)",
"TRecorderRecording",
this,
1236 "RegisterWindow(Window_t)");
1241 gClient->Connect(
"ProcessedEvent(Event_t*, Window_t)",
"TRecorderRecording",
1242 this,
"RecordGuiEvent(Event_t*, Window_t)");
1247 "TRecorderRecording",
this,
"RecordGuiCNEvent(Event_t*)");
1252 this,
"RecordPave(const TObject*)");
1256 "TRecorderRecording",
this,
"RecordText(const TObject*)");
1261 "FilterEventPave()");
1270 "TRecorderRecording",
this,
"RecordGuiBldEvent(Event_t*)");
1279 Int_t numCanvases =
gROOT->GetListOfCanvases()->LastIndex();
1281 if (numCanvases >= 0){
1286 while ((twin = (
TGWindow*) nextwindow())) {
1290 std::cout <<
"WindowID "<< twin2 <<
" filtered" << std::endl;
1293 else if (twin !=
gClient->GetRoot()) {
1306 Info(
"TRecorderRecording::StartRecording",
"Recording started. Log file: %s",
1318 "RecordGuiBldEvent(Event_t*)");
1320 "RecordGuiCNEvent(Event_t*)");
1322 "RecordPave(const TObject*)");
1324 "RecordText(const TObject*)");
1327 gClient->Disconnect(
gClient,
"ProcessedEvent(Event_t*, Window_t)",
this,
1328 "RecordGuiEvent(Event_t*, Window_t)");
1330 "RegisterWindow(Window_t)");
1332 "RecordCmdEvent(const char*)");
1346 Info(
"TRecorderRecording::Stop",
"Recording finished.");
1432 e->fFormat =
e->fType;
1511 cad =
"TPaveLabel *p = new TPaveLabel(";
1512 cad += pavel->
GetX1();
1514 cad += pavel->
GetY1();
1516 cad += pavel->
GetX2();
1518 cad += pavel->
GetY2();
1519 cad +=
",\"\"); p->Draw(); gPad->Modified(); gPad->Update();";
1521 interval /= (
len + 2);
1523 for (i=0; i <
len; ++i) {
1524 cad =
"p->SetLabel(\"";
1525 cad += (aux += label[i]);
1528 cad +=
" p->SetTextFont(83); p->SetTextSizePixels(14); ";
1530 cad +=
" gPad->Modified(); gPad->Update();";
1531 extratime += interval;
1534 cad =
"p->SetTextFont(";
1536 cad +=
"); p->SetTextSize(";
1538 cad +=
"); gPad->Modified(); gPad->Update();";
1539 extratime += interval;
1555 cad =
"TLatex *l = new TLatex(";
1556 cad += texto->
GetX();
1558 cad += texto->
GetY();
1559 cad +=
",\"\"); l->Draw(); gPad->Modified(); gPad->Update();";
1561 interval /= (
len + 2);
1563 for (i=0; i <
len; ++i) {
1564 cad =
"l->SetTitle(\"";
1565 cad += (aux += label[i]);
1568 cad +=
" l->SetTextFont(83); l->SetTextSizePixels(14); ";
1570 cad +=
" gPad->Modified(); gPad->Update();";
1571 extratime += interval;
1574 cad =
"l->SetTextFont(";
1576 cad +=
"); l->SetTextSize(";
1578 cad +=
"); gPad->Modified(); gPad->Update();";
1579 cad +=
" TVirtualPad *spad = gPad->GetCanvas()->GetSelectedPad();";
1580 cad +=
" gPad->GetCanvas()->Selected(spad, l, kButton1Down);";
1581 extratime += interval;
1640 for(
Int_t i=0; i<5; ++i)
1649 gVirtualX->LookupString(
e, tmp,
sizeof(tmp), keysym);
1682 if ((
e->fX == 0 &&
e->fY == 0)) {
1817 fTimer->
Connect(
"Timeout()",
"TGRecorder",
this,
"Update()");
1858 running = gmtime( &elapsed_time );
1873 stime.
Form(
"%02d:%02d:%02d", running->tm_hour,
1874 running->tm_min, running->tm_sec);
1916 "All files",
"*",
"Text files",
"*.txt",
"ROOT files",
"*.root", 0, 0
1934 if (!
gROOT->GetListOfCanvases()->IsEmpty()) {
2040 Int_t px, py, dx, dy;
2074 w->Resize(
e->fWidth,
e->fHeight);
2079 w->MoveResize(
e->fX,
e->fY,
e->fWidth,
e->fHeight);
2083 Error(
"TRecGuiEvent::ReplayEvent",
2084 "kConfigureNotify: Unknown value: fUser[4] = %ld ",
2093 Error(
"TRecGuiEvent::ReplayEvent",
2094 "kConfigureNotify: Window does not exist anymore ");
2103 e->fX,
e->fY, px, py, wtarget);
2178 for(
Int_t i=0; i<5; ++i)
2179 e->fUser[i] = ge->
fUser[i];
2188 e->fUser[2] =
e->fCode;
const Mask_t kWAOverrideRedirect
Handle_t Pixmap_t
Pixmap handle.
Handle_t Window_t
Window handle.
const Mask_t kWASaveUnder
const Mask_t kKeyControlMask
ULong_t Pixel_t
Pixel value.
unsigned long long ULong64_t
R__EXTERN TApplication * gApplication
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
static const char * gFiletypes[]
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize wid
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t win
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t attr
Option_t Option_t TPoint TPoint const char mode
const char * kCmdEventTree
const char * kRecEventNames[]
const char * kExtraEventTree
static Int_t gDecorHeight
const char * kWindowsTree
const char * kGuiEventTree
static TGCursorWindow * gCursorWin
R__EXTERN TSystem * gSystem
R__EXTERN TVirtualDragManager * gDragManager
R__EXTERN Atom_t gROOT_MESSAGE
R__EXTERN Atom_t gWM_DELETE_WINDOW
virtual Float_t GetTextSize() const
Return the text size.
virtual Font_t GetTextFont() const
Return the text font.
Using a TBrowser one can browse all ROOT objects.
void SetWindowSize(UInt_t ww, UInt_t wh)
Set canvas window size.
UInt_t GetWindowHeight() const
void Draw(Option_t *option="") override
Draw a canvas.
UInt_t GetWindowWidth() const
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
Write all objects in this collection.
TObject * Get(const char *namecycle) override
Return pointer to object identified by namecycle.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
virtual Bool_t IsOpen() const
Returns kTRUE in case file is open and kFALSE if file is not open.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
Int_t Write(const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) override
Write memory objects to this file.
void Close(Option_t *option="") override
Close a file.
const TGPicture * GetPicture(const char *name)
Get picture from the picture pool.
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
void Layout() override
Layout the elements of the composite frame.
void SetCleanup(Int_t mode=kLocalCleanup) override
Turn on automatic cleanup of child frames in dtor.
void SetEditDisabled(UInt_t on=1) override
Set edit disable flag for this frame and subframes.
virtual ~TGCursorWindow()
Destructor.
TGCursorWindow()
TGCursorWindow constructor.
This class creates a file selection dialog.
char * fFilename
selected file name
const char ** fFileTypes
file types used to filter selectable files
Bool_t fOverwrite
if true overwrite the file with existing name on save
A subclasses of TGWindow, and is used as base class for some simple widgets (buttons,...
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
void SetBackgroundColor(Pixel_t back) override
Set background color (override from TGWindow base class).
void MapWindow() override
map window
void Move(Int_t x, Int_t y) override
Move frame.
virtual void DeleteWindow()
Delete window.
void MapRaised() override
map raised
A composite frame that layout their children in horizontal way.
This class handles GUI labels.
virtual void SetTextColor(Pixel_t color, Bool_t global=kFALSE)
Changes text color.
virtual void SetText(TGString *newText)
Set new text in label.
virtual void SetTextFont(TGFont *font, Bool_t global=kFALSE)
Changes text font specified by pointer to TGFont object.
This class describes layout hints used by the layout classes.
Defines top level windows that interact with the system Window Manager.
void SetWindowName(const char *name=nullptr) override
Set window name. This is typically done via the window manager.
TGClient * fClient
Connection to display server.
Handle_t fId
X11/Win32 Window identifier.
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Pixmap_t GetPicture() const
Provides GUI for TRecorder class.
Window_t fFilteredIds[fgWidgetsCount]
TGPictureButton * fStartStop
virtual ~TGRecorder()
Destructor. Cleanup the GUI.
TGRecorder(const TGWindow *p=nullptr, UInt_t w=230, UInt_t h=150)
The GUI for the recorder.
TGCheckButton * fCursorCheckBox
void StartStop()
Handles push of the fStartStop button according to the current recorder state.
TGPictureButton * fReplay
void Update()
Called when fTimer timeouts (every 0.025 second) Updates GUI of recorder.
static const Int_t fgWidgetsCount
void SetDefault()
Sets GUI to the default inactive state.
void Replay()
Handles push of fReplay button according to the current recorder state.
A composite frame that layout their children in vertical way.
ROOT GUI Window base class.
virtual void SetBackgroundPixmap(Pixmap_t pixmap)
set background pixmap
@ kEditDisableGrab
window grab cannot be edited
@ kEditDisable
disable edit of this window
virtual Bool_t IsMapped()
Returns kTRUE if window is mapped on screen, kFALSE otherwise.
virtual void RaiseWindow()
raise window
Book space in a file, create I/O buffers, to fill them, (un)compress them.
virtual TObject * ReadObj()
To read a TObject* from the file.
To draw Mathematical Formula.
TObject * Next() override
Return next object in the list. Returns 0 when no more objects in list.
void Add(TObject *obj) override
Int_t UnLock() override
Unlock the mutex.
Int_t Lock() override
Lock the mutex.
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t IsZombie() const
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
A Pave (see TPave) with a text centered in the Pave.
const char * GetLabel() const
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Bool_t Disconnect(const char *signal=nullptr, void *receiver=nullptr, const char *slot=nullptr)
Disconnects signal of this object from slot of receiver.
Class used for storing information about 1 commandline event.
const char * GetText() const
void SetText(const char *text)
virtual void ReplayEvent(Bool_t showMouseCursor=kTRUE)=0
virtual void SetTime(TTime t)
virtual TTime GetTime() const
virtual ERecEventType GetType() const =0
virtual void ReplayEvent(Bool_t showMouseCursor=kTRUE)
Replays stored GUI event.
static Event_t * CreateEvent(TRecGuiEvent *ge)
Converts TRecGuiEvent type to Event_t type.
Class used for storing of window IDs mapping.
Represents state of TRecorder just after its creation.
virtual void ListCmd(const char *filename)
Prints out commandline events recorded in given file.
void PrevCanvases(const char *filename, Option_t *option)
Save previous canvases in a .root file.
TSeqCollection * fCollect
virtual Bool_t Replay(TRecorder *r, const char *filename, Bool_t showMouseCursor, TRecorder::EReplayModes mode)
Switches from INACTIVE state of recorder to REPLAYING Return kTRUE if replaying has started or kFALSE...
virtual void Start(TRecorder *r, const char *filename, Option_t *option, Window_t *w=nullptr, Int_t winCount=0)
Switches from INACTIVE state to RECORDING and starts recording.
static void DumpRootEvent(TRecGuiEvent *e, Int_t n)
Prints out attributes of one GUI event TRecGuiEvent *e Int_n n is number of event if called in cycle.
static long DisplayValid(Long_t n)
virtual void ListGui(const char *filename)
Prints out GUI events recorded in given file.
Represents state of TRecorder when replaying was paused by a user.
TRecorderReplaying * fReplayingState
virtual void Resume(TRecorder *r)
Continues replaying.
TRecorderPaused(TRecorderReplaying *state)
Remember the recorder state that is paused.
virtual void ReplayStop(TRecorder *r)
Replaying is cancelled.
Represents state of TRecorder when recording events.
TRecExtraEvent * fExtraEvent
void FilterEventPave()
Change the state of the flag to kTRUE when you are recording a pavelabel.
void RecordMousePosition()
Try to record all mouse moves...
friend class TRecorderInactive
TRecorderRecording(TRecorder *r, const char *filename, Option_t *option, Window_t *w, Int_t winCount)
Initializes TRecorderRecording for recording What is allocated here is deleted in destructor.
void RegisterWindow(Window_t w)
This method is called when RegisteredWindow(Window_t) is emitted from TGClient.
virtual void Stop(TRecorder *r, Bool_t guiCommand)
Disconnects all slots and stopps recording.
Bool_t StartRecording()
Connects appropriate signals and slots in order to gain all registered windows and processed events i...
void StartEditing()
Memorize the starting time of editinga TLatex or a TPaveLabel.
void RecordGuiBldEvent(Event_t *e)
Special case for the gui builder, having a timer handling some of the events.
void RecordPave(const TObject *obj)
Records TPaveLabel object created in TCreatePrimitives::Pave()
virtual ~TRecorderRecording()
Freeing of allocated memory.
Bool_t IsFiltered(Window_t id)
Returns kTRUE if passed id belongs to window IDs of recorder GUI itself.
void SetTypeOfConfigureNotify(Event_t *e)
Sets type of kConfigureNotify event to one of EConfigureNotify.
void RecordGuiCNEvent(Event_t *e)
Records GUI Event_t *e of type kConfigureNotify.
void RecordExtraEvent(TString line, TTime extTime)
Records TLatex or TPaveLabel object created in TCreatePrimitives, ExtTime is needed for the correct r...
void RecordGuiEvent(Event_t *e, Window_t wid)
Records GUI Event_t *e different from kConfigureNotify (they are recorded in TRecorderRecording::Reco...
void RecordText(const TObject *obj)
Records TLatex object created in TCreatePrimitives::Text()
void CopyEvent(Event_t *e, Window_t wid)
Copies all items of given event to fGuiEvent.
void RecordCmdEvent(const char *line)
Records commandline event (text and time) ans saves the previous commandline event This 1 event delay...
Represents state of TRecorder when replaying previously recorded events.
Bool_t FilterEvent(TRecGuiEvent *e)
friend class TRecorderPaused
friend class TRecorderInactive
virtual void ReplayStop(TRecorder *r)
Cancels replaying.
virtual ~TRecorderReplaying()
Closes all signal-slot connections Frees all memory allocated in constructor.
Bool_t RemapWindowReferences()
All references to the old windows (IDs) in fNextEvent are replaced by new ones according to the mappi...
TRecExtraEvent * fExtraEvent
virtual void Continue()
Continues previously paused replaying.
Bool_t CanOverlap()
ButtonPress and ButtonRelease must be sometimes replayed more times Example: pressing of a button ope...
virtual void Pause(TRecorder *r)
Pauses replaying.
TRecorderReplaying(const char *filename)
Allocates all necessary data structures used for replaying What is allocated here is deleted in destr...
Bool_t PrepareNextEvent()
Finds the next event in log file to replay and sets it to fNextEvent.
Bool_t Initialize(TRecorder *r, Bool_t showMouseCursor, TRecorder::EReplayModes mode)
Initialization of data structures for replaying.
void RegisterWindow(Window_t w)
Creates mapping for the newly registered window w and adds this mapping to fWindowList.
void ReplayRealtime()
Replays the next event.
Abstract class that defines interface for a state of recorder.
virtual void PrevCanvases(const char *, Option_t *)
virtual void Resume(TRecorder *)
virtual void Start(TRecorder *, const char *, Option_t *, Window_t *, Int_t)
virtual void ListCmd(const char *)
virtual void ReplayStop(TRecorder *)
virtual void Pause(TRecorder *)
virtual void ListGui(const char *)
virtual TRecorder::ERecorderState GetState() const =0
virtual Bool_t Replay(TRecorder *, const char *, Bool_t, TRecorder::EReplayModes)
virtual void Stop(TRecorder *, Bool_t)
Class provides direct recorder/replayer interface for a user.
friend class TRecorderInactive
void Stop(Bool_t guiCommand=kFALSE)
Stopps recording events.
void ReplayStop()
Cancels replaying.
void Resume()
Resumes replaying.
TRecorderState * fRecorderState
virtual TRecorder::ERecorderState GetState() const
Get current state of recorder.
void ListGui(const char *filename)
Prints out recorded GUI events.
void Start(const char *filename, Option_t *option="RECREATE", Window_t *w=nullptr, Int_t winCount=0)
Starts recording events.
void Pause()
Pauses replaying.
void Browse(TBrowser *)
Browse the recorder from a ROOT file.
void ListCmd(const char *filename)
Prints out recorded commandline events.
virtual ~TRecorder()
Destructor.
Bool_t Replay(const char *filename, Bool_t showMouseCursor=kTRUE, TRecorder::EReplayModes mode=kRealtime)
Replays events from 'filename'.
TRecorder()
Creates initial INACTIVE state for the recorder.
void PrevCanvases(const char *filename, Option_t *option)
Save previous canvases in a .root file.
void ChangeState(TRecorderState *newstate, Bool_t deletePreviousState=kTRUE)
Changes state from the current to the passed one (newstate) Deletes the old state if delPreviousState...
const char * Data() const
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
Basic time type with millisecond precision.
const char * AsString() const
Return the time as a string.
Handles synchronous and a-synchronous timer events.
virtual void TurnOff()
Remove timer from system timer list.
virtual void Start(Long_t milliSec=-1, Bool_t singleShot=kFALSE)
Starts the timer with a milliSec timeout.
virtual void TurnOn()
Add the timer to the system timer list.
void Reset()
Reset the timer.
A TTree represents a columnar dataset.
virtual Int_t Fill()
Fill all branches.
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=nullptr)
Change branch address, dealing with clone trees properly.
virtual Long64_t GetEntries() const
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the type of obj being passed.
virtual Bool_t HandleTimerEvent(Event_t *, TTimer *)
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
EGEventType fType
of event (see EGEventType)
Int_t fY
pointer x, y coordinates in event window
Bool_t fSendEvent
true if event came from SendEvent
Handle_t fHandle
general resource handle (used for atoms or windows)
Int_t fFormat
Next fields only used by kClientMessageEvent.
UInt_t fHeight
width and height of exposed area
Int_t fCount
if non-zero, at least this many more exposes
Window_t fWindow
window reported event is relative to
UInt_t fState
key or button mask
Int_t fYRoot
coordinates relative to root
Time_t fTime
time event event occurred in ms
UInt_t fCode
key or button code
Longptr_t fUser[5]
5 longs can be used by client message events NOTE: only [0], [1] and [2] may be used.
Attributes that can be used when creating or changing a window.
Bool_t fOverrideRedirect
boolean value for override-redirect
Mask_t fMask
bit mask specifying which fields are valid
Bool_t fSaveUnder
should bits under be saved (popups)?
Window attributes that can be inquired.