]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/checklst.h
wxWindow::Freeze()/Thaw() can now be nested
[wxWidgets.git] / include / wx / mac / checklst.h
index 64514452fefbf10d6ff3abb4cb8ef9e5aee10a47..35f3bd885deebeede877992f0971fea39bbc0f2a 100644 (file)
 // Name:        checklst.h
 // Purpose:     wxCheckListBox class - a listbox with checkable items
 //              Note: this is an optional class.
-// Author:      AUTHOR
-// Modified by: 
-// Created:     ??/??/98
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     1998-01-01
 // RCS-ID:      $Id$
-// Copyright:   (c) AUTHOR
+// Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_CHECKLST_H_
 #define _WX_CHECKLST_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "checklst.h"
 #endif
 
-#include "wx/listbox.h"
-
-#if !defined(__MWERKS__) && !defined(__MACH__)
+#if !defined(__MWERKS__) && !defined(__UNIX__)
 typedef   unsigned int  size_t;
 #endif
 
-class wxCheckListBox : public wxListBox
+class WXDLLEXPORT 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);
+    wxCheckListBox() { Init(); }
+    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)
+    {
+        Init();
+
+        Create(parent, id, pos, size, nStrings, choices, style, validator, name);
+    }
+    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)
+    {
+        Init();
+
+        Create(parent, id, pos, size, choices, style, validator, name);
+    }
+
+    bool Create(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);
+    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);
+  void OnChar(wxKeyEvent& event) ;
+  void OnLeftClick(wxMouseEvent& event) ;
+
+    // metrics
+    wxInt32 m_checkBoxWidth;
+    wxInt32 m_checkBoxHeight;
+    wxInt32    m_TextBaseLineOffset;
+
+    // the array containing the checked status of the items
+    wxArrayInt m_checks;
 
+    // override all methods which add/delete items to update m_checks array as
+    // well
+    virtual void Delete(int n);
+protected:
+    virtual int DoAppend(const wxString& item);
+    virtual void DoInsertItems(const wxArrayString& items, int pos);
+    virtual void DoSetItems(const wxArrayString& items, void **clientData);
+    virtual void DoClear();
+    // common part of all ctors
+    void Init();
+private:
   DECLARE_EVENT_TABLE()
 };