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

CGridColumnTraitDateTime implements a CDateTimeCtrl as cell-editor. More...

Inheritance diagram for CGridColumnTraitDateTime:
CGridColumnTraitImage CGridColumnTraitText CGridColumnTrait

Public Member Functions

 CGridColumnTraitDateTime ()
 CGridColumnTraitDateTime - Constructor.
 
void SetFormat (const CString &strFormat)
 Set the DateTime format used to display the date in the editor. More...
 
CString GetFormat () const
 Get the DateTime format used to display the date in the editor. More...
 
void SetStyle (DWORD dwStyle)
 Set style used when creating CDataTimeCtrl for cell value editing. More...
 
DWORD GetStyle () const
 Get style used when creating CDataTimeCtrl for cell value editing. More...
 
void SetParseDateTime (DWORD dwFlags=0, LCID lcid=LANG_USER_DEFAULT)
 Set the flags for converting the datetime in text format to actual date. More...
 
virtual CWnd * OnEditBegin (CGridListCtrlEx &owner, int nRow, int nCol)
 Overrides OnEditBegin() to provide a CDateTimeCtrl 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...
 
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 ParseDateTime (LPCTSTR lpszDate, COleDateTime &dt)
 Parse the input string into a datetime value. 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 CDateTimeCtrl * CreateDateTimeCtrl (CGridListCtrlEx &owner, int nRow, int nCol, DWORD dwStyle, const CRect &rect)
 Create a CDateTimeCtrl as cell value editor. More...
 
- Protected Member Functions inherited from CGridColumnTraitImage
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

CString m_Format
 DateTime format used to display the date.
 
DWORD m_ParseDateTimeFlags
 Flags for locale settings and parsing (COleDateTime::ParseDateTime)
 
LCID m_ParseDateTimeLCID
 Locale ID to use for the conversion. (COleDateTime::ParseDateTime)
 
DWORD m_DateTimeCtrlStyle
 Style to use when creating CDateTimeCtrl.
 
- 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

CGridColumnTraitDateTime implements a CDateTimeCtrl as cell-editor.

Member Function Documentation

CDateTimeCtrl * CGridColumnTraitDateTime::CreateDateTimeCtrl ( CGridListCtrlEx owner,
int  nRow,
int  nCol,
DWORD  dwStyle,
const CRect &  rect 
)
protectedvirtual

Create a CDateTimeCtrl 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
CString CGridColumnTraitDateTime::GetFormat ( ) const

Get the DateTime format used to display the date in the editor.

Returns
Date Format string
DWORD CGridColumnTraitDateTime::GetStyle ( ) const

Get style used when creating CDataTimeCtrl for cell value editing.

Returns
Style Flags
CWnd * CGridColumnTraitDateTime::OnEditBegin ( CGridListCtrlEx owner,
int  nRow,
int  nCol 
)
virtual

Overrides OnEditBegin() to provide a CDateTimeCtrl 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* CGridColumnTraitDateTime::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.

int CGridColumnTraitDateTime::OnSortRows ( LPCTSTR  pszLeftValue,
LPCTSTR  pszRightValue,
bool  bAscending 
)
virtual

Compares two cell values according to specified sort order.

Parameters
pszLeftValueLeft cell value
pszRightValueRight cell value
bAscendingPerform sorting in ascending or descending order
Returns
Is left value less than right value (-1) or equal (0) or larger (1)

Reimplemented from CGridColumnTraitImage.

virtual int CGridColumnTraitDateTime::OnSortRows ( const LVITEM &  leftItem,
const LVITEM &  rightItem,
bool  bAscending 
)
inlinevirtual

Compares two cell values according to checkbox state.

Parameters
leftItemLeft cell item
rightItemRight cell item
bAscendingPerform sorting in ascending or descending order
Returns
Is left value less than right value (-1) or equal (0) or larger (1)

Reimplemented from CGridColumnTraitImage.

BOOL CGridColumnTraitDateTime::ParseDateTime ( LPCTSTR  lpszDate,
COleDateTime &  dateTime 
)
virtual

Parse the input string into a datetime value.

Parameters
lpszDateThe input string
dateTimeThe datetime value
Returns
Could the input string be converted into a valid datetime value ?
void CGridColumnTraitDateTime::SetFormat ( const CString &  strFormat)

Set the DateTime format used to display the date in the editor.

Parameters
strFormatDate Format string
void CGridColumnTraitDateTime::SetParseDateTime ( DWORD  dwFlags = 0,
LCID  lcid = LANG_USER_DEFAULT 
)

Set the flags for converting the datetime in text format to actual date.

Parameters
dwFlagsFlags for locale settings and parsing
lcidLocale ID to use for the conversion
void CGridColumnTraitDateTime::SetStyle ( DWORD  dwStyle)

Set style used when creating CDataTimeCtrl for cell value editing.

Parameters
dwStyleStyle flags