// 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.             *
 *************************************************************************/

#ifndef ROOT_TGTableHeader
#define ROOT_TGTableHeader

#ifndef ROOT_TGTableCell
#include "TGTableCell.h"
#endif

enum EHeaderType {
   kColumnHeader,
   kRowHeader,
   kTableHeader
};

class TGWindow;

class TGTableHeader : public TGTableCell {

protected:
   EHeaderType fType;        // Type of header
   UInt_t      fWidth;       // Width for the column
   UInt_t      fHeight;      // Height of the row
   Bool_t      fReadOnly;    // Cell readonly state
   Bool_t      fEnabled;     // Cell enabled state
   Bool_t      fHasOwnLabel; // Flag on default or specific label usage

   void        Init();

public:
   TGTableHeader(const TGWindow *p = 0, TGTable *table = 0,
                 TGString *label = 0, UInt_t position = 0,
                 EHeaderType type = kColumnHeader, UInt_t width = 80,
                 UInt_t height = 25, GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   TGTableHeader(const TGWindow *p, TGTable *table, const char *label,
                 UInt_t position, EHeaderType type = kColumnHeader,
                 UInt_t width = 80, UInt_t height = 25,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   virtual ~TGTableHeader();

   virtual void SetWidth(UInt_t width);
   virtual void SetHeight(UInt_t height);

   virtual void SetLabel(const char *label);

   virtual void SetDefaultLabel();
   virtual void SetPosition(UInt_t pos);
   virtual void Resize(UInt_t width, UInt_t height);  // Resize width or height
   virtual void Resize(TGDimension newsize);          // depending on type
   virtual void Sort(Bool_t order = kSortAscending);
   virtual void UpdatePosition();

   virtual EHeaderType GetType() { return fType; }

   ClassDef(TGTableHeader, 0) // Header for use in TGTable.
};

#endif
 TGTableHeader.h:1
 TGTableHeader.h:2
 TGTableHeader.h:3
 TGTableHeader.h:4
 TGTableHeader.h:5
 TGTableHeader.h:6
 TGTableHeader.h:7
 TGTableHeader.h:8
 TGTableHeader.h:9
 TGTableHeader.h:10
 TGTableHeader.h:11
 TGTableHeader.h:12
 TGTableHeader.h:13
 TGTableHeader.h:14
 TGTableHeader.h:15
 TGTableHeader.h:16
 TGTableHeader.h:17
 TGTableHeader.h:18
 TGTableHeader.h:19
 TGTableHeader.h:20
 TGTableHeader.h:21
 TGTableHeader.h:22
 TGTableHeader.h:23
 TGTableHeader.h:24
 TGTableHeader.h:25
 TGTableHeader.h:26
 TGTableHeader.h:27
 TGTableHeader.h:28
 TGTableHeader.h:29
 TGTableHeader.h:30
 TGTableHeader.h:31
 TGTableHeader.h:32
 TGTableHeader.h:33
 TGTableHeader.h:34
 TGTableHeader.h:35
 TGTableHeader.h:36
 TGTableHeader.h:37
 TGTableHeader.h:38
 TGTableHeader.h:39
 TGTableHeader.h:40
 TGTableHeader.h:41
 TGTableHeader.h:42
 TGTableHeader.h:43
 TGTableHeader.h:44
 TGTableHeader.h:45
 TGTableHeader.h:46
 TGTableHeader.h:47
 TGTableHeader.h:48
 TGTableHeader.h:49
 TGTableHeader.h:50
 TGTableHeader.h:51
 TGTableHeader.h:52
 TGTableHeader.h:53
 TGTableHeader.h:54
 TGTableHeader.h:55
 TGTableHeader.h:56
 TGTableHeader.h:57
 TGTableHeader.h:58
 TGTableHeader.h:59
 TGTableHeader.h:60
 TGTableHeader.h:61
 TGTableHeader.h:62
 TGTableHeader.h:63
 TGTableHeader.h:64
 TGTableHeader.h:65
 TGTableHeader.h:66
 TGTableHeader.h:67
 TGTableHeader.h:68
 TGTableHeader.h:69
 TGTableHeader.h:70