]> 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 8c1d964c082e67ce4eb334c7976c01077618456c..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: 
+// 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
-
-// No!
-// typedef   unsigned int  size_t;
-#include <stddef.h>
-
 #if !wxUSE_OWNER_DRAWN
   #error  "wxCheckListBox class requires owner-drawn functionality."
 #endif
 
-class wxCheckListBoxItem; // fwd decl, define in checklst.cpp
+class WXDLLIMPEXP_FWD_CORE wxOwnerDrawn;
+class WXDLLIMPEXP_FWD_CORE 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);
-//                 const wxFont& font = wxNullFont);
+    // 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
-  bool  IsChecked(size_t uiIndex) const;
-  void  Check(size_t uiIndex, bool bCheck = TRUE);
+    // 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);
 
-  // accessors
-  size_t  GetItemHeight() const { return m_nItemHeight; }
+    // 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 OnKeyDown(wxKeyEvent& event);
+    void OnLeftClick(wxMouseEvent& event);
 
-  // pressing space or clicking the check box toggles the item
-  void OnChar(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);
+    }
 
-private:
-  size_t    m_nItemHeight;  // height of checklistbox items (the same for all)
+    wxSize DoGetBestClientSize() const;
 
-  DECLARE_EVENT_TABLE()
+    DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox)
 };
 
 #endif    //_CHECKLST_H