]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/checklst.h
Implement HasSelection for the OSX WebKit backend.
[wxWidgets.git] / include / wx / msw / checklst.h
index 71dc955261122029d69d34c4acabd932ec2d930b..31601d86bf1ac88713bff87754c0610be3592949 100644 (file)
@@ -1,66 +1,89 @@
 ///////////////////////////////////////////////////////////////////////////////
-// 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 license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifndef   __CHECKLST_H__
-#define   __CHECKLST_H__
+#ifndef   __CHECKLST__H_
+#define   __CHECKLST__H_
 
-#ifdef __GNUG__
-#pragma interface "checklst.h"
-#endif
-
-typedef   unsigned int  uint;
-
-#if !USE_OWNER_DRAWN
+#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 wxCheckListBox : public wxListBox
+class WXDLLIMPEXP_CORE wxCheckListBox : public wxCheckListBoxBase
 {
-  DECLARE_DYNAMIC_CLASS(wxCheckListBox)
 public:
-  // ctors
-  wxCheckListBox();
-  wxCheckListBox(wxWindow *parent, const wxWindowID id,
-                 const wxPoint& pos = wxDefaultPosition,
-                 const wxSize& size = wxDefaultSize,
-                 const int nStrings = 0, 
-                 const wxString choices[] = NULL,
-                 const 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(uint uiIndex) const;
-  void  Check(uint 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
-  uint  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(uint 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_COMMAND_CHECKLISTBOX_TOGGLED, GetId());
+        event.SetInt(uiIndex);
+        event.SetEventObject(this);
+        event.SetString(GetString(uiIndex));
+        ProcessCommand(event);
+    }
 
-private:
-  uint    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