]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/editlbox.h
Don't create multiple parent-less top level frames in layout sample.
[wxWidgets.git] / include / wx / editlbox.h
index 6b90901bc9a5963e941438fbfe074178df49c143..946fea8a2c626347448e941a30bf4ac8f2d571f5 100644 (file)
 #ifndef __WX_EDITLBOX_H__
 #define __WX_EDITLBOX_H__
 
+#include "wx/defs.h"
+
+#if wxUSE_EDITABLELISTBOX
+
 #include "wx/panel.h"
 
-class WXDLLEXPORT wxBitmapButton;
-class WXDLLEXPORT wxListCtrl;
-class WXDLLEXPORT wxListEvent;
+class WXDLLIMPEXP_FWD_CORE wxBitmapButton;
+class WXDLLIMPEXP_FWD_CORE wxListCtrl;
+class WXDLLIMPEXP_FWD_CORE wxListEvent;
 
 #define wxEL_ALLOW_NEW          0x0100
 #define wxEL_ALLOW_EDIT         0x0200
 #define wxEL_ALLOW_DELETE       0x0400
 #define wxEL_NO_REORDER         0x0800
+#define wxEL_DEFAULT_STYLE      (wxEL_ALLOW_NEW | wxEL_ALLOW_EDIT | wxEL_ALLOW_DELETE)
+
+extern WXDLLIMPEXP_DATA_ADV(const char) wxEditableListBoxNameStr[];
 
 // This class provides a composite control that lets the
 // user easily enter list of strings
@@ -28,12 +35,25 @@ class WXDLLEXPORT wxListEvent;
 class WXDLLIMPEXP_ADV wxEditableListBox : public wxPanel
 {
 public:
+    wxEditableListBox() { Init(); }
+
     wxEditableListBox(wxWindow *parent, wxWindowID id,
                       const wxString& label,
                       const wxPoint& pos = wxDefaultPosition,
                       const wxSize& size = wxDefaultSize,
-                      long style = wxEL_ALLOW_NEW | wxEL_ALLOW_EDIT | wxEL_ALLOW_DELETE,
-                      const wxString& name = wxT("editableListBox"));
+                      long style = wxEL_DEFAULT_STYLE,
+                      const wxString& name = wxEditableListBoxNameStr)
+    {
+        Init();
+        Create(parent, id, label, pos, size, style, name);
+    }
+
+    bool Create(wxWindow *parent, wxWindowID id,
+                const wxString& label,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = wxEL_DEFAULT_STYLE,
+                const wxString& name = wxEditableListBoxNameStr);
 
     void SetStrings(const wxArrayString& strings);
     void GetStrings(wxArrayString& strings) const;
@@ -51,6 +71,14 @@ protected:
     int m_selection;
     long m_style;
 
+    void Init()
+    {
+        m_style = 0;
+        m_selection = 0;
+        m_bEdit = m_bNew = m_bDel = m_bUp = m_bDown = NULL;
+        m_listCtrl = NULL;
+    }
+
     void OnItemSelected(wxListEvent& event);
     void OnEndLabelEdit(wxListEvent& event);
     void OnNewItem(wxCommandEvent& event);
@@ -61,6 +89,12 @@ protected:
 
     DECLARE_CLASS(wxEditableListBox)
     DECLARE_EVENT_TABLE()
+
+private:
+    void SwapItems(long i1, long i2);
+
 };
 
+#endif  // wxUSE_EDITABLELISTBOX
+
 #endif // __WX_EDITLBOX_H__