ROOT
master
Reference Guide
Loading...
Searching...
No Matches
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
13
void
arrow_standalone()
14
{
15
TEveManager::Create
(
kFALSE
);
16
17
// ----------------------------------------------------------------------
18
19
auto
mf =
new
TGMainFrame
(
gClient
->GetRoot(), 800, 400,
20
kHorizontalFrame
);
21
mf->SetWindowName(
"Arrow Foo"
);
22
23
// ----------------------------------------------------------------------
24
25
auto
evf =
new
TGCompositeFrame
(mf, 400, 400);
26
mf->AddFrame(evf,
new
TGLayoutHints
(
kLHintsNormal
|
27
kLHintsExpandX
|
kLHintsExpandY
));
28
29
auto
ev =
new
TGLEmbeddedViewer
(evf);
30
evf->AddFrame(ev->GetFrame(),
31
new
TGLayoutHints
(
kLHintsNormal
|
32
kLHintsExpandX
|
kLHintsExpandY
));
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
@ kHorizontalFrame
Definition
GuiTypes.h:382
c
#define c(i)
Definition
RSha256.hxx:101
kFALSE
constexpr Bool_t kFALSE
Definition
RtypesCore.h:94
gEve
R__EXTERN TEveManager * gEve
Definition
TEveManager.h:243
gClient
#define gClient
Definition
TGClient.h:156
kLHintsExpandY
@ kLHintsExpandY
Definition
TGLayout.h:31
kLHintsNormal
@ kLHintsNormal
Definition
TGLayout.h:32
kLHintsExpandX
@ kLHintsExpandX
Definition
TGLayout.h:30
TCanvas
The Canvas class.
Definition
TCanvas.h:23
TEveManager::GetViewers
TEveViewerList * GetViewers() const
Definition
TEveManager.h:145
TEveManager::Create
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
Definition
TEveManager.cxx:887
TEveManager::GetEventScene
TEveScene * GetEventScene() const
Definition
TEveManager.h:148
TEveUtil::Macro
static void Macro(const char *mac)
Execute macro 'mac'. Do not reload the macro.
Definition
TEveUtil.cxx:164
TEveViewerList::AddElement
void AddElement(TEveElement *el) override
Call base-class implementation.
Definition
TEveViewer.cxx:358
TEveViewer
Eve representation of TGLViewer.
Definition
TEveViewer.h:31
TGCompositeFrame
The base class for composite widgets (menu bars, list boxes, etc.).
Definition
TGFrame.h:287
TGLEmbeddedViewer
Minimal GL-viewer that can be embedded in a standard ROOT frames.
Definition
TGLEmbeddedViewer.h:24
TGLayoutHints
This class describes layout hints used by the layout classes.
Definition
TGLayout.h:50
TGMainFrame
Defines top level windows that interact with the system Window Manager.
Definition
TGFrame.h:397
tutorials
eve
arrow_standalone.C
ROOT master - Reference Guide Generated on Sat Nov 16 2024 09:39:21 (GVA Time) using Doxygen 1.9.8