Clase wxRearrangeList
Un control tipo listbox que permite al usuario reorganizar los elementos y activarlos o desactivarlos.
Jerarquía:

Esta clase permite cambiar el orden de los elementos mostrados en ella, así como marcarlos o desmarcarlos individualmente. La estructura de datos utilizada para permitir esto es la matriz de orden, que contiene los índices de los elementos indexados por su posición, con la particularidad de que los elementos no marcados se representan por el complemento a bit del índice correspondiente (para cualquier arquitectura que utilice el complemento a dos para la representación de números negativos (es decir, casi cualquier arquitectura) esto significa que un elemento marcado N se representa por -N-1 en estado no marcado). En la práctica, esto significa que debe aplicar el operador de complemento a bit de C al construir la matriz de órdenes, por ejemplo:
wxArrayInt order; order.push_back(0); // checked item #0 order.push_back(~1); // unchecked item #1
Así, por ejemplo, el array order [1 -3 0] utilizado junto con el array items ["first", "second", "third"] significa que el orden de los items es "second", "third", "first" y que el item "third" está desmarcado mientras que los otros dos están marcados.
Esta convención se utiliza tanto para el argumento de orden del constructor del control o Create() como para el array devuelto por GetCurrentOrder().
Normalmente este control se utilizará junto con otros controles que permitan mover los elementos en él de forma interactiva. La solución más sencilla posible es utilizar wxRearrangeCtrl que lo combina con dos botones estándar para mover el elemento actual hacia arriba o hacia abajo.
Nótese que mientras la mayoría de los métodos para la manipulación de ítems como Append(), Insert() o Delete(), heredados de wxItemContainer funcionan como se espera para esta clase, Set() de forma un tanto inesperada resetea el orden de los ítems ya que borra primero el control, borrando también el orden como efecto secundario, antes de añadir los nuevos ítems.
Funciones miembro
wxRearrangeList()
wxRearrangeList::wxRearrangeList()
Constructor por defecto.
Create() debe ser llamado posteriormente para crear efectivamente el control.
wxRearrangeList()
wxRearrangeList::wxRearrangeList( wxWindow * parent, wxWindowID id, const wxPoint & pos, const wxSize & size, const wxArrayInt & order, const wxArrayString & items, long style = 0, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxRearrangeListNameStr )
Constructor que realmente crea el control.
Ver Create() para la descripción de los parámetros.
CanMoveCurrentDown()
bool wxRearrangeList::CanMoveCurrentDown() const
Devuelve true si el elemento actualmente seleccionado puede moverse hacia abajo.
CanMoveCurrentUp()
bool wxRearrangeList::CanMoveCurrentUp() const
Devuelve true si el elemento actualmente seleccionado puede moverse hacia arriba.
Esta función es útil para el manejador EVT_UPDATE_UI para el botón estándar "Arriba" a menudo utilizado junto con este control y wxRearrangeCtrl lo utiliza de esta manera.
Valor de retorno
true si el ítem actualmente seleccionado puede moverse hacia arriba en el listbox, false si no hay selección o el ítem actual es el primero.
Create()
bool wxRearrangeList::Create( wxWindow * parent, wxWindowID id, const wxPoint & pos, const wxSize & size, const wxArrayInt & order, const wxArrayString & items, long style = 0, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxRearrangeListNameStr )
Crea efectivamente la ventana para un objeto creado utilizando el constructor por defecto.
Esta función es muy similar a wxCheckListBox::Create() excepto en que tiene un parámetro adicional que especifica el orden inicial de los elementos. Por favor, consultar la documentación de la clase para la explicación de las convenciones utilizadas por el argumento order.
Parámetros
- parent
- La ventana padre, debe ser no NULL.
- id
- El identificador de la ventana.
- pos
- La posición inicial de la ventana.
- size
- El tamaño inicial de la ventana.
- order
- Matriz que especifica el orden inicial de los elementos en la matriz items.
- items
- Los elementos a mostrar en la lista.
- style
- El estilo del control, no hay estilos especiales para esta clase pero los estilos de la clase base pueden ser usados aquí.
- validator
- Validador opcional de la ventana.
- name
- Nombre opcional de la ventana.
GetCurrentOrder()
const wxArrayInt& wxRearrangeList::GetCurrentOrder() const
Devuelve el orden actual de los elementos.
El orden puede ser diferente del que se pasó al constructor si se llamó a MoveCurrentUp() o MoveCurrentDown().
MoveCurrentDown()
bool wxRearrangeList::MoveCurrentDown()
Desplaza el elemento actualmente seleccionado una posición hacia abajo.
MoveCurrentUp()
bool wxRearrangeList::MoveCurrentUp()
Mueve el elemento actualmente seleccionado una posición hacia arriba.
Este método es útil para implementar el comportamiento estándar del botón "Arriba" y wxRearrangeCtrl lo utiliza para ello.
Valor de retorno
true si el ítem fue movido o false si no se pudo hacer.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxCheckListBox, wxListBox, wxControl, wxWindow, wxObject, wxItemContainer y wxItemContainerImmutable.