1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxCheckListBox class - a listbox with checkable items
4 // Note: this is an optional class.
5 // Author: David Webster
9 // Copyright: (c) David Webster
10 // Licence: wxWindows licence
11 ///////////////////////////////////////////////////////////////////////////////
13 #ifndef _WX_CHECKLST_H_
14 #define _WX_CHECKLST_H_
20 class wxOwnerDrawn
; // so the compiler knows, it is a class.
22 class wxCheckListBoxItem
; // fwd decl, define in checklst.cpp
24 class WXDLLEXPORT wxCheckListBox
: public wxListBox
26 DECLARE_DYNAMIC_CLASS(wxCheckListBox
)
30 wxCheckListBox(wxWindow
*parent
, wxWindowID id
,
31 const wxPoint
& pos
= wxDefaultPosition
,
32 const wxSize
& size
= wxDefaultSize
,
34 const wxString choices
[] = NULL
,
37 const wxValidator
& validator
= wxDefaultValidator
,
39 const wxString
& name
= wxListBoxNameStr
);
41 // override base class virtuals
42 virtual void Delete(int n
);
43 virtual void InsertItems(int nItems
, const wxString items
[], int pos
);
45 virtual bool SetFont( const wxFont
&font
);
47 // items may be checked
48 bool IsChecked(size_t uiIndex
) const;
49 void Check(size_t uiIndex
, bool bCheck
= TRUE
);
52 size_t GetItemHeight() const { return m_nItemHeight
; }
55 // we create our items ourselves and they have non-standard size,
56 // so we need to override these functions
57 virtual wxOwnerDrawn
*CreateItem(size_t n
);
58 // virtual bool OS2OnMeasure(WXMEASUREITEMSTRUCT *item);
60 // pressing space or clicking the check box toggles the item
61 void OnChar(wxKeyEvent
& event
);
62 void OnLeftClick(wxMouseEvent
& event
);
65 size_t m_nItemHeight
; // height of checklistbox items (the same for all)
67 //Virtual function hiding suppression, do not use
68 virtual wxControl
*CreateItem(const wxItemResource
* childResource
,
69 const wxItemResource
* parentResource
,
70 const wxResourceTable
*table
= (const wxResourceTable
*) NULL
)
71 { return(wxWindowBase::CreateItem(childResource
, parentResource
, table
));};