| | |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | | // GridCellBase Operations |
| | | |
| | | void CGridCellBase::Reset() |
| | | { |
| | | m_Hide=false; |
| | | m_nState = 0; |
| | | m_MergeRange.Set(); |
| | | m_IsMergeWithOthers=false; |
| | | m_MergeCellID.row=-1; |
| | | m_MergeCellID.col=-1; |
| | | |
| | | |
| | | } |
| | | |
| | | void CGridCellBase::operator=(const CGridCellBase& cell) |
| | | void CGridCellBase::operator=( CGridCellBase& cell) |
| | | { |
| | | if (this == &cell) return; |
| | | |
| | |
| | | SetBackClr(cell.GetBackClr()); |
| | | SetFont(cell.IsDefaultFont()? NULL : cell.GetFont()); |
| | | SetMargin(cell.GetMargin()); |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | SetMergeCellID(cell.GetMergeCellID()); |
| | | SetMergeRange(cell.GetMergeRange()); |
| | | Show(cell.IsShow()); |
| | | } |
| | | |
| | | ///////////////////////////////////////////////////////////////////////////// |
| | |
| | | { |
| | | // Note - all through this function we totally brutalise 'rect'. Do not |
| | | // depend on it's value being that which was passed in. |
| | | |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | if( m_Hide && !IsMerged()) |
| | | { |
| | | return TRUE; |
| | | } |
| | | |
| | | |
| | | CGridCtrl* pGrid = GetGrid(); |
| | | ASSERT(pGrid); |
| | |
| | | rect.bottom--; |
| | | } |
| | | |
| | | //rect.DeflateRect(0,1,1,1); - Removed by Yogurt |
| | | rect.DeflateRect(0,1,1,1); |
| | | } |
| | | else if ((GetState() & GVIS_SELECTED)) |
| | | { |
| | |
| | | pDC->SelectObject(pFont); |
| | | } |
| | | |
| | | //rect.DeflateRect(GetMargin(), 0); - changed by Yogurt |
| | | rect.DeflateRect(GetMargin(), GetMargin()); |
| | | rect.right++; |
| | | rect.bottom++; |
| | | rect.DeflateRect(GetMargin(), 0); |
| | | |
| | | if (pGrid->GetImageList() && GetImage() >= 0) |
| | | { |
| | |
| | | BOOL bVertical = (GetFont()->lfEscapement == 900); |
| | | |
| | | // Only draw if it'll fit! |
| | | //if (size.cx + rect.left < rect.right + (int)(2*GetMargin())) - changed / Yogurt |
| | | if (size.cx + rect.left < rect.right) |
| | | if (size.cx + rect.left < rect.right + (int)(2*GetMargin())) |
| | | { |
| | | int nTriangleBase = rect.bottom - nOffset - size.cy; // Triangle bottom right |
| | | //int nTriangleBase = (rect.top + rect.bottom - size.cy)/2; // Triangle middle right |
| | |
| | | // printed correctly. |
| | | BOOL CGridCellBase::PrintCell(CDC* pDC, int /*nRow*/, int /*nCol*/, CRect rect) |
| | | { |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | if( m_Hide && !IsMerged()) |
| | | { |
| | | return TRUE; |
| | | } |
| | | |
| | | #if defined(_WIN32_WCE_NO_PRINTING) || defined(GRIDCONTROL_NO_PRINTING) |
| | | return FALSE; |
| | | #else |
| | |
| | | int nSavedDC = pDC->SaveDC(); |
| | | |
| | | pDC->SetBkMode(TRANSPARENT); |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | rect.InflateRect(1,1); |
| | | pDC->Rectangle(rect); |
| | | rect.DeflateRect(1,1); |
| | | |
| | | if (pGrid->GetShadedPrintOut()) |
| | | { |
| | |
| | | return pGrid->SendMessageToParent(nRow, nCol, nMessage); |
| | | else |
| | | return 0; |
| | | } |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | void CGridCellBase::Show(bool IsShow) |
| | | { |
| | | m_Hide=!IsShow; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | void CGridCellBase::SetMergeRange(CCellRange range) |
| | | { |
| | | m_MergeRange=range; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | CCellRange CGridCellBase::GetMergeRange() |
| | | { |
| | | return m_MergeRange; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | bool CGridCellBase::IsMerged() |
| | | { |
| | | return m_MergeRange.Count()>1; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | void CGridCellBase::SetMergeCellID(CCellID cell) |
| | | { |
| | | m_MergeCellID=cell; |
| | | if(cell.row!=-1) |
| | | m_IsMergeWithOthers=true; |
| | | else |
| | | m_IsMergeWithOthers=false; |
| | | |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | CCellID CGridCellBase::GetMergeCellID() |
| | | { |
| | | return m_MergeCellID; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | bool CGridCellBase::IsMergeWithOthers() |
| | | { |
| | | return m_IsMergeWithOthers; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | bool CGridCellBase::IsShow() |
| | | { |
| | | return !m_Hide; |
| | | } |
| | | //Used for merge cells |
| | | //by Huang Wei |
| | | void CGridCellBase::UnMerge() |
| | | { |
| | | m_Hide=false; |
| | | m_MergeRange.Set(); |
| | | m_IsMergeWithOthers=false; |
| | | m_MergeCellID.row=-1; |
| | | m_MergeCellID.col=-1; |
| | | } |