X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a419c3b116bef0b1e58e2ed0aea6ed0d053f7c21..e4dd1e19a281da5d1e23b12fd76c9fc242bcb1d6:/include/wx/os2/checklst.h diff --git a/include/wx/os2/checklst.h b/include/wx/os2/checklst.h index 0834797550..2a23c9645d 100644 --- a/include/wx/os2/checklst.h +++ b/include/wx/os2/checklst.h @@ -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 +// 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 -#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_