25 ClassImp(TGTableHeader);
42 TGTableHeader::TGTableHeader(
const TGWindow *p, TGTable *table, TGString *label,
43 UInt_t position, EHeaderType type, UInt_t width,
44 UInt_t height, GContext_t norm, FontStruct_t font,
46 : TGTableCell(p, table, label, 0, 0, width, height, norm, font, option,
47 kFALSE), fType(type), fReadOnly(kFALSE), fEnabled(kTRUE),
50 if (type == kColumnHeader) {
51 fWidth = (table) ? table->GetTableHeader()->GetWidth() : 80;
55 }
else if (type == kRowHeader) {
57 fHeight = (table) ? table->GetTableHeader()->GetHeight() : 25;
77 TGTableHeader::TGTableHeader(
const TGWindow *p, TGTable *table,
78 const char *label, UInt_t position,
79 EHeaderType type, UInt_t width, UInt_t height,
80 GContext_t norm, FontStruct_t font, UInt_t option)
81 : TGTableCell(p, table, label, 0, 0, width, height, norm, font,
82 option, kFALSE), fType(type), fReadOnly(kFALSE), fEnabled(kTRUE),
85 if (type == kColumnHeader) {
86 fWidth = table->GetTableHeader()->GetWidth();
90 }
else if (type == kRowHeader) {
92 fHeight = table->GetTableHeader()->GetHeight();
103 fHasOwnLabel = kTRUE;
113 TGTableHeader::~TGTableHeader()
120 void TGTableHeader::Init()
122 if (fType == kTableHeader) {
123 SetBackgroundColor(fTable->GetBackground());
125 SetBackgroundColor(fTable->GetHeaderBackground());
128 Resize(fWidth, fHeight);
130 Int_t max_ascent = 0, max_descent = 0;
132 fTWidth = gVirtualX->TextWidth(fFontStruct, fLabel->GetString(), fLabel->GetLength());
133 gVirtualX->GetFontProperties(fFontStruct, max_ascent, max_descent);
134 fTHeight = max_ascent + max_descent;
141 void TGTableHeader::SetWidth(UInt_t width)
143 Resize(width, GetDefaultHeight());
149 void TGTableHeader::SetHeight(UInt_t height)
151 Resize(GetDefaultWidth(), height);
157 void TGTableHeader::SetLabel(
const char *label)
160 TGTableCell::SetLabel(label);
170 void TGTableHeader::SetDefaultLabel()
172 fHasOwnLabel = kFALSE;
173 if (fLabel)
delete fLabel;
174 fLabel =
new TGString();
175 if (fType == kRowHeader) {
178 }
else if (fType == kColumnHeader) {
182 *fLabel += fTable->GetNTableRows();
184 *fLabel += fTable->GetNTableColumns();
192 void TGTableHeader::SetPosition(UInt_t pos)
196 if (fType == kRowHeader) {
199 }
else if (fType == kColumnHeader) {
211 void TGTableHeader::Resize(TGDimension newsize)
213 Resize(newsize.fWidth, newsize.fHeight);
219 void TGTableHeader::Resize(UInt_t width, UInt_t height)
222 TGTableCell::Resize(width, height);
228 void TGTableHeader::Sort(Bool_t order)
232 if (order == kSortAscending) {
240 void TGTableHeader::UpdatePosition()
246 if (fType == kColumnHeader) {
247 while(fTable->GetColumnHeader(nhdr) !=
this) {
251 }
else if (fType == kRowHeader) {
252 while(fTable->GetRowHeader(nhdr) !=
this) {