// forward decl for GetSelections()
class wxArrayInt;
-// forward decl for wxMacListControl data type.
-class wxMacListControl;
+// forward decl for wxListWidgetImpl implementation type.
+class wxListWidgetImpl;
// List box item
// List box control
// ----------------------------------------------------------------------------
+class WXDLLIMPEXP_FWD_CORE wxListWidgetColumn;
+
+class WXDLLIMPEXP_FWD_CORE wxListWidgetCellValue;
+
class WXDLLIMPEXP_CORE wxListBox : public wxListBoxBase
{
public:
const wxString& name = wxListBoxNameStr);
virtual ~wxListBox();
-
+
// implement base class pure virtuals
virtual void Refresh(bool eraseBack = true, const wxRect *rect = NULL);
virtual void SetString(unsigned int n, const wxString& s);
virtual int FindString(const wxString& s, bool bCase = false) const;
+ // data callbacks
+ virtual void GetValueCallback( unsigned int n, wxListWidgetColumn* col , wxListWidgetCellValue& value );
+ virtual void SetValueCallback( unsigned int n, wxListWidgetColumn* col , wxListWidgetCellValue& value );
+
virtual bool IsSelected(int n) const;
virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const;
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
- wxMacListControl* GetPeer() const;
+ wxListWidgetImpl* GetListPeer() const;
bool MacGetBlockEvents() const { return m_blockEvents; }
protected:
+ // callback for derived classes which may have to insert additional data
+ // at a certain line - which cannot be predetermined for sorted list data
+ virtual void OnItemInserted(unsigned int pos);
+
virtual void DoClear();
virtual void DoDeleteOneItem(unsigned int n);
bool m_blockEvents;
+ wxListWidgetColumn* m_textColumn;
+
+ // data storage (copied from univ)
+
+ // the array containing all items (it is sorted if the listbox has
+ // wxLB_SORT style)
+ union
+ {
+ wxArrayString *unsorted;
+ wxSortedArrayString *sorted;
+ } m_strings;
+
+ // and this one the client data (either void or wxClientData)
+ wxArrayPtrVoid m_itemsClientData;
+
private:
DECLARE_DYNAMIC_CLASS(wxListBox)
DECLARE_EVENT_TABLE()