// Name: wx/editlbox.h
// Purpose: ListBox with editable items
// Author: Vaclav Slavik
-// RCS-ID: $Id$
// Copyright: (c) Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#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
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;
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);
DECLARE_CLASS(wxEditableListBox)
DECLARE_EVENT_TABLE()
+
+private:
+ void SwapItems(long i1, long i2);
+
};
+#endif // wxUSE_EDITABLELISTBOX
+
#endif // __WX_EDITLBOX_H__