// @(#)root/eve:$Id$
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TEveTrackPropagatorEditor
#define ROOT_TEveTrackPropagatorEditor

#include "TGedFrame.h"

class TGButton;
class TGCheckButton;
class TGNumberEntry;
class TGColorSelect;
class TGComboBox;
class TGLineWidthComboBox;
class TGLineStyleComboBox;

class TAttMarkerEditor;

class TEveTrackPropagator;

class TEveGValuator;
class TEveGDoubleValuator;
class TEveTrackPropagatorSubEditor;

class TEveTrackPropagatorSubEditor : public TGVerticalFrame
{
   friend class TEveTrackPropagatorEditor;
   friend class TEveTrackListEditor;

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

protected:
   TEveTrackPropagator *fM;

   TEveGValuator      *fMaxR;
   TEveGValuator      *fMaxZ;
   TEveGValuator      *fMaxOrbits;
   TEveGValuator      *fMaxAng;
   TEveGValuator      *fDelta;

   TGCompositeFrame   *fRefsCont;
   TGCompositeFrame   *fPMFrame;

   TGButton           *fFitDaughters;
   TGButton           *fFitReferences;
   TGButton           *fFitDecay;
   TGButton           *fFitCluster2Ds;
   TGButton           *fFitLineSegments;
   TGButton           *fRnrDaughters;
   TGButton           *fRnrReferences;
   TGButton           *fRnrDecay;
   TGButton           *fRnrCluster2Ds;
   TGButton           *fRnrFV;

   TAttMarkerEditor   *fPMAtt;
   TAttMarkerEditor   *fFVAtt;

   TGComboBox         *fProjTrackBreaking;
   TGButton           *fRnrPTBMarkers;
   TAttMarkerEditor   *fPTBAtt;

public:
   TEveTrackPropagatorSubEditor(const TGWindow* p);
   virtual ~TEveTrackPropagatorSubEditor() {}

   void SetModel(TEveTrackPropagator* m);

   void Changed(); //*SIGNAL*

   void DoMaxR();
   void DoMaxZ();
   void DoMaxOrbits();
   void DoMaxAng();
   void DoDelta();

   void DoFitPM();
   void DoRnrPM();

   void DoRnrFV();

   void DoModePTB(UChar_t mode);
   void DoRnrPTB();

   void CreateRefsContainer(TGVerticalFrame* p);

   ClassDef(TEveTrackPropagatorSubEditor, 0); // Sub-editor for TEveTrackPropagator class.
};

/******************************************************************************/
// TEveTrackPropagatorEditor
/******************************************************************************/

class TEveTrackPropagatorEditor : public TGedFrame
{
private:
   TEveTrackPropagatorEditor(const TEveTrackPropagatorEditor&);            // Not implemented
   TEveTrackPropagatorEditor& operator=(const TEveTrackPropagatorEditor&); // Not implemented

   void CreateRefTab();
protected:
   TEveTrackPropagator           *fM;           // Model object.
   TEveTrackPropagatorSubEditor  *fRSSubEditor; // Render-style sub-editor.

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

   virtual void SetModel(TObject* obj);

   ClassDef(TEveTrackPropagatorEditor, 1); // Editor for TEveTrackPropagator class.
};

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