// Create a control to do the editing BOOL CGridCellCombo::Edit(int nRow, int nCol, CRect rect, CPoint /* point */, UINT nID, UINT nChar) { m_bEditing = TRUE; // CInPlaceList auto-deletes itself m_pEditWnd = new CInPlaceList(GetGrid(), rect, GetStyle(), nID, nRow, nCol, GetTextClr(), GetBackClr(), m_Strings, GetText(), nChar); return TRUE; }
BOOL CGridCellDateTime::Edit(int nRow, int nCol, CRect rect, CPoint /* point */, UINT nID, UINT nChar) { m_bEditing = TRUE; // CInPlaceDateTime auto-deletes itself m_pEditWnd = new CInPlaceDateTime(GetGrid(), rect, m_dwStyle|DTS_UPDOWN, nID, nRow, nCol, GetTextClr(), GetBackClr(), GetTime(), nChar); return TRUE; }
BOOL CGridCellDateTime::Edit(int nRow, int nCol, CRect rect, CPoint /* point */, UINT nID, UINT nChar) { m_bEditing = TRUE; rect.InflateRect(0,2,0,2); // CInPlaceDateTime auto-deletes itself m_pEditWnd = new CInPlaceDateTime(GetGrid(), rect, nID, nRow, nCol, GetTextClr(), GetBackClr(), nChar, m_format, this); return TRUE; }
// Create a control to do the editing BOOL CGridCellComboBox::Edit(int nRow, int nCol, CRect rect, CPoint /* point */, UINT nID, UINT nChar) { m_bEditing = TRUE; IEnumerator<tstring>* options = static_cast<CEditStyleOptional*>(m_Template->GetEditStyle())->Options; //CConvertEnumerator<tstring, tstring, CTextConvertAdapter> textopts(options, CTextConvertAdapter(this, CTextConvertAdapter::View)); // CInPlaceList auto-deletes itself m_pEditWnd = new CInPlaceList(GetGrid(), rect, GetStyle(), nID, nRow, nCol, GetTextClr(), GetBackClr(), /*&textopts*/options, GetText(), nChar); return TRUE; }
/***************************************************************************** May mean end of a button click sequence or to edit text *****************************************************************************/ BOOL CGridBtnCellCombo::Edit(int nRow, int nCol, CRect rect, CPoint point, UINT nID, UINT nChar) { int iCtlHit = RelPointInCtl( point); // Relative point coords // returns: Index of control that this point is within bounds of or -1 if no control matches BOOL bShowDropDownNow = FALSE; if( iCtlHit >= 0) { // if user clicked on scroll down button picture, then show // the drop-down, too UINT uiType = GetDrawCtlType( iCtlHit); UINT uiState = GetDrawCtlState( iCtlHit); bShowDropDownNow = ( uiType == DFC_SCROLL) && uiState & DFCS_SCROLLDOWN; } BOOL bHitNonComboButton = ( iCtlHit >= 0) && !bShowDropDownNow; if( HasCellText() && !bHitNonComboButton ) { m_ucEditing = TRUE; // InPlaceList auto-deletes itself CGridCtrl* pGrid = GetGrid(); CInPlaceList* pInPlaceList = new CInPlaceList( pGrid, rect, m_dwComboStyle, nID, nRow, nCol, GetTextClr(), GetBackClr(), m_StringArrayCombo, GetText(), nChar); if( bShowDropDownNow) { if( m_dwComboStyle & CBS_DROPDOWN || m_dwComboStyle & CBS_DROPDOWNLIST) { pInPlaceList->ShowDropDown( TRUE); } } m_pBtnDataBase->SetEditWnd( pInPlaceList); return TRUE; } // call base class, otherwise return CGridBtnCell::Edit( nRow, nCol, rect, point, nID, nChar); }
// EFW - Various changes to make it draw cells better when using alternate // color schemes. Also removed printing references as that's now done // by PrintCell() and fixed the sort marker so that it doesn't draw out // of bounds. BOOL CGridCellBase::Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd /*=TRUE*/) { // 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); if (!pGrid || !pDC) return FALSE; if( rect.Width() <= 0 || rect.Height() <= 0) // prevents imagelist item from drawing even return FALSE; // though cell is hidden //TRACE3("Drawing %scell %d, %d\n", IsFixed()? _T("Fixed ") : _T(""), nRow, nCol); int nSavedDC = pDC->SaveDC(); pDC->SetBkMode(TRANSPARENT); // Get the default cell implementation for this kind of cell. We use it if this cell // has anything marked as "default" CGridDefaultCell *pDefaultCell = (CGridDefaultCell*) GetDefaultCell(); if (!pDefaultCell) return FALSE; // Set up text and background colours COLORREF TextClr, TextBkClr; TextClr = (GetTextClr() == CLR_DEFAULT)? pDefaultCell->GetTextClr() : GetTextClr(); if (GetBackClr() == CLR_DEFAULT) TextBkClr = pDefaultCell->GetBackClr(); else { bEraseBkgnd = TRUE; TextBkClr = GetBackClr(); } // Draw cell background and highlighting (if necessary) if ( IsFocused() || IsDropHighlighted() ) { // Always draw even in list mode so that we can tell where the // cursor is at. Use the highlight colors though. if(GetState() & GVIS_SELECTED) { TextBkClr = ::GetSysColor(COLOR_HIGHLIGHT); TextClr = ::GetSysColor(COLOR_HIGHLIGHTTEXT); bEraseBkgnd = TRUE; } rect.right++; rect.bottom++; // FillRect doesn't draw RHS or bottom if (bEraseBkgnd) { TRY { CBrush brush(TextBkClr); pDC->FillRect(rect, &brush); } CATCH(CResourceException, e) { //e->ReportError(); } END_CATCH } // Don't adjust frame rect if no grid lines so that the // whole cell is enclosed. if(pGrid->GetGridLines() != GVL_NONE) { rect.right--; rect.bottom--; } if (pGrid->GetFrameFocusCell()) { // Use same color as text to outline the cell so that it shows // up if the background is black. TRY { CBrush brush(TextClr); pDC->FrameRect(rect, &brush); } CATCH(CResourceException, e) { //e->ReportError(); } END_CATCH } pDC->SetTextColor(TextClr); // Adjust rect after frame draw if no grid lines if(pGrid->GetGridLines() == GVL_NONE) { rect.right--; rect.bottom--; } //rect.DeflateRect(0,1,1,1); - Removed by Yogurt }