Line data Source code
1 : #include "TGFrame.h"
2 : #include <string>
3 : #include "TCanvas.h"
4 : #include "TRootCanvas.h"
5 :
6 : class TThread;
7 : class TH1F;
8 : class TRootEmbeddedCanvas;
9 : class TGTextButton;
10 : class TGTextEntry;
11 : class TCanvas;
12 : struct AliZMQhistViewer;
13 : class TVirtualPad;
14 : class TPad;
15 : class TGStatusBar;
16 : class TGTextButton;
17 :
18 : typedef struct {
19 : Bool_t fRun;
20 : TThread *fThread;
21 : TCanvas *fCanvas;
22 : AliZMQhistViewer* viewer;
23 : } ThreadArgs_t;
24 :
25 : class AliZMQMTviewerGUIview {
26 : public:
27 : AliZMQMTviewerGUIview(const char* name, const char* title, Int_t a, Int_t b, Int_t c, Int_t d)
28 0 : : fCanvas(name,title,a,b,c,d), fDrawnObjects() {
29 0 : TRootCanvas *canvas = (TRootCanvas *)fCanvas.GetCanvasImp();
30 0 : canvas->Connect("CloseWindow()","AliZMQMTviewerGUIview",this,"CleanUp()");
31 0 : }
32 : TCanvas fCanvas;
33 : TList fDrawnObjects;
34 : void CleanUp();
35 0 : virtual ~AliZMQMTviewerGUIview() {}
36 8 : ClassDef(AliZMQMTviewerGUIview, 0)
37 : };
38 :
39 : class AliZMQMTviewerGUI : public TGMainFrame {
40 : private:
41 : TRootEmbeddedCanvas* fECanvas;
42 : TGStatusBar* fStatusBar;
43 : TGTextButton* fPullButton;
44 : TGTextEntry* fSelectionEntry;
45 : TGTextEntry* fUnSelectionEntry;
46 : TThread* fThread;
47 : TCanvas* fCanvas;
48 : ThreadArgs_t fThreadArgs;
49 : AliZMQhistViewer* fViewer;
50 : TTimer* fTimer;
51 : std::string fWindowTitle;
52 : void* fZMQviewerConfig;
53 : int fInitStatus;
54 : TPRegexp* fSelection;
55 : TPRegexp* fUnSelection;
56 :
57 : AliZMQMTviewerGUI(const AliZMQMTviewerGUI&);
58 : AliZMQMTviewerGUI& operator=(const AliZMQMTviewerGUI&);
59 : public:
60 : AliZMQMTviewerGUI(const TGWindow *p, UInt_t w, UInt_t h, int argc, char** argv);
61 0 : virtual ~AliZMQMTviewerGUI() { }
62 :
63 : void CloseWindow();
64 : Bool_t HandleTimer(TTimer *t);
65 : void EventInfo(Int_t event, Int_t px, Int_t py, TObject *selected);
66 : void PadSelected(TVirtualPad* pad, TObject *object, Int_t event);
67 : void PadPicked(TPad* pad, TObject *object, Int_t event);
68 : void UpdateCanvas();
69 : void ReconfigureViewer(std::string string);
70 0 : int GetInitStatus() const {return fInitStatus;}
71 : void DoPullButton();
72 : void DoSelectionEntry();
73 :
74 : // thread method
75 : static void* RunViewer(void *ptr = 0);
76 :
77 : static const char* fUSAGE;
78 :
79 8 : ClassDef(AliZMQMTviewerGUI, 0)
80 : };
81 :
82 :
83 :
84 :
|