1///////////////////////////////////////////////////////////////////////////////
2// Name:        wx/msw/wince/checklst.h
3// Purpose:     wxCheckListBox class - a listbox with checkable items
4// Author:      Wlodzimierz ABX Skiba
5// Modified by:
6// Created:     30.10.2005
7// RCS-ID:      $Id: checklst.h 38319 2006-03-23 22:05:23Z VZ $
8// Copyright:   (c) Wlodzimierz Skiba
9// Licence:     wxWindows licence
10///////////////////////////////////////////////////////////////////////////////
11
12#ifndef   __CHECKLSTCE__H_
13#define   __CHECKLSTCE__H_
14
15class WXDLLEXPORT wxCheckListBox : public wxCheckListBoxBase
16{
17public:
18    // ctors
19    wxCheckListBox();
20    wxCheckListBox(wxWindow *parent, wxWindowID id,
21                   const wxPoint& pos = wxDefaultPosition,
22                   const wxSize& size = wxDefaultSize,
23                   int nStrings = 0,
24                   const wxString choices[] = NULL,
25                   long style = 0,
26                   const wxValidator& validator = wxDefaultValidator,
27                   const wxString& name = wxListBoxNameStr);
28    wxCheckListBox(wxWindow *parent, wxWindowID id,
29                   const wxPoint& pos,
30                   const wxSize& size,
31                   const wxArrayString& choices,
32                   long style = 0,
33                   const wxValidator& validator = wxDefaultValidator,
34                   const wxString& name = wxListBoxNameStr);
35    virtual ~wxCheckListBox();
36
37    bool Create(wxWindow *parent, wxWindowID id,
38                const wxPoint& pos = wxDefaultPosition,
39                const wxSize& size = wxDefaultSize,
40                int n = 0, const wxString choices[] = NULL,
41                long style = 0,
42                const wxValidator& validator = wxDefaultValidator,
43                const wxString& name = wxListBoxNameStr);
44    bool Create(wxWindow *parent, wxWindowID id,
45                const wxPoint& pos,
46                const wxSize& size,
47                const wxArrayString& choices,
48                long style = 0,
49                const wxValidator& validator = wxDefaultValidator,
50                const wxString& name = wxListBoxNameStr);
51
52    // override base class virtuals
53    virtual void Delete(unsigned int n);
54
55    // items may be checked
56    virtual bool IsChecked(unsigned int uiIndex) const;
57    virtual void Check(unsigned int uiIndex, bool bCheck = true);
58
59    // public interface derived from wxListBox and lower classes
60    virtual void Clear();
61    virtual unsigned int GetCount() const;
62    virtual int GetSelection() const;
63    virtual int GetSelections(wxArrayInt& aSelections) const;
64    virtual wxString GetString(unsigned int n) const;
65    virtual bool IsSelected(int n) const;
66    virtual void SetString(unsigned int n, const wxString& s);
67
68    // Implementation
69    virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
70protected:
71
72    void OnSize(wxSizeEvent& event);
73
74    // protected interface derived from wxListBox and lower classes
75    virtual int DoAppend(const wxString& item);
76    virtual void* DoGetItemClientData(unsigned int n) const;
77    virtual wxClientData* DoGetItemClientObject(unsigned int n) const;
78    virtual void DoInsertItems(const wxArrayString& items, unsigned int pos);
79    virtual void DoSetFirstItem(int n);
80    virtual void DoSetItemClientData(unsigned int n, void* clientData);
81    virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
82    virtual void DoSetItems(const wxArrayString& items, void **clientData);
83    virtual void DoSetSelection(int n, bool select);
84    // convert our styles to Windows
85    virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
86
87private:
88
89    wxArrayPtrVoid m_itemsClientData;
90
91    DECLARE_EVENT_TABLE()
92    DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox)
93};
94
95#endif    //_CHECKLSTCE_H
96