// ----------------------------------------------------------------------------
// change the current item
-#define wxACTION_LISTBOX_SETFOCUS _T("setfocus") // select the item
-#define wxACTION_LISTBOX_MOVEDOWN _T("down") // select item below
-#define wxACTION_LISTBOX_MOVEUP _T("up") // select item above
-#define wxACTION_LISTBOX_PAGEDOWN _T("pagedown") // go page down
-#define wxACTION_LISTBOX_PAGEUP _T("pageup") // go page up
-#define wxACTION_LISTBOX_START _T("start") // go to first item
-#define wxACTION_LISTBOX_END _T("end") // go to last item
-#define wxACTION_LISTBOX_FIND _T("find") // find item by 1st letter
+#define wxACTION_LISTBOX_SETFOCUS wxT("setfocus") // select the item
+#define wxACTION_LISTBOX_MOVEDOWN wxT("down") // select item below
+#define wxACTION_LISTBOX_MOVEUP wxT("up") // select item above
+#define wxACTION_LISTBOX_PAGEDOWN wxT("pagedown") // go page down
+#define wxACTION_LISTBOX_PAGEUP wxT("pageup") // go page up
+#define wxACTION_LISTBOX_START wxT("start") // go to first item
+#define wxACTION_LISTBOX_END wxT("end") // go to last item
+#define wxACTION_LISTBOX_FIND wxT("find") // find item by 1st letter
// do something with the current item
-#define wxACTION_LISTBOX_ACTIVATE _T("activate") // activate (choose)
-#define wxACTION_LISTBOX_TOGGLE _T("toggle") // togglee selected state
-#define wxACTION_LISTBOX_SELECT _T("select") // sel this, unsel others
-#define wxACTION_LISTBOX_SELECTADD _T("selectadd") // add to selection
-#define wxACTION_LISTBOX_UNSELECT _T("unselect") // unselect
-#define wxACTION_LISTBOX_ANCHOR _T("selanchor") // anchor selection
+#define wxACTION_LISTBOX_ACTIVATE wxT("activate") // activate (choose)
+#define wxACTION_LISTBOX_TOGGLE wxT("toggle") // togglee selected state
+#define wxACTION_LISTBOX_SELECT wxT("select") // sel this, unsel others
+#define wxACTION_LISTBOX_SELECTADD wxT("selectadd") // add to selection
+#define wxACTION_LISTBOX_UNSELECT wxT("unselect") // unselect
+#define wxACTION_LISTBOX_ANCHOR wxT("selanchor") // anchor selection
// do something with the selection globally (not for single selection ones)
-#define wxACTION_LISTBOX_SELECTALL _T("selectall") // select all items
-#define wxACTION_LISTBOX_UNSELECTALL _T("unselectall") // unselect all items
-#define wxACTION_LISTBOX_SELTOGGLE _T("togglesel") // invert the selection
-#define wxACTION_LISTBOX_EXTENDSEL _T("extend") // extend to item
+#define wxACTION_LISTBOX_SELECTALL wxT("selectall") // select all items
+#define wxACTION_LISTBOX_UNSELECTALL wxT("unselectall") // unselect all items
+#define wxACTION_LISTBOX_SELTOGGLE wxT("togglesel") // invert the selection
+#define wxACTION_LISTBOX_EXTENDSEL wxT("extend") // extend to item
// ----------------------------------------------------------------------------
// wxListBox: a list of selectable items
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxListBox : public wxListBoxBase, public wxScrollHelper
+class WXDLLIMPEXP_CORE wxListBox : public wxListBoxBase, public wxScrollHelper
{
public:
// ctors and such
virtual void DoClear();
virtual void DoDeleteOneItem(unsigned int n);
- virtual unsigned int GetCount() const
- { return (unsigned int)m_strings->GetCount(); }
- virtual wxString GetString(unsigned int n) const
- { return m_strings->Item(n); }
+ virtual unsigned int GetCount() const;
+ virtual wxString GetString(unsigned int n) const;
virtual void SetString(unsigned int n, const wxString& s);
- virtual int FindString(const wxString& s, bool bCase = false) const
- { return m_strings->Index(s, bCase); }
+ virtual int FindString(const wxString& s, bool bCase = false) const;
virtual bool IsSelected(int n) const
{ return m_selections.Index(n) != wxNOT_FOUND; }
wxClientDataType type);
// universal wxComboBox implementation internally uses wxListBox
- friend class WXDLLEXPORT wxComboBox;
+ friend class WXDLLIMPEXP_FWD_CORE wxComboBox;
virtual void DoSetFirstItem(int n);
// the array containing all items (it is sorted if the listbox has
// wxLB_SORT style)
- wxArrayString* m_strings;
+ union
+ {
+ wxArrayString *unsorted;
+ wxSortedArrayString *sorted;
+ } m_strings;
// this array contains the indices of the selected items (for the single
// selection listboxes only the first element of it is used and contains