// Author: Julian Smart
// Modified by:
// Created: 01/02/97
-// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
{
public:
// ctors and such
- wxListBox();
+ wxListBox() { Init(); }
wxListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxListBoxNameStr)
{
+ Init();
+
Create(parent, id, pos, size, n, choices, style, validator, name);
}
wxListBox(wxWindow *parent, wxWindowID id,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxListBoxNameStr)
{
+ Init();
+
Create(parent, id, pos, size, choices, style, validator, name);
}
// ownerdrawn wxListBox and wxCheckListBox support
#if wxUSE_OWNER_DRAWN
// override base class virtuals
- virtual void Delete(unsigned int n);
virtual bool SetFont(const wxFont &font);
bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
// returns true if the platform should explicitly apply a theme border
virtual bool CanApplyThemeBorder() const { return false; }
+ virtual void OnInternalIdle();
+
protected:
virtual wxSize DoGetBestClientSize() const;
// this can't be called DoHitTest() because wxWindow already has this method
virtual int DoHitTestList(const wxPoint& point) const;
- bool m_updateHorizontalExtent;
- virtual void OnInternalIdle();
+ // free memory (common part of Clear() and dtor)
+ void Free();
unsigned int m_noItems;
#endif
private:
+ // common part of all ctors
+ void Init();
+
+ // call this when items are added to or deleted from the listbox or an
+ // items text changes
+ void MSWOnItemsChanged();
+
+ // flag indicating whether the max horizontal extent should be updated,
+ // i.e. if we need to call SetHorizontalExtent() from OnInternalIdle()
+ bool m_updateHorizontalExtent;
+
+
DECLARE_DYNAMIC_CLASS_NO_COPY(wxListBox)
};