ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 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.                                                 *
 **************************************************************************/

#include "AliEveTPCSector3DEditor.h"
#include <EveDet/AliEveTPCSector3D.h>

#include <TEveGValuators.h>

#include <TGButton.h>
#include <TGNumberEntry.h>
#include <TGSlider.h>

//______________________________________________________________________________
//
// Editor for AliEveTPCSector3D.

ClassImp(AliEveTPCSector3DEditor)

AliEveTPCSector3DEditor::AliEveTPCSector3DEditor(const TGWindow *p,
                                                 Int_t width, Int_t height,
                                                 UInt_t options, Pixel_t back) :
  TGedFrame(p, width, height, options | kVerticalFrame, back),
  fM(0),
  fRnrFrame(0), fDriftVel(0), fPointFrac(0), fPointSize(0)
{
  // Constructor.

  MakeTitle("AliEveTPCSector3D");

  Int_t labelW = 60;

  fRnrFrame = new TGCheckButton(this, "ShowFrame");
  AddFrame(fRnrFrame, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
  fRnrFrame->Connect
    ("Toggled(Bool_t)","AliEveTPCSector3DEditor", this, "DoRnrFrame()");

  fDriftVel = new TEveGValuator(this, "Vdrift fac", 110, 0);
  fDriftVel->SetLabelWidth(labelW);
  fDriftVel->SetShowSlider(kFALSE);
  fDriftVel->SetNELength(6);
  fDriftVel->Build();
  fDriftVel->SetLimits(0.1, 10, 1, TGNumberFormat::kNESRealThree);
  fDriftVel->SetToolTip("Drift velocity factor");
  fDriftVel->Connect("ValueSet(Double_t)",
		     "AliEveTPCSector3DEditor", this, "DoDriftVel()");
  AddFrame(fDriftVel, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));

  fPointFrac = new TEveGValuator(this,"Point frac", 200, 0);
  fPointFrac->SetLabelWidth(labelW);
  fPointFrac->SetNELength(4);
  fPointFrac->Build();
  fPointFrac->GetSlider()->SetWidth(101 + 16);
  fPointFrac->SetLimits(0.0, 1.0, 101);
  fPointFrac->SetToolTip("Fraction of signal range displayed as points");
  fPointFrac->Connect("ValueSet(Double_t)",
		      "AliEveTPCSector3DEditor", this, "DoPointFrac()");
  AddFrame(fPointFrac, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));

  fPointSize = new TEveGValuator(this,"Point size", 200, 0);
  fPointSize->SetLabelWidth(labelW);
  fPointSize->SetShowSlider(kFALSE);
  fPointSize->SetNELength(4);
  fPointSize->Build();
  //fPointSize->GetSlider()->SetWidth(101 + 16);
  fPointSize->SetLimits(0.1, 32.0, 1, TGNumberFormat::kNESRealOne);
  fPointSize->SetToolTip("Size of displayed points");
  fPointSize->Connect("ValueSet(Double_t)",
		      "AliEveTPCSector3DEditor", this, "DoPointSize()");
  AddFrame(fPointSize, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));
}

/******************************************************************************/

void AliEveTPCSector3DEditor::SetModel(TObject* obj)
{
  // Set model object.

  fM = static_cast<AliEveTPCSector3D*>(obj);

  fRnrFrame->SetState(fM->fRnrFrame ? kButtonDown : kButtonUp);
  fDriftVel->SetValue(fM->fDriftVel);

  fPointFrac->SetValue(fM->fPointFrac);
  fPointSize->SetValue(fM->fPointSize);
}

/******************************************************************************/

void AliEveTPCSector3DEditor::DoRnrFrame()
{
  // Slot for RnrFrame.

  fM->SetRnrFrame(fRnrFrame->IsOn());
  Update();
}

void AliEveTPCSector3DEditor::DoDriftVel()
{
  // Slot for DriftVel.

  fM->SetDriftVel(fDriftVel->GetValue());
  Update();
}

void AliEveTPCSector3DEditor::DoPointFrac()
{
  // Slot for PointFrac.

  fM->SetPointFrac(fPointFrac->GetValue());
  Update();
}

void AliEveTPCSector3DEditor::DoPointSize()
{
  // Slot for PointSize.

  fM->SetPointSize(fPointSize->GetValue());
  Update();
}

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