]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/checklst.h
Fix wxPropertyGrid::GetPropertyRect when the last item is collapsed.
[wxWidgets.git] / include / wx / msw / checklst.h
index 255a564fd39c3c321791db8c5ed6b96fb47011e3..21b8651ac0d0cd3527ca14b59192e5ac33d8d615 100644 (file)
@@ -1,10 +1,9 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        checklst.h
+// Name:        wx/msw/checklst.h
 // Purpose:     wxCheckListBox class - a listbox with checkable items
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     16.11.97
-// RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 #ifndef   __CHECKLST__H_
 #define   __CHECKLST__H_
 
-#ifdef __GNUG__
-#pragma interface "checklst.h"
-#endif
-
-#include "wx/setup.h"
-
 #if !wxUSE_OWNER_DRAWN
   #error  "wxCheckListBox class requires owner-drawn functionality."
 #endif
 
-#include "wx/listbox.h"
+class WXDLLIMPEXP_FWD_CORE wxOwnerDrawn;
+class WXDLLIMPEXP_FWD_CORE wxCheckListBoxItem; // fwd decl, defined in checklst.cpp
 
-class wxCheckListBoxItem; // fwd decl, defined in checklst.cpp
-
-class WXDLLEXPORT wxCheckListBox : public wxListBox
+class WXDLLIMPEXP_CORE wxCheckListBox : public wxCheckListBoxBase
 {
-  DECLARE_DYNAMIC_CLASS(wxCheckListBox)
 public:
-  // ctors
-  wxCheckListBox();
-  wxCheckListBox(wxWindow *parent, wxWindowID id,
-                 const wxPoint& pos = wxDefaultPosition,
-                 const wxSize& size = wxDefaultSize,
-                 int nStrings = 0,
-                 const wxString choices[] = NULL,
-                 long style = 0,
-                 const wxValidator& validator = wxDefaultValidator,
-                 const wxString& name = wxListBoxNameStr);
-
-  // override base class virtuals
-  virtual void Delete(int n);
-
-  virtual bool SetFont( const wxFont &font );
-
-  // items may be checked
-  bool IsChecked(size_t uiIndex) const;
-  void Check(size_t uiIndex, bool bCheck = TRUE);
-
-  // accessors
-  size_t GetItemHeight() const { return m_nItemHeight; }
+    // ctors
+    wxCheckListBox();
+    wxCheckListBox(wxWindow *parent, wxWindowID id,
+                   const wxPoint& pos = wxDefaultPosition,
+                   const wxSize& size = wxDefaultSize,
+                   int nStrings = 0,
+                   const wxString choices[] = NULL,
+                   long style = 0,
+                   const wxValidator& validator = wxDefaultValidator,
+                   const wxString& name = wxListBoxNameStr);
+    wxCheckListBox(wxWindow *parent, wxWindowID id,
+                   const wxPoint& pos,
+                   const wxSize& size,
+                   const wxArrayString& choices,
+                   long style = 0,
+                   const wxValidator& validator = wxDefaultValidator,
+                   const wxString& name = wxListBoxNameStr);
+
+    bool Create(wxWindow *parent, wxWindowID id,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                int n = 0, const wxString choices[] = NULL,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxListBoxNameStr);
+    bool Create(wxWindow *parent, wxWindowID id,
+                const wxPoint& pos,
+                const wxSize& size,
+                const wxArrayString& choices,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxListBoxNameStr);
+
+    // items may be checked
+    virtual bool IsChecked(unsigned int uiIndex) const;
+    virtual void Check(unsigned int uiIndex, bool bCheck = true);
+    virtual void Toggle(unsigned int uiIndex);
+
+    // we create our items ourselves and they have non-standard size,
+    // so we need to override these functions
+    virtual wxOwnerDrawn *CreateLboxItem(size_t n);
+    virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
 
 protected:
-  // we create our items ourselves and they have non-standard size,
-  // so we need to override these functions
-  virtual wxOwnerDrawn *CreateItem(size_t n);
-  virtual bool          MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
-
-  // pressing space or clicking the check box toggles the item
-  void OnChar(wxKeyEvent& event);
-  void OnLeftClick(wxMouseEvent& event);
-
-private:
-  size_t    m_nItemHeight;  // height of checklistbox items (the same for all)
-
-  DECLARE_EVENT_TABLE()
+    // pressing space or clicking the check box toggles the item
+    void OnKeyDown(wxKeyEvent& event);
+    void OnLeftClick(wxMouseEvent& event);
+
+    // send an "item checked" event
+    void SendEvent(unsigned int uiIndex)
+    {
+        wxCommandEvent event(wxEVT_CHECKLISTBOX, GetId());
+        event.SetInt(uiIndex);
+        event.SetEventObject(this);
+        event.SetString(GetString(uiIndex));
+        ProcessCommand(event);
+    }
+
+    wxSize DoGetBestClientSize() const;
+
+    DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox)
 };
 
 #endif    //_CHECKLST_H