2007-04-21 14:50:50 -04:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: wx/editlbox.h
|
|
|
|
// Purpose: ListBox with editable items
|
|
|
|
// Author: Vaclav Slavik
|
|
|
|
// Copyright: (c) Vaclav Slavik
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __WX_EDITLBOX_H__
|
|
|
|
#define __WX_EDITLBOX_H__
|
|
|
|
|
2007-04-25 05:22:02 -04:00
|
|
|
#include "wx/defs.h"
|
|
|
|
|
|
|
|
#if wxUSE_EDITABLELISTBOX
|
|
|
|
|
2007-04-21 14:50:50 -04:00
|
|
|
#include "wx/panel.h"
|
|
|
|
|
2007-07-09 06:09:52 -04:00
|
|
|
class WXDLLIMPEXP_FWD_CORE wxBitmapButton;
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxListCtrl;
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxListEvent;
|
2007-04-21 14:50:50 -04:00
|
|
|
|
|
|
|
#define wxEL_ALLOW_NEW 0x0100
|
|
|
|
#define wxEL_ALLOW_EDIT 0x0200
|
|
|
|
#define wxEL_ALLOW_DELETE 0x0400
|
|
|
|
#define wxEL_NO_REORDER 0x0800
|
2007-05-07 03:51:28 -04:00
|
|
|
#define wxEL_DEFAULT_STYLE (wxEL_ALLOW_NEW | wxEL_ALLOW_EDIT | wxEL_ALLOW_DELETE)
|
|
|
|
|
2008-11-02 17:16:14 -05:00
|
|
|
extern WXDLLIMPEXP_DATA_ADV(const char) wxEditableListBoxNameStr[];
|
2007-04-21 14:50:50 -04:00
|
|
|
|
|
|
|
// This class provides a composite control that lets the
|
|
|
|
// user easily enter list of strings
|
|
|
|
|
|
|
|
class WXDLLIMPEXP_ADV wxEditableListBox : public wxPanel
|
|
|
|
{
|
|
|
|
public:
|
2007-05-07 03:51:28 -04:00
|
|
|
wxEditableListBox() { Init(); }
|
|
|
|
|
2007-04-21 14:50:50 -04:00
|
|
|
wxEditableListBox(wxWindow *parent, wxWindowID id,
|
|
|
|
const wxString& label,
|
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
2007-05-07 03:51:28 -04:00
|
|
|
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);
|
2007-04-21 14:50:50 -04:00
|
|
|
|
|
|
|
void SetStrings(const wxArrayString& strings);
|
|
|
|
void GetStrings(wxArrayString& strings) const;
|
|
|
|
|
|
|
|
wxListCtrl* GetListCtrl() { return m_listCtrl; }
|
|
|
|
wxBitmapButton* GetDelButton() { return m_bDel; }
|
|
|
|
wxBitmapButton* GetNewButton() { return m_bNew; }
|
|
|
|
wxBitmapButton* GetUpButton() { return m_bUp; }
|
|
|
|
wxBitmapButton* GetDownButton() { return m_bDown; }
|
|
|
|
wxBitmapButton* GetEditButton() { return m_bEdit; }
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxBitmapButton *m_bDel, *m_bNew, *m_bUp, *m_bDown, *m_bEdit;
|
|
|
|
wxListCtrl *m_listCtrl;
|
|
|
|
int m_selection;
|
|
|
|
long m_style;
|
|
|
|
|
2007-05-07 03:51:28 -04:00
|
|
|
void Init()
|
|
|
|
{
|
|
|
|
m_style = 0;
|
|
|
|
m_selection = 0;
|
|
|
|
m_bEdit = m_bNew = m_bDel = m_bUp = m_bDown = NULL;
|
|
|
|
m_listCtrl = NULL;
|
|
|
|
}
|
|
|
|
|
2007-04-21 14:50:50 -04:00
|
|
|
void OnItemSelected(wxListEvent& event);
|
|
|
|
void OnEndLabelEdit(wxListEvent& event);
|
|
|
|
void OnNewItem(wxCommandEvent& event);
|
|
|
|
void OnDelItem(wxCommandEvent& event);
|
|
|
|
void OnEditItem(wxCommandEvent& event);
|
|
|
|
void OnUpItem(wxCommandEvent& event);
|
|
|
|
void OnDownItem(wxCommandEvent& event);
|
|
|
|
|
|
|
|
DECLARE_CLASS(wxEditableListBox)
|
|
|
|
DECLARE_EVENT_TABLE()
|
2012-11-06 18:56:44 -05:00
|
|
|
|
|
|
|
private:
|
|
|
|
void SwapItems(long i1, long i2);
|
|
|
|
|
2007-04-21 14:50:50 -04:00
|
|
|
};
|
|
|
|
|
2007-04-25 05:22:02 -04:00
|
|
|
#endif // wxUSE_EDITABLELISTBOX
|
|
|
|
|
2007-04-21 14:50:50 -04:00
|
|
|
#endif // __WX_EDITLBOX_H__
|