// @(#)root/ged:$Id$
// Author: Ilka Antcheva   24/06/04

/*************************************************************************
 * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/


//////////////////////////////////////////////////////////////////////////
//                                                                      //
//  TPadEditor                                                          //
//                                                                      //
//  Editor of pad/canvas objects.                                       //
//       color and fill style,                                          //             
//      'Edit' check box sets pad/canvad editable,                      //
//      'Crosshair' sets a cross hair on the pad,                       //
//      'Fixed aspect ratio' can be set when resizing the pad           //
//      'TickX' and 'TickY' set ticks along the X and Y axis            //
//      'GridX' and 'GridY' set a grid along the X and Y axis           //
//       pad/canvas border size can be set if a sinken or a raised      //
//       border mode is selected; no border mode can be set to          //
//                                                                      //
//////////////////////////////////////////////////////////////////////////
//Begin_Html
/*
<img src="gif/TPadEditor.gif">
*/
//End_Html

#include "TPadEditor.h"
#include "TGedEditor.h"
#include "TGComboBox.h"
#include "TGButtonGroup.h"
#include "TGLabel.h"
#include "TCanvas.h"

ClassImp(TPadEditor)

enum EPadWid {
   kCOLOR,
   kPAD_FAR,
   kPAD_EDIT,
   kPAD_CROSS,
   kPAD_GRIDX,
   kPAD_GRIDY,
   kPAD_LOGX,
   kPAD_LOGY,
   kPAD_LOGZ,
   kPAD_TICKX,
   kPAD_TICKY,
   kPAD_BSIZE,
   kPAD_BMODE
};


//______________________________________________________________________________
TPadEditor::TPadEditor(const TGWindow *p, Int_t width,
                       Int_t height, UInt_t options, Pixel_t back)
   : TGedFrame(p, width, height, options | kVerticalFrame, back)
{
   // Constructor of TPad editor GUI.

   fPadPointer = 0;
   
   MakeTitle("Pad/Canvas");

   fFixedAR = new TGCheckButton(this, "Fixed aspect ratio", kPAD_FAR);
   fFixedAR->SetToolTipText("Set fixed aspect ratio");
   AddFrame(fFixedAR, new TGLayoutHints(kLHintsTop, 4, 1, 2, 1));

   TGCompositeFrame *f2 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   TGCompositeFrame *f3 = new TGCompositeFrame(f2, 40, 20, kVerticalFrame);
   fCrosshair = new TGCheckButton(f3, "Crosshair", kPAD_CROSS);
   fCrosshair->SetToolTipText("Set crosshair");
   f3->AddFrame(fCrosshair, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
   fGridX = new TGCheckButton(f3, "GridX", kPAD_GRIDX);
   fGridX->SetToolTipText("Set grid along X");
   f3->AddFrame(fGridX, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
   fTickX = new TGCheckButton(f3, "TickX", kPAD_TICKX);
   fTickX->SetToolTipText("Set tick marks along X");
   f3->AddFrame(fTickX, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
   f2->AddFrame(f3, new TGLayoutHints(kLHintsTop, 0, 1, 0, 0));

   TGCompositeFrame *f4 = new TGCompositeFrame(f2, 40, 20, kVerticalFrame);
   fEditable = new TGCheckButton(f4, "Edit", kPAD_EDIT);
   fEditable->SetToolTipText("Set editable mode");
   f4->AddFrame(fEditable, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
   fGridY = new TGCheckButton(f4, "GridY", kPAD_GRIDY);
   fGridY->SetToolTipText("Set grid along Y");
   f4->AddFrame(fGridY, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
   fTickY = new TGCheckButton(f4, "TickY", kPAD_TICKY);
   fTickY->SetToolTipText("Set tick marks along Y");
   f4->AddFrame(fTickY, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
   f2->AddFrame(f4, new TGLayoutHints(kLHintsTop, 0, 1, 0, 0));

   AddFrame(f2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   MakeTitle("Log Scale");

   TGCompositeFrame *f5 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fLogX = new TGCheckButton(f5, ":X", kPAD_LOGX);
   fLogX->SetToolTipText("Set logarithmic scale along X");
   f5->AddFrame(fLogX, new TGLayoutHints(kLHintsTop, 4, 1, 1, 1));
   fLogY = new TGCheckButton(f5, ":Y", kPAD_LOGY);
   fLogY->SetToolTipText("Set logarithmic scale along Y");
   f5->AddFrame(fLogY, new TGLayoutHints(kLHintsTop, 15, 1, 1, 1));
   fLogZ = new TGCheckButton(f5, ":Z", kPAD_LOGZ);
   fLogZ->SetToolTipText("Set logarithmic scale along Z");
   f5->AddFrame(fLogZ, new TGLayoutHints(kLHintsTop, 15, 1, 1, 1));
   AddFrame(f5, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   TGCompositeFrame *f6 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   fBgroup = new TGButtonGroup(f6,3,1,3,0, "Border Mode");
   fBgroup->SetRadioButtonExclusive(kTRUE);
   fBmode = new TGRadioButton(fBgroup, " Sunken border", 77);
   fBmode->SetToolTipText("Set a sinken border of the pad/canvas");
   fBmode0 = new TGRadioButton(fBgroup, " No border", 78);
   fBmode0->SetToolTipText("Set no border of the pad/canvas");
   fBmode1 = new TGRadioButton(fBgroup, " Raised border", 79);
   fBmode1->SetToolTipText("Set a raised border of the pad/canvas");
   fBmodelh = new TGLayoutHints(kLHintsLeft, 0,0,3,0);
   fBgroup->SetLayoutHints(fBmodelh, fBmode);
   fBgroup->ChangeOptions(kFitWidth|kChildFrame|kVerticalFrame);
   f6->AddFrame(fBgroup, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 4, 1, 0, 0));
   AddFrame(f6, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));
   
   TGCompositeFrame *f7 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame);
   TGLabel *fSizeLbl = new TGLabel(f7, "Size:");                              
   f7->AddFrame(fSizeLbl, new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 6, 1, 0, 0));
   fBsize = new TGLineWidthComboBox(f7, kPAD_BSIZE);
   fBsize->Resize(92, 20);
   f7->AddFrame(fBsize, new TGLayoutHints(kLHintsLeft, 13, 1, 0, 0));
   fBsize->Associate(this);
   AddFrame(f7, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0));

   fInit = kTRUE;
}

//______________________________________________________________________________
TPadEditor::~TPadEditor()
{ 
   // Destructor of fill editor.

   // children of TGButonGroup are not deleted
   delete fBmode;
   delete fBmode0;
   delete fBmode1;
   delete fBmodelh;
}

//______________________________________________________________________________
void TPadEditor::ConnectSignals2Slots()
{ 
   // Connect signals to slots.

   fFixedAR->Connect("Toggled(Bool_t)","TPadEditor",this,"DoFixedAspectRatio(Bool_t)");
   fCrosshair->Connect("Toggled(Bool_t)","TPadEditor",this,"DoCrosshair(Bool_t)");
   fEditable->Connect("Toggled(Bool_t)","TPadEditor",this,"DoEditable(Bool_t)");
   fGridX->Connect("Toggled(Bool_t)","TPadEditor",this,"DoGridX(Bool_t)");
   fGridY->Connect("Toggled(Bool_t)","TPadEditor",this,"DoGridY(Bool_t)");
   fTickX->Connect("Toggled(Bool_t)","TPadEditor",this,"DoTickX(Bool_t)");
   fTickY->Connect("Toggled(Bool_t)","TPadEditor",this,"DoTickY(Bool_t)");
   fLogX->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogX(Bool_t)");
   fLogY->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogY(Bool_t)");
   fLogZ->Connect("Toggled(Bool_t)","TPadEditor",this,"DoLogZ(Bool_t)");
   fBgroup->Connect("Clicked(Int_t)","TPadEditor",this,"DoBorderMode()");
   fBsize->Connect("Selected(Int_t)", "TPadEditor", this, "DoBorderSize(Int_t)");
   fInit = kFALSE;
}

//______________________________________________________________________________
void TPadEditor::SetModel(TObject* obj)
{
   // Pick up the used fill attributes.

   if (!obj || !obj->InheritsFrom("TPad"))
      return;
   fPadPointer = (TPad *)obj;
   fAvoidSignal = kTRUE;
   Bool_t on;

   on = fPadPointer->HasFixedAspectRatio();
   if (on) fFixedAR->SetState(kButtonDown);
   else fFixedAR->SetState(kButtonUp);
   
   on = fPadPointer->HasCrosshair();
   if (on) fCrosshair->SetState(kButtonDown);
   else fCrosshair->SetState(kButtonUp);
   
   on = fPadPointer->IsEditable();
   if (on) fEditable->SetState(kButtonDown);
   else fEditable->SetState(kButtonUp);

   on = fPadPointer->GetGridx();
   if (on) fGridX->SetState(kButtonDown);
   else fGridX->SetState(kButtonUp);
   
   on = fPadPointer->GetGridy();
   if (on) fGridY->SetState(kButtonDown);
   else fGridY->SetState(kButtonUp);

   Int_t par;
   par = fPadPointer->GetLogx();
   if (par) fLogX->SetState(kButtonDown);
   else fLogX->SetState(kButtonUp);
   
   par = fPadPointer->GetLogy();
   if (par) fLogY->SetState(kButtonDown);
   else fLogY->SetState(kButtonUp);

   par = fPadPointer->GetLogz();
   if (par) fLogZ->SetState(kButtonDown);
   else fLogZ->SetState(kButtonUp);

   par = fPadPointer->GetTickx();
   if (par) fTickX->SetState(kButtonDown);
   else fTickX->SetState(kButtonUp);

   par = fPadPointer->GetTicky();
   if (par) fTickY->SetState(kButtonDown);
   else fTickY->SetState(kButtonUp);

   par = fPadPointer->GetBorderMode();
   if (par == -1) {
      fBgroup->SetButton(77, kTRUE);
      fBsize->SetEnabled(kTRUE);
   } else if (par == 1) {
      fBgroup->SetButton(79, kTRUE);
      fBsize->SetEnabled(kTRUE);
   } else {
      fBgroup->SetButton(78, kTRUE);
      fBsize->SetEnabled(kFALSE);
   }
   par = fPadPointer->GetBorderSize();
   if (par < 1) par = 1;
   if (par > 16) par = 16;
   fBsize->Select(par);
   
   if (fInit) ConnectSignals2Slots();

   fAvoidSignal = kFALSE;
}

//______________________________________________________________________________
void TPadEditor::ActivateBaseClassEditors(TClass* cl)
{
   // Exclude TAttLineEditor from this interface.

   fGedEditor->ExcludeClassEditor(TAttLine::Class());
   TGedFrame::ActivateBaseClassEditors(cl);
}

//______________________________________________________________________________
void TPadEditor::DoEditable(Bool_t on)
{
   // Slot connected to the check box 'Editable'.

   if (fAvoidSignal) return;
   fPadPointer->SetEditable(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoCrosshair(Bool_t on)
{
   // Slot connected to the check box 'Crosshair'.

   if (fAvoidSignal) return;
   fPadPointer->SetCrosshair(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoFixedAspectRatio(Bool_t on)
{
   // Slot connected to the check box 'Fixed aspect ratio'.

   if (fAvoidSignal) return;
   fPadPointer->SetFixedAspectRatio(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoGridX(Bool_t on)
{
   // Slot connected to the check box 'GridX'.

   if (fAvoidSignal) return;
   fPadPointer->SetGridx(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoGridY(Bool_t on)
{
   // Slot connected to the check box 'GridY'.

   if (fAvoidSignal) return;
   fPadPointer->SetGridy(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoLogX(Bool_t on)
{
   // Slot connected to the check box 'LogX'.

   if (fAvoidSignal) return;
   fPadPointer->SetLogx(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoLogY(Bool_t on)
{
   // Slot connected to the check box 'LogY'.

   if (fAvoidSignal) return;
   fPadPointer->SetLogy(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoLogZ(Bool_t on)
{
   // Slot connected to the check box 'LogZ'.

   if (fAvoidSignal) return;
   fPadPointer->SetLogz(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoTickX(Bool_t on)
{
   // Slot connected to the check box 'TickX'.

   if (fAvoidSignal) return;
   fPadPointer->SetTickx(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoTickY(Bool_t on)
{
   // Slot connected to the check box 'TickY'.

   if (fAvoidSignal) return;
   fPadPointer->SetTicky(on);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoBorderMode()
{
   // Slot connected to the border mode settings.

   if (fAvoidSignal) return;
   Int_t mode = 0;
   if (fBmode->GetState() == kButtonDown) mode = -1;
   else if (fBmode0->GetState() == kButtonDown) mode = 0;
   else mode = 1;

   if (!mode) {
      fBsize->SetEnabled(kFALSE);
   } else {
      fBsize->SetEnabled(kTRUE);
   }
   fPadPointer->SetBorderMode(mode);
   Update();
}

//______________________________________________________________________________
void TPadEditor::DoBorderSize(Int_t size)
{
   // Slot connected to the border size settings.

   if (fAvoidSignal) return;
   fPadPointer->SetBorderSize(size);
   Update();
}
 TPadEditor.cxx:1
 TPadEditor.cxx:2
 TPadEditor.cxx:3
 TPadEditor.cxx:4
 TPadEditor.cxx:5
 TPadEditor.cxx:6
 TPadEditor.cxx:7
 TPadEditor.cxx:8
 TPadEditor.cxx:9
 TPadEditor.cxx:10
 TPadEditor.cxx:11
 TPadEditor.cxx:12
 TPadEditor.cxx:13
 TPadEditor.cxx:14
 TPadEditor.cxx:15
 TPadEditor.cxx:16
 TPadEditor.cxx:17
 TPadEditor.cxx:18
 TPadEditor.cxx:19
 TPadEditor.cxx:20
 TPadEditor.cxx:21
 TPadEditor.cxx:22
 TPadEditor.cxx:23
 TPadEditor.cxx:24
 TPadEditor.cxx:25
 TPadEditor.cxx:26
 TPadEditor.cxx:27
 TPadEditor.cxx:28
 TPadEditor.cxx:29
 TPadEditor.cxx:30
 TPadEditor.cxx:31
 TPadEditor.cxx:32
 TPadEditor.cxx:33
 TPadEditor.cxx:34
 TPadEditor.cxx:35
 TPadEditor.cxx:36
 TPadEditor.cxx:37
 TPadEditor.cxx:38
 TPadEditor.cxx:39
 TPadEditor.cxx:40
 TPadEditor.cxx:41
 TPadEditor.cxx:42
 TPadEditor.cxx:43
 TPadEditor.cxx:44
 TPadEditor.cxx:45
 TPadEditor.cxx:46
 TPadEditor.cxx:47
 TPadEditor.cxx:48
 TPadEditor.cxx:49
 TPadEditor.cxx:50
 TPadEditor.cxx:51
 TPadEditor.cxx:52
 TPadEditor.cxx:53
 TPadEditor.cxx:54
 TPadEditor.cxx:55
 TPadEditor.cxx:56
 TPadEditor.cxx:57
 TPadEditor.cxx:58
 TPadEditor.cxx:59
 TPadEditor.cxx:60
 TPadEditor.cxx:61
 TPadEditor.cxx:62
 TPadEditor.cxx:63
 TPadEditor.cxx:64
 TPadEditor.cxx:65
 TPadEditor.cxx:66
 TPadEditor.cxx:67
 TPadEditor.cxx:68
 TPadEditor.cxx:69
 TPadEditor.cxx:70
 TPadEditor.cxx:71
 TPadEditor.cxx:72
 TPadEditor.cxx:73
 TPadEditor.cxx:74
 TPadEditor.cxx:75
 TPadEditor.cxx:76
 TPadEditor.cxx:77
 TPadEditor.cxx:78
 TPadEditor.cxx:79
 TPadEditor.cxx:80
 TPadEditor.cxx:81
 TPadEditor.cxx:82
 TPadEditor.cxx:83
 TPadEditor.cxx:84
 TPadEditor.cxx:85
 TPadEditor.cxx:86
 TPadEditor.cxx:87
 TPadEditor.cxx:88
 TPadEditor.cxx:89
 TPadEditor.cxx:90
 TPadEditor.cxx:91
 TPadEditor.cxx:92
 TPadEditor.cxx:93
 TPadEditor.cxx:94
 TPadEditor.cxx:95
 TPadEditor.cxx:96
 TPadEditor.cxx:97
 TPadEditor.cxx:98
 TPadEditor.cxx:99
 TPadEditor.cxx:100
 TPadEditor.cxx:101
 TPadEditor.cxx:102
 TPadEditor.cxx:103
 TPadEditor.cxx:104
 TPadEditor.cxx:105
 TPadEditor.cxx:106
 TPadEditor.cxx:107
 TPadEditor.cxx:108
 TPadEditor.cxx:109
 TPadEditor.cxx:110
 TPadEditor.cxx:111
 TPadEditor.cxx:112
 TPadEditor.cxx:113
 TPadEditor.cxx:114
 TPadEditor.cxx:115
 TPadEditor.cxx:116
 TPadEditor.cxx:117
 TPadEditor.cxx:118
 TPadEditor.cxx:119
 TPadEditor.cxx:120
 TPadEditor.cxx:121
 TPadEditor.cxx:122
 TPadEditor.cxx:123
 TPadEditor.cxx:124
 TPadEditor.cxx:125
 TPadEditor.cxx:126
 TPadEditor.cxx:127
 TPadEditor.cxx:128
 TPadEditor.cxx:129
 TPadEditor.cxx:130
 TPadEditor.cxx:131
 TPadEditor.cxx:132
 TPadEditor.cxx:133
 TPadEditor.cxx:134
 TPadEditor.cxx:135
 TPadEditor.cxx:136
 TPadEditor.cxx:137
 TPadEditor.cxx:138
 TPadEditor.cxx:139
 TPadEditor.cxx:140
 TPadEditor.cxx:141
 TPadEditor.cxx:142
 TPadEditor.cxx:143
 TPadEditor.cxx:144
 TPadEditor.cxx:145
 TPadEditor.cxx:146
 TPadEditor.cxx:147
 TPadEditor.cxx:148
 TPadEditor.cxx:149
 TPadEditor.cxx:150
 TPadEditor.cxx:151
 TPadEditor.cxx:152
 TPadEditor.cxx:153
 TPadEditor.cxx:154
 TPadEditor.cxx:155
 TPadEditor.cxx:156
 TPadEditor.cxx:157
 TPadEditor.cxx:158
 TPadEditor.cxx:159
 TPadEditor.cxx:160
 TPadEditor.cxx:161
 TPadEditor.cxx:162
 TPadEditor.cxx:163
 TPadEditor.cxx:164
 TPadEditor.cxx:165
 TPadEditor.cxx:166
 TPadEditor.cxx:167
 TPadEditor.cxx:168
 TPadEditor.cxx:169
 TPadEditor.cxx:170
 TPadEditor.cxx:171
 TPadEditor.cxx:172
 TPadEditor.cxx:173
 TPadEditor.cxx:174
 TPadEditor.cxx:175
 TPadEditor.cxx:176
 TPadEditor.cxx:177
 TPadEditor.cxx:178
 TPadEditor.cxx:179
 TPadEditor.cxx:180
 TPadEditor.cxx:181
 TPadEditor.cxx:182
 TPadEditor.cxx:183
 TPadEditor.cxx:184
 TPadEditor.cxx:185
 TPadEditor.cxx:186
 TPadEditor.cxx:187
 TPadEditor.cxx:188
 TPadEditor.cxx:189
 TPadEditor.cxx:190
 TPadEditor.cxx:191
 TPadEditor.cxx:192
 TPadEditor.cxx:193
 TPadEditor.cxx:194
 TPadEditor.cxx:195
 TPadEditor.cxx:196
 TPadEditor.cxx:197
 TPadEditor.cxx:198
 TPadEditor.cxx:199
 TPadEditor.cxx:200
 TPadEditor.cxx:201
 TPadEditor.cxx:202
 TPadEditor.cxx:203
 TPadEditor.cxx:204
 TPadEditor.cxx:205
 TPadEditor.cxx:206
 TPadEditor.cxx:207
 TPadEditor.cxx:208
 TPadEditor.cxx:209
 TPadEditor.cxx:210
 TPadEditor.cxx:211
 TPadEditor.cxx:212
 TPadEditor.cxx:213
 TPadEditor.cxx:214
 TPadEditor.cxx:215
 TPadEditor.cxx:216
 TPadEditor.cxx:217
 TPadEditor.cxx:218
 TPadEditor.cxx:219
 TPadEditor.cxx:220
 TPadEditor.cxx:221
 TPadEditor.cxx:222
 TPadEditor.cxx:223
 TPadEditor.cxx:224
 TPadEditor.cxx:225
 TPadEditor.cxx:226
 TPadEditor.cxx:227
 TPadEditor.cxx:228
 TPadEditor.cxx:229
 TPadEditor.cxx:230
 TPadEditor.cxx:231
 TPadEditor.cxx:232
 TPadEditor.cxx:233
 TPadEditor.cxx:234
 TPadEditor.cxx:235
 TPadEditor.cxx:236
 TPadEditor.cxx:237
 TPadEditor.cxx:238
 TPadEditor.cxx:239
 TPadEditor.cxx:240
 TPadEditor.cxx:241
 TPadEditor.cxx:242
 TPadEditor.cxx:243
 TPadEditor.cxx:244
 TPadEditor.cxx:245
 TPadEditor.cxx:246
 TPadEditor.cxx:247
 TPadEditor.cxx:248
 TPadEditor.cxx:249
 TPadEditor.cxx:250
 TPadEditor.cxx:251
 TPadEditor.cxx:252
 TPadEditor.cxx:253
 TPadEditor.cxx:254
 TPadEditor.cxx:255
 TPadEditor.cxx:256
 TPadEditor.cxx:257
 TPadEditor.cxx:258
 TPadEditor.cxx:259
 TPadEditor.cxx:260
 TPadEditor.cxx:261
 TPadEditor.cxx:262
 TPadEditor.cxx:263
 TPadEditor.cxx:264
 TPadEditor.cxx:265
 TPadEditor.cxx:266
 TPadEditor.cxx:267
 TPadEditor.cxx:268
 TPadEditor.cxx:269
 TPadEditor.cxx:270
 TPadEditor.cxx:271
 TPadEditor.cxx:272
 TPadEditor.cxx:273
 TPadEditor.cxx:274
 TPadEditor.cxx:275
 TPadEditor.cxx:276
 TPadEditor.cxx:277
 TPadEditor.cxx:278
 TPadEditor.cxx:279
 TPadEditor.cxx:280
 TPadEditor.cxx:281
 TPadEditor.cxx:282
 TPadEditor.cxx:283
 TPadEditor.cxx:284
 TPadEditor.cxx:285
 TPadEditor.cxx:286
 TPadEditor.cxx:287
 TPadEditor.cxx:288
 TPadEditor.cxx:289
 TPadEditor.cxx:290
 TPadEditor.cxx:291
 TPadEditor.cxx:292
 TPadEditor.cxx:293
 TPadEditor.cxx:294
 TPadEditor.cxx:295
 TPadEditor.cxx:296
 TPadEditor.cxx:297
 TPadEditor.cxx:298
 TPadEditor.cxx:299
 TPadEditor.cxx:300
 TPadEditor.cxx:301
 TPadEditor.cxx:302
 TPadEditor.cxx:303
 TPadEditor.cxx:304
 TPadEditor.cxx:305
 TPadEditor.cxx:306
 TPadEditor.cxx:307
 TPadEditor.cxx:308
 TPadEditor.cxx:309
 TPadEditor.cxx:310
 TPadEditor.cxx:311
 TPadEditor.cxx:312
 TPadEditor.cxx:313
 TPadEditor.cxx:314
 TPadEditor.cxx:315
 TPadEditor.cxx:316
 TPadEditor.cxx:317
 TPadEditor.cxx:318
 TPadEditor.cxx:319
 TPadEditor.cxx:320
 TPadEditor.cxx:321
 TPadEditor.cxx:322
 TPadEditor.cxx:323
 TPadEditor.cxx:324
 TPadEditor.cxx:325
 TPadEditor.cxx:326
 TPadEditor.cxx:327
 TPadEditor.cxx:328
 TPadEditor.cxx:329
 TPadEditor.cxx:330
 TPadEditor.cxx:331
 TPadEditor.cxx:332
 TPadEditor.cxx:333
 TPadEditor.cxx:334
 TPadEditor.cxx:335
 TPadEditor.cxx:336
 TPadEditor.cxx:337
 TPadEditor.cxx:338
 TPadEditor.cxx:339
 TPadEditor.cxx:340
 TPadEditor.cxx:341
 TPadEditor.cxx:342
 TPadEditor.cxx:343
 TPadEditor.cxx:344
 TPadEditor.cxx:345
 TPadEditor.cxx:346
 TPadEditor.cxx:347
 TPadEditor.cxx:348
 TPadEditor.cxx:349
 TPadEditor.cxx:350
 TPadEditor.cxx:351
 TPadEditor.cxx:352
 TPadEditor.cxx:353
 TPadEditor.cxx:354
 TPadEditor.cxx:355
 TPadEditor.cxx:356
 TPadEditor.cxx:357
 TPadEditor.cxx:358
 TPadEditor.cxx:359
 TPadEditor.cxx:360
 TPadEditor.cxx:361
 TPadEditor.cxx:362
 TPadEditor.cxx:363
 TPadEditor.cxx:364
 TPadEditor.cxx:365
 TPadEditor.cxx:366
 TPadEditor.cxx:367
 TPadEditor.cxx:368
 TPadEditor.cxx:369
 TPadEditor.cxx:370
 TPadEditor.cxx:371
 TPadEditor.cxx:372
 TPadEditor.cxx:373
 TPadEditor.cxx:374
 TPadEditor.cxx:375
 TPadEditor.cxx:376
 TPadEditor.cxx:377
 TPadEditor.cxx:378
 TPadEditor.cxx:379
 TPadEditor.cxx:380
 TPadEditor.cxx:381
 TPadEditor.cxx:382
 TPadEditor.cxx:383
 TPadEditor.cxx:384
 TPadEditor.cxx:385