]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/checklst.h
New native OS/2 list control support.
[wxWidgets.git] / include / wx / os2 / checklst.h
index 19b4ccb8d35bda67a8213d977bd568346665fad6..c1d6b71f8bb3a3ef501582989dbecdb1a37b3045 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:      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/setup.h"
 
-#include "wx/listbox.h"
+class wxOwnerDrawn; // so the compiler knows, it is a class.
 
-typedef   unsigned int  size_t;
+class wxCheckListBoxItem; // fwd decl, define in checklst.cpp
 
-class wxCheckListBox : public wxListBox
+class WXDLLEXPORT wxCheckListBox : public wxListBox
 {
-  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
+                  );
+
+    //
+    // Override base class virtuals
+    //
+    virtual void Delete(int n);
+    virtual void InsertItems( int            nItems
+                             ,const wxString asItems[]
+                             ,int            nPos
+                            );
+
+    virtual bool SetFont(const wxFont &rFont);
+
+    //
+    // Items may be checked
+    //
+    bool IsChecked(size_t uiIndex) const;
+    void Check( size_t 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);
+
+    //
+    // 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)
+
+    //
+    // Virtual function hiding suppression, do not use
+    //
+    virtual wxControl* CreateItem( const wxItemResource*  pChildResource
+                                  ,const wxItemResource*  pParentResource
+                                  ,const wxResourceTable* pTable = (const wxResourceTable *) NULL
+                                 )
+    {
+        return(wxWindowBase::CreateItem( pChildResource
+                                        ,pParentResource
+                                        ,pTable
+                                       ));
+    }
+    DECLARE_DYNAMIC_CLASS(wxCheckListBox)
+    DECLARE_EVENT_TABLE()
+}; // end of CLASS wxCheckListBoxItem
 
 #endif
-    // _WX_CHECKLST_H_
+   // _WX_CHECKLST_H_