First version of the new GUI in development. You can enable this UI with "alieve...
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveMainWindow.h
1 // Author: Mihai Niculescu 2013
2
3 /**************************************************************************
4  * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
5  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
6  * full copyright notice.                                                 *
7  **************************************************************************/
8
9 #ifndef AliEveMainWindow_H
10 #define AliEveMainWindow_H
11
12 #include <TGFrame.h>
13
14 class TEveManager;
15 class TGMenuBar;
16 class TGPicturePool;
17 class TGPopupMenu;
18 class TGToolBar;
19 class AliEveMainWindow;
20 class AliEveFileDialog;
21
22 // Items IDs for MenuBar
23 enum AliEveMainWindow::MENU_FILE
24 {
25     MENU_FILE_OPEN,
26     MENU_FILE_OPEN_URL,
27     MENU_FILE_OPEN_CONNECTION,
28     MENU_FILE_EXPORT_VIEWS,
29     MENU_FILE_EXIT
30 };
31
32 enum AliEveMainWindow::MENU_EDIT
33 {
34     MENU_EDIT_UNDO,
35     MENU_EDIT_REDO,
36     MENU_EDIT_CUT,
37     MENU_EDIT_COPY,
38     MENU_EDIT_PASTE,
39     MENU_EDIT_DELETE,
40     MENU_EDIT_PROP
41 };
42
43 enum AliEveMainWindow::MENU_VIEW
44 {
45     MENU_VIEW_TOOLBAR_MAIN,
46     MENU_VIEW_TOOLBAR_NAV, // event navigation toolbar
47     MENU_VIEW_TOOLBAR_PROP, // Properties Sidebar - event info, objects list, etc...
48     MENU_VIEW_TOOLBAR_HIST, // History sidebar
49     MENU_VIEW_RELOAD,
50     MENU_VIEW_ZOOM_IN,
51     MENU_VIEW_ZOOM_OUT,
52     MENU_VIEW_ZOOM_RESET
53 };
54
55 enum AliEveMainWindow::MENU_GO
56 {
57     MENU_GO_NEXT_EVENT,
58     MENU_GO_PREV_EVENT,
59     MENU_GO_FIRST_EVENT,
60     MENU_GO_LAST_EVENT,
61     MENU_GO_PLAY
62 };
63
64 enum AliEveMainWindow::MENU_HIST
65 {
66     MENU_HIST_SHOW_ALL,
67     MENU_HIST_CLEAR_RECENT
68 };
69
70 enum AliEveMainWindow::MENU_TOOLS
71 {
72     MENU_TOOLS_MACROS,
73     MENU_TOOLS_QA
74 };
75
76 enum AliEveMainWindow::MENU_HELP
77 {
78     MENU_HELP_CONTENTS,
79     MENU_HELP_ABOUT
80 };
81
82 //______________________________________________________________________________
83 // AliEveMainWindow
84 //
85
86 class AliEveMainWindow : public TGMainFrame
87 {
88 public:
89     AliEveMainWindow(const char* title, UInt_t width=800, UInt_t height=600);
90     ~AliEveMainWindow();
91
92 public: // SLOTS
93     void onMenuFileItem(UInt_t id);
94     void onMenuEditItem(UInt_t id);
95     void onMenuViewItem(UInt_t id);
96     void onMenuGoItem(UInt_t id);
97
98 protected:
99     void setupMenus();
100     void setupToolbars();
101
102     void openFile(const TString &path);
103
104 private:
105     AliEveMainWindow(const AliEveMainWindow& other);// Not implemented
106     AliEveMainWindow& operator=(const AliEveMainWindow& other);
107
108
109     // Menubar
110     TGMenuBar* fMenuBar;
111     TGPopupMenu *fMenuFile;
112     TGPopupMenu *fMenuEdit;
113     TGPopupMenu *fMenuView;
114     TGPopupMenu *fMenuViewToolbars;
115     TGPopupMenu *fMenuViewSidebars;
116     TGPopupMenu *fMenuGo;
117     TGPopupMenu *fMenuTools;
118     TGPopupMenu *fMenuHelp;
119
120     // Toolbar
121     TGToolBar *fToolBar;
122
123     TGPicturePool* fPicturePool;
124
125     TEveManager* fEve;
126     AliEveFileDialog* fFileDialog;
127
128     ClassDef(AliEveMainWindow, 0); // Short description.
129 };
130
131 #endif
132