#pragma hdrstop
#endif
+#if wxUSE_EDITABLELISTBOX
+
// for all others, include the necessary headers (this file is usually all you
// need because it includes almost all "standard" wxWidgets headers)
#ifndef WX_PRECOMP
#include "wx/sizer.h"
#include "wx/listctrl.h"
-static char * eledit_xpm[] = {
+// ============================================================================
+// implementation
+// ============================================================================
+
+const wxChar wxEditableListBoxNameStr[] = wxT("editableListBox");
+
+static const char * eledit_xpm[] = {
"16 16 3 1",
" c None",
". c #000000",
" ",
" "};
-static char * elnew_xpm[] = {
+static const char * elnew_xpm[] = {
"16 16 5 1",
" c None",
". c #7F7F7F",
" ",
" "};
-static char * eldel_xpm[] = {
+static const char * eldel_xpm[] = {
"16 16 3 1",
" c None",
". c #7F0000",
" . . ",
" "};
-static char * eldown_xpm[] = {
+static const char * eldown_xpm[] = {
"16 16 2 1",
" c None",
". c #000000",
" ",
" "};
-static char * elup_xpm[] = {
+static const char * elup_xpm[] = {
"16 16 2 1",
" c None",
". c #000000",
EVT_SIZE(CleverListCtrl::OnSize)
END_EVENT_TABLE()
+
+// ----------------------------------------------------------------------------
+// wxEditableListBox
+// ----------------------------------------------------------------------------
+
IMPLEMENT_CLASS(wxEditableListBox, wxPanel)
// 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();
+const wxWindowIDRef wxID_ELB_DELETE = wxWindow::NewControlId();
+const wxWindowIDRef wxID_ELB_EDIT = wxWindow::NewControlId();
+const wxWindowIDRef wxID_ELB_NEW = wxWindow::NewControlId();
+const wxWindowIDRef wxID_ELB_UP = wxWindow::NewControlId();
+const wxWindowIDRef wxID_ELB_DOWN = wxWindow::NewControlId();
+const wxWindowIDRef wxID_ELB_LISTCTRL = wxWindow::NewControlId();
BEGIN_EVENT_TABLE(wxEditableListBox, wxPanel)
EVT_LIST_ITEM_SELECTED(wxID_ELB_LISTCTRL, wxEditableListBox::OnItemSelected)
EVT_BUTTON(wxID_ELB_DELETE, wxEditableListBox::OnDelItem)
END_EVENT_TABLE()
-wxEditableListBox::wxEditableListBox(wxWindow *parent, wxWindowID id,
+bool wxEditableListBox::Create(wxWindow *parent, wxWindowID id,
const wxString& label,
const wxPoint& pos, const wxSize& size,
long style,
const wxString& name)
- : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL, name)
{
+ if (!wxPanel::Create(parent, id, pos, size, wxTAB_TRAVERSAL, name))
+ return false;
+
m_style = style;
- m_bEdit = m_bNew = m_bDel = m_bUp = m_bDown = NULL;
wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
SetSizer(sizer);
Layout();
+
+ return true;
}
void wxEditableListBox::SetStrings(const wxArrayString& strings)
m_listCtrl->SetItemState(m_selection + 1,
wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
}
+
+#endif // wxUSE_EDITABLELISTBOX