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

CGridColumnTraitCombo implements a CComboBox as cell-editor. More...

Inheritance diagram for CGridColumnTraitCombo:
CGridColumnTraitImage CGridColumnTraitText CGridColumnTrait

Public Member Functions

 CGridColumnTraitCombo ()
 CGridColumnTraitCombo - Constructor.
 
void SetMaxItems (UINT nMaxItems)
 Set max height (in items) of the CComboBox when doing dropdown. More...
 
UINT GetMaxItems () const
 Retrieves max height (in items) of the CComboBox when doing dropdown. More...
 
void SetStyle (DWORD dwStyle)
 Set style used when creating CComboBox for cell value editing. More...
 
DWORD GetStyle () const
 Get style used when creating CComboBox for cell value editing. More...
 
void SetMaxWidth (UINT nMaxWidth)
 Set max width (in pixels) of the CComboBox when doing dropdown. More...
 
UINT GetMaxWidth () const
 Retrieves max width (in pixels) of the CComboBox when doing dropdown. More...
 
void SetShowDropDown (BOOL bShowIt)
 Set whether to show drop down of the CComboBox at edit begin. More...
 
BOOL GetShowDropDown () const
 Retrieves whether to show drop down of the CComboBox at edit begin. More...
 
void LoadList (const CSimpleMap< DWORD_PTR, CString > &comboList, int nCurSel)
 Fills the combobox with the items of the fixed item-list. More...
 
void AddItem (DWORD_PTR nItemData, const CString &strItemText)
 Adds combobox item to the fixed combobox item-list. More...
 
void ClearFixedItems ()
 Clears the list of fixed combobox items.
 
virtual CWnd * OnEditBegin (CGridListCtrlEx &owner, int nRow, int nCol)
 Overrides OnEditBegin() to provide a CComboBox 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 void OnEditEnd ()
 Overrides OnEditEnd() to ensure that temporary combobox variable is reset when cell value editing is completed. 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...
 
ColumnStateGetColumnState ()
 
BOOL HasMetaFlag (DWORD flag)
 
void SetMetaFlag (DWORD flag, bool enable)
 

Protected Member Functions

virtual void Accept (CGridColumnTraitVisitor &visitor)
 Accept Visitor Pattern.
 
virtual CComboBox * CreateComboBox (CGridListCtrlEx &owner, int nRow, int nCol, DWORD dwStyle, const CRect &rect)
 Create a CComboBox 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

CSimpleMap< DWORD_PTR, CString > m_ComboList
 Fixed list of items in the combo-box.
 
CComboBox * m_pComboBox
 CComboBox currently open.
 
DWORD m_ComboBoxStyle
 Style to use when creating CComboBox.
 
UINT m_MaxItems
 Max height (in items) of the CComboBox when doing dropdown.
 
UINT m_MaxWidth
 Max width (in pixels) of the CComboBox when doing dropdown.
 
BOOL m_ShowDropDown
 Show drop down of the CComboBox at edit begin.
 
- 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

CGridColumnTraitCombo implements a CComboBox as cell-editor.

Member Function Documentation

void CGridColumnTraitCombo::AddItem ( DWORD_PTR  nItemData,
const CString &  strItemText 
)

Adds combobox item to the fixed combobox item-list.

Parameters
nItemDataUnique identifier of the item
strItemTextText identifier of the item
CComboBox * CGridColumnTraitCombo::CreateComboBox ( CGridListCtrlEx owner,
int  nRow,
int  nCol,
DWORD  dwStyle,
const CRect &  rect 
)
protectedvirtual

Create a CComboBox 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
UINT CGridColumnTraitCombo::GetMaxItems ( ) const

Retrieves max height (in items) of the CComboBox when doing dropdown.

Returns
Number of items
UINT CGridColumnTraitCombo::GetMaxWidth ( ) const

Retrieves max width (in pixels) of the CComboBox when doing dropdown.

Returns
Number of items
BOOL CGridColumnTraitCombo::GetShowDropDown ( ) const

Retrieves whether to show drop down of the CComboBox at edit begin.

Returns
Show drop down of the CComboBox at edit begin
DWORD CGridColumnTraitCombo::GetStyle ( ) const

Get style used when creating CComboBox for cell value editing.

Returns
Style flags
void CGridColumnTraitCombo::LoadList ( const CSimpleMap< DWORD_PTR, CString > &  comboList,
int  nCurSel 
)

Fills the combobox with the items of the fixed item-list.

Parameters
comboListList of CComboBox items
nCurSelIndex in the list to choose as currently selected (-1 = No selection)
CWnd * CGridColumnTraitCombo::OnEditBegin ( CGridListCtrlEx owner,
int  nRow,
int  nCol 
)
virtual

Overrides OnEditBegin() to provide a CComboBox 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* CGridColumnTraitCombo::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 CGridColumnTraitCombo::OnEditEnd ( )
virtual

Overrides OnEditEnd() to ensure that temporary combobox variable is reset when cell value editing is completed.

Reimplemented from CGridColumnTrait.

void CGridColumnTraitCombo::SetMaxItems ( UINT  nMaxItems)

Set max height (in items) of the CComboBox when doing dropdown.

Parameters
nMaxItemsMax number of items to show at once in the dropdown list
void CGridColumnTraitCombo::SetMaxWidth ( UINT  nMaxWidth)

Set max width (in pixels) of the CComboBox when doing dropdown.

Parameters
nMaxWidthMax pixels in width to show when expanding the dropdown list
void CGridColumnTraitCombo::SetShowDropDown ( BOOL  bShowIt)

Set whether to show drop down of the CComboBox at edit begin.

Parameters
bShowItShow drop down of the CComboBox at edit begin
void CGridColumnTraitCombo::SetStyle ( DWORD  dwStyle)

Set style used when creating CComboBox for cell value editing.

Parameters
dwStyleStyle flags