]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/checklst.h
fixing 'id' objc.h collisions, listbox rewrite
[wxWidgets.git] / include / wx / os2 / checklst.h
index 19b4ccb8d35bda67a8213d977bd568346665fad6..2a23c9645d5ca98f90ed5f662d7d5c15fcc6591c 100644 (file)
@@ -1,47 +1,91 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        checklst.h
+// Name:        wx/os2/checklst.h
 // Purpose:     wxCheckListBox class - a listbox with checkable items
 //              Note: this is an optional class.
-// Author:      AUTHOR
-// Modified by: 
-// Created:     ??/??/98
+// Author:      David Webster
+// Modified by:
+// Created:     10/13/99
 // RCS-ID:      $Id$
-// Copyright:   (c) AUTHOR
+// Copyright:   (c) David Webster
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_CHECKLST_H_
 #define _WX_CHECKLST_H_
 
-#ifdef __GNUG__
-#pragma interface "checklst.h"
-#endif
+#include <stddef.h>
 
-#include "wx/listbox.h"
+#include "wx/defs.h"
 
-typedef   unsigned int  size_t;
+class wxOwnerDrawn; // so the compiler knows, it is a class.
 
-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);
-
-  // items may be checked
-  bool  IsChecked(size_t uiIndex) const;
-  void  Check(size_t uiIndex, bool bCheck = TRUE);
-
-  DECLARE_EVENT_TABLE()
-};
+    //
+    // Ctors
+    //
+    wxCheckListBox();
+    wxCheckListBox( wxWindow*          pParent
+                   ,wxWindowID         vId
+                   ,const wxPoint&     rPos = wxDefaultPosition
+                   ,const wxSize&      vSize = wxDefaultSize
+                   ,int                nStrings = 0
+                   ,const wxString     asChoices[] = NULL
+                   ,long               lStyle = 0
+                   ,const wxValidator& rValidator = wxDefaultValidator
+                   ,const wxString&    rsName = wxListBoxNameStr
+                  );
+    wxCheckListBox( wxWindow*            pParent
+                   ,wxWindowID           vId
+                   ,const wxPoint&       rPos
+                   ,const wxSize&        vSize
+                   ,const wxArrayString& asChoices
+                   ,long                 lStyle = 0
+                   ,const wxValidator&   rValidator = wxDefaultValidator
+                   ,const wxString&      rsName = wxListBoxNameStr
+                  );
+
+    //
+    // Override base class virtuals
+    //
+    virtual void Delete(unsigned int n);
+
+    virtual bool SetFont(const wxFont &rFont);
+
+    //
+    // Items may be checked
+    //
+    bool IsChecked(unsigned int uiIndex) const;
+    void Check(unsigned int uiIndex, bool bCheck = true);
+
+    //
+    // Accessors
+    //
+    size_t GetItemHeight(void) const { return m_nItemHeight; }
+
+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 long          OS2OnMeasure(WXMEASUREITEMSTRUCT* pItem);
+
+    virtual void DoInsertItems(const wxArrayString& items, unsigned int pos);
+
+    //
+    // Pressing space or clicking the check box toggles the item
+    //
+    void OnChar(wxKeyEvent& rEvent);
+    void OnLeftClick(wxMouseEvent& rEvent);
+
+private:
+    size_t m_nItemHeight;  // height of checklistbox items (the same for all)
+
+    DECLARE_DYNAMIC_CLASS(wxCheckListBox)
+    DECLARE_EVENT_TABLE()
+}; // end of CLASS wxCheckListBox
 
 #endif
-    // _WX_CHECKLST_H_
+   // _WX_CHECKLST_H_