1 /////////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     wxCheckListBox class - a listbox with checkable items 
   4 // Author:      Vadim Zeitlin 
   8 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> 
   9 // Licence:     wxWindows licence 
  10 /////////////////////////////////////////////////////////////////////////////// 
  12 #ifndef   __CHECKLST__H_ 
  13 #define   __CHECKLST__H_ 
  16 #pragma interface "checklst.h" 
  19 #if !wxUSE_OWNER_DRAWN 
  20   #error  "wxCheckListBox class requires owner-drawn functionality." 
  23 class WXDLLEXPORT wxOwnerDrawn
; 
  24 class WXDLLEXPORT wxCheckListBoxItem
; // fwd decl, defined in checklst.cpp 
  26 class WXDLLEXPORT wxCheckListBox 
: public wxCheckListBoxBase
 
  31   wxCheckListBox(wxWindow 
*parent
, wxWindowID id
, 
  32                  const wxPoint
& pos 
= wxDefaultPosition
, 
  33                  const wxSize
& size 
= wxDefaultSize
, 
  35                  const wxString choices
[] = NULL
, 
  37                  const wxValidator
& validator 
= wxDefaultValidator
, 
  38                  const wxString
& name 
= wxListBoxNameStr
); 
  40   bool Create(wxWindow 
*parent
, wxWindowID id
, 
  41                 const wxPoint
& pos 
= wxDefaultPosition
, 
  42                 const wxSize
& size 
= wxDefaultSize
, 
  43                 int n 
= 0, const wxString choices
[] = NULL
, 
  45                 const wxValidator
& validator 
= wxDefaultValidator
, 
  46                 const wxString
& name 
= wxListBoxNameStr
); 
  48   // override base class virtuals 
  49   virtual void Delete(int n
); 
  51   virtual bool SetFont( const wxFont 
&font 
); 
  53   // items may be checked 
  54   virtual bool IsChecked(size_t uiIndex
) const; 
  55   virtual void Check(size_t uiIndex
, bool bCheck 
= TRUE
); 
  57   // return the index of the item at this position or wxNOT_FOUND 
  58   int HitTest(const wxPoint
& pt
) const { return DoHitTestItem(pt
.x
, pt
.y
); } 
  59   int HitTest(wxCoord x
, wxCoord y
) const { return DoHitTestItem(x
, y
); } 
  62   size_t GetItemHeight() const { return m_nItemHeight
; } 
  65   // we create our items ourselves and they have non-standard size, 
  66   // so we need to override these functions 
  67   virtual wxOwnerDrawn 
*CreateLboxItem(size_t n
); 
  68   virtual bool          MSWOnMeasure(WXMEASUREITEMSTRUCT 
*item
); 
  70   // this can't be called DoHitTest() because wxWindow already has this method 
  71   int DoHitTestItem(wxCoord x
, wxCoord y
) const; 
  73   // pressing space or clicking the check box toggles the item 
  74   void OnKeyDown(wxKeyEvent
& event
); 
  75   void OnLeftClick(wxMouseEvent
& event
); 
  78   size_t    m_nItemHeight
;  // height of checklistbox items (the same for all) 
  81   DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox
)