Small fix (Mikolaj)
[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   virtual ~AliMonitorControl();
34
35   void               HandleMenu(Int_t id);
36   void               DoReset();
37   void               DoStartStop();
38
39 private:
40   AliMonitorControl(const AliMonitorControl& control);
41   AliMonitorControl& operator = (const AliMonitorControl& control);
42
43   virtual Bool_t     HandleTimer(TTimer* timer);
44
45   void               UpdateStatus();
46
47   AliMonitorProcess* fMonitorProcess;       // the controlled monitor process
48
49   ULong_t            fColorStatus;          // color for status info
50   ULong_t            fColorStart;           // color for start button
51   ULong_t            fColorStop;            // color for stop button
52
53   TGMainFrame*       fMain;                 // the main window
54
55   TGLayoutHints*     fMenuBarLayout;        // layout of the menu bar
56   TGLayoutHints*     fMenuBarItemLayout;    // layout of the menu items
57   TGLayoutHints*     fMenuBarHelpLayout;    // layout of the help menu
58   TGPopupMenu*       fMenuFile;             // the file menu
59   TGPopupMenu*       fMenuOptions;          // the options menu
60   TGPopupMenu*       fMenuHelp;             // the help menu
61   TGMenuBar*         fMenuBar;              // the menu bar
62
63   TGLayoutHints*     fFrameLayout;          // layout of the main frame
64   TGVerticalFrame*   fFrame;                // the main frame
65   TGLayoutHints*     fStatusLayout;         // layout of status info
66   TGLayoutHints*     fStatusFrameLayout;    // layout of status frames
67
68   TGHorizontalFrame* fStatus1Frame;         // frame for run/event number
69   TGLabel*           fRunNumberLabel;       // label for run number
70   TGTextEntry*       fRunNumber;            // run number display
71   TGLabel*           fEventNumberLabel;     // label for event number
72   TGTextEntry*       fEventNumber;          // event number display
73
74   TGHorizontalFrame* fStatus2Frame;         // frame for current status
75   TGLabel*           fStatusLabel;          // label for status
76   TGTextEntry*       fStatus;               // current status display
77
78   TGHorizontalFrame* fStatus3Frame;         // frame for number of event/clients
79   TGLabel*           fEventsLabel;          // label for number of events
80   TGTextEntry*       fEvents;               // number of monitored events display
81   TGLabel*           fClientsLabel;         // label for number of clients
82   TGTextEntry*       fClients;              // number of clients display
83
84   TGLayoutHints*     fButtonFrameLayout;    // layout of frame with buttons
85   TGHorizontalFrame* fButtonFrame;          // frame for buttons
86   TGLayoutHints*     fButtonLayout;         // layout of buttons
87   TGTextButton*      fResetButton;          // the rest button
88   TGTextButton*      fStartStopButton;      // the start/stop button
89   Bool_t             fStartButtonStatus;    // current status of the start/stop button
90
91   Bool_t             fTerminating;          // true if program will be terminated
92
93   TTimer*            fTimer;                // timer for X update
94
95
96   class AliMonitorBufferDlg : public AliMonitorDialog {
97
98   public:
99     AliMonitorBufferDlg(Int_t& size, TGFrame* main);
100     virtual ~AliMonitorBufferDlg();
101
102     virtual void       OnOkClicked();
103
104   private:
105     AliMonitorBufferDlg(const AliMonitorBufferDlg& dlg);
106     AliMonitorBufferDlg& operator = (const AliMonitorBufferDlg& dlg);
107
108     TGLayoutHints*     fBufferLayout;       // layout of buffer entry
109     TGLabel*           fBufferLabel;        // label for buffer entry
110     TGNumberEntry*     fBufferEntry;        // buffer number entry
111
112     Int_t&             fSize;               // result
113   };
114
115
116   class AliMonitorClientsDlg : public AliMonitorDialog {
117
118   public:
119     AliMonitorClientsDlg(TObjArray* clients, TGFrame* main);
120     virtual ~AliMonitorClientsDlg();
121
122   private:
123     AliMonitorClientsDlg(const AliMonitorClientsDlg& dlg);
124     AliMonitorClientsDlg& operator = (const AliMonitorClientsDlg& dlg);
125
126     TGLayoutHints*     fClientsLayout;      // layout of clients list
127     TGTextView*        fClients;            // list of clients
128   };
129
130
131   ClassDef(AliMonitorControl, 0)   // class for controlling the AliMonitorProcess
132 };
133  
134
135 #endif
136
137
138
139
140
141
142
143
144