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 "AliEveTPCSector2DEditor.h"
#include <EveDet/AliEveTPCSector2D.h>

#include <TGButton.h>
#include <TGComboBox.h>
#include <TGLabel.h>


//______________________________________________________________________________
//
// Editor for AliEveTPCSector2D.

ClassImp(AliEveTPCSector2DEditor)

AliEveTPCSector2DEditor::AliEveTPCSector2DEditor(const TGWindow *p,
                                                 Int_t width, Int_t height,
                                                 UInt_t options, Pixel_t back) :
  TGedFrame(p, width, height, options | kVerticalFrame, back),
  fM(0),
  fShowMax(0), fAverage(0), fUseTexture(0), fPickEmpty(0), fPickMode(0)
{
  // Constructor.

  MakeTitle("AliEveTPCSector2D");

  {
    TGHorizontalFrame* f = new TGHorizontalFrame(this);
    fShowMax = new TGCheckButton(f, "ShowMax");
    f->AddFrame(fShowMax, new TGLayoutHints(kLHintsLeft, 3, 16, 1, 0));
    fShowMax->Connect("Toggled(Bool_t)","AliEveTPCSector2DEditor", this, "DoShowMax()");
    fAverage = new TGCheckButton(f, "Average");
    f->AddFrame(fAverage, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 0));
    fAverage->Connect("Toggled(Bool_t)","AliEveTPCSector2DEditor", this, "DoAverage()");
    AddFrame(f);
  }
  {
    TGHorizontalFrame* f = new TGHorizontalFrame(this);
    fUseTexture = new TGCheckButton(f, "UseTexture");
    f->AddFrame(fUseTexture, new TGLayoutHints(kLHintsTop, 3, 9, 1, 0));
    fUseTexture->Connect("Toggled(Bool_t)","AliEveTPCSector2DEditor", this, "DoUseTexture()");
    fPickEmpty = new TGCheckButton(f, "PickEmpty");
    f->AddFrame(fPickEmpty, new TGLayoutHints(kLHintsTop, 3, 1, 1, 0));
    fPickEmpty->Connect("Toggled(Bool_t)","AliEveTPCSector2DEditor", this, "DoPickEmpty()");
    AddFrame(f);
  }
  {
    TGHorizontalFrame* f = new TGHorizontalFrame(this);
    TGLabel* lab = new TGLabel(f, "PickMode");
    f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 10, 1, 2));
    fPickMode = new TGComboBox(f);
    fPickMode->AddEntry("Print", 0);
    fPickMode->AddEntry("1D histo", 1);
    fPickMode->AddEntry("2D histo", 2);
    TGListBox* lb = fPickMode->GetListBox();
    lb->Resize(lb->GetWidth(), 3*18);
    fPickMode->Resize(80, 20);
    fPickMode->Connect("Selected(Int_t)", "AliEveTPCSector2DEditor", this, "DoPickMode(Int_t)");
    f->AddFrame(fPickMode, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
    AddFrame(f);
  }
}

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

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

  fM = static_cast<AliEveTPCSector2D*>(obj);

  fShowMax->SetState(fM->fShowMax ? kButtonDown : kButtonUp);
  SetupAverage();

  fUseTexture->SetState(fM->fUseTexture ? kButtonDown : kButtonUp);
  fPickEmpty->SetState(fM->fPickEmpty ? kButtonDown : kButtonUp);
  fPickMode->Select(fM->fPickMode, kFALSE);
}

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

void AliEveTPCSector2DEditor::DoShowMax()
{
  // Slot for ShowMax.

  fM->SetShowMax(fShowMax->IsOn());
  SetupAverage();
  Update();
}

void AliEveTPCSector2DEditor::DoAverage()
{
  // Slot for Average.

  fM->SetAverage(fAverage->IsOn());
  Update();
}

void AliEveTPCSector2DEditor::SetupAverage()
{
  // Setup Average button according to mode.

  if (fM->fShowMax) {
    fAverage->SetEnabled(kFALSE);
  } else {
    fAverage->SetEnabled(kTRUE);
    fAverage->SetState(fM->fAverage ? kButtonDown : kButtonUp);
  }
}

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

void AliEveTPCSector2DEditor::DoUseTexture()
{
  // Slot for UseTexture.

  fM->fUseTexture = fUseTexture->IsOn();
  Update();
}

void AliEveTPCSector2DEditor::DoPickEmpty()
{
  // Slot for PickEmpty.

  fM->fPickEmpty = fPickEmpty->IsOn();
}

void AliEveTPCSector2DEditor::DoPickMode(Int_t mode)
{
  // Slot for PickMode.

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