Logo ROOT   6.16/01
Reference Guide
TEveGedEditor.h
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TEveGedEditor
13#define ROOT_TEveGedEditor
14
15#include "TGedEditor.h"
16#include "TGedFrame.h"
17#include "TGButton.h"
18
19class TEveElement;
20class TContextMenu;
21
22//==============================================================================
23// TEveGedEditor
24//==============================================================================
25
27{
28 TEveGedEditor(const TEveGedEditor&); // Not implemented
29 TEveGedEditor& operator=(const TEveGedEditor&); // Not implemented
30
31public:
32 typedef TGedFrame* (*NameFrameCreator_t)(TEveGedEditor*, const TGWindow* parent, const char* tab_name);
33
34protected:
35 TEveElement *fElement; // Cached eve-element pointer.
36 TObject *fObject; // Cached tobj pointer.
37
38 virtual TGedFrame* CreateNameFrame(const TGWindow* parent, const char* tab_name);
39
42
44
45public:
46 TEveGedEditor(TCanvas* canvas=0, UInt_t width=250, UInt_t height=400);
47 virtual ~TEveGedEditor();
48
49 virtual void CloseWindow();
50
52
54 void DisplayObject(TObject* obj);
55
56 virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event, Bool_t force=kFALSE);
57 virtual void Update(TGedFrame* gframe=0);
58
59 // --- Statics for extra editors. ---
60
61 static void SpawnNewEditor(TObject* obj);
62 static void ElementChanged(TEveElement* el);
63 static void ElementDeleted(TEveElement* el);
64
65 static void DestroyEditors();
66
68
69 ClassDef(TEveGedEditor, 0); // Specialization of TGedEditor for proper update propagation to TEveManager.
70};
71
72
73//==============================================================================
74// TEveGedNameFrame
75//==============================================================================
76
78{
79private:
80 TEveGedNameFrame(const TEveGedNameFrame&); // Not implemented
81 TEveGedNameFrame& operator=(const TEveGedNameFrame&); // Not implemented
82
83protected:
84 TGTextButton *fNCButton; // Name/Class button.
85
86public:
87 TEveGedNameFrame(const TGWindow *p=0, Int_t width=140, Int_t height=30,
89 virtual ~TEveGedNameFrame();
90
91 virtual void SetModel(TObject* obj);
92
93 void SpawnEditorClone();
94
95 ClassDef(TEveGedNameFrame, 0); // Top name-frame used in EVE.
96};
97
98
99//==============================================================================
100// TEveGedNameTextButton
101//==============================================================================
102
104{
105private:
108
110
111public:
113 virtual ~TEveGedNameTextButton();
114
115 virtual Bool_t HandleButton(Event_t* event);
116
117 ClassDef(TEveGedNameTextButton, 0); // Button for GED name-frame.
118};
119
120#endif
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:324
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
@ kChildFrame
Definition: TGFrame.h:57
@ kHorizontalFrame
Definition: TGFrame.h:60
The Canvas class.
Definition: TCanvas.h:31
This class provides an interface to context sensitive popup menus.
Definition: TContextMenu.h:40
Base class for TEveUtil visualization elements, providing hierarchy management, rendering control and...
Definition: TEveElement.h:34
Specialization of TGedEditor for proper update propagation to TEveManager.
Definition: TEveGedEditor.h:27
static Int_t fgMaxExtraEditors
Definition: TEveGedEditor.h:40
TEveElement * GetEveElement() const
Return eve-element if it is the model object.
TObject * fObject
Definition: TEveGedEditor.h:36
virtual void Update(TGedFrame *gframe=0)
Virtual method from TGedEditor, called on every change.
virtual void SetModel(TVirtualPad *pad, TObject *obj, Int_t event, Bool_t force=kFALSE)
Set model object.
static void ElementDeleted(TEveElement *el)
Element is being deleted. Close editors showing it.
void DisplayElement(TEveElement *re)
Show a TEveElement in editor.
TEveElement * fElement
Definition: TEveGedEditor.h:35
static TContextMenu * GetContextMenu()
Return context menu object shared among eve-ged-editors.
TEveGedEditor & operator=(const TEveGedEditor &)
static TContextMenu * fgContextMenu
Definition: TEveGedEditor.h:43
static TList * fgExtraEditors
Definition: TEveGedEditor.h:41
virtual TGedFrame * CreateNameFrame(const TGWindow *parent, const char *tab_name)
Create name-frame for a tab.
static void DestroyEditors()
Destroys all editors. Called from EVE termination.
virtual void CloseWindow()
Called from window-manger close button.
TEveGedEditor(const TEveGedEditor &)
virtual ~TEveGedEditor()
Destructor.
void DisplayObject(TObject *obj)
Show a TObject in editor.
static void ElementChanged(TEveElement *el)
Element was changed. Update editors showing it.
static void SpawnNewEditor(TObject *obj)
Static function to create a new extra editor.
Specialization of TGedNameFrame used in EVE.
Definition: TEveGedEditor.h:78
void SpawnEditorClone()
Create a new floating editor with current object.
virtual void SetModel(TObject *obj)
Set model object.
TGTextButton * fNCButton
Definition: TEveGedEditor.h:84
virtual ~TEveGedNameFrame()
Destructor.
TEveGedNameFrame & operator=(const TEveGedNameFrame &)
TEveGedNameFrame(const TEveGedNameFrame &)
Specialization of TGTextButton for EVE name frame.
TEveGedNameTextButton & operator=(const TEveGedNameTextButton &)
virtual Bool_t HandleButton(Event_t *event)
Handle button.
TEveGedNameFrame * fFrame
virtual ~TEveGedNameTextButton()
Destructor.
TEveGedNameTextButton(const TEveGedNameTextButton &)
A doubly linked list.
Definition: TList.h:44
Mother of all ROOT objects.
Definition: TObject.h:37
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:50