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 AliEveMacroExecutorWindow_H
#define AliEveMacroExecutorWindow_H

#include "TGFrame.h"

#include <vector>

class AliEveMacroExecutor;
class AliEveMacro;
class AliEveMEWEditor;

class TGLabel;
class TGListBox;
class TGTextEntry;

//______________________________________________________________________________
// Short description of AliEveMacroExecutorWindow
//

class AliEveMacroExecutorWindow : public TGMainFrame
{
public:
  AliEveMacroExecutorWindow(AliEveMacroExecutor* master);
  virtual ~AliEveMacroExecutorWindow();

  void PopulateMacros(Bool_t keep_selected=kTRUE);

  void SetActiveStateOfShownMacros(Bool_t active);

  void NewEventLoaded();

  void DoEnableAll()  { SetActiveStateOfShownMacros(kTRUE);  }
  void DoDisableAll() { SetActiveStateOfShownMacros(kFALSE); }
  void DoReloadEvent();
  void DoSelectTags();
  void DoMacroSelected(Int_t mid);

protected:
  AliEveMacroExecutor *fM;

  TGCompositeFrame *fMainFrame;
  TGCompositeFrame *fCtrlFrame;
  TGListBox        *fListBox;
  AliEveMEWEditor  *fEditor;

  TGTextEntry      *fSelectTags;

  std::vector<AliEveMacro*> fBoxContents;

  TGHorizontalFrame* MkHFrame(TGCompositeFrame* p=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:
  AliEveMacroExecutorWindow(const AliEveMacroExecutorWindow&);            // Not implemented
  AliEveMacroExecutorWindow& operator=(const AliEveMacroExecutorWindow&); // Not implemented

  ClassDef(AliEveMacroExecutorWindow, 0); // Short description.
};

#endif
 AliEveMacroExecutorWindow.h:1
 AliEveMacroExecutorWindow.h:2
 AliEveMacroExecutorWindow.h:3
 AliEveMacroExecutorWindow.h:4
 AliEveMacroExecutorWindow.h:5
 AliEveMacroExecutorWindow.h:6
 AliEveMacroExecutorWindow.h:7
 AliEveMacroExecutorWindow.h:8
 AliEveMacroExecutorWindow.h:9
 AliEveMacroExecutorWindow.h:10
 AliEveMacroExecutorWindow.h:11
 AliEveMacroExecutorWindow.h:12
 AliEveMacroExecutorWindow.h:13
 AliEveMacroExecutorWindow.h:14
 AliEveMacroExecutorWindow.h:15
 AliEveMacroExecutorWindow.h:16
 AliEveMacroExecutorWindow.h:17
 AliEveMacroExecutorWindow.h:18
 AliEveMacroExecutorWindow.h:19
 AliEveMacroExecutorWindow.h:20
 AliEveMacroExecutorWindow.h:21
 AliEveMacroExecutorWindow.h:22
 AliEveMacroExecutorWindow.h:23
 AliEveMacroExecutorWindow.h:24
 AliEveMacroExecutorWindow.h:25
 AliEveMacroExecutorWindow.h:26
 AliEveMacroExecutorWindow.h:27
 AliEveMacroExecutorWindow.h:28
 AliEveMacroExecutorWindow.h:29
 AliEveMacroExecutorWindow.h:30
 AliEveMacroExecutorWindow.h:31
 AliEveMacroExecutorWindow.h:32
 AliEveMacroExecutorWindow.h:33
 AliEveMacroExecutorWindow.h:34
 AliEveMacroExecutorWindow.h:35
 AliEveMacroExecutorWindow.h:36
 AliEveMacroExecutorWindow.h:37
 AliEveMacroExecutorWindow.h:38
 AliEveMacroExecutorWindow.h:39
 AliEveMacroExecutorWindow.h:40
 AliEveMacroExecutorWindow.h:41
 AliEveMacroExecutorWindow.h:42
 AliEveMacroExecutorWindow.h:43
 AliEveMacroExecutorWindow.h:44
 AliEveMacroExecutorWindow.h:45
 AliEveMacroExecutorWindow.h:46
 AliEveMacroExecutorWindow.h:47
 AliEveMacroExecutorWindow.h:48
 AliEveMacroExecutorWindow.h:49
 AliEveMacroExecutorWindow.h:50
 AliEveMacroExecutorWindow.h:51
 AliEveMacroExecutorWindow.h:52
 AliEveMacroExecutorWindow.h:53
 AliEveMacroExecutorWindow.h:54
 AliEveMacroExecutorWindow.h:55
 AliEveMacroExecutorWindow.h:56
 AliEveMacroExecutorWindow.h:57
 AliEveMacroExecutorWindow.h:58
 AliEveMacroExecutorWindow.h:59
 AliEveMacroExecutorWindow.h:60
 AliEveMacroExecutorWindow.h:61
 AliEveMacroExecutorWindow.h:62
 AliEveMacroExecutorWindow.h:63
 AliEveMacroExecutorWindow.h:64
 AliEveMacroExecutorWindow.h:65
 AliEveMacroExecutorWindow.h:66
 AliEveMacroExecutorWindow.h:67
 AliEveMacroExecutorWindow.h:68
 AliEveMacroExecutorWindow.h:69
 AliEveMacroExecutorWindow.h:70