]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/editlbox.cpp
use wxWANTS_CHARS to allow arrows to work inside the control
[wxWidgets.git] / src / generic / editlbox.cpp
index 76a2d5360ff8f9436adfa35026a7516f569c30b9..c1970a993a37c1059e301978d7d403dcd27ed460 100644 (file)
 #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",
@@ -48,7 +54,7 @@ static char * eledit_xpm[] = {
 "                ",
 "                "};
 
-static char * elnew_xpm[] = {
+static const char * elnew_xpm[] = {
 "16 16 5 1",
 "   c None",
 ".  c #7F7F7F",
@@ -72,7 +78,7 @@ static char * elnew_xpm[] = {
 "                ",
 "                "};
 
-static char * eldel_xpm[] = {
+static const char * eldel_xpm[] = {
 "16 16 3 1",
 "   c None",
 ".  c #7F0000",
@@ -94,7 +100,7 @@ static char * eldel_xpm[] = {
 "   .         .  ",
 "                "};
 
-static char * eldown_xpm[] = {
+static const char * eldown_xpm[] = {
 "16 16 2 1",
 "   c None",
 ".  c #000000",
@@ -115,7 +121,7 @@ static char * eldown_xpm[] = {
 "                ",
 "                "};
 
-static char * elup_xpm[] = {
+static const char * elup_xpm[] = {
 "16 16 2 1",
 "   c None",
 ".  c #000000",
@@ -182,16 +188,21 @@ BEGIN_EVENT_TABLE(CleverListCtrl, wxListCtrl)
    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)
@@ -203,15 +214,16 @@ BEGIN_EVENT_TABLE(wxEditableListBox, wxPanel)
     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);
 
@@ -281,6 +293,8 @@ wxEditableListBox::wxEditableListBox(wxWindow *parent, wxWindowID id,
 
     SetSizer(sizer);
     Layout();
+
+    return true;
 }
 
 void wxEditableListBox::SetStrings(const wxArrayString& strings)