-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTigDetFrame.cxx
More file actions
106 lines (85 loc) · 2.6 KB
/
TigDetFrame.cxx
File metadata and controls
106 lines (85 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// part of TigSortGUI
// author: Ulrike Hager
#include <iostream>
#include "TigFrame.h"
#include "TigDetFrame.h"
TigDetFrame::TigDetFrame()
{
// this->Init();
mContainer = NULL;
mLayout = NULL;
mViewer = NULL;
mCompFrame = NULL;
}
TigDetFrame::TigDetFrame(const TGWindow *pWindow)
:TGCompositeFrame(pWindow)
{
mNumCols = 2;
// this->Init();
mContainer = NULL;
mLayout = NULL;
mViewer = NULL;
mCompFrame = NULL;
}
TigDetFrame::~TigDetFrame()
{
if (mCompFrame)
delete mCompFrame;
if (mContainer)
delete mContainer;
if (mViewer)
delete mViewer;
if (mLayout)
delete mLayout;
}
void
TigDetFrame::AddEntry(TigDataObject* obj, int id)
{
// std::cout << "[TigDetFrame::AddEntry] name " << obj->Name() << " id " << id << std::endl;
TGLabel *lab = new TGLabel(mCompFrame,obj->Name().c_str());
mCompFrame->AddFrame(lab);
// int height = lab->GetDefaultHeight();
for (int i =1; i<mNumCols; i++)
{
TGCheckButton *button = new TGCheckButton(mCompFrame, "", 100*id+i-1);
mCompFrame->AddFrame(button);
if ( (i==1) && obj->mWriteToTree ) button->SetState(kButtonDown);
button->Connect("Clicked()","TigDetFrame",this,"HandleButtons()" );
}
this->MapSubwindows();
this->MapWindow();
}
void
TigDetFrame::HandleButtons()
{
TGButton *btn = (TGButton *) gTQSender;
int buttonID = btn->WidgetId();
// std::cout << "[TigDetFrame::HandleButtons] buttonID " << buttonID << std::endl;
int button = buttonID % 100;
int det = buttonID /100;
mParent->HandleDetFrame(det,button);
}
void
TigDetFrame::SetParent(TigFrame *p)
{
mParent = p;
TGString columnName[] = {"Det","Write"};
TGLayoutHints *layout1 = new TGLayoutHints(kLHintsTop, 20, 20, 10, 0);
mLayout = new TGLayoutHints(kLHintsTop | kLHintsExpandX| kLHintsCenterX, 1, 5, 1, 5);
mViewer = new TGCanvas(this,mParent->GetUsableHeight()-10, mParent->GetWidth()-5);
mContainer = new TGCompositeFrame(mViewer->GetViewPort());
mViewer->SetContainer(mContainer);
this->AddFrame(mViewer, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));
mCompFrame = new TGCompositeFrame(mContainer,mParent->GetUsableHeight()-15, mParent->GetWidth()-15);
mCompFrame->SetLayoutManager(new TGMatrixLayout(mCompFrame, 0, mNumCols,1,1));
mCompFrame->SetMinWidth( mParent->GetWidth());
mViewer->SetMinWidth( mParent->GetWidth()-10);
for (int i =0; i<mNumCols; i++)
{
TGLabel *label = new TGLabel(mCompFrame,columnName[i]);
mCompFrame->AddFrame(label);
}
mContainer->AddFrame(mCompFrame, layout1);
this->MapSubwindows();
this->MapWindow();
}