forked from root-project/root
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TGLSAViewer.h
136 lines (103 loc) · 3.59 KB
/
TGLSAViewer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// @(#)root/gl:$Id$
// Author: Richard Maunder / Timur Pocheptsov
/*************************************************************************
* Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TGLSAViewer
#define ROOT_TGLSAViewer
#include "TGLViewer.h"
#include "TString.h"
class TGLSAFrame;
class TGLFormat;
class TGWindow;
class TGFrame;
class TGCompositeFrame;
class TGPopupMenu;
class TGButton;
class TGedEditor;
class TGLEventHandler;
class TGMenuBar;
//______________________________________________________________________________
//
// TGLSAViewer
//
// The top-level standalone GL viewer.
class TGLSAViewer : public TGLViewer
{
public:
enum EGLSACommands {
kGLHelpAbout, kGLHelpViewer,
kGLPerspYOZ, kGLPerspXOZ, kGLPerspXOY,
kGLXOY, kGLXOZ, kGLZOY,
kGLXnOY, kGLXnOZ, kGLZnOY,
kGLOrthoRotate, kGLOrthoDolly,
kGLSaveEPS, kGLSavePDF, kGLSavePNG, kGLSaveGIF, kGLSaveAnimGIF,
kGLSaveJPG, kGLSaveAS, kGLCloseViewer, kGLQuitROOT,
kGLEditObject, kGLHideMenus };
private:
// GUI components
TGLSAFrame *fFrame;
TGLFormat *fFormat;
TGPopupMenu *fFileMenu;
TGPopupMenu *fFileSaveMenu;
TGPopupMenu *fCameraMenu;
TGPopupMenu *fHelpMenu;
// Ged
TGCompositeFrame *fLeftVerticalFrame;
TGCompositeFrame *fRightVerticalFrame;
TString fDirName;
Int_t fTypeIdx;
Bool_t fOverwrite;
TGMenuBar *fMenuBar;
TGButton *fMenuBut;
Bool_t fHideMenuBar;
TTimer *fMenuHidingTimer;
Bool_t fMenuHidingShowMenu;
Bool_t fDeleteMenuBar;
static Long_t fgMenuHidingTimeout;
void ResetMenuHidingTimer(Bool_t show_menu);
// Initial window positioning
static const Int_t fgInitX;
static const Int_t fgInitY;
static const Int_t fgInitW;
static const Int_t fgInitH;
static const char *fgHelpText1;
static const char *fgHelpText2;
void CreateMenus();
void CreateFrames();
// non-copyable class
TGLSAViewer(const TGLSAViewer &);
TGLSAViewer & operator = (const TGLSAViewer &);
public:
TGLSAViewer(TVirtualPad* pad, TGLFormat* format=0);
TGLSAViewer(const TGWindow* parent, TVirtualPad *pad, TGedEditor *ged=0,
TGLFormat* format=0);
~TGLSAViewer();
virtual void CreateGLWidget();
virtual void DestroyGLWidget();
virtual const char* GetName() const { return "GLViewer"; }
virtual void SelectionChanged();
void Show();
void Close();
void DeleteMenuBar();
void DisableCloseMenuEntries();
void EnableMenuBarHiding();
void DisableMenuBarHiding();
void MenuHidingTimeout();
void HandleMenuBarHiding(Event_t* ev);
// GUI events - editors, frame etc
Bool_t ProcessFrameMessage(Long_t msg, Long_t parm1, Long_t);
TGCompositeFrame* GetFrame() const;
TGCompositeFrame* GetLeftVerticalFrame() const { return fLeftVerticalFrame; }
TGLFormat* GetFormat() const { return fFormat; }
void ToggleEditObject();
void ToggleOrthoRotate();
void ToggleOrthoDolly();
static void SetMenuHidingTimeout(Long_t timeout);
ClassDef(TGLSAViewer, 0); // Standalone GL viewer.
};
#endif