Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "TVirtualX.h"
00016 #include "TGFont.h"
00017
00018
00019 #include "Fireworks/TableWidget/interface/FWColumnLabelCellRenderer.h"
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 FWColumnLabelCellRenderer::FWColumnLabelCellRenderer(const TGGC* iContext):
00034 FWTextTableCellRenderer(iContext),
00035 m_sortOrder(fireworks::table::kNotSorted),
00036 m_sizeOfOrderIcon(height())
00037 {
00038 FontMetrics_t metrics;
00039 font()->GetFontMetrics(&metrics);
00040
00041 m_sizeOfOrderIcon -= 2*metrics.fDescent;
00042 m_sizeOfOrderIconStartX = metrics.fDescent;
00043
00044
00045 if(1 == m_sizeOfOrderIcon % 2) {
00046 ++m_sizeOfOrderIcon;
00047 }
00048 }
00049
00050
00051
00052
00053
00054
00055
00056 FWColumnLabelCellRenderer::~FWColumnLabelCellRenderer()
00057 {
00058 }
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 void FWColumnLabelCellRenderer::setSortOrder(fireworks::table::SortOrder iOrder) {
00076 m_sortOrder = iOrder;
00077 }
00078
00079 void
00080 FWColumnLabelCellRenderer::draw(Drawable_t iID, int iX, int iY, unsigned int iWidth, unsigned int iHeight)
00081 {
00082 using namespace fireworks::table;
00083 UInt_t h = m_sizeOfOrderIcon;
00084 const GContext_t c = graphicsContext()->GetGC();
00085 int dY = m_sizeOfOrderIconStartX;
00086
00087 if(kAscendingSort == m_sortOrder) {
00088 gVirtualX->DrawLine(iID, c, iX+h/2, iY+2+dY, iX, iY+h-2+dY);
00089 gVirtualX->DrawLine(iID, c, iX, iY+h-2+dY, iX+h, iY+h-2+dY);
00090 gVirtualX->DrawLine(iID, c, iX+h/2, iY+2+dY, iX+h, iY+h-2+dY);
00091 }
00092 if(kDescendingSort == m_sortOrder){
00093 gVirtualX->DrawLine(iID, c, iX, iY+2+dY, iX+h, iY+2+dY);
00094 gVirtualX->DrawLine(iID, c, iX+h/2, iY+h-2+dY, iX+h, iY+2+dY);
00095 gVirtualX->DrawLine(iID, c, iX+h/2, iY+h-2+dY, iX, iY+2+dY);
00096 }
00097 FWTextTableCellRenderer::draw(iID,iX+kGap+h,iY,iWidth-kGap-h,iHeight);
00098 }
00099
00100
00101
00102
00103 fireworks::table::SortOrder FWColumnLabelCellRenderer::sortOrder() const
00104 {
00105 return m_sortOrder;
00106 }
00107
00108 UInt_t FWColumnLabelCellRenderer::width() const
00109 {
00110 return FWTextTableCellRenderer::width()+kGap+m_sizeOfOrderIcon;
00111 }
00112
00113
00114
00115