1/////////////////////////////////////////////////////////////////////////////// 2// Name: wx/palmos/checklst.h 3// Purpose: wxCheckListBox class - a listbox with checkable items 4// Author: William Osborne - minimal working wxPalmOS port 5// Modified by: 6// Created: 10/13/04 7// RCS-ID: $Id: checklst.h 38319 2006-03-23 22:05:23Z VZ $ 8// Copyright: (c) William Osborne 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 19class WXDLLEXPORT wxOwnerDrawn; 20class WXDLLEXPORT wxCheckListBoxItem; // fwd decl, defined in checklst.cpp 21 22class WXDLLEXPORT wxCheckListBox : public wxCheckListBoxBase 23{ 24public: 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 68 int HitTest(const wxPoint& pt) const { return DoHitTestItem(pt.x, pt.y); } 69 int HitTest(wxCoord x, wxCoord y) const { return DoHitTestItem(x, y); } 70 71 // accessors 72 size_t GetItemHeight() const { return m_nItemHeight; } 73 74protected: 75 // we create our items ourselves and they have non-standard size, 76 // so we need to override these functions 77 virtual wxOwnerDrawn *CreateLboxItem(size_t n); 78 virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); 79 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 87private: 88 size_t m_nItemHeight; // height of checklistbox items (the same for all) 89 90 DECLARE_EVENT_TABLE() 91 DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox) 92}; 93 94#endif //_CHECKLST_H 95