ROOT logo
// Author: Roel Aaij 21/07/2007

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

#include "TGFrame.h"
#include "TClass.h"
#include "TGWidget.h"
#include "TGWindow.h"
#include "TGResourcePool.h"
#include "Riostream.h"
#include "TSystem.h"
#include "TImage.h"
#include "TEnv.h"
#include "TGToolTip.h"
#include "TGPicture.h"
#include "TGTable.h"
#include "TVirtualTableInterface.h"
#include "TColor.h"

ClassImp(TGTableCell)

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGTableCell                                                          //
//                                                                      //
// TGTableCell is the class that represents a single cell in a TGTable. //
//                                                                      //
// This class is for internal use in TGTable only.                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

const TGGC *TGTableCell::fgDefaultGC = 0;
const TGFont *TGTableCell::fgDefaultFont = 0;

//______________________________________________________________________________
TGTableCell::TGTableCell(const TGWindow *p, TGTable *table, TGString *label,
                         UInt_t row, UInt_t column, UInt_t width, UInt_t height, 
                         GContext_t norm, FontStruct_t font, UInt_t option, 
                         Bool_t resize) 
   : TGFrame(p, width, height, option), fTip(0), fReadOnly(kFALSE), 
     fEnabled(kTRUE), fTMode(kTextRight | kTextCenterY), fImage(0), 
     fFontStruct(font), fHasOwnFont(kFALSE), fColumn(column), fRow(row), 
     fTable(table)
{
   // TGTableCell constructor.
   
   if (label) {
      fLabel = label;
   } else {
      fLabel = new TGString("0");
   }
   
   fNormGC = norm;
   Init(resize);
}

//______________________________________________________________________________
TGTableCell::TGTableCell(const TGWindow *p, TGTable *table, const char *label, 
                         UInt_t row, UInt_t column, UInt_t width, UInt_t height,
                         GContext_t norm, FontStruct_t font, UInt_t option, 
                         Bool_t resize) 
   : TGFrame(p, width, height, option), fTip(0), fReadOnly(kFALSE), 
     fEnabled(kTRUE), fTMode(kTextRight | kTextCenterY), fImage(0), 
     fFontStruct(font), fHasOwnFont(kFALSE), fColumn(column), fRow(row), 
     fTable(table)
{
   // TGTableCell constructor
   
   if (label) {
      fLabel = new TGString(label);
   } else {
      fLabel = new TGString("0");
   }

   fNormGC = norm;
   Init(resize);
}

// //______________________________________________________________________________
// TGTableCell::TGTableCell(const TGWindow *p, TGTable *table, TGPicture *image, 
//                          TGString *label, UInt_t row, UInt_t column, 
//                          GContext_t norm, FontStruct_t font, UInt_t option, 
//                          Bool_t resize)
//    : TGFrame(p, 80, 25, option), fTip(0), fReadOnly(kFALSE), fEnabled(kTRUE), 
//      fTMode(kTextRight | kTextCenterY), fImage(image), fFontStruct(font), 
//      fHasOwnFont(kFALSE), fColumn(column), fRow(row), fTable(table)
// {
//    if (label) {
//       fLabel = label;
//    } else {
//       fLabel = new TGString("0");
//    }
//    fNormGC = norm;

//    Init(resize);
// }

// //______________________________________________________________________________
// TGTableCell::TGTableCell(const TGWindow *p, TGTable *table, TGPicture *image, 
//                          const char *label, UInt_t row, UInt_t column, 
//                          GContext_t norm, FontStruct_t font, UInt_t option,
//                          Bool_t resize) 
//    : TGFrame(p, 80, 25, option), fTip(0), fReadOnly(kFALSE), fEnabled(kTRUE), 
//      fTMode(kTextRight | kTextCenterY), fImage(image), fFontStruct(font), 
//      fHasOwnFont(kFALSE), fColumn(column), fRow(row), fTable(table)
// {
   
//    if (label) {
//       fLabel = new TGString(label);
//    } else {
//       fLabel = new TGString("0");
//    }
   
//    fNormGC = norm;

//    Init(resize);
// }


//______________________________________________________________________________
TGTableCell::~TGTableCell()
{
   // TGTableCell destructor.

   if (fImage) delete fImage;
   if (fLabel) delete fLabel;
   if (fTip) delete fTip;
}

//______________________________________________________________________________
void TGTableCell::Init(Bool_t resize)
{
   // Initialise the TGTableCell.

   Int_t max_ascent = 0, max_descent = 0;
   
   fTWidth  = gVirtualX->TextWidth(fFontStruct, fLabel->GetString(), fLabel->GetLength());
   gVirtualX->GetFontProperties(fFontStruct, max_ascent, max_descent);
   fTHeight = max_ascent + max_descent;

   // Modifications for individual cell drawing test, original block is marked
   
   if (fTable) {
      // Original from here
      TGTableHeader *chdr = 0;
      TGTableHeader *rhdr = 0;
      if(resize) {
         chdr = fTable->GetColumnHeader(fColumn);
         rhdr = fTable->GetRowHeader(fRow);
         SetBackgroundColor(rhdr->GetBackground());
         Resize(chdr->GetWidth(), rhdr->GetHeight());
      }
      SetBackgroundColor(fTable->GetRowBackground(fRow));
      // Upto here
   } else {
      fWidth = 80;
      fHeight = 25;
      Resize(fWidth, fHeight);
      SetBackgroundColor(fgWhitePixel);
   }
   // End of modifications

}

//______________________________________________________________________________
void TGTableCell::DoRedraw()
{
   // Redraw the TGTableCell.

   TGFrame::DoRedraw();

   Int_t x = 0, y = 0;

   // To be done: Add a tooltip with the complete label when it
   // doesn't fit in the cell.
   if (fTWidth > fWidth - 4) fTMode = kTextLeft;
   
   if (fTMode & kTextLeft) {
      x = 4;
   } else if (fTMode & kTextRight) {
      x = fWidth - fTWidth - 4;
   } else {
      x = (fWidth - fTWidth) / 2;
   }

   if (fTMode & kTextTop) {
      y = 3;
   } else if (fTMode & kTextBottom) {
      y = fHeight - fTHeight - 3;
   } else {
      y = (fHeight - fTHeight - 4) / 2;
   }
   
   y += fTHeight;

   fLabel->Draw(fId, fNormGC, x, y);
}

//______________________________________________________________________________
void TGTableCell::MoveDraw(Int_t x, Int_t y)
{
   // Move the TGTableCell and redraw it.

   // Note, this method is unused.

   TGFrame::Move(x, y);
   DoRedraw();
}

//______________________________________________________________________________
void TGTableCell::Resize(UInt_t width, UInt_t height)
{
   // Resize the TGTableCell.

   fWidth = width;
   fHeight = height;
   TGFrame::Resize(width, height);
   Layout();
}

//______________________________________________________________________________
void TGTableCell::Resize(TGDimension newsize)
{
   // Resize the TGTableCell.

   Resize(newsize.fWidth, newsize.fHeight);
}

//______________________________________________________________________________
FontStruct_t TGTableCell::GetDefaultFontStruct()
{
   // Return default font structure.

   if (!fgDefaultFont)
      fgDefaultFont = gClient->GetResourcePool()->GetDefaultFont();
   return fgDefaultFont->GetFontStruct();
}

//______________________________________________________________________________
const TGGC &TGTableCell::GetDefaultGC()
{
   // Return default graphics context.

   if (!fgDefaultGC)
      fgDefaultGC = gClient->GetResourcePool()->GetFrameGC();
   return *fgDefaultGC;
}

//______________________________________________________________________________
void TGTableCell::DrawBorder()
{
   // Draw the cell border.

   // FIXME Borders are drawn very crudely. There is much room for improvement.
   gVirtualX->DrawRectangle(fId, fNormGC, 0, 0, fWidth - 1, fHeight - 1);
}

//______________________________________________________________________________
void TGTableCell::DrawBorder(Handle_t id, Int_t x, Int_t y)
{
   // DrawBorder called from DrawCopy.

   gVirtualX->DrawRectangle(id, fNormGC, x, y, x + fWidth - 1, y +fHeight - 1);
}

//______________________________________________________________________________
void TGTableCell::Highlight()
{
   // Highlight the this TGTableCell.

   // Currently not implemented.
}

// //______________________________________________________________________________
// void TGTableCell::SetRow(UInt_t row) 
// {
//    fRow = row;
// }

// //______________________________________________________________________________
// void TGTableCell::SetColumn(UInt_t column)
// {
//    fColumn = column;
// }

//______________________________________________________________________________
void TGTableCell::DrawCopy(Handle_t id, Int_t x, Int_t y)
{
   // Draw list view item in other window.
   // List view item is placed and layout in the container frame,
   // but is drawn in viewport.
   
   // FIXME this method is only needed if the table container frame is a 
   // TGContainer. It is broken and not used in the current implementation.

   Int_t lx = 0, ly = 0;

   if (fTMode & kTextLeft) {
      lx = 4;
   } else if (fTMode & kTextRight) {
      lx = fWidth - fTWidth - 4;
   } else {
      lx = (fWidth - fTWidth) / 2;
   }

   if (fTMode & kTextTop) {
      ly = 3;
   } else if (fTMode & kTextBottom) {
      ly = fHeight - fTHeight - 3;
   } else {
      ly = (fHeight - fTHeight - 4) / 2;
   }
   
   ly += fTHeight;
   
   //    if (fActive) {
   //       gVirtualX->SetForeground(fNormGC, fgDefaultSelectedBackground);
   //       gVirtualX->FillRectangle(id, fNormGC, x + lx, y + ly, fTWidth, fTHeight + 1);
   //       gVirtualX->SetForeground(fNormGC, fClient->GetResourcePool()->GetSelectedFgndColor());
   //    } else {

   gVirtualX->SetForeground(fNormGC, fgWhitePixel);
   gVirtualX->FillRectangle(id, fNormGC, x, y, fWidth, fHeight);
   gVirtualX->SetForeground(fNormGC, fgBlackPixel);
   DrawBorder(id, x, y);

   //    }
   
   fLabel->Draw(id, fNormGC, x + lx, y + ly);
}

//______________________________________________________________________________
void TGTableCell::SetLabel(const char *label)
{
   // Set the label of this cell to label.

   fLabel->SetString(label);

   Int_t max_ascent = 0, max_descent = 0;

   fTWidth  = gVirtualX->TextWidth(fFontStruct, fLabel->GetString(), fLabel->GetLength());
   gVirtualX->GetFontProperties(fFontStruct, max_ascent, max_descent);
   fTHeight = max_ascent + max_descent;

}

//______________________________________________________________________________
void TGTableCell::SetImage(TGPicture *image)
{
   // Set the image that this cell contains to image.

   // Note: currently not used.
   if (fImage) delete fImage;
   fImage = image;
}

// //______________________________________________________________________________
// void TGTableCell::SetBckgndGC(TGGC *gc)
// {
// }

//______________________________________________________________________________
void TGTableCell::SetFont(FontStruct_t font)
{
   // Changes text font.
   // If global is kTRUE font is changed globally, otherwise - locally.

   if (font != fFontStruct) {
      FontH_t v = gVirtualX->GetFontHandle(font);
      if (!v) return;

      fFontStruct = font;
      TGGCPool *pool =  fClient->GetResourcePool()->GetGCPool();
      TGGC *gc = pool->FindGC(fNormGC);

      gc = pool->GetGC((GCValues_t*)gc->GetAttributes(), kTRUE); // copy
      fHasOwnFont = kTRUE;

      gc->SetFont(v);

      fNormGC = gc->GetGC();
      gClient->NeedRedraw(this);
   }
}

//______________________________________________________________________________
void TGTableCell::SetFont(const char *fontName)
{
   // Changes text font specified by name.
   // If global is true color is changed globally, otherwise - locally.

   TGFont *font = fClient->GetFont(fontName);
   if (font) {
      SetFont(font->GetFontStruct());
   }
}

//______________________________________________________________________________
void TGTableCell::SetTextJustify(Int_t tmode)
{
   // Set the text justify mode of the cell to mode.

   fTMode = tmode;
}

//______________________________________________________________________________
void TGTableCell::Select()
{
   // Select this TGTableCell.

   // Note: currently not implemented.
}

//______________________________________________________________________________
void TGTableCell::SelectRow()
{
   // Select the row that this TGTableCell belongs to.

   // Note: currently not implemented.
}

//______________________________________________________________________________
void TGTableCell::SelectColumn()
{
   // Select the column that this TGTableCell belongs to.

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