]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/checklst.h
We need wxUSE_COMMON_DIALOGS for PPC
[wxWidgets.git] / include / wx / os2 / checklst.h
index 0834797550aae5d17ea6cc91bf1c77a9b03989a5..d2d75ec498f412470b3d3476a4452cc8b1573710 100644 (file)
@@ -2,46 +2,96 @@
 // Name:        checklst.h
 // Purpose:     wxCheckListBox class - a listbox with checkable items
 //              Note: this is an optional class.
-// Author:      AUTHOR
+// Author:      David Webster
 // Modified by:
-// Created:     ??/??/98
+// 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
+                  );
+    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(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)
+
+    DECLARE_DYNAMIC_CLASS(wxCheckListBox)
+    DECLARE_EVENT_TABLE()
+}; // end of CLASS wxCheckListBoxItem
 
 #endif
    // _WX_CHECKLST_H_