Skip to content
Snippets Groups Projects
Commit e84ff1e7 authored by Bertrand Bellenot's avatar Bertrand Bellenot
Browse files

- From Katerina Opocenska and me:

  TRecorder classes provide interface for recording and replaying
  events in ROOT.
  Recorded events are:
  - Commands typed by user in command line (e.g. '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.
- Added icons needed by TGRecorder
- Modifications in TRootCanvas menu:
  Renamed "Inspect" menu title to "Tools"
  Added "Event Recorder" menu entry


git-svn-id: http://root.cern.ch/svn/root/trunk@25603 27541ba8-7e3a-0410-8455-c3a389f83636
parent 06cfbcf1
Branches
Tags
No related merge requests found
...@@ -57,8 +57,7 @@ private: ...@@ -57,8 +57,7 @@ private:
TGPopupMenu *fViewMenu; // view menu TGPopupMenu *fViewMenu; // view menu
TGPopupMenu *fViewWithMenu; // view with... cascade submenu TGPopupMenu *fViewWithMenu; // view with... cascade submenu
TGPopupMenu *fOptionMenu; // option menu TGPopupMenu *fOptionMenu; // option menu
TGPopupMenu *fInspectMenu; // inspect menu TGPopupMenu *fToolsMenu; // tools menu
TGPopupMenu *fClassesMenu; // classes menu
TGPopupMenu *fHelpMenu; // help menu TGPopupMenu *fHelpMenu; // help menu
TGLayoutHints *fMenuBarLayout; // menubar layout hints TGLayoutHints *fMenuBarLayout; // menubar layout hints
TGLayoutHints *fMenuBarItemLayout; // layout hints for menu in menubar TGLayoutHints *fMenuBarItemLayout; // layout hints for menu in menubar
......
...@@ -118,10 +118,10 @@ enum ERootCanvasCommands { ...@@ -118,10 +118,10 @@ enum ERootCanvasCommands {
kOptionCanEdit, kOptionCanEdit,
kInspectRoot, kInspectRoot,
kInspectBrowser,
kInspectBuilder,
kClassesTree, kClassesTree,
kToolsBrowser,
kToolsBuilder,
kToolsRecorder,
kHelpAbout, kHelpAbout,
kHelpOnCanvas, kHelpOnCanvas,
...@@ -182,7 +182,7 @@ static ToolBarData_t gToolBarData[] = { ...@@ -182,7 +182,7 @@ static ToolBarData_t gToolBarData[] = {
{ "refresh2.xpm", "Refresh", kFALSE, kOptionRefresh, 0 }, { "refresh2.xpm", "Refresh", kFALSE, kOptionRefresh, 0 },
{ "", "", kFALSE, -1, 0 }, { "", "", kFALSE, -1, 0 },
{ "inspect.xpm", "Inspect", kFALSE, kInspectRoot, 0 }, { "inspect.xpm", "Inspect", kFALSE, kInspectRoot, 0 },
{ "browser.xpm", "Browser", kFALSE, kInspectBrowser, 0 }, { "browser.xpm", "Browser", kFALSE, kToolsBrowser, 0 },
{ 0, 0, kFALSE, 0, 0 } { 0, 0, kFALSE, 0, 0 }
}; };
...@@ -431,13 +431,12 @@ void TRootCanvas::CreateCanvas(const char *name) ...@@ -431,13 +431,12 @@ void TRootCanvas::CreateCanvas(const char *name)
if (gROOT->GetEditHistograms()) if (gROOT->GetEditHistograms())
fOptionMenu->CheckEntry(kOptionCanEdit); fOptionMenu->CheckEntry(kOptionCanEdit);
fInspectMenu = new TGPopupMenu(fClient->GetDefaultRoot()); fToolsMenu = new TGPopupMenu(fClient->GetDefaultRoot());
fInspectMenu->AddEntry("&ROOT", kInspectRoot); fToolsMenu->AddEntry("&Inspect ROOT", kInspectRoot);
fInspectMenu->AddEntry("&Start Browser", kInspectBrowser); fToolsMenu->AddEntry("&Class Tree", kClassesTree);
fInspectMenu->AddEntry("&Gui Builder", kInspectBuilder); fToolsMenu->AddEntry("&Start Browser", kToolsBrowser);
fToolsMenu->AddEntry("&Gui Builder", kToolsBuilder);
fClassesMenu = new TGPopupMenu(fClient->GetDefaultRoot()); fToolsMenu->AddEntry("&Event Recorder", kToolsRecorder);
fClassesMenu->AddEntry("&Class Tree", kClassesTree);
fHelpMenu = new TGPopupMenu(fClient->GetDefaultRoot()); fHelpMenu = new TGPopupMenu(fClient->GetDefaultRoot());
fHelpMenu->AddLabel("Basic Help On..."); fHelpMenu->AddLabel("Basic Help On...");
...@@ -459,8 +458,7 @@ void TRootCanvas::CreateCanvas(const char *name) ...@@ -459,8 +458,7 @@ void TRootCanvas::CreateCanvas(const char *name)
fViewMenu->Associate(this); fViewMenu->Associate(this);
fViewWithMenu->Associate(this); fViewWithMenu->Associate(this);
fOptionMenu->Associate(this); fOptionMenu->Associate(this);
fInspectMenu->Associate(this); fToolsMenu->Associate(this);
fClassesMenu->Associate(this);
fHelpMenu->Associate(this); fHelpMenu->Associate(this);
// Create menubar layout hints // Create menubar layout hints
...@@ -474,8 +472,7 @@ void TRootCanvas::CreateCanvas(const char *name) ...@@ -474,8 +472,7 @@ void TRootCanvas::CreateCanvas(const char *name)
fMenuBar->AddPopup("&Edit", fEditMenu, fMenuBarItemLayout); fMenuBar->AddPopup("&Edit", fEditMenu, fMenuBarItemLayout);
fMenuBar->AddPopup("&View", fViewMenu, fMenuBarItemLayout); fMenuBar->AddPopup("&View", fViewMenu, fMenuBarItemLayout);
fMenuBar->AddPopup("&Options", fOptionMenu, fMenuBarItemLayout); fMenuBar->AddPopup("&Options", fOptionMenu, fMenuBarItemLayout);
fMenuBar->AddPopup("&Inspect", fInspectMenu, fMenuBarItemLayout); fMenuBar->AddPopup("&Tools", fToolsMenu, fMenuBarItemLayout);
fMenuBar->AddPopup("&Classes", fClassesMenu, fMenuBarItemLayout);
fMenuBar->AddPopup("&Help", fHelpMenu, fMenuBarHelpLayout); fMenuBar->AddPopup("&Help", fHelpMenu, fMenuBarHelpLayout);
AddFrame(fMenuBar, fMenuBarLayout); AddFrame(fMenuBar, fMenuBarLayout);
...@@ -633,8 +630,7 @@ TRootCanvas::~TRootCanvas() ...@@ -633,8 +630,7 @@ TRootCanvas::~TRootCanvas()
delete fViewMenu; delete fViewMenu;
delete fViewWithMenu; delete fViewWithMenu;
delete fOptionMenu; delete fOptionMenu;
delete fInspectMenu; delete fToolsMenu;
delete fClassesMenu;
delete fHelpMenu; delete fHelpMenu;
} }
...@@ -1066,20 +1062,23 @@ again: ...@@ -1066,20 +1062,23 @@ again:
} }
break; break;
// Handle Inspect menu items... // Handle Tools menu items...
case kInspectRoot: case kInspectRoot:
fCanvas->cd(); fCanvas->cd();
gROOT->Inspect(); gROOT->Inspect();
fCanvas->Update(); fCanvas->Update();
break; break;
case kInspectBrowser: case kToolsBrowser:
new TBrowser("browser"); new TBrowser("browser");
break; break;
case kInspectBuilder: case kToolsBuilder:
TGuiBuilder::Instance(); TGuiBuilder::Instance();
break; break;
case kToolsRecorder:
gROOT->ProcessLine("new TGRecorder()");
break;
// Handle Inspect menu items... // Handle Tools menu items...
case kClassesTree: case kClassesTree:
{ {
char cdef[64]; char cdef[64];
......
# Module.mk for recorder module
# Copyright (c) 2000 Rene Brun and Fons Rademakers
#
# Author: Bertrand Bellenot, 29/09/2008
MODNAME := recorder
MODDIR := gui/$(MODNAME)
MODDIRS := $(MODDIR)/src
MODDIRI := $(MODDIR)/inc
RECDIR := $(MODDIR)
RECDIRS := $(RECDIR)/src
RECDIRI := $(RECDIR)/inc
##### libRecorder #####
RECL := $(MODDIRI)/LinkDef.h
RECDS := $(MODDIRS)/G__Recorder.cxx
RECDO := $(RECDS:.cxx=.o)
RECDH := $(RECDS:.cxx=.h)
RECH := $(filter-out $(MODDIRI)/LinkDef%,$(wildcard $(MODDIRI)/*.h))
RECS := $(filter-out $(MODDIRS)/G__%,$(wildcard $(MODDIRS)/*.cxx))
RECO := $(RECS:.cxx=.o)
RECDEP := $(RECO:.o=.d) $(RECDO:.o=.d)
RECLIB := $(LPATH)/libRecorder.$(SOEXT)
RECMAP := $(RECLIB:.$(SOEXT)=.rootmap)
# used in the main Makefile
ALLHDRS += $(patsubst $(MODDIRI)/%.h,include/%.h,$(RECH))
ALLLIBS += $(RECLIB)
ALLMAPS += $(RECMAP)
# include all dependency files
INCLUDEFILES += $(RECDEP)
##### local rules #####
.PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME)
include/%.h: $(RECDIRI)/%.h
cp $< $@
$(RECLIB): $(RECO) $(RECDO) $(ORDER_) $(MAINLIBS) $(RECLIBDEP)
@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
"$(SOFLAGS)" libRecorder.$(SOEXT) $@ "$(RECO) $(RECDO)" \
"$(RECLIBEXTRA)"
$(RECDS): $(RECH) $(RECL) $(ROOTCINTTMPDEP)
@echo "Generating dictionary $@..."
$(ROOTCINTTMP) -f $@ -c $(RECH) $(RECL)
$(RECMAP): $(RLIBMAP) $(MAKEFILEDEP) $(RECL)
$(RLIBMAP) -o $(RECMAP) -l $(RECLIB) \
-d $(RECLIBDEPM) -c $(RECL)
all-$(MODNAME): $(RECLIB) $(RECMAP)
clean-$(MODNAME):
@rm -f $(RECO) $(RECDO)
clean:: clean-$(MODNAME)
distclean-$(MODNAME): clean-$(MODNAME)
@rm -f $(RECDEP) $(RECDS) $(RECDH) $(RECLIB) $(RECMAP)
distclean:: distclean-$(MODNAME)
This directory contains the event recorder classes.
BEGIN_HTML
A document describing the event recorder will be available soon...
END_HTML
// @(#)root/recorder:$Id$
/*************************************************************************
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class TRecEvent;
#pragma link C++ class TRecCmdEvent;
#pragma link C++ class TRecGuiEvent;
#pragma link C++ class TRecWinPair;
#pragma link C++ class TRecorder;
#pragma link C++ class TRecorderState;
#pragma link C++ class TRecorderReplaying;
#pragma link C++ class TRecorderRecording;
#pragma link C++ class TRecorderInactive;
#pragma link C++ class TRecorderPaused;
#pragma link C++ class TGRecorder;
#endif
This diff is collapsed.
This diff is collapsed.
icons/pause.png 0 → 100644
NaN GiB (NaN%)
View file @ e84ff1e7
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
icons/record.png 0 → 100644
NaN GiB (NaN%)
View file @ e84ff1e7
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
icons/replay.png 0 → 100644
NaN GiB (NaN%)
View file @ e84ff1e7
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
icons/stop.png 0 → 100644
NaN GiB (NaN%)
View file @ e84ff1e7
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment