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