ROOT logo
// @(#)root/eve:$Id$
// Author: Matevz Tadel 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#ifndef AliEveEventManagerEditor_H
#define AliEveEventManagerEditor_H

#include "TGedFrame.h"
#include "TGComboBox.h"
#include <TObjString.h>

class AliEveEventManager;
class TEveGValuator;
class TGButton;
class TGCheckButton;
class TGTextButton;
class TGTextView;
class TGNumberEntry;
class TGLabel;

//==============================================================================
// AliEveEventManagerEditor
//==============================================================================

//______________________________________________________________________________
// Short description of AliEveEventManagerEditor
//

class AliEveEventManagerEditor : public TGedFrame
{
public:
   AliEveEventManagerEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
         UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
   virtual ~AliEveEventManagerEditor() {}

   virtual void SetModel(TObject* obj);

   void DumpEventInfo();

protected:
   AliEveEventManager  *fM;             // Model object.
   TGTextButton        *fDumpEventInfo; // Button that dumps event-info into a file.
   TGTextView          *fEventInfo;     // Text box with event info.

private:
   AliEveEventManagerEditor(const AliEveEventManagerEditor&);            // Not implemented
   AliEveEventManagerEditor& operator=(const AliEveEventManagerEditor&); // Not implemented

   ClassDef(AliEveEventManagerEditor, 0); // GUI editor for AliEveEventManager.
};


//==============================================================================
// AliEveEventManagerWindow
//==============================================================================

//______________________________________________________________________________
// Short description of AliEveEventManagerWindow
//

class AliEveEventManagerWindow : public TGMainFrame
{
public:
  AliEveEventManagerWindow(AliEveEventManager* mgr);
  virtual ~AliEveEventManagerWindow();

  void DoFirstEvent();
  void DoPrevEvent();
  void DoNextEvent();
  void DoLastEvent();
  void DoMarkEvent();
    void DoRestartReco();
    void DoRestartManager();

  void DoSetEvent();

  void DoRefresh();
  void DoSetAutoLoad();
  void DoSetLoopMarked();
  void DoSetAutoLoadTime();
  void DoSetTrigSel();

  void Update(int=1);    
  void StorageManagerChangedState(int state);

protected:
  AliEveEventManager   *fM;            // Model object.
    
    TGTextButton         *fFirstEvent;   // Go to first event
    TGTextButton         *fPrevEvent;    // Go to prev event
    TGTextButton         *fNextEvent;    // Go to next event
    TGTextButton         *fLastEvent;    // Go to last event
    TGTextButton         *fRefresh;      // Refresh event-file state
    TGTextButton         *fMarkEvent;    // Mark current event
    TGTextButton         *fRestartReco;    // Restart reconstruction server
    TGTextButton         *fRestartManager; // Restart storage manager

  TGNumberEntry        *fEventId;      // Display/edit current event id
  TGLabel              *fInfoLabel;    // Display last available event id

  TGCheckButton        *fAutoLoad;     // Check-box for automatic loading of events
  TGCheckButton        *fLoopMarked;     // Check-box for automatic loading of events
  TEveGValuator        *fAutoLoadTime; // Time for automatic loading of events

  TGComboBox           *fTrigSel;      // Trigger selection combo box
  TGLabel              *fStorageStatus; // Display status of Storage Manager
  TGLabel              *fEventServerStatus; // Display status of Event Server

  TGTextView           *fEventInfo;    // Text box with event info

  TGTextButton* MkTxtButton(TGCompositeFrame* p, const char* txt, Int_t width=0,
			    Int_t lo=0, Int_t ro=0, Int_t to=0, Int_t bo=0);
  TGLabel* MkLabel(TGCompositeFrame* p, const char* txt, Int_t width,
		   Int_t lo=0, Int_t ro=0, Int_t to=2, Int_t bo=0);

private:
  AliEveEventManagerWindow(const AliEveEventManagerWindow&);            // Not implemented
  AliEveEventManagerWindow& operator=(const AliEveEventManagerWindow&); // Not implemented

  ClassDef(AliEveEventManagerWindow, 0); // GUI window for AliEveEventManager.
};

#endif
 AliEveEventManagerEditor.h:1
 AliEveEventManagerEditor.h:2
 AliEveEventManagerEditor.h:3
 AliEveEventManagerEditor.h:4
 AliEveEventManagerEditor.h:5
 AliEveEventManagerEditor.h:6
 AliEveEventManagerEditor.h:7
 AliEveEventManagerEditor.h:8
 AliEveEventManagerEditor.h:9
 AliEveEventManagerEditor.h:10
 AliEveEventManagerEditor.h:11
 AliEveEventManagerEditor.h:12
 AliEveEventManagerEditor.h:13
 AliEveEventManagerEditor.h:14
 AliEveEventManagerEditor.h:15
 AliEveEventManagerEditor.h:16
 AliEveEventManagerEditor.h:17
 AliEveEventManagerEditor.h:18
 AliEveEventManagerEditor.h:19
 AliEveEventManagerEditor.h:20
 AliEveEventManagerEditor.h:21
 AliEveEventManagerEditor.h:22
 AliEveEventManagerEditor.h:23
 AliEveEventManagerEditor.h:24
 AliEveEventManagerEditor.h:25
 AliEveEventManagerEditor.h:26
 AliEveEventManagerEditor.h:27
 AliEveEventManagerEditor.h:28
 AliEveEventManagerEditor.h:29
 AliEveEventManagerEditor.h:30
 AliEveEventManagerEditor.h:31
 AliEveEventManagerEditor.h:32
 AliEveEventManagerEditor.h:33
 AliEveEventManagerEditor.h:34
 AliEveEventManagerEditor.h:35
 AliEveEventManagerEditor.h:36
 AliEveEventManagerEditor.h:37
 AliEveEventManagerEditor.h:38
 AliEveEventManagerEditor.h:39
 AliEveEventManagerEditor.h:40
 AliEveEventManagerEditor.h:41
 AliEveEventManagerEditor.h:42
 AliEveEventManagerEditor.h:43
 AliEveEventManagerEditor.h:44
 AliEveEventManagerEditor.h:45
 AliEveEventManagerEditor.h:46
 AliEveEventManagerEditor.h:47
 AliEveEventManagerEditor.h:48
 AliEveEventManagerEditor.h:49
 AliEveEventManagerEditor.h:50
 AliEveEventManagerEditor.h:51
 AliEveEventManagerEditor.h:52
 AliEveEventManagerEditor.h:53
 AliEveEventManagerEditor.h:54
 AliEveEventManagerEditor.h:55
 AliEveEventManagerEditor.h:56
 AliEveEventManagerEditor.h:57
 AliEveEventManagerEditor.h:58
 AliEveEventManagerEditor.h:59
 AliEveEventManagerEditor.h:60
 AliEveEventManagerEditor.h:61
 AliEveEventManagerEditor.h:62
 AliEveEventManagerEditor.h:63
 AliEveEventManagerEditor.h:64
 AliEveEventManagerEditor.h:65
 AliEveEventManagerEditor.h:66
 AliEveEventManagerEditor.h:67
 AliEveEventManagerEditor.h:68
 AliEveEventManagerEditor.h:69
 AliEveEventManagerEditor.h:70
 AliEveEventManagerEditor.h:71
 AliEveEventManagerEditor.h:72
 AliEveEventManagerEditor.h:73
 AliEveEventManagerEditor.h:74
 AliEveEventManagerEditor.h:75
 AliEveEventManagerEditor.h:76
 AliEveEventManagerEditor.h:77
 AliEveEventManagerEditor.h:78
 AliEveEventManagerEditor.h:79
 AliEveEventManagerEditor.h:80
 AliEveEventManagerEditor.h:81
 AliEveEventManagerEditor.h:82
 AliEveEventManagerEditor.h:83
 AliEveEventManagerEditor.h:84
 AliEveEventManagerEditor.h:85
 AliEveEventManagerEditor.h:86
 AliEveEventManagerEditor.h:87
 AliEveEventManagerEditor.h:88
 AliEveEventManagerEditor.h:89
 AliEveEventManagerEditor.h:90
 AliEveEventManagerEditor.h:91
 AliEveEventManagerEditor.h:92
 AliEveEventManagerEditor.h:93
 AliEveEventManagerEditor.h:94
 AliEveEventManagerEditor.h:95
 AliEveEventManagerEditor.h:96
 AliEveEventManagerEditor.h:97
 AliEveEventManagerEditor.h:98
 AliEveEventManagerEditor.h:99
 AliEveEventManagerEditor.h:100
 AliEveEventManagerEditor.h:101
 AliEveEventManagerEditor.h:102
 AliEveEventManagerEditor.h:103
 AliEveEventManagerEditor.h:104
 AliEveEventManagerEditor.h:105
 AliEveEventManagerEditor.h:106
 AliEveEventManagerEditor.h:107
 AliEveEventManagerEditor.h:108
 AliEveEventManagerEditor.h:109
 AliEveEventManagerEditor.h:110
 AliEveEventManagerEditor.h:111
 AliEveEventManagerEditor.h:112
 AliEveEventManagerEditor.h:113
 AliEveEventManagerEditor.h:114
 AliEveEventManagerEditor.h:115
 AliEveEventManagerEditor.h:116
 AliEveEventManagerEditor.h:117
 AliEveEventManagerEditor.h:118
 AliEveEventManagerEditor.h:119
 AliEveEventManagerEditor.h:120
 AliEveEventManagerEditor.h:121
 AliEveEventManagerEditor.h:122
 AliEveEventManagerEditor.h:123
 AliEveEventManagerEditor.h:124
 AliEveEventManagerEditor.h:125
 AliEveEventManagerEditor.h:126
 AliEveEventManagerEditor.h:127
 AliEveEventManagerEditor.h:128