Logo ROOT  
Reference Guide
arrow_standalone.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_eve
3/// How to use EVE without the standard window.
4/// Type
5/// `gEve->GetBrowser()->MapWindow()`
6/// to bring it up for object interaction, debugging, etc.
7///
8/// \image html eve_arrow_standalone.png
9/// \macro_code
10///
11/// \author Matevz Tadel
12
13void arrow_standalone()
14{
16
17 // ----------------------------------------------------------------------
18
19 auto mf = new TGMainFrame(gClient->GetRoot(), 800, 400,
21 mf->SetWindowName("Arrow Foo");
22
23 // ----------------------------------------------------------------------
24
25 auto evf = new TGCompositeFrame(mf, 400, 400);
26 mf->AddFrame(evf, new TGLayoutHints(kLHintsNormal |
28
29 auto ev = new TGLEmbeddedViewer(evf);
30 evf->AddFrame(ev->GetFrame(),
33
34 auto eve_v = new TEveViewer("YourViewer");
35 eve_v->SetGLViewer(ev, ev->GetFrame());
36 eve_v->IncDenyDestroy();
37 eve_v->AddScene(gEve->GetEventScene());
38 gEve->GetViewers()->AddElement(eve_v);
39
40 // ----------------------------------------------------------------------
41
42 // To create embedded canvas ... no menus on top.
43
44 // TRootEmbeddedCanvas* ec =
45 // new TRootEmbeddedCanvas("EmbeddedCanvas", mf, 400, 400);
46 // mf->AddFrame(ec, new TGLayoutHints(kLHintsNormal |
47 // kLHintsExpandX | kLHintsExpandY));
48
49 // --------------------------------
50
51 // This one is tricky - must be after embedded canvas but before std canvas!
52 mf->MapSubwindows();
53
54 // --------------------------------
55
56 // To create full canvas with menus.
57
58 mf->SetEditable();
59 auto c = new TCanvas("Foo", "Bar", 400, 400);
60 mf->SetEditable(kFALSE);
61
62 // ----------------------------------------------------------------------
63
64 mf->Layout();
65 mf->MapWindow();
66
67 // ----------------------------------------------------------------------
68
69 // Populate the viewer ... here we just call the arrow.C.
70
71 TEveUtil::Macro("arrow.C");
72}
@ kHorizontalFrame
Definition: GuiTypes.h:382
#define c(i)
Definition: RSha256.hxx:101
const Bool_t kFALSE
Definition: RtypesCore.h:92
R__EXTERN TEveManager * gEve
Definition: TEveManager.h:243
#define gClient
Definition: TGClient.h:166
@ kLHintsExpandY
Definition: TGLayout.h:38
@ kLHintsNormal
Definition: TGLayout.h:39
@ kLHintsExpandX
Definition: TGLayout.h:37
The Canvas class.
Definition: TCanvas.h:23
TEveViewerList * GetViewers() const
Definition: TEveManager.h:145
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
TEveScene * GetEventScene() const
Definition: TEveManager.h:148
static void Macro(const char *mac)
Execute macro 'mac'. Do not reload the macro.
Definition: TEveUtil.cxx:164
virtual void AddElement(TEveElement *el)
Call base-class implementation.
Definition: TEveViewer.cxx:358
Eve representation of TGLViewer.
Definition: TEveViewer.h:31
Minimal GL-viewer that can be embedded in a standard ROOT frames.