New split libs
[u/mrichter/AliRoot.git] / MONITOR / AliMonitorControl.h
1 #ifndef ALIMONITORCONTROL_H
2 #define ALIMONITORCONTROL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include <TObject.h>
9 #include <RQ_OBJECT.h>
10 #include "AliMonitorDialog.h"
11
12 class AliMonitorProcess;
13 class TTimer;
14 class TGMainFrame;
15 class TGLayoutHints;
16 class TGPopupMenu;
17 class TGMenuBar;
18 class TGVerticalFrame;
19 class TGHorizontalFrame;
20 class TGLabel;
21 class TGTextEntry;
22 class TGTextButton;
23 class TGNumberEntry;
24 class TGTextView;
25
26
27 class AliMonitorControl : public TObject {
28
29 RQ_OBJECT("AliMonitorControl")
30
31 public:
32   AliMonitorControl(AliMonitorProcess* process);
33   AliMonitorControl(const AliMonitorControl& control);
34   AliMonitorControl& operator = (const AliMonitorControl& control);
35   virtual ~AliMonitorControl();
36
37   void               HandleMenu(Int_t id);
38   void               DoReset();
39   void               DoStartStop();
40
41 private:
42   virtual Bool_t     HandleTimer(TTimer* timer);
43
44   void               UpdateStatus();
45
46   AliMonitorProcess* fMonitorProcess;       // the controlled monitor process
47
48   ULong_t            fColorStatus;          // color for status info
49   ULong_t            fColorStart;           // color for start button
50   ULong_t            fColorStop;            // color for stop button
51
52   TGMainFrame*       fMain;                 // the main window
53
54   TGLayoutHints*     fMenuBarLayout;        // layout of the menu bar
55   TGLayoutHints*     fMenuBarItemLayout;    // layout of the menu items
56   TGLayoutHints*     fMenuBarHelpLayout;    // layout of the help menu
57   TGPopupMenu*       fMenuFile;             // the file menu
58   TGPopupMenu*       fMenuOptions;          // the options menu
59   TGPopupMenu*       fMenuHelp;             // the help menu
60   TGMenuBar*         fMenuBar;              // the menu bar
61
62   TGLayoutHints*     fFrameLayout;          // layout of the main frame
63   TGVerticalFrame*   fFrame;                // the main frame
64   TGLayoutHints*     fStatusLayout;         // layout of status info
65   TGLayoutHints*     fStatusFrameLayout;    // layout of status frames
66
67   TGHorizontalFrame* fStatus1Frame;         // frame for run/event number
68   TGLabel*           fRunNumberLabel;       // label for run number
69   TGTextEntry*       fRunNumber;            // run number display
70   TGLabel*           fEventNumberLabel;     // label for event number
71   TGTextEntry*       fEventNumber;          // event number display
72
73   TGHorizontalFrame* fStatus2Frame;         // frame for current status
74   TGLabel*           fStatusLabel;          // label for status
75   TGTextEntry*       fStatus;               // current status display
76
77   TGHorizontalFrame* fStatus3Frame;         // frame for number of event/clients
78   TGLabel*           fEventsLabel;          // label for number of events
79   TGTextEntry*       fEvents;               // number of monitored events display
80   TGLabel*           fClientsLabel;         // label for number of clients
81   TGTextEntry*       fClients;              // number of clients display
82
83   TGLayoutHints*     fButtonFrameLayout;    // layout of frame with buttons
84   TGHorizontalFrame* fButtonFrame;          // frame for buttons
85   TGLayoutHints*     fButtonLayout;         // layout of buttons
86   TGTextButton*      fResetButton;          // the rest button
87   TGTextButton*      fStartStopButton;      // the start/stop button
88   Bool_t             fStartButtonStatus;    // current status of the start/stop button
89
90   Bool_t             fTerminating;          // true if program will be terminated
91
92   TTimer*            fTimer;                // timer for X update
93
94
95   class AliMonitorBufferDlg : public AliMonitorDialog {
96
97   public:
98     AliMonitorBufferDlg(Int_t& size, TGFrame* main);
99     AliMonitorBufferDlg(const AliMonitorBufferDlg& dlg) : 
100       AliMonitorDialog(dlg), fSize(dlg.fSize) {
101       Fatal("AliMonitorBufferDlg", "copy constructor not implemented");
102     }
103     AliMonitorBufferDlg& operator = (const AliMonitorBufferDlg& /*dlg*/) {
104       Fatal("operator =", "assignment operator not implemented");
105       return *this;
106     }
107     virtual ~AliMonitorBufferDlg();
108
109     virtual void       OnOkClicked();
110
111   private:
112     TGLayoutHints*     fBufferLayout;       // layout of buffer entry
113     TGLabel*           fBufferLabel;        // label for buffer entry
114     TGNumberEntry*     fBufferEntry;        // buffer number entry
115
116     Int_t&             fSize;               // result
117   };
118
119
120   class AliMonitorClientsDlg : public AliMonitorDialog {
121
122   public:
123     AliMonitorClientsDlg(TObjArray* clients, TGFrame* main);
124     AliMonitorClientsDlg(const AliMonitorClientsDlg& dlg) : 
125       AliMonitorDialog(dlg) {
126       Fatal("AliMonitorClientsDlg", "copy constructor not implemented");
127     }
128     AliMonitorClientsDlg& operator = (const AliMonitorClientsDlg& /*dlg*/) {
129       Fatal("operator =", "assignment operator not implemented");
130       return *this;
131     }
132     virtual ~AliMonitorClientsDlg();
133
134   private:
135     TGLayoutHints*     fClientsLayout;      // layout of clients list
136     TGTextView*        fClients;            // list of clients
137   };
138
139
140   ClassDef(AliMonitorControl, 0)   // class for controlling the AliMonitorProcess
141 };
142  
143
144 #endif
145
146
147
148
149
150
151
152
153