Clase wxAddRemoveCtrl
Una clase que añade botones para añadir y eliminar elementos a un control hijo tipo lista.
Jerarquía:

Esta clase representa un control compuesto que combina cualquier control capaz de mostrar múltiples elementos, como wxListBox, wxListCtrl, wxTreeCtrl, wxDataViewCtrl o un control personalizado, con dos botones que permiten añadir y eliminar elementos de este control tipo lista. La ventaja de utilizar este control en lugar de crear y gestionar los botones directamente es que esta clase utiliza los botones y el diseño correctos para la plataforma actual. Por ejemplo, los botones se colocan debajo del control de lista en macOS y GTK+, pero a su derecha en MSW, y los propios botones utilizan mapas de bits específicos del sistema en macOS.
Esta clase se utiliza siempre junto con wxAddRemoveAdaptor, que se utiliza para añadir o eliminar elementos del control que los contiene cuando se pulsa el botón correspondiente. El ejemplo de diálogos muestra cómo hacerlo: primero hay que derivar una nueva clase de wxAddRemoveAdaptor e implementar sus métodos virtuales puros y luego hay que llamar a SetAdaptor() con un objeto recién asignado de esta clase. También se debe crear el control que contiene los elementos con wxAddRemoveCtrl como padre. Aquí están los diferentes pasos en pseudocódigo:
wxAddRemoveCtrl* ctrl = new wxAddRemoveCtrl(parent); // Puede ser cualquier tipo de control para el que OnAdd() y OnRemove() // se pueda hacer funcionar abajo. wxListBox* lbox = new wxListBox(ctrl, ...); class ListBoxAdaptor : public wxAddRemoveAdaptor { public: explicit ListBoxAdaptor(wxListBox* lbox) : m_lbox(lbox) { } virtual wxWindow* GetItemsCtrl() const { return m_lbox; } virtual bool CanAdd() const { return true; } virtual bool CanRemove() const { return m_lbox->GetSelection() != wxNOT_FOUND; } virtual void OnAdd() { ... obtener el nuevo elemento del usuario y añadirlo ... } virtual void OnRemove() { m_lbox->Delete(m_lbox->GetSelection()); } private: wxListBox* m_lbox; }; ctrl-Gt;SetAdaptor(new ListBoxAdaptor(lbox));
Funciones miembro
wxAddRemoveCtrl()
wxAddRemoveCtrl::wxAddRemoveCtrl()
Constructor por defecto.
Usar Create() más tarde.
wxAddRemoveCtrl()
wxAddRemoveCtrl::wxAddRemoveCtrl( wxWindow * parent, wxWindowID winid = wxID_ANY, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = 0, const wxString & name = wxAddRemoveCtrlNameStr )
Constructor que realmente crea la ventana de control.
SetAdaptor() todavía debe ser llamado más tarde para terminar de inicializar el control.
Los parámetros tienen el mismo significado que en wxPanel::Create().
Create()
bool wxAddRemoveCtrl::Create( wxWindow * parent, wxWindowID winid = wxID_ANY, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = 0, const wxString & name = wxAddRemoveCtrlNameStr )
Crea la ventana de control después de utilizar el constructor por defecto.
Los parámetros tienen el mismo significado que en wxPanel::Create().
SetAdaptor()
void wxAddRemoveCtrl::SetAdaptor(wxAddRemoveAdaptor * adaptor)
Asocia el control con el objeto adaptador especificado.
Este método debe ser llamado exactamente una vez para terminar de inicializar este objeto.
El objeto adaptador debe corresponder a un control creado como hijo de esta ventana, es decir, wxAddRemoveAdaptor::GetItemsCtrl() debe devolver un puntero a un hijo existente de este control.
El puntero del adaptador debe ser no nulo y estar asignado a la pila, ya que el control toma posesión de él y lo borrará más tarde.
SetButtonsToolTips()
Establece la información sobre los tooltips utilizados para los botones de añadir y eliminar.
Muestra los tooltips especificados cuando el ratón pasa por encima de los botones utilizados para añadir y eliminar elementos, respectivamente.
Este método sólo se puede utilizar después de llamar a SetAdaptor().
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject, wxEvtHandler, wxWindow y wxPanel.