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

// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

#include "AliEveTOFSectorEditor.h"
#include <EveDet/AliEveTOFSector.h>

#include <TVirtualPad.h>
#include <TColor.h>
#include <TEveGValuators.h>

#include <TGLabel.h>
#include <TGButton.h>
#include <TGNumberEntry.h>
#include <TGColorSelect.h>
#include <TGSlider.h>
#include <TGDoubleSlider.h>


//______________________________________________________________________________
// AliEveTOFSectorEditor
//

ClassImp(AliEveTOFSectorEditor)

AliEveTOFSectorEditor::AliEveTOFSectorEditor(const TGWindow *p, Int_t width, Int_t height,
					     UInt_t options, Pixel_t back) :
  TGedFrame(p, width, height, options | kVerticalFrame, back),
  fM(0) ,
  fSectorID  (0), fAutoTrans (0),
  fPlate (0),
  fPlate0(0), fPlate1(0), fPlate2(0), fPlate3(0), fPlate4(0),
  fThreshold (0), fMaxVal(0)
{
  //ctr

  fPlate = new TGCheckButton*[5];
  for (Int_t ii=0; ii<5; ii++) fPlate[ii] = new TGCheckButton;

  //fPriority = 40;
  MakeTitle("AliEveTOFSector");

  fSectorID = new TEveGValuator(this, "SectorID", 110, 0);
  fSectorID->SetLabelWidth(60);
  fSectorID->SetShowSlider(kFALSE);
  fSectorID->SetNELength(4);
  fSectorID->Build();
  fSectorID->SetLimits(0, 17);
  fSectorID->SetToolTip("The 18 Tof Sector's");
  fSectorID->Connect("ValueSet(Double_t)",
		     "AliEveTOFSectorEditor", this, "DoSectorID()");
  // Reuse sectorID for auto-transformation button
  fAutoTrans = new TGCheckButton(fSectorID, "AutoTrans");
  fAutoTrans->SetToolTipText("Automatically set transformation to true position");
  fSectorID->AddFrame(fAutoTrans, new TGLayoutHints(kLHintsLeft, 12, 0, 1, 0));
  fAutoTrans->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoAutoTrans()");
  AddFrame(fSectorID, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));

  // Create widgets
  // fXYZZ = new TGSomeWidget(this, ...);
  // AddFrame(fXYZZ, new TGLayoutHints(...));
  // fXYZZ->Connect("SignalName()", "AliEveTOFSectorEditor", this, "DoXYZZ()"); {
  TGHorizontalFrame* f = new TGHorizontalFrame(this);

  Int_t nPlate = 0;
  fPlate0 = new TGCheckButton(f, "Plate0");
  f->AddFrame(fPlate0, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
  fPlate0->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate0()");
  //fPlate0->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");

  nPlate = 1;
  fPlate1 = new TGCheckButton(f, "Plate 1");
  f->AddFrame(fPlate1, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
  fPlate1->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate1()");
  //fPlate1->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");

  nPlate = 2;
  fPlate2 = new TGCheckButton(f, "Plate 2");
  f->AddFrame(fPlate2, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
  fPlate2->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate2()");
  //fPlate2->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");

  nPlate = 3;
  fPlate3 = new TGCheckButton(f, "Plate 3");
  f->AddFrame(fPlate3, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
  fPlate3->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate3()");
  //fPlate3->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");

  nPlate = 4;
  fPlate4 = new TGCheckButton(f, "Plate 4");
  f->AddFrame(fPlate4, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
  fPlate4->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate4()");
  //fPlate4->Connect("Toggled(Bool_t)","AliEveTOFSectorEditor", this, "DoPlate(Int_t)");

  fPlate[0] = fPlate0;
  fPlate[1] = fPlate1;
  fPlate[2] = fPlate2;
  fPlate[3] = fPlate3;
  fPlate[4] = fPlate4;

  AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));

  fThreshold = new TEveGValuator(this, "Threshold", 200, 0);
  fThreshold->SetNELength(4);
  fThreshold->SetLabelWidth(60);
  fThreshold->Build();
  fThreshold->GetSlider()->SetWidth(120);
  fThreshold->SetLimits(0,250);
  fThreshold->Connect("ValueSet(Double_t)",
		      "AliEveTOFSectorEditor", this, "DoThreshold()");
  AddFrame(fThreshold, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));

  fMaxVal = new TEveGValuator(this,"MaxVal", 200, 0);
  fMaxVal->SetNELength(4);
  fMaxVal->SetLabelWidth(60);
  fMaxVal->Build();
  fMaxVal->GetSlider()->SetWidth(60);
  fMaxVal->SetLimits(0, 500);
  fMaxVal->Connect("ValueSet(Double_t)",
		   "AliEveTOFSectorEditor", this, "DoMaxVal()");
  AddFrame(fMaxVal, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1));

}

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

AliEveTOFSectorEditor::~AliEveTOFSectorEditor()
{
  //dtr

  delete [] fPlate;
}

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

void AliEveTOFSectorEditor::SetModel(TObject* obj)
{
  // Set object to monitor at visualization level

  fM = static_cast<AliEveTOFSector*>(obj);

  fSectorID->SetValue(fM->GetSectorID());
  fAutoTrans->SetState(fM->GetAutoTrans()  ? kButtonDown : kButtonUp);

  fPlate0->SetState(fM->GetPlate(0) ? kButtonDown : kButtonUp);
  fPlate1->SetState(fM->GetPlate(1) ? kButtonDown : kButtonUp);
  fPlate2->SetState(fM->GetPlate(2) ? kButtonDown : kButtonUp);
  fPlate3->SetState(fM->GetPlate(3) ? kButtonDown : kButtonUp);
  fPlate4->SetState(fM->GetPlate(4) ? kButtonDown : kButtonUp);
}

/******************************************************************************/
void AliEveTOFSectorEditor::DoSectorID()
{
  fM->SetSectorID((Int_t) fSectorID->GetValue());
  Update();
}

void AliEveTOFSectorEditor::DoAutoTrans()
{
  fM->SetAutoTrans(fAutoTrans->IsOn());
  Update();
}

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

void AliEveTOFSectorEditor::DoPlate(Int_t nPlate)
{
  fM->SetPlate(nPlate, fPlate[nPlate]->IsOn());
  Update();
}

void AliEveTOFSectorEditor::DoPlate0()
{
  fM->SetPlate(0, fPlate0->IsOn());
  Update();
}

void AliEveTOFSectorEditor::DoPlate1()
{
  fM->SetPlate(1, fPlate1->IsOn());
  Update();
}

void AliEveTOFSectorEditor::DoPlate2()
{
  fM->SetPlate(2, fPlate2->IsOn());
  Update();
}
void AliEveTOFSectorEditor::DoPlate3()
{
  fM->SetPlate(3, fPlate3->IsOn());
  Update();
}

void AliEveTOFSectorEditor::DoPlate4()
{
  fM->SetPlate(4, fPlate4->IsOn());
  Update();
}


void AliEveTOFSectorEditor::DoThreshold()
{
  fM->SetThreshold((Short_t) fThreshold->GetValue());
  fThreshold->SetValue(fM->GetThreshold());
  Update();
}

void AliEveTOFSectorEditor::DoMaxVal()
{
  fM->SetMaxVal((Int_t) fMaxVal->GetValue());
  fMaxVal->SetValue(fM->GetMaxVal());
  Update();
}

/*
void AliEveTOFSectorEditor::DoTime()
{ 
  fM->SetMinTime((Int_t) fTime->GetMin());
  fM->SetMaxTime((Int_t) fTime->GetMax());
  Update();
}
*/
 AliEveTOFSectorEditor.cxx:1
 AliEveTOFSectorEditor.cxx:2
 AliEveTOFSectorEditor.cxx:3
 AliEveTOFSectorEditor.cxx:4
 AliEveTOFSectorEditor.cxx:5
 AliEveTOFSectorEditor.cxx:6
 AliEveTOFSectorEditor.cxx:7
 AliEveTOFSectorEditor.cxx:8
 AliEveTOFSectorEditor.cxx:9
 AliEveTOFSectorEditor.cxx:10
 AliEveTOFSectorEditor.cxx:11
 AliEveTOFSectorEditor.cxx:12
 AliEveTOFSectorEditor.cxx:13
 AliEveTOFSectorEditor.cxx:14
 AliEveTOFSectorEditor.cxx:15
 AliEveTOFSectorEditor.cxx:16
 AliEveTOFSectorEditor.cxx:17
 AliEveTOFSectorEditor.cxx:18
 AliEveTOFSectorEditor.cxx:19
 AliEveTOFSectorEditor.cxx:20
 AliEveTOFSectorEditor.cxx:21
 AliEveTOFSectorEditor.cxx:22
 AliEveTOFSectorEditor.cxx:23
 AliEveTOFSectorEditor.cxx:24
 AliEveTOFSectorEditor.cxx:25
 AliEveTOFSectorEditor.cxx:26
 AliEveTOFSectorEditor.cxx:27
 AliEveTOFSectorEditor.cxx:28
 AliEveTOFSectorEditor.cxx:29
 AliEveTOFSectorEditor.cxx:30
 AliEveTOFSectorEditor.cxx:31
 AliEveTOFSectorEditor.cxx:32
 AliEveTOFSectorEditor.cxx:33
 AliEveTOFSectorEditor.cxx:34
 AliEveTOFSectorEditor.cxx:35
 AliEveTOFSectorEditor.cxx:36
 AliEveTOFSectorEditor.cxx:37
 AliEveTOFSectorEditor.cxx:38
 AliEveTOFSectorEditor.cxx:39
 AliEveTOFSectorEditor.cxx:40
 AliEveTOFSectorEditor.cxx:41
 AliEveTOFSectorEditor.cxx:42
 AliEveTOFSectorEditor.cxx:43
 AliEveTOFSectorEditor.cxx:44
 AliEveTOFSectorEditor.cxx:45
 AliEveTOFSectorEditor.cxx:46
 AliEveTOFSectorEditor.cxx:47
 AliEveTOFSectorEditor.cxx:48
 AliEveTOFSectorEditor.cxx:49
 AliEveTOFSectorEditor.cxx:50
 AliEveTOFSectorEditor.cxx:51
 AliEveTOFSectorEditor.cxx:52
 AliEveTOFSectorEditor.cxx:53
 AliEveTOFSectorEditor.cxx:54
 AliEveTOFSectorEditor.cxx:55
 AliEveTOFSectorEditor.cxx:56
 AliEveTOFSectorEditor.cxx:57
 AliEveTOFSectorEditor.cxx:58
 AliEveTOFSectorEditor.cxx:59
 AliEveTOFSectorEditor.cxx:60
 AliEveTOFSectorEditor.cxx:61
 AliEveTOFSectorEditor.cxx:62
 AliEveTOFSectorEditor.cxx:63
 AliEveTOFSectorEditor.cxx:64
 AliEveTOFSectorEditor.cxx:65
 AliEveTOFSectorEditor.cxx:66
 AliEveTOFSectorEditor.cxx:67
 AliEveTOFSectorEditor.cxx:68
 AliEveTOFSectorEditor.cxx:69
 AliEveTOFSectorEditor.cxx:70
 AliEveTOFSectorEditor.cxx:71
 AliEveTOFSectorEditor.cxx:72
 AliEveTOFSectorEditor.cxx:73
 AliEveTOFSectorEditor.cxx:74
 AliEveTOFSectorEditor.cxx:75
 AliEveTOFSectorEditor.cxx:76
 AliEveTOFSectorEditor.cxx:77
 AliEveTOFSectorEditor.cxx:78
 AliEveTOFSectorEditor.cxx:79
 AliEveTOFSectorEditor.cxx:80
 AliEveTOFSectorEditor.cxx:81
 AliEveTOFSectorEditor.cxx:82
 AliEveTOFSectorEditor.cxx:83
 AliEveTOFSectorEditor.cxx:84
 AliEveTOFSectorEditor.cxx:85
 AliEveTOFSectorEditor.cxx:86
 AliEveTOFSectorEditor.cxx:87
 AliEveTOFSectorEditor.cxx:88
 AliEveTOFSectorEditor.cxx:89
 AliEveTOFSectorEditor.cxx:90
 AliEveTOFSectorEditor.cxx:91
 AliEveTOFSectorEditor.cxx:92
 AliEveTOFSectorEditor.cxx:93
 AliEveTOFSectorEditor.cxx:94
 AliEveTOFSectorEditor.cxx:95
 AliEveTOFSectorEditor.cxx:96
 AliEveTOFSectorEditor.cxx:97
 AliEveTOFSectorEditor.cxx:98
 AliEveTOFSectorEditor.cxx:99
 AliEveTOFSectorEditor.cxx:100
 AliEveTOFSectorEditor.cxx:101
 AliEveTOFSectorEditor.cxx:102
 AliEveTOFSectorEditor.cxx:103
 AliEveTOFSectorEditor.cxx:104
 AliEveTOFSectorEditor.cxx:105
 AliEveTOFSectorEditor.cxx:106
 AliEveTOFSectorEditor.cxx:107
 AliEveTOFSectorEditor.cxx:108
 AliEveTOFSectorEditor.cxx:109
 AliEveTOFSectorEditor.cxx:110
 AliEveTOFSectorEditor.cxx:111
 AliEveTOFSectorEditor.cxx:112
 AliEveTOFSectorEditor.cxx:113
 AliEveTOFSectorEditor.cxx:114
 AliEveTOFSectorEditor.cxx:115
 AliEveTOFSectorEditor.cxx:116
 AliEveTOFSectorEditor.cxx:117
 AliEveTOFSectorEditor.cxx:118
 AliEveTOFSectorEditor.cxx:119
 AliEveTOFSectorEditor.cxx:120
 AliEveTOFSectorEditor.cxx:121
 AliEveTOFSectorEditor.cxx:122
 AliEveTOFSectorEditor.cxx:123
 AliEveTOFSectorEditor.cxx:124
 AliEveTOFSectorEditor.cxx:125
 AliEveTOFSectorEditor.cxx:126
 AliEveTOFSectorEditor.cxx:127
 AliEveTOFSectorEditor.cxx:128
 AliEveTOFSectorEditor.cxx:129
 AliEveTOFSectorEditor.cxx:130
 AliEveTOFSectorEditor.cxx:131
 AliEveTOFSectorEditor.cxx:132
 AliEveTOFSectorEditor.cxx:133
 AliEveTOFSectorEditor.cxx:134
 AliEveTOFSectorEditor.cxx:135
 AliEveTOFSectorEditor.cxx:136
 AliEveTOFSectorEditor.cxx:137
 AliEveTOFSectorEditor.cxx:138
 AliEveTOFSectorEditor.cxx:139
 AliEveTOFSectorEditor.cxx:140
 AliEveTOFSectorEditor.cxx:141
 AliEveTOFSectorEditor.cxx:142
 AliEveTOFSectorEditor.cxx:143
 AliEveTOFSectorEditor.cxx:144
 AliEveTOFSectorEditor.cxx:145
 AliEveTOFSectorEditor.cxx:146
 AliEveTOFSectorEditor.cxx:147
 AliEveTOFSectorEditor.cxx:148
 AliEveTOFSectorEditor.cxx:149
 AliEveTOFSectorEditor.cxx:150
 AliEveTOFSectorEditor.cxx:151
 AliEveTOFSectorEditor.cxx:152
 AliEveTOFSectorEditor.cxx:153
 AliEveTOFSectorEditor.cxx:154
 AliEveTOFSectorEditor.cxx:155
 AliEveTOFSectorEditor.cxx:156
 AliEveTOFSectorEditor.cxx:157
 AliEveTOFSectorEditor.cxx:158
 AliEveTOFSectorEditor.cxx:159
 AliEveTOFSectorEditor.cxx:160
 AliEveTOFSectorEditor.cxx:161
 AliEveTOFSectorEditor.cxx:162
 AliEveTOFSectorEditor.cxx:163
 AliEveTOFSectorEditor.cxx:164
 AliEveTOFSectorEditor.cxx:165
 AliEveTOFSectorEditor.cxx:166
 AliEveTOFSectorEditor.cxx:167
 AliEveTOFSectorEditor.cxx:168
 AliEveTOFSectorEditor.cxx:169
 AliEveTOFSectorEditor.cxx:170
 AliEveTOFSectorEditor.cxx:171
 AliEveTOFSectorEditor.cxx:172
 AliEveTOFSectorEditor.cxx:173
 AliEveTOFSectorEditor.cxx:174
 AliEveTOFSectorEditor.cxx:175
 AliEveTOFSectorEditor.cxx:176
 AliEveTOFSectorEditor.cxx:177
 AliEveTOFSectorEditor.cxx:178
 AliEveTOFSectorEditor.cxx:179
 AliEveTOFSectorEditor.cxx:180
 AliEveTOFSectorEditor.cxx:181
 AliEveTOFSectorEditor.cxx:182
 AliEveTOFSectorEditor.cxx:183
 AliEveTOFSectorEditor.cxx:184
 AliEveTOFSectorEditor.cxx:185
 AliEveTOFSectorEditor.cxx:186
 AliEveTOFSectorEditor.cxx:187
 AliEveTOFSectorEditor.cxx:188
 AliEveTOFSectorEditor.cxx:189
 AliEveTOFSectorEditor.cxx:190
 AliEveTOFSectorEditor.cxx:191
 AliEveTOFSectorEditor.cxx:192
 AliEveTOFSectorEditor.cxx:193
 AliEveTOFSectorEditor.cxx:194
 AliEveTOFSectorEditor.cxx:195
 AliEveTOFSectorEditor.cxx:196
 AliEveTOFSectorEditor.cxx:197
 AliEveTOFSectorEditor.cxx:198
 AliEveTOFSectorEditor.cxx:199
 AliEveTOFSectorEditor.cxx:200
 AliEveTOFSectorEditor.cxx:201
 AliEveTOFSectorEditor.cxx:202
 AliEveTOFSectorEditor.cxx:203
 AliEveTOFSectorEditor.cxx:204
 AliEveTOFSectorEditor.cxx:205
 AliEveTOFSectorEditor.cxx:206
 AliEveTOFSectorEditor.cxx:207
 AliEveTOFSectorEditor.cxx:208
 AliEveTOFSectorEditor.cxx:209
 AliEveTOFSectorEditor.cxx:210
 AliEveTOFSectorEditor.cxx:211
 AliEveTOFSectorEditor.cxx:212
 AliEveTOFSectorEditor.cxx:213
 AliEveTOFSectorEditor.cxx:214
 AliEveTOFSectorEditor.cxx:215
 AliEveTOFSectorEditor.cxx:216
 AliEveTOFSectorEditor.cxx:217
 AliEveTOFSectorEditor.cxx:218
 AliEveTOFSectorEditor.cxx:219
 AliEveTOFSectorEditor.cxx:220
 AliEveTOFSectorEditor.cxx:221
 AliEveTOFSectorEditor.cxx:222
 AliEveTOFSectorEditor.cxx:223
 AliEveTOFSectorEditor.cxx:224
 AliEveTOFSectorEditor.cxx:225
 AliEveTOFSectorEditor.cxx:226
 AliEveTOFSectorEditor.cxx:227
 AliEveTOFSectorEditor.cxx:228
 AliEveTOFSectorEditor.cxx:229