IMPLEMENT_CLASS(wxEditableListBox, wxPanel)
-enum
-{
- // ID value doesn't matter, it won't propagate out of wxEditableListBox
- // instance
- wxID_ELB_DELETE = wxID_HIGHEST + 1,
- wxID_ELB_NEW,
- wxID_ELB_UP,
- wxID_ELB_DOWN,
- wxID_ELB_EDIT,
- wxID_ELD_LISTCTRL
-};
+// NB: generate the IDs at runtime to avoid conflict with XRCID values,
+// they could cause XRCCTRL() failures in XRC-based dialogs
+const int wxID_ELB_DELETE = wxNewId();
+const int wxID_ELB_EDIT = wxNewId();
+const int wxID_ELB_NEW = wxNewId();
+const int wxID_ELB_UP = wxNewId();
+const int wxID_ELB_DOWN = wxNewId();
+const int wxID_ELB_LISTCTRL = wxNewId();
BEGIN_EVENT_TABLE(wxEditableListBox, wxPanel)
- EVT_LIST_ITEM_SELECTED(wxID_ELD_LISTCTRL, wxEditableListBox::OnItemSelected)
- EVT_LIST_END_LABEL_EDIT(wxID_ELD_LISTCTRL, wxEditableListBox::OnEndLabelEdit)
+ EVT_LIST_ITEM_SELECTED(wxID_ELB_LISTCTRL, wxEditableListBox::OnItemSelected)
+ EVT_LIST_END_LABEL_EDIT(wxID_ELB_LISTCTRL, wxEditableListBox::OnEndLabelEdit)
EVT_BUTTON(wxID_ELB_NEW, wxEditableListBox::OnNewItem)
EVT_BUTTON(wxID_ELB_UP, wxEditableListBox::OnUpItem)
EVT_BUTTON(wxID_ELB_DOWN, wxEditableListBox::OnDownItem)
long st = wxLC_REPORT | wxLC_NO_HEADER | wxLC_SINGLE_SEL | wxSUNKEN_BORDER;
if ( style & wxEL_ALLOW_EDIT )
st |= wxLC_EDIT_LABELS;
- m_listCtrl = new CleverListCtrl(this, wxID_ELD_LISTCTRL,
+ m_listCtrl = new CleverListCtrl(this, wxID_ELB_LISTCTRL,
wxDefaultPosition, wxDefaultSize, st);
wxArrayString empty_ar;
SetStrings(empty_ar);