X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e320a79f187558effb04d92020b470372bbe456..f8b1df0b15f843b8f47efb9bee38f1de0fa95020:/include/wx/os2/checklst.h diff --git a/include/wx/os2/checklst.h b/include/wx/os2/checklst.h index 19b4ccb8d3..db4f841bc6 100644 --- a/include/wx/os2/checklst.h +++ b/include/wx/os2/checklst.h @@ -1,47 +1,93 @@ /////////////////////////////////////////////////////////////////////////////// -// 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 -#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 int DoInsertItems(const wxArrayStringsAdapter & items, + unsigned int pos, + void **clientData, wxClientDataType type); + + // + // 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_