1 /////////////////////////////////////////////////////////////////////////////// 2 // Name: wx/msw/checklst.h 3 // Purpose: wxCheckListBox class - a listbox with checkable items 4 // Author: Vadim Zeitlin 5 // Modified by: 6 // Created: 16.11.97 7 // RCS-ID: $Id: checklst.h 49563 2007-10-31 20:46:21Z VZ $ 8 // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> 9 // Licence: wxWindows licence 10 /////////////////////////////////////////////////////////////////////////////// 11 12 #ifndef __CHECKLST__H_ 13 #define __CHECKLST__H_ 14 15 #if !wxUSE_OWNER_DRAWN 16 #error "wxCheckListBox class requires owner-drawn functionality." 17 #endif 18 19 class WXDLLIMPEXP_FWD_CORE wxOwnerDrawn; 20 class WXDLLIMPEXP_FWD_CORE wxCheckListBoxItem; // fwd decl, defined in checklst.cpp 21 22 class WXDLLEXPORT wxCheckListBox : public wxCheckListBoxBase 23 { 24 public: 25 // ctors 26 wxCheckListBox(); 27 wxCheckListBox(wxWindow *parent, wxWindowID id, 28 const wxPoint& pos = wxDefaultPosition, 29 const wxSize& size = wxDefaultSize, 30 int nStrings = 0, 31 const wxString choices[] = NULL, 32 long style = 0, 33 const wxValidator& validator = wxDefaultValidator, 34 const wxString& name = wxListBoxNameStr); 35 wxCheckListBox(wxWindow *parent, wxWindowID id, 36 const wxPoint& pos, 37 const wxSize& size, 38 const wxArrayString& choices, 39 long style = 0, 40 const wxValidator& validator = wxDefaultValidator, 41 const wxString& name = wxListBoxNameStr); 42 43 bool Create(wxWindow *parent, wxWindowID id, 44 const wxPoint& pos = wxDefaultPosition, 45 const wxSize& size = wxDefaultSize, 46 int n = 0, const wxString choices[] = NULL, 47 long style = 0, 48 const wxValidator& validator = wxDefaultValidator, 49 const wxString& name = wxListBoxNameStr); 50 bool Create(wxWindow *parent, wxWindowID id, 51 const wxPoint& pos, 52 const wxSize& size, 53 const wxArrayString& choices, 54 long style = 0, 55 const wxValidator& validator = wxDefaultValidator, 56 const wxString& name = wxListBoxNameStr); 57 58 // override base class virtuals 59 virtual void Delete(unsigned int n); 60 61 virtual bool SetFont( const wxFont &font ); 62 63 // items may be checked 64 virtual bool IsChecked(unsigned int uiIndex) const; 65 virtual void Check(unsigned int uiIndex, bool bCheck = true); 66 67 // return the index of the item at this position or wxNOT_FOUND HitTest(const wxPoint & pt)68 int HitTest(const wxPoint& pt) const { return DoHitTestItem(pt.x, pt.y); } HitTest(wxCoord x,wxCoord y)69 int HitTest(wxCoord x, wxCoord y) const { return DoHitTestItem(x, y); } 70 71 // accessors GetItemHeight()72 size_t GetItemHeight() const { return m_nItemHeight; } 73 74 // we create our items ourselves and they have non-standard size, 75 // so we need to override these functions 76 virtual wxOwnerDrawn *CreateLboxItem(size_t n); 77 virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); 78 79 protected: 80 // this can't be called DoHitTest() because wxWindow already has this method 81 int DoHitTestItem(wxCoord x, wxCoord y) const; 82 83 // pressing space or clicking the check box toggles the item 84 void OnKeyDown(wxKeyEvent& event); 85 void OnLeftClick(wxMouseEvent& event); 86 87 wxSize DoGetBestSize() const; 88 89 private: 90 size_t m_nItemHeight; // height of checklistbox items (the same for all) 91 92 DECLARE_EVENT_TABLE() 93 DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox) 94 }; 95 96 #endif //_CHECKLST_H 97