CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes

FWTableWidget Class Reference

#include <Fireworks/TableWidget/interface/FWTableWidget.h>

List of all members.

Public Member Functions

FWTabularWidgetbody ()
void buttonPressedInRowHeader (Int_t row, Int_t column, Event_t *event, Int_t relX, Int_t relY)
void buttonReleasedInBody (Int_t row, Int_t column, Event_t *event, Int_t, Int_t)
void buttonReleasedInHeader (Int_t row, Int_t column, Event_t *event, Int_t, Int_t)
void buttonReleasedInRowHeader (Int_t row, Int_t column, Event_t *event, Int_t relX, Int_t relY)
void cellClicked (Int_t iRow, Int_t iColumn, Int_t iButton, Int_t iKeyMod, Int_t iGlobalX, Int_t iGlobalY)
void childrenEvent (Event_t *)
 ClassDef (FWTableWidget, 0)
void Clicked ()
void columnClicked (Int_t iColumn, Int_t iButton, Int_t iKeyMod)
void dataChanged ()
bool descendingSort () const
void disableGrowInWidth ()
void forceLayout ()
 FWTableWidget (FWTableManagerBase *iManager, const TGWindow *p=0)
TGDimension GetDefaultSize () const
virtual void MoveResize (Int_t x, Int_t y, UInt_t w=0, UInt_t h=0)
virtual Bool_t ProcessMessage (Long_t msg, Long_t parm1, Long_t parm2)
virtual void Resize (UInt_t w, UInt_t h)
void rowClicked (Int_t iRow, Int_t iButton, Int_t iKeyMod, Int_t iGlobalX, Int_t iGlobalY)
void SetBackgroundColor (Pixel_t)
void SetHeaderBackgroundColor (Pixel_t)
void SetHeaderForegroundColor (Pixel_t)
void SetLineSeparatorColor (Pixel_t)
void sort (UInt_t iColumn, bool iDescendingSort)
int sortedColumn () const
virtual ~FWTableWidget ()

Protected Member Functions

virtual void DoRedraw ()

Private Member Functions

bool handleResize (UInt_t w, UInt_t h)

Private Attributes

FWTabularWidgetm_body
FWTableManagerBasem_bodyTable
bool m_descendingSort
bool m_forceLayout
FWTabularWidgetm_header
TGGC * m_headerBackground
TGGC * m_headerForeground
FWTableManagerBasem_headerTable
TGHScrollBar * m_hSlider
TGGC * m_lineSeparator
FWTabularWidgetm_rowHeader
FWTableManagerBasem_rowHeaderTable
bool m_showingHSlider
bool m_showingVSlider
int m_sortedColumn
TGVScrollBar * m_vSlider

Detailed Description

Description: ROOT widget for representing data in a tabular form where the data is accessed via a FWTableManagerBase

Usage: This widget creates a table made up of cells where the representation of the cells is controlled by the FWTableManagerBase instance passed to the FWTableWidget's constructor. If the data for the FWTableManagerBase changes, the view is automatically updated. See the documentation for FWTableManagerBase for further details.

Definition at line 36 of file FWTableWidget.h.


Constructor & Destructor Documentation

FWTableWidget::FWTableWidget ( FWTableManagerBase iManager,
const TGWindow *  p = 0 
)

Definition at line 43 of file FWTableWidget.cc.

References FWTableManagerBase::cellDataIsSortable(), kColOptions, kRowOptions, m_body, m_bodyTable, m_header, m_headerTable, m_hSlider, m_rowHeader, m_rowHeaderTable, m_vSlider, FWTabularWidget::setWidthOfTextInColumns(), and FWTabularWidget::widthOfTextInColumns().

                                                                          :
TGCompositeFrame(p),
   m_bodyTable(iManager),
   m_headerTable(iManager->hasLabelHeaders()?new FWAdapterHeaderTableManager(iManager): static_cast<FWTableManagerBase*>(0)),
   m_rowHeaderTable(iManager->hasRowHeaders()?new FWAdapterRowHeaderTableManager(iManager): static_cast<FWTableManagerBase*>(0)),
   m_header(0),
   m_rowHeader(0),
   m_showingVSlider(true),
   m_showingHSlider(true),
   m_sortedColumn(-1),
   m_descendingSort(true),
   m_forceLayout(false),
   m_headerBackground(0),
   m_headerForeground(0),
   m_lineSeparator(0)
{
   SetLayoutManager( new TGTableLayout(this,3,3) );
   
   if(0!=m_headerTable) {
      m_header = new FWTabularWidget(m_headerTable,this);
      AddFrame(m_header, new TGTableLayoutHints(1,2,0,1,kLHintsTop|kLHintsLeft|kRowOptions));   
      if (m_bodyTable->cellDataIsSortable()) m_header->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInHeader(Int_t,Int_t,Event_t*,Int_t,Int_t)");
   }
   m_body = new FWTabularWidget(iManager,this,GetWhiteGC()());
   //m_body->SetBackgroundColor(kWidgetColor);
   AddFrame(m_body, new TGTableLayoutHints(1,2,1,2,kLHintsTop|kLHintsLeft|kRowOptions|kColOptions));
   m_body->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInBody(Int_t,Int_t,Event_t*,Int_t,Int_t)");

   //set sizes
   std::vector<unsigned int> columnWidths = m_body->widthOfTextInColumns();
   if(0!=m_header) {
      std::vector<unsigned int> headerWidths = m_header->widthOfTextInColumns();
      for(std::vector<unsigned int>::iterator it = columnWidths.begin(), itEnd=columnWidths.end(), itHeader=headerWidths.begin();
          it != itEnd;
          ++it,++itHeader) {
         if(*itHeader > *it) {
            *it = *itHeader;
         }
      }
   }
   if(0!=m_header) {
      m_header->setWidthOfTextInColumns(columnWidths);
   }
   m_body->setWidthOfTextInColumns(columnWidths);
   if(m_rowHeaderTable) {
      m_rowHeader = new FWTabularWidget(m_rowHeaderTable,this, GetWhiteGC()());
      //m_rowHeader->SetBackgroundColor(kWidgetColor);

      AddFrame(m_rowHeader, new TGTableLayoutHints(0,1,1,2,kLHintsTop|kLHintsLeft|kColOptions));
      m_rowHeader->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInBody(Int_t,Int_t,Event_t*,Int_t,Int_t)");
      m_rowHeader->Connect("buttonReleased(Int_t,Int_t,Event_t*,Int_t,Int_t)","FWTableWidget",this,"buttonReleasedInRowHeader(Int_t,Int_t,Event_t*,Int_t,Int_t)");
      m_rowHeader->setWidthOfTextInColumns(m_rowHeader->widthOfTextInColumns());
   }

   m_hSlider = new TGHScrollBar(this);
   AddFrame(m_hSlider, new TGTableLayoutHints(1,2,2,3,kRowOptions));
   m_hSlider->Connect("ProcessedEvent(Event_t*)", "FWTableWidget", this, "childrenEvent(Event_t *)");
   m_vSlider = new TGVScrollBar(this);
   m_vSlider->SetSmallIncrement(12);
   AddFrame(m_vSlider, new TGTableLayoutHints(2,3,1,2,kColOptions));
   m_vSlider->Connect("ProcessedEvent(Event_t*)", "FWTableWidget", this, "childrenEvent(Event_t *)");
   MapSubwindows();
   Layout();
   //HideFrame(m_hSlider);
   //HideFrame(m_vSlider);
   m_hSlider->Associate(this);
   m_vSlider->Associate(this);
   
   m_hSlider->SetEditDisabled(kEditDisable | kEditDisableGrab | kEditDisableBtnEnable);
   m_vSlider->SetEditDisabled(kEditDisable | kEditDisableGrab | kEditDisableBtnEnable);
   m_bodyTable->Connect("dataChanged()","FWTableWidget",this,"dataChanged()");
}
FWTableWidget::~FWTableWidget ( ) [virtual]

Definition at line 121 of file FWTableWidget.cc.

References m_headerBackground, m_headerForeground, and m_lineSeparator.

{
   if(0!=m_headerBackground) {
      gClient->GetResourcePool()->GetGCPool()->FreeGC(m_headerBackground->GetGC());
   }
   if(0!= m_headerForeground) {
      gClient->GetResourcePool()->GetGCPool()->FreeGC(m_headerForeground->GetGC());
   }
   
   if(0!= m_lineSeparator) {
      gClient->GetResourcePool()->GetGCPool()->FreeGC(m_lineSeparator->GetGC());
   }
      
}

Member Function Documentation

FWTabularWidget* FWTableWidget::body ( ) [inline]
void FWTableWidget::buttonPressedInRowHeader ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  relX,
Int_t  relY 
)

Definition at line 487 of file FWTableWidget.cc.

References FWTableManagerBase::buttonReleasedInRowHeader(), and m_bodyTable.

{
   Int_t btn = event->fCode;
   if(btn != kButton1 && btn != kButton3) {return;}
   m_bodyTable->buttonReleasedInRowHeader(row, event, relX, relY);
}
void FWTableWidget::buttonReleasedInBody ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  iRelX,
Int_t  iRelY 
)

Definition at line 357 of file FWTableWidget.cc.

References cellClicked(), m_body, m_bodyTable, m_vSlider, AlCaHLTBitMon_ParallelJobs::p, rowClicked(), and FWTableManagerBase::unsortedRowNumber().

{
   Int_t btn = event->fCode;
   Int_t keyMod = event->fState;
   if(btn == kButton5){
      //should scroll down
      if(m_vSlider) {
         Int_t p = m_vSlider->GetPosition();
         Int_t mx = m_vSlider->GetRange();
         p+=m_vSlider->GetSmallIncrement();
         if(p>mx){ p=mx;}
         m_vSlider->SetPosition(p);
      }
      return;
   }
   if(btn == kButton4){
      //should scroll up
      if(m_vSlider) {
         Int_t p = m_vSlider->GetPosition();
         p -=m_vSlider->GetSmallIncrement();
         if(0>p) {p=0;}
         m_vSlider->SetPosition(p);
      }
      return;
   }
   if(btn != kButton1 && btn != kButton3) {return;}
   if(row>=-1 and row < m_bodyTable->numberOfRows()) {
      Int_t globalX,globalY;
      Window_t childdum;
      gVirtualX->TranslateCoordinates(m_body->GetId(),
                                      gClient->GetDefaultRoot()->GetId(),
                                      event->fX,event->fY,globalX,globalY,childdum);
      cellClicked(m_bodyTable->unsortedRowNumber(row), column, btn, keyMod, globalX, globalY);
      rowClicked(m_bodyTable->unsortedRowNumber(row), btn,keyMod,globalX,globalY);
   }
}
void FWTableWidget::buttonReleasedInHeader ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  ,
Int_t   
)

Definition at line 341 of file FWTableWidget.cc.

References columnClicked(), m_descendingSort, m_sortedColumn, and sort().

{
   Int_t btn = event->fCode;
   Int_t keyMod = event->fState;
   //Int_t keyMod = event->fState;
   if (btn == kButton1 || btn == kButton3) {
        if(m_sortedColumn==column) {
             sort(column, !m_descendingSort);
        } else {
             sort(column,true);
        }
   }
   columnClicked(column, btn, keyMod);
}
void FWTableWidget::buttonReleasedInRowHeader ( Int_t  row,
Int_t  column,
Event_t *  event,
Int_t  relX,
Int_t  relY 
)

Definition at line 494 of file FWTableWidget.cc.

References FWTableManagerBase::buttonReleasedInRowHeader(), and m_bodyTable.

{
   Int_t btn = event->fCode;
   if(btn != kButton1 && btn != kButton3) {return;}
   m_bodyTable->buttonReleasedInRowHeader(row, event, relX, relY);
}
void FWTableWidget::cellClicked ( Int_t  iRow,
Int_t  iColumn,
Int_t  iButton,
Int_t  iKeyMod,
Int_t  iGlobalX,
Int_t  iGlobalY 
)

Definition at line 395 of file FWTableWidget.cc.

References harvestRelVal::args.

Referenced by buttonReleasedInBody().

{
   keyMod = (keyMod&(kKeyShiftMask|kKeyControlMask));
   //std::cout <<"rowClicked "<<row<<" "<<btn<<" "<<keyMod<<std::endl;
   Long_t args[6];
   args[0]=(Long_t)row;
   args[1]=(Long_t)column;
   args[2]=(Long_t)btn;
   args[3]=(Long_t)keyMod;
   args[4]=(Long_t)iGlobalX;
   args[5]=(Long_t)iGlobalY;
   Emit("cellClicked(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t)",args);
}
void FWTableWidget::childrenEvent ( Event_t *  )

Definition at line 410 of file FWTableWidget.cc.

References Clicked().

{
   Clicked();
}
FWTableWidget::ClassDef ( FWTableWidget  ,
 
)
void FWTableWidget::Clicked ( )

Definition at line 416 of file FWTableWidget.cc.

Referenced by childrenEvent().

{
   Emit("Clicked()");
}
void FWTableWidget::columnClicked ( Int_t  iColumn,
Int_t  iButton,
Int_t  iKeyMod 
)

Definition at line 436 of file FWTableWidget.cc.

References harvestRelVal::args.

Referenced by buttonReleasedInHeader().

{
   keyMod = (keyMod&(kKeyShiftMask|kKeyControlMask));
   //std::cout <<"rowClicked "<<row<<" "<<btn<<" "<<keyMod<<std::endl;
   Long_t args[3];
   args[0]=(Long_t)column;
   args[1]=(Long_t)btn;
   args[2]=(Long_t)keyMod;
   Emit("columnClicked(Int_t,Int_t,Int_t)",args);      
}
void FWTableWidget::dataChanged ( void  )

Definition at line 448 of file FWTableWidget.cc.

References FWTabularWidget::dataChanged(), handleResize(), m_body, m_forceLayout, m_header, m_rowHeader, FWTabularWidget::setWidthOfTextInColumns(), and FWTabularWidget::widthOfTextInColumns().

Referenced by FWTableViewTableManager::implSort().

{
   bool needs_layout = m_forceLayout; m_forceLayout = false;

   m_body->dataChanged();
   if(m_rowHeader) {
      m_rowHeader->dataChanged();
      m_rowHeader->setWidthOfTextInColumns(m_rowHeader->widthOfTextInColumns());
   }
   //set sizes
   std::vector<unsigned int> columnWidths = m_body->widthOfTextInColumns();
   if(m_header) {
      // reset header back to its internal max rather than the last width
      m_header->dataChanged();  
      std::vector<unsigned int> headerWidths = m_header->widthOfTextInColumns();
      for(std::vector<unsigned int>::iterator it = columnWidths.begin(), itEnd=columnWidths.end(), itHeader=headerWidths.begin();
          it != itEnd;
          ++it,++itHeader) {
         if(*itHeader > *it) {
            *it = *itHeader;
         }
      }
      m_header->setWidthOfTextInColumns(columnWidths);
   } 
   m_body->setWidthOfTextInColumns(columnWidths);

   //this updates sliders to match our new data
   bool layoutDoneByhandleResize = handleResize(GetWidth(), GetHeight());
   if (needs_layout && ! layoutDoneByhandleResize)
   {
      Layout();
   }
   gClient->NeedRedraw(m_body);
   if (m_header) gClient->NeedRedraw(m_header);
   if (m_rowHeader) gClient->NeedRedraw(m_rowHeader);
   
}
bool FWTableWidget::descendingSort ( ) const [inline]

Definition at line 91 of file FWTableWidget.h.

References m_descendingSort.

Referenced by FWTableView::addTo(), and FWTriggerTableView::addTo().

{ return m_descendingSort; }
void FWTableWidget::disableGrowInWidth ( )
void FWTableWidget::DoRedraw ( ) [protected, virtual]

Definition at line 530 of file FWTableWidget.cc.

{
   // override virtual TGFrame::DoRedraw() to prevent call of gVirtualX->ClearArea();
}
void FWTableWidget::forceLayout ( ) [inline]
TGDimension FWTableWidget::GetDefaultSize ( ) const

Definition at line 505 of file FWTableWidget.cc.

References FWTabularWidget::GetDefaultSize(), m_body, m_header, m_hSlider, m_rowHeader, and m_vSlider.

{
   TGDimension returnValue;
   if(m_header){
      returnValue.fHeight += m_header->GetDefaultHeight();
   }
   if(m_rowHeader) {
      returnValue.fWidth += m_rowHeader->GetDefaultWidth();
   }
   returnValue = returnValue + m_body->GetDefaultSize();
   returnValue.fHeight += m_hSlider->GetDefaultHeight();
   returnValue.fWidth += m_vSlider->GetDefaultWidth();
   
   return returnValue;
}
bool FWTableWidget::handleResize ( UInt_t  w,
UInt_t  h 
) [private]

Definition at line 230 of file FWTableWidget.cc.

References def, FWTabularWidget::GetDefaultSize(), m_body, m_header, m_hSlider, m_rowHeader, m_showingHSlider, m_showingVSlider, and m_vSlider.

Referenced by dataChanged(), MoveResize(), and Resize().

{
   //std::cout <<"Resize"<<std::endl;
   bool redoLayout=false;

   TGDimension def  = m_body->GetDefaultSize();
   UInt_t fullWidth = def.fWidth;
   if(m_rowHeader) {
      fullWidth += m_rowHeader->GetDefaultSize().fWidth;
   }

   UInt_t headerHeight = 0;
   if(m_header) {
      headerHeight = m_header->GetHeight();
   }
   UInt_t fullHeight = def.fHeight + headerHeight;

   UInt_t sBarWidth  = (h < fullHeight) ? m_vSlider->GetWidth()  : 0;
   UInt_t sBarHeight = (w < fullWidth)  ? m_hSlider->GetHeight() : 0;
   if (sBarWidth == 0 && sBarHeight > 0 && h < fullHeight + sBarHeight)
      sBarWidth = m_vSlider->GetWidth();
   else if (sBarHeight == 0 && sBarWidth > 0 && h < fullWidth + sBarWidth)
      sBarHeight = m_hSlider->GetHeight();
   fullWidth  += sBarWidth;
   fullHeight += sBarHeight;

   if(w < fullWidth) {
      if(!m_showingHSlider) {
         ShowFrame(m_hSlider);
         redoLayout=true;
         m_showingHSlider=true;
      }
      m_hSlider->SetRange(fullWidth,w);
   } else {
      if(m_showingHSlider) {
         HideFrame(m_hSlider);
         m_hSlider->SetPosition(0);
         m_showingHSlider = false;
         redoLayout=true;
      }
   }

   if(h < fullHeight) {
      if(!m_showingVSlider) {
         ShowFrame(m_vSlider);
         m_showingVSlider=true;
         redoLayout=true;
      }
      m_vSlider->SetRange(fullHeight,h);
   } else {
      if(m_showingVSlider) {
         HideFrame(m_vSlider);
         m_vSlider->SetPosition(0);
         m_showingVSlider = false;
         redoLayout=true;
      }
   }
   if(redoLayout) {
      Layout();
   }

   return redoLayout;
}
void FWTableWidget::MoveResize ( Int_t  x,
Int_t  y,
UInt_t  w = 0,
UInt_t  h = 0 
) [virtual]

Definition at line 295 of file FWTableWidget.cc.

References handleResize().

{
   //std::cout <<"MoveResize"<<std::endl;
   if(w != GetWidth() || h != GetHeight()) {
      handleResize(w,h);
   }
   TGCompositeFrame::MoveResize(x,y,w,h);
}
Bool_t FWTableWidget::ProcessMessage ( Long_t  msg,
Long_t  parm1,
Long_t  parm2 
) [virtual]

Definition at line 305 of file FWTableWidget.cc.

References m_body, m_header, m_rowHeader, FWTabularWidget::setHorizontalOffset(), and FWTabularWidget::setVerticalOffset().

{
   // Handle message generated by the canvas scrollbars.

   switch (GET_MSG(msg)) {
      case kC_HSCROLL:
         switch (GET_SUBMSG(msg)) {
            case kSB_SLIDERTRACK:
            case kSB_SLIDERPOS:
               m_body->setHorizontalOffset(parm1);
               if(m_header) {
                  m_header->setHorizontalOffset(parm1);
               }
               break;
         }
         break;

      case kC_VSCROLL:
         switch (GET_SUBMSG(msg)) {
            case kSB_SLIDERTRACK:
            case kSB_SLIDERPOS:
               m_body->setVerticalOffset(parm1);
               if(m_rowHeader) {
                  m_rowHeader->setVerticalOffset(parm1);
               }
               break;
         }
         break;

      default:
         break;
   }
   return kTRUE;
}
void FWTableWidget::Resize ( UInt_t  w,
UInt_t  h 
) [virtual]
void FWTableWidget::rowClicked ( Int_t  iRow,
Int_t  iButton,
Int_t  iKeyMod,
Int_t  iGlobalX,
Int_t  iGlobalY 
)

This signal is emitted if the mouse button is 'clicked' while the cursor was over a row. Arguments: iRow: the unsorted row number (natural ordering) of the row clicked iButton: the ROOT button value for the click event (e.g. says which button used) iKeyMod: the ROOT key modifier value for the click event (e.g. says if a keyboard key was being held) iGlobalX: the X coordinate of the click in global coordinates iGlobalY: the Y coordinate of the click in global coordinates

Definition at line 422 of file FWTableWidget.cc.

References harvestRelVal::args.

Referenced by buttonReleasedInBody().

{
   keyMod = (keyMod&(kKeyShiftMask|kKeyControlMask));
   //std::cout <<"rowClicked "<<row<<" "<<btn<<" "<<keyMod<<std::endl;
   Long_t args[5];
   args[0]=(Long_t)row;
   args[1]=(Long_t)btn;
   args[2]=(Long_t)keyMod;
   args[3]=(Long_t)iGlobalX;
   args[4]=(Long_t)iGlobalY;
   Emit("rowClicked(Int_t,Int_t,Int_t,Int_t,Int_t)",args);      
}
void FWTableWidget::SetBackgroundColor ( Pixel_t  iColor)

Definition at line 166 of file FWTableWidget.cc.

References m_body, m_header, m_rowHeader, and m_rowHeaderTable.

Referenced by FWCollectionSummaryWidget::colorTable(), FWGUIEventDataAdder::createWindow(), FWPathsPopup::FWPathsPopup(), FWGeometryTableViewBase::postConst(), FWTableView::resetColors(), FWTableView::setBackgroundColor(), FWGeometryTableViewBase::setBackgroundColor(), and FWTriggerTableView::setBackgroundColor().

{
   TGFrame::SetBackgroundColor(iColor);
   if(m_rowHeaderTable) {
      m_rowHeader->SetBackgroundColor(iColor);
      fClient->NeedRedraw(m_rowHeader);
   }
   if(m_header) {
      m_header->SetBackgroundColor(iColor);
      fClient->NeedRedraw(m_header);
   }
   m_body->SetBackgroundColor(iColor);
   fClient->NeedRedraw(m_body);
   fClient->NeedRedraw(this);
}
void FWTableWidget::SetHeaderBackgroundColor ( Pixel_t  iColor)

Definition at line 183 of file FWTableWidget.cc.

References m_header, m_headerBackground, FWTabularWidget::setBackgroundAreaContext(), and lumiQTWidget::t.

Referenced by FWGUIEventDataAdder::createWindow(), FWPathsPopup::FWPathsPopup(), FWTableView::FWTableView(), FWTriggerTableView::FWTriggerTableView(), FWGeometryTableViewBase::postConst(), and FWCollectionSummaryWidget::toggleShowHide().

{
   if(0==m_headerBackground) {
      GCValues_t t = *(gClient->GetResourcePool()->GetFrameGC()->GetAttributes());
      m_headerBackground = gClient->GetResourcePool()->GetGCPool()->GetGC(&t,kTRUE);
   }
   m_headerBackground->SetForeground(iColor);
   if(0!=m_header) {
      m_header->setBackgroundAreaContext((*m_headerBackground)());
   }
}
void FWTableWidget::SetHeaderForegroundColor ( Pixel_t  iColor)

Definition at line 195 of file FWTableWidget.cc.

References m_header, m_headerForeground, FWTabularWidget::setLineContext(), and lumiQTWidget::t.

{
   if(0==m_headerForeground) {
      GCValues_t t = *(gClient->GetResourcePool()->GetFrameGC()->GetAttributes());
      m_headerForeground = gClient->GetResourcePool()->GetGCPool()->GetGC(&t,kTRUE);
   }
   m_headerForeground->SetForeground(iColor);
   if(0!=m_header) {
      m_header->setLineContext((*m_headerForeground)());
   }
}
void FWTableWidget::SetLineSeparatorColor ( Pixel_t  iColor)
void FWTableWidget::sort ( UInt_t  iColumn,
bool  iDescendingSort 
)

Sorts the rows of data in the table based on values in column iColumn. If iDescendingSort is 'true' then the rows are sorted in descending order of the values.

Definition at line 152 of file FWTableWidget.cc.

References m_bodyTable, m_descendingSort, m_headerTable, m_sortedColumn, and FWTableManagerBase::sort().

Referenced by buttonReleasedInHeader(), FWTableView::setFrom(), and FWTriggerTableView::setFrom().

{
   if(0!=m_headerTable) {
      m_headerTable->sort(iColumn,iDescendingSort);
   }
   m_bodyTable->sort(iColumn,iDescendingSort);
   m_sortedColumn =iColumn;
   m_descendingSort=iDescendingSort;
   
   //fClient->NeedRedraw(m_header);
   //fClient->NeedRedraw(m_body);
}
int FWTableWidget::sortedColumn ( ) const [inline]

Definition at line 90 of file FWTableWidget.h.

References m_sortedColumn.

Referenced by FWTableView::addTo(), and FWTriggerTableView::addTo().

{ return m_sortedColumn; }

Member Data Documentation

Definition at line 119 of file FWTableWidget.h.

Referenced by buttonReleasedInHeader(), descendingSort(), and sort().

Definition at line 120 of file FWTableWidget.h.

Referenced by dataChanged(), and forceLayout().

Definition at line 122 of file FWTableWidget.h.

Referenced by SetHeaderBackgroundColor(), and ~FWTableWidget().

Definition at line 123 of file FWTableWidget.h.

Referenced by SetHeaderForegroundColor(), and ~FWTableWidget().

Definition at line 108 of file FWTableWidget.h.

Referenced by FWTableWidget(), and sort().

TGHScrollBar* FWTableWidget::m_hSlider [private]

Definition at line 114 of file FWTableWidget.h.

Referenced by FWTableWidget(), GetDefaultSize(), and handleResize().

Definition at line 124 of file FWTableWidget.h.

Referenced by SetLineSeparatorColor(), and ~FWTableWidget().

Definition at line 109 of file FWTableWidget.h.

Referenced by FWTableWidget(), and SetBackgroundColor().

Definition at line 116 of file FWTableWidget.h.

Referenced by handleResize().

Definition at line 115 of file FWTableWidget.h.

Referenced by handleResize().

Definition at line 118 of file FWTableWidget.h.

Referenced by buttonReleasedInHeader(), sort(), and sortedColumn().

TGVScrollBar* FWTableWidget::m_vSlider [private]

Definition at line 113 of file FWTableWidget.h.

Referenced by buttonReleasedInBody(), FWTableWidget(), GetDefaultSize(), and handleResize().