CGridListCtrlEx
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CGridColumnTraitEdit Class Reference

CGridColumnTraitEdit implements a CEdit as cell-editor. More...

Inheritance diagram for CGridColumnTraitEdit:
CGridColumnTraitImage CGridColumnTraitText CGridColumnTrait CGridColumnTraitMultilineEdit

Public Member Functions

 CGridColumnTraitEdit ()
 CGridColumnTraitEdit - Constructor.
 
void SetStyle (DWORD dwStyle)
 Set style used when creating CEdit for cell value editing. More...
 
DWORD GetStyle () const
 Get style used when creating CEdit for cell value editing. More...
 
void SetLimitText (UINT nMaxChars)
 Set max number of characters the CEdit will accept. More...
 
UINT GetLimitText () const
 Get max number of characters the CEdit will accept. More...
 
virtual CWnd * OnEditBegin (CGridListCtrlEx &owner, int nRow, int nCol)
 Overrides OnEditBegin() to provide a CEdit cell value editor. More...
 
virtual CWnd * OnEditBegin (CGridListCtrlEx &owner, int nRow, int nCol, CPoint pt)
 Overrides OnEditBegin() to allow special handling when clicking image or checkbox. More...
 
- Public Member Functions inherited from CGridColumnTraitImage
 CGridColumnTraitImage ()
 CGridColumnTraitImage - Constructor.
 
 CGridColumnTraitImage (int nImageIndex, int nImageCount)
 CGridColumnTraitImage - Constructor. More...
 
void AddImageIndex (int nImageIdx)
 Adds image index to the list of images to switch between. More...
 
void AddImageIndex (int nImageIdx, const CString &strImageText, bool bEditable=true)
 Adds image index to the list of images to switch between. More...
 
void SetImageText (int nImageIdx, const CString &strImageText, bool bEditable=true)
 Updates the image text for the specified image index. More...
 
void SetSortImageIndex (bool bValue)
 Should primary sorting be based on the image index (checkbox sorting) More...
 
bool GetSortImageIndex () const
 Get whether primary sorting is based on image index (checkbox sorting) More...
 
void SetToggleSelection (bool bValue)
 Should images (checkboxes) be flipped for all selected rows, when icon is clicked. More...
 
bool GetToggleSelection () const
 Get whether images (checkboxes) should be flipped for all selected rows, when icon is clicked. More...
 
void SetSingleClickEdit (bool bValue)
 Should cell editor be launched on first mouse-click, or should it wait for cell to have focus first. More...
 
bool GetSingleClickEdit () const
 Get whether editor should be launched on first mouse-click. More...
 
void SetIconClickBeginEdit (bool bValue)
 Configure whether the icon-click should trigger OnBeginEdit. More...
 
bool GetIconClickBeginEdit () const
 Get whether mouse-click on icon, should also perform OnBeginEdit. More...
 
- Public Member Functions inherited from CGridColumnTraitText
 CGridColumnTraitText ()
 CGridColumnTraitText - Constructor.
 
virtual void OnCustomDraw (CGridListCtrlEx &owner, NMLVCUSTOMDRAW *pLVCD, LRESULT *pResult)
 Overrides the custom draw handler, to allow custom coloring of cells with this column trait. More...
 
void SetSortFormatNumber (bool bValue)
 Should cell values be compared as numbers when sorting. More...
 
- Public Member Functions inherited from CGridColumnTrait
virtual ~CGridColumnTrait ()
 Destructor.
 
virtual void OnInsertColumn (CGridListCtrlEx &owner, int nCol)
 Override OnInsertColumn() to provide your own special styling of the column, after column has been added. More...
 
virtual void OnEditEnd ()
 Override OnEditEnd() in case one need to change state after a cell-edit.
 
ColumnStateGetColumnState ()
 
BOOL HasMetaFlag (DWORD flag)
 
void SetMetaFlag (DWORD flag, bool enable)
 

Protected Member Functions

virtual void Accept (CGridColumnTraitVisitor &visitor)
 Accept Visitor Pattern.
 
virtual CEdit * CreateEdit (CGridListCtrlEx &owner, int nRow, int nCol, DWORD dwStyle, const CRect &rect)
 Create a CEdit as cell value editor. More...
 
- Protected Member Functions inherited from CGridColumnTraitImage
virtual int OnSortRows (LPCTSTR pszLeftValue, LPCTSTR pszRightValue, bool bAscending)
 Compares two cell values according to specified sort order. More...
 
virtual int OnSortRows (const LVITEM &leftItem, const LVITEM &rightItem, bool bAscending)
 Compares two cell values according to checkbox state. More...
 
virtual bool IsCellReadOnly (CGridListCtrlEx &owner, int nRow, int nCol, CPoint pt) const
 Check if current image index blocks for editing of cell label. More...
 
virtual int OnClickEditStart (CGridListCtrlEx &owner, int nRow, int nCol, CPoint pt, bool bDblClick)
 Checks if the mouse click should start the cell editor (OnEditBegin) Normally the cell needs to have focus first before cell editor can be started. More...
 
virtual int FlipImageIndex (CGridListCtrlEx &owner, int nRow, int nCol)
 Switch to the next image index. More...
 
virtual CWnd * OnEditBeginImage (CGridListCtrlEx &owner, int nRow, int nCol)
 Reacts to clicking on the image, and allows all selected rows to be flipped. More...
 
virtual CWnd * OnEditBeginCheckbox (CGridListCtrlEx &owner, int nRow, int nCol)
 Reacts to clicking on the checkbox, and allows all selected rows to be flipped. More...
 
- Protected Member Functions inherited from CGridColumnTraitText
virtual bool UpdateTextFont (NMLVCUSTOMDRAW *pLVCD, LOGFONT &textFont)
 Specifies af the font color if one is specified. More...
 
virtual bool UpdateTextColor (NMLVCUSTOMDRAW *pLVCD, COLORREF &textColor)
 Changes the text color if one is specified. More...
 
virtual bool UpdateBackColor (NMLVCUSTOMDRAW *pLVCD, COLORREF &backColor)
 Changes the background color if one is specified. More...
 
virtual int GetCellFontHeight (CGridListCtrlEx &owner)
 Calculates the proper row-height according to font, which a cell value editor should fit in. More...
 
virtual CRect GetCellEditRect (CGridListCtrlEx &owner, int nRow, int nCol)
 Returns the proper rectangle, which a cell value editor should fit in. More...
 

Protected Attributes

DWORD m_EditStyle
 Style to use when creating CEdit.
 
UINT m_EditLimitText
 Max number of characters the CEdit will accept.
 
- Protected Attributes inherited from CGridColumnTraitImage
CSimpleMap< int, CString > m_ImageCellText
 Fixed list of image items to switch between.
 
CSimpleMap< int, bool > m_ImageCellEdit
 Fixed list of image items to switch between.
 
bool m_SortImageIndex
 Should image be used as primary sort index ?
 
bool m_ToggleSelection
 Should the image of all selected rows be flipped, when clicked ?
 
bool m_SingleClickEdit
 Should it start editor on first click, instead of first waiting for cell to have focus first.
 
bool m_IconClickBeginEdit
 Should it start editor when clicking the icon area ?
 
- Protected Attributes inherited from CGridColumnTraitText
CFont * m_pOldFont
 Backup of the original font while drawing with specified font.
 
COLORREF m_OldTextColor
 Backup of the original text color while drawing with specified color.
 
COLORREF m_OldBackColor
 Backup of the original background color while drawing with specified color.
 
COLORREF m_TextColor
 Text color to use for this column.
 
COLORREF m_BackColor
 Background color to use for this column.
 
bool m_SortFormatNumber
 Column contains integers.
 
- Protected Attributes inherited from CGridColumnTrait
ColumnState m_ColumnState
 

Additional Inherited Members

- Static Public Member Functions inherited from CGridColumnTraitImage
static int AppendStateImages (CGridListCtrlEx &owner, CImageList &imagelist)
 Appends the checkbox state images to the list control image list. More...
 
static LRESULT SendEndLabelEdit (CWnd &wndListCtrl, int nRow, int nCol, LV_DISPINFO &dispInfo)
 Send LV_DISPINFO structure as LVN_ENDLABELEDIT from CListCtrl to parent window. More...
 

Detailed Description

CGridColumnTraitEdit implements a CEdit as cell-editor.

Member Function Documentation

CEdit * CGridColumnTraitEdit::CreateEdit ( CGridListCtrlEx owner,
int  nRow,
int  nCol,
DWORD  dwStyle,
const CRect &  rect 
)
protectedvirtual

Create a CEdit as cell value editor.

Parameters
ownerThe list control starting a cell edit
nRowThe index of the row
nColThe index of the column
dwStyleThe windows style to use when creating the CEdit
rectThe rectangle where the inplace cell value editor should be placed
Returns
Pointer to the cell editor to use

Reimplemented in CGridColumnTraitMultilineEdit.

UINT CGridColumnTraitEdit::GetLimitText ( ) const

Get max number of characters the CEdit will accept.

Returns
The text limit, in characters
DWORD CGridColumnTraitEdit::GetStyle ( ) const

Get style used when creating CEdit for cell value editing.

Returns
Style flags
CWnd * CGridColumnTraitEdit::OnEditBegin ( CGridListCtrlEx owner,
int  nRow,
int  nCol 
)
virtual

Overrides OnEditBegin() to provide a CEdit cell value editor.

Parameters
ownerThe list control starting edit
nRowThe index of the row for the cell to edit
nColThe index of the column for the cell to edit
Returns
Pointer to the cell editor to use (NULL if cell edit is not possible)

Reimplemented from CGridColumnTraitImage.

virtual CWnd* CGridColumnTraitEdit::OnEditBegin ( CGridListCtrlEx owner,
int  nRow,
int  nCol,
CPoint  pt 
)
inlinevirtual

Overrides OnEditBegin() to allow special handling when clicking image or checkbox.

Parameters
ownerThe list control starting edit
nRowThe index of the row for the cell to edit
nColThe index of the column for the cell to edit
ptThe position clicked, in client coordinates.
Returns
Pointer to the cell editor to use (NULL if cell edit is not possible)

Reimplemented from CGridColumnTraitImage.

void CGridColumnTraitEdit::SetLimitText ( UINT  nMaxChars)

Set max number of characters the CEdit will accept.

Parameters
nMaxCharsThe text limit, in characters.
void CGridColumnTraitEdit::SetStyle ( DWORD  dwStyle)

Set style used when creating CEdit for cell value editing.

Parameters
dwStyleStyle flags