]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/Alieve/AliEveITSScaledModuleEditor.cxx
Put all classes in Alieve/ sub-module out of the Alieve namespace and
[u/mrichter/AliRoot.git] / EVE / Alieve / AliEveITSScaledModuleEditor.cxx
CommitLineData
d810d0de 1// $Id$
2// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3b868b75 3
d810d0de 4/**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
9
10#include "AliEveITSScaledModuleEditor.h"
11#include <Alieve/AliEveITSScaledModule.h>
84aff7a4 12#include <TEveTransEditor.h>
13#include <TEveGValuators.h>
3b868b75 14
15#include <TVirtualPad.h>
16#include <TColor.h>
17#include <TMath.h>
18
19#include <TGedEditor.h>
20#include <TGLabel.h>
32e219c2 21#include <TG3DLine.h>
3b868b75 22#include <TGButton.h>
23#include <TGNumberEntry.h>
24#include <TGColorSelect.h>
25#include <TGComboBox.h>
d810d0de 26
3b868b75 27
28//______________________________________________________________________
d810d0de 29// AliEveITSScaledModuleEditor
3b868b75 30//
32e219c2 31
d810d0de 32ClassImp(AliEveITSScaledModuleEditor)
32e219c2 33
d810d0de 34 AliEveITSScaledModuleEditor::AliEveITSScaledModuleEditor(const TGWindow *p, Int_t width, Int_t height,
32e219c2 35 UInt_t options, Pixel_t back) :
36 TGedFrame(p, width, height, options | kVerticalFrame, back),
37
38 fInfoFrame(0),
39
40 fModule(0),
41
42 fScale(0),
43 fStatistic(0),
44 fInfoLabel0(0),
45 fInfoLabel1(0)
3b868b75 46{
d810d0de 47 MakeTitle("AliEveITSScaledModule");
3b868b75 48 // Create widgets
49 {
50 TGHorizontalFrame* f = new TGHorizontalFrame(this);
51 TGLabel *l = new TGLabel(f, "Scale:");
52 f->AddFrame(l, new TGLayoutHints(kLHintsTop | kLHintsCenterY, 0, 5, 1, 1));
53 fScale = new TGNumberEntry(f, 0, 2, -1,
54 TGNumberFormat::kNESInteger, TGNumberFormat::kNEAPositive,
55 TGNumberFormat::kNELLimitMinMax, 1, 5);
56 fScale->GetNumberEntry()->SetToolTipText("Set cell size.");
57 f->AddFrame(fScale, new TGLayoutHints(kLHintsLeft, 1, 7, 1, 1));
58 fScale->Associate(f);
d810d0de 59 fScale->Connect("ValueSet(Long_t)", "AliEveITSScaledModuleEditor", this, "DoScale()");
3b868b75 60
61 TGLabel* lab = new TGLabel(f, "Statistic:");
62 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 2, 1, 2));
63 fStatistic = new TGComboBox(f);
64 fStatistic->AddEntry("Occup", 0);
65 fStatistic->AddEntry("Average", 1);
66 fStatistic->AddEntry("RMS", 2);
67 TGListBox* lb = fStatistic->GetListBox();
68 lb->Resize(lb->GetWidth(), 3*16);
69 fStatistic->Resize(74, 20);
d810d0de 70 fStatistic->Connect("Selected(Int_t)", "AliEveITSScaledModuleEditor", this, "DoStatType(Int_t)");
3b868b75 71 f->AddFrame(fStatistic, new TGLayoutHints(kLHintsLeft, 1, 2, 1, 1));
72 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
73 }
74
32e219c2 75 CreateInfoFrame();
76}
77
78/*************************************************************************/
d810d0de 79AliEveITSScaledModuleEditor::~AliEveITSScaledModuleEditor()
32e219c2 80{}
81
82/*************************************************************************/
d810d0de 83void AliEveITSScaledModuleEditor::CreateInfoFrame()
32e219c2 84{
85 fInfoFrame = CreateEditorTabSubFrame("Info");
86 TGCompositeFrame *title1 = new TGCompositeFrame(fInfoFrame, 145, 10,
87 kHorizontalFrame |
88 kLHintsExpandX |
89 kFixedWidth |
90 kOwnBackground);
91
92 title1->AddFrame(new TGLabel(title1, "ScaledDigits Info"),
93 new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0));
94 title1->AddFrame(new TGHorizontal3DLine(title1),
95 new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7));
96 fInfoFrame->AddFrame(title1, new TGLayoutHints(kLHintsTop, 0, 0, 2, 0));
97
98
3b868b75 99 Int_t lp = 2;
32e219c2 100 fInfoLabel0 = new TGLabel(fInfoFrame);
3b868b75 101 fInfoLabel0->SetTextJustify(kTextLeft);
32e219c2 102 fInfoFrame->AddFrame(fInfoLabel0, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
103 lp, 0, 8, 0));
3b868b75 104
32e219c2 105 fInfoLabel1 = new TGLabel(fInfoFrame);
3b868b75 106 fInfoLabel1->SetTextJustify(kTextLeft);
32e219c2 107 fInfoFrame->AddFrame(fInfoLabel1, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
108 lp, 0, 2, 8));
3b868b75 109
3b868b75 110}
111
112/**************************************************************************/
113
d810d0de 114void AliEveITSScaledModuleEditor::SetModel(TObject* obj)
3b868b75 115{
d810d0de 116 fModule = dynamic_cast<AliEveITSScaledModule*>(obj);
32e219c2 117
118 // widgets
03dfc4a7 119 fScale->SetIntNumber(fModule->GetScaleInfo()->GetScale());
120 fStatistic->Select(fModule->GetScaleInfo()->GetStatType(), kFALSE);
32e219c2 121
122 // text info
3b868b75 123 Int_t cnx, cnz, total;
32e219c2 124 fModule->GetScaleData(cnx, cnz, total);
3b868b75 125 fInfoLabel0->SetText(Form("Cell size: Nx=%d Nz=%d", cnx, cnz));
126 fInfoLabel1->SetText(Form("Num cells: %d", total));
3b868b75 127}
128
3b868b75 129
130/**************************************************************************/
131
d810d0de 132void AliEveITSScaledModuleEditor::DoScale()
3b868b75 133{
03dfc4a7 134 fModule->GetScaleInfo()->ScaleChanged(fScale->GetIntNumber());
3b868b75 135
32e219c2 136 Int_t cnx, cnz, total;
137 fModule->GetScaleData(cnx, cnz, total);
138 fInfoLabel0->SetText(Form("Cell size: Nx=%d Nz=%d", cnx, cnz));
139 Update();
140 fGedEditor->SetModel(fGedEditor->GetPad(), fGedEditor->GetModel(), kButton1Down);
3b868b75 141}
142
143/**************************************************************************/
144
d810d0de 145void AliEveITSScaledModuleEditor::DoStatType(Int_t v)
3b868b75 146{
32e219c2 147 fModule->GetScaleInfo()->StatTypeChanged(v);
148 Update();
149 fGedEditor->SetModel(fGedEditor->GetPad(), fGedEditor->GetModel(), kButton1Down);
3b868b75 150}