// Purpose: various controls for rearranging the items interactively
// Author: Vadim Zeitlin
// Created: 2008-12-15
-// RCS-ID: $Id$
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#define _WX_REARRANGECTRL_H_
#include "wx/checklst.h"
+
+#if wxUSE_REARRANGECTRL
+
+#include "wx/panel.h"
+#include "wx/dialog.h"
+
#include "wx/arrstr.h"
extern WXDLLIMPEXP_DATA_CORE(const char) wxRearrangeListNameStr[];
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxRearrangeList)
+ wxDECLARE_NO_COPY_CLASS(wxRearrangeList);
};
// ----------------------------------------------------------------------------
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxRearrangeCtrl)
+ wxDECLARE_NO_COPY_CLASS(wxRearrangeCtrl);
};
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxRearrangeDialog : public wxDialog
{
public:
+ // default ctor, use Create() later
+ wxRearrangeDialog() { Init(); }
+
// ctor for the dialog: message is shown inside the dialog itself, order
// and items are passed to wxRearrangeList used internally
wxRearrangeDialog(wxWindow *parent,
const wxArrayInt& order,
const wxArrayString& items,
const wxPoint& pos = wxDefaultPosition,
- const wxString& name = wxRearrangeDialogNameStr);
+ const wxString& name = wxRearrangeDialogNameStr)
+ {
+ Init();
+
+ Create(parent, message, title, order, items, pos, name);
+ }
+
+ bool Create(wxWindow *parent,
+ const wxString& message,
+ const wxString& title,
+ const wxArrayInt& order,
+ const wxArrayString& items,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxString& name = wxRearrangeDialogNameStr);
+
+
+ // methods for the dialog customization
+
+ // add extra contents to the dialog below the wxRearrangeCtrl part: the
+ // given window (usually a wxPanel containing more control inside it) must
+ // have the dialog as its parent and will be inserted into it at the right
+ // place by this method
+ void AddExtraControls(wxWindow *win);
+
+ // return the wxRearrangeList control used by the dialog
+ wxRearrangeList *GetList() const;
+
// get the order of items after it was modified by the user
- wxArrayInt GetOrder() const
- { return m_ctrl->GetList()->GetCurrentOrder(); }
+ wxArrayInt GetOrder() const;
private:
+ // common part of all ctors
+ void Init() { m_ctrl = NULL; }
+
wxRearrangeCtrl *m_ctrl;
- DECLARE_NO_COPY_CLASS(wxRearrangeDialog)
+ wxDECLARE_NO_COPY_CLASS(wxRearrangeDialog);
};
+#endif // wxUSE_REARRANGECTRL
+
#endif // _WX_REARRANGECTRL_H_