Clase wxTreeCtrl
Un control de árbol presenta la información como una jerarquía, con elementos que pueden expandirse para mostrar otros elementos.
Jerarquía:

Los elementos de un control de árbol se referencian mediante manejadores wxTreeItemId, cuya validez puede comprobarse llamando a wxTreeItemId::IsOk().
Un control similar con una implementación totalmente nativa para GTK+ y macOS es wxDataViewTreeCtrl.
Imágenes en wxTreeCtrl
wxTreeCtrl hereda de la clase wxWithImages que proporcionan las funciones para asociar imágenes a los elementos del control. Cada elemento hace referencia a su imagen utilizando un índice, que puede ser wxWithImages::NO_IMAGE para indicar que el elemento no utiliza ninguna imagen, y la imagen correspondiente se toma del vector pasado a wxWithImages::SetImages() o de la lista de imágenes pasada a las funciones wxWithImages::SetImageList() o wxWithImages::AssignImageList().
Además de las imágenes normales, manejadas con los métodos mencionados anteriormente, wxTreeCtrl también proporciona imágenes de estado opcionales que se pueden utilizar para indicar algún estado adicional del elemento, por ejemplo, estado marcado o no marcado. Estas imágenes pueden establecerse utilizando SetStateImages() (preferible, ya que permite especificar también versiones de alta resolución de las imágenes de estado) o las funciones heredadas SetStateImageList() y AssignStateImageList() que se comportan de la misma manera que los métodos correspondientes de wxWithImages. Nótese que las imágenes de estado no están soportadas actualmente en la versión nativa de wxQt.
Por último, en la versión genérica de este control (wxGenericTreeCtrl), también se proporciona SetButtonsImageList() y AssignButtonsImageList(), que se pueden utilizar para cambiar las imágenes utilizadas para los botones del control, utilizados para expandir o colapsar sus ramas. Estos métodos no están disponibles en las implementaciones nativas de wxMSW y wxQt.
Eventos
Para interceptar eventos de un control de árbol, utilizar las macros de tabla de eventos descritas en wxTreeEvent.
Estilos
Esta clase admite los siguientes estilos:
- wxTR_EDIT_LABELS:
- Utilizar este estilo si desea que el usuario pueda editar etiquetas en el control de árbol.
- wxTR_NO_BUTTONS:
- Para documentar que no se van a dibujar botones.
- wxTR_HAS_BUTTONS
- Utilizar este estilo para mostrar los botones + y - a la izquierda de los elementos padre.
- wxTR_TWIST_BUTTONS
- Selecciona el estilo alternativo de los botones +/- y muestra en su lugar flechas giratorias ("twisting"). Actualmente este estilo sólo está implementado en wxMSW y se ignora en el resto de plataformas ya que activarlo es equivalente a utilizar wxSystemThemedControl::EnableSystemTheme().
- wxTR_NO_LINES
- Utilizar este estilo para ocultar los conectores verticales de nivel.
- wxTR_FULL_ROW_HIGHLIGHT
- Utilizar este estilo para que el color de fondo y el resaltado de la selección se extiendan por toda la fila horizontal de la ventana de control del árbol. (Esta bandera se ignora en Windows a menos que especifiques también wxTR_NO_LINES).
- wxTR_LINES_AT_ROOT
- Utilizar este estilo para mostrar las líneas que conducen a los nodos raíz (a menos que no se utilice también wxTR_NO_LINES, en cuyo caso no se muestran líneas). Hay que tener en cuenta que en la versión MSW, si se omite este estilo, no sólo no se muestran las líneas, sino tampoco el botón utilizado para expandir el elemento raíz, lo que puede resultar inesperado, por lo que se recomienda utilizarlo siempre.
- wxTR_HIDE_ROOT
- Utilizar este estilo para suprimir la visualización del nodo raíz, haciendo que los nodos de primer nivel aparezcan como una serie de nodos raíz. Hay que tener en cuenta que en wxMSW este estilo debe establecerse al crear el control y no puede cambiarse posteriormente.
- wxTR_ROW_LINES
- Utilizar este estilo para dibujar un borde de contraste entre las filas mostradas.
- wxTR_HAS_VARIABLE_ALTURA_FILAS
- Utilizar este estilo para que la altura de las filas sea lo suficientemente grande como para que quepa el contenido. Si no se establece, todas las filas utilizan la mayor altura de fila. Por defecto, esta opción no está activada. Sólo genérico.
- wxTR_SINGLE
- Para documentar que sólo se puede seleccionar un elemento a la vez. La selección de otro elemento hace que la selección actual, si existe, sea deseleccionada. Este es el valor por defecto.
- wxTR_MULTIPLE
- Utilizar este estilo para permitir la selección de un rango de elementos. Si se selecciona un segundo rango, el rango actual, si existe, se deselecciona.
- wxTR_DEFAULT_STYLE
- El conjunto de banderas que más se aproximan a los valores por defecto del control nativo para un determinado conjunto de herramientas.
Eventos emitidos por esta clase
Las siguientes macros de manejadores de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:
void handlerFuncName(wxTreeEvent& event)
Macros de eventos para eventos emitidos por esta clase:
- EVT_TREE_BEGIN_DRAG(id, func)
- Comienza a arrastrar con el botón izquierdo del ratón. Si se quiere habilitar el arrastre con el botón izquierdo se necesita interceptar este evento y llamar explícitamente a wxTreeEvent::Allow(), ya que está vetado por defecto. Procesa un evento de tipo wxEVT_TREE_BEGIN_DRAG.
- EVT_TREE_BEGIN_RDRAG(id, func)
- Comienza a arrastrar con el botón derecho del ratón. Si se quiere habilitar el arrastre con el botón derecho se necesita interceptar este evento y llamar explícitamente a wxTreeEvent::Allow(), ya que está vetado por defecto. Procesa un evento de tipo wxEVT_TREE_BEGIN_RDRAG.
- EVT_TREE_END_DRAG(id, func)
- Finaliza el arrastre con el botón izquierdo o derecho del ratón. Procesa un evento de tipo wxEVT_TREE_END_DRAG.
- EVT_TREE_BEGIN_LABEL_EDIT(id, func)
- Comienza la edición de una etiqueta. Esto puede evitarse llamando a Veto(). Procesa un evento de tipo wxEVT_TREE_BEGIN_LABEL_EDIT.
- EVT_TREE_END_LABEL_EDIT(id, func)
- Finaliza la edición de una etiqueta. Esto puede evitarse llamando a Veto(). Procesa un evento de tipo wxEVT_TREE_END_LABEL_EDIT.
- EVT_TREE_DELETE_ITEM(id, func)
- Se ha eliminado un elemento. Procesa un evento de tipo wxEVT_TREE_DELETE_ITEM.
- EVT_TREE_GET_INFO(id, func)
- Solicita información a la aplicación. Procesa un evento de tipo wxEVT_TREE_GET_INFO.
- EVT_TREE_SET_INFO(id, func)
- Se suministra información. Procesa un evento de tipo wxEVT_TREE_SET_INFO.
- EVT_TREE_ITEM_ACTIVATED(id, func)
- El elemento ha sido activado, es decir, elegido haciendo doble clic sobre él con el ratón o desde el teclado. Procesa un evento de tipo wxEVT_TREE_ITEM_ACTIVATED.
- EVT_TREE_ITEM_COLLAPSED(id, func)
- El elemento ha sido colapsado. Procesa un evento de tipo wxEVT_TREE_ITEM_COLLAPSED.
- EVT_TREE_ITEM_COLLAPSING(id, func)
- El elemento está siendo colapsado. Esto puede evitarse llamando a Veto(). Procesa un evento de tipo wxEVT_TREE_ITEM_COLLAPSING.
- EVT_TREE_ITEM_EXPANDED(id, func)
- El elemento ha sido expandido. Procesa un evento de tipo wxEVT_TREE_ITEM_EXPANDED.
- EVT_TREE_ITEM_EXPANDING(id, func)
- El elemento se está expandiendo. Esto puede evitarse llamando a Veto(). Procesa un evento de tipo wxEVT_TREE_ITEM_EXPANDING.
- EVT_TREE_ITEM_RIGHT_CLICK(id, func)
- El usuario ha pulsado el elemento con el botón derecho del ratón. Procesa un evento de tipo wxEVT_TREE_ITEM_RIGHT_CLICK.
- EVT_TREE_ITEM_MIDDLE_CLICK(id, func)
- El usuario ha hecho clic en el elemento con el botón central del ratón. Esto sólo es soportado por el control genérico. Procesa un evento de tipo wxEVT_TREE_ITEM_MIDDLE_CLICK.
- EVT_TREE_SEL_CHANGED(id, func)
- La selección ha cambiado. Procesa un evento de tipo wxEVT_TREE_SEL_CHANGED.
- EVT_TREE_SEL_CHANGING(id, func)
- La selección está cambiando. Esto puede evitarse llamando a Veto(). Procesa un evento de tipo wxEVT_TREE_SEL_CHANGING.
- EVT_TREE_KEY_DOWN(id, func)
- Se ha pulsado una tecla. Procesa un evento de tipo wxEVT_TREE_KEY_DOWN.
- EVT_TREE_ITEM_GETTOOLTIP(id, func)
- Se ofrece a la aplicación la posibilidad de establecer la información sobre herramientas del elemento (llamada a wxTreeEvent::SetToolTip). Sólo para Windows. Procesa un evento de tipo wxEVT_TREE_ITEM_GETTOOLTIP.
- EVT_TREE_ITEM_MENU(id, func)
- Se ha solicitado el menú contextual del elemento seleccionado, ya sea haciendo clic con el botón derecho del ratón o utilizando la tecla menú. Hay que tener en cuenta que estos eventos siempre llevan un elemento de árbol válido, por lo que no se generan al hacer clic (con el botón derecho) fuera del área de elementos. Si se necesita manejar este tipo de eventos, considerar utilizar wxEVT_CONTEXT_MENU en su lugar. Procesa un evento de tipo wxEVT_TREE_ITEM_MENU.
- EVT_TREE_STATE_IMAGE_CLICK(id, func)
- Se ha hecho clic en la imagen de estado. Procesa un evento de tipo wxEVT_TREE_STATE_IMAGE_CLICK.
Ver también Estilos de Ventana.
Funciones miembro
wxTreeCtrl()
wxTreeCtrl::wxTreeCtrl()
Constructor por defecto.
wxTreeCtrl()
wxTreeCtrl::wxTreeCtrl( wxWindow * parent, wxWindowID id = wxID_ANY, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxTR_DEFAULT_STYLE, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxTreeCtrlNameStr )
Constructor, crea y muestra un control de árbol.
Parámetros
- parent
- Ventana padre. No debe ser nullptr.
- id
- Identificador de la ventana. El valor wxID_ANY indica un valor por defecto.
- pos
- Posición de la ventana. Si se especifica wxDefaultPosition se elige una posición por defecto.
- size
- Tamaño de la ventana. Si se especifica wxDefaultSize, el tamaño de la ventana es el adecuado.
- style
- Estilo de la ventana.
- validator
- Validador de la ventana.
- name
- Nombre de la ventana.
~wxTreeCtrl()
virtual wxTreeCtrl::~wxTreeCtrl()
Destructor, que destruye el control del árbol.
AddRoot()
virtual wxTreeItemId wxTreeCtrl::AddRoot( const wxString & text, int image = -1, int selImage = -1, wxTreeItemData * data = nullptr )
Añade el nodo raíz al árbol, devolviendo el nuevo elemento.
Los parámetros image y selImage son un índice dentro de la lista de imágenes normales que especifica la imagen a utilizar para los elementos seleccionados y no seleccionados, respectivamente. Si image > -1 y selImage es -1, se utiliza la misma imagen para los elementos seleccionados y no seleccionados.
AppendItem()
wxTreeItemId wxTreeCtrl::AppendItem( const wxTreeItemId & parent, const wxString & text, int image = -1, int selImage = -1, wxTreeItemData * data = nullptr )
Añade un elemento al final de la rama identificada por parent, devolviendo un nuevo id de elemento.
Los parámetros image y selImage son un índice dentro de la lista de imágenes normales que especifica la imagen a utilizar para los elementos seleccionados y no seleccionados, respectivamente. Si image > -1 y selImage es -1, se utiliza la misma imagen para los elementos seleccionados y no seleccionados.
AssignButtonsImageList()
void wxTreeCtrl::AssignButtonsImageList(wxImageList * imageList )
Establece la lista de imágenes de botones.
Las imágenes de botones asignadas con este método serán borradas automáticamente por wxTreeCtrl según corresponda (es decir, toma posesión de la lista).
Establecer o asignar la lista de imágenes de botones habilita la visualización de botones de imagen. Una vez activada, la única forma de desactivar la visualización de imágenes de botones es establecer la lista de imágenes de botones en nullptr.
Esta función sólo está disponible en la versión genérica.
AssignStateImageList()
void wxTreeCtrl::AssignStateImageList(wxImageList* imageList)
Establece el estado de la lista de imágenes.
La lista de imágenes asignada con este método será eliminada automáticamente por wxTreeCtrl según corresponda (es decir, toma posesión de la lista).
Nota: Es preferible utilizar SetStateImages() en el nuevo código.
ClearFocusedItem()
virtual void wxTreeCtrl::ClearFocusedItem()
Borra el elemento actualmente enfocado.
Collapse()
virtual void wxTreeCtrl::Collapse(const wxTreeItemId & item)
Colapsa el elemento dado.
CollapseAll()
void wxTreeCtrl::CollapseAll()
Colapsa el elemento raíz.
CollapseAllChildren()
void wxTreeCtrl::CollapseAllChildren(const wxTreeItemId & item)
Colapsa este elemento y todos sus hijos, recursivamente.
CollapseAndReset()
virtual void wxTreeCtrl::CollapseAndReset(const wxTreeItemId & item)
Colapsa el elemento dado y elimina todos los hijos.
Create()
bool wxTreeCtrl::Create( wxWindow * parent, wxWindowID id = wxID_ANY, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxTR_DEFAULT_STYLE, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxTreeCtrlNameStr )
Crea el control de árbol.
Ver el constructor para más detalles.
Delete()
virtual void wxTreeCtrl::Delete(const wxTreeItemId & item)
Elimina el elemento especificado.
Se generará un evento EVT_TREE_DELETE_ITEM.
Esta función puede hacer que falle una llamada posterior a GetNextChild().
DeleteAllItems()
virtual void wxTreeCtrl::DeleteAllItems()
Elimina todos los elementos del control.
Esta función genera eventos wxEVT_TREE_DELETE_ITEM para cada elemento que se elimina, incluido el raíz si se muestra, es decir, a menos que se utilice el estilo wxTR_HIDE_ROOT.
DeleteChildren()
virtual void wxTreeCtrl::DeleteChildren(const wxTreeItemId & item)
Elimina todos los hijos del elemento dado (pero no el propio elemento).
Se generará un evento wxEVT_TREE_DELETE_ITEM por cada elemento que se elimine.
Si ha llamado a SetItemHasChildren(), puede que se necesite llamarla de nuevo ya que DeleteChildren() no borra automáticamente la configuración.
EditLabel()
virtual wxTextCtrl* wxTreeCtrl::EditLabel( const wxTreeItemId & item, wxClassInfo * textCtrlClass = wxCLASSINFO(wxTextCtrl) )
Inicia la edición de la etiqueta del elemento dado.
Esta función genera un evento EVT_TREE_BEGIN_LABEL_EDIT que puede ser vetado para evitar que se inicie la edición.
Si se inicia, se muestra un control de texto, que puede recuperarse utilizando GetEditControl(), que permite al usuario editar la etiqueta de forma interactiva. En wxMSW, este control de texto se crea utilizando textCtrlClass, sin embargo este parámetro se ignora actualmente en los otros ports donde siempre se utiliza un wxTextCtrl plano.
Cuando la edición finaliza, se envía el evento EVT_TREE_END_LABEL_EDIT y este evento puede ser vetado también para evitar que la etiqueta cambie. Hay que tener en cuenta que este evento se envía tanto cuando el usuario acepta (por ejemplo, pulsando Enter) o cancela (por ejemplo, pulsando Escape) y su manejador puede utilizar wxTreeEvent::IsEditCancelled() para distinguir entre estas situaciones.
EnableBellOnNoMatch()
void wxTreeCtrl::EnableBellOnNoMatch(bool on = true)
Habilita o deshabilita un pitido si no hay coincidencia para el texto introducido actualmente al buscar el elemento desde el teclado.
El valor predeterminado es no emitir un pitido en este caso, excepto en wxMSW, donde el pitido siempre es generado por el control nativo y no se puede desactivar, es decir, las llamadas a esta función no hacen nada allí.
EndEditLabel()
virtual void wxTreeCtrl::EndEditLabel( const wxTreeItemId & item, bool discardChanges = false )
Finaliza la edición de la etiqueta.
Si cancelEdit es true, se cancelará la edición.
Nota: Esta función sólo es compatible actualmente con Windows.
EnsureVisible()
virtual void wxTreeCtrl::EnsureVisible(const wxTreeItemId & item)
Desplaza y/o expande los elementos para asegurarse de que el elemento dado es visible.
Este método puede utilizarse, y funcionará, incluso mientras la ventana esté congelada (ver wxWindow::Freeze()).
Expand()
virtual void wxTreeCtrl::Expand(const wxTreeItemId & item)
Expande el elemento dado.
ExpandAll()
void wxTreeCtrl::ExpandAll()
Expande todos los elementos del árbol.
ExpandAllChildren()
void wxTreeCtrl::ExpandAllChildren(const wxTreeItemId & item)
Expande el elemento dado y todos sus hijos recursivamente.
GetBoundingRect()
virtual bool wxTreeCtrl::GetBoundingRect( const wxTreeItemId & item, wxRect & rect, bool textOnly = false ) const
Obtiene el rectángulo que delimita el elemento.
Si textOnly es true, sólo se devolverá el rectángulo alrededor de la etiqueta del elemento, de lo contrario también se tendrá en cuenta la imagen del elemento.
El valor devuelto es true si el rectángulo se ha recuperado correctamente o false si no (en este caso rect no se modifica) - por ejemplo, si el elemento es actualmente invisible.
Hay que tener en cuenta que las coordenadas del rectángulo son lógicas, no físicas. Así, por ejemplo, la coordenada x puede ser negativa si el árbol tiene una barra de desplazamiento horizontal y su posición no es 0.
Nota wxPerl: En wxPerl este método sólo toma los parámetros item y textOnly y devuelve un Wx::Rect (o undef).
GetButtonsImageList()
wxImageList* wxTreeCtrl::GetButtonsImageList() cons
Devuelve la lista de imágenes de los botones (de la que se toman las imágenes de los botones definidos por la aplicación).
Esta función sólo está disponible en la versión genérica.
GetChildrenCount()
virtual size_t wxTreeCtrl::GetChildrenCount( const wxTreeItemId & item, bool recursively = true ) const
Devuelve el número de elementos de la rama.
Si recursively es verdadero, devuelve el número total de descendientes, de lo contrario sólo se cuenta un nivel de hijos.
GetCount()
virtual unsigned int wxTreeCtrl::GetCount() const
Devuelve el número de elementos del control.
GetEditControl()
virtual wxTextCtrl* wxTreeCtrl::GetEditControl() const
Devuelve el control de edición que se está utilizando para editar una etiqueta.
Devuelve nullptr si no se está editando ninguna etiqueta.
Nota: Actualmente sólo está implementado para wxMSW.
GetFirstChild()
virtual wxTreeItemId wxTreeCtrl::GetFirstChild( const wxTreeItemId & item, wxTreeItemIdValue & cookie ) const
Devuelve el primer hijo; llamar a GetNextChild() para obtener el siguiente hijo.
Para esta función de enumeración debe pasar un parámetro cookie que es opaco para la aplicación pero necesario para que la biblioteca haga estas funciones reentrantes (es decir, permitir más de una enumeración en un mismo objeto simultáneamente). La cookie pasada a GetFirstChild() y GetNextChild() debe ser la misma variable.
Devuelve un elemento de árbol inválido (es decir, wxTreeItemId::IsOk() devuelve false) si no hay más hijos.
Nota wxPerl: En wxPerl este método sólo toma el parámetro item, y devuelve una lista de 2 elementos (item, cookie).
GetFirstVisibleItem()
virtual wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const
Devuelve el primer elemento visible.
GetFocusedItem()
virtual wxTreeItemId wxTreeCtrl::GetFocusedItem() const
Devuelve el último elemento pulsado o seleccionado.
A diferencia de GetSelection(), puede utilizarse tanto si el control tiene el estilo wxTR_MULTIPLE como si no.
GetIndent()
virtual unsigned int wxTreeCtrl::GetIndent() const
Devuelve la sangría actual del control de árbol en píxeles independientes de DPI.
GetItemBackgroundColour()
virtual wxColour wxTreeCtrl::GetItemBackgroundColour(const wxTreeItemId & item) const
Devuelve el color de fondo del elemento.
GetItemData()
virtual wxTreeItemData* wxTreeCtrl::GetItemData(const wxTreeItemId & item) const
Devuelve los datos del elemento del árbol asociados al elemento.
Nota wxPerl: wxPerl proporciona el siguiente método abreviado:
GetPlData(item): devuelve los datos Perl asociados con el Wx::TreeItemData. Es lo mismo que tree->GetItemData(item)->GetData().
GetItemFont()
virtual wxFont wxTreeCtrl::GetItemFont(const wxTreeItemId & item) const
Devuelve la fuente de la etiqueta del elemento.
Si la fuente no se ha establecido explícitamente para el elemento especificado con SetItemFont(), devuelve una fuente wxNullFont no válida. GetFont() puede utilizarse para recuperar la fuente global de control del árbol utilizada para los elementos sin ninguna fuente específica.
GetItemImage()
virtual int wxTreeCtrl::GetItemImage( const wxTreeItemId & item, wxTreeItemIcon which = wxTreeItemIcon_Normal ) const
Obtiene la imagen del elemento especificado.
Su valor puede ser:
- wxTreeItemIcon_Normal: para obtener la imagen normal del ítem.
- wxTreeItemIcon_Selected: para obtener la imagen del ítem seleccionado (es decir, la imagen que se muestra cuando el ítem está actualmente seleccionado).
- wxTreeItemIcon_Expanded: para obtener la imagen expandida (esto sólo tiene sentido para ítems que tienen hijos - entonces esta imagen se muestra cuando el ítem está expandido y la imagen normal se muestra cuando está colapsado).
- wxTreeItemIcon_SelectedExpanded: para obtener la imagen expandida seleccionada (que se muestra cuando se selecciona un ítem expandido).
GetItemParent()
virtual wxTreeItemId wxTreeCtrl::GetItemParent(const wxTreeItemId & item) const
Devuelve el elemento padre.
GetItemState()
int wxTreeCtrl::GetItemState(const wxTreeItemId & item) const
Obtiene el estado del elemento especificado.
GetItemText()
virtual wxString wxTreeCtrl::GetItemText(const wxTreeItemId & item) const
Devuelve la etiqueta del elemento.
GetItemTextColour()
virtual wxColour wxTreeCtrl::GetItemTextColour(const wxTreeItemId & item) const
Devuelve el color de la etiqueta del artículo.
GetLastChild()
virtual wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId & item) const
Devuelve el último hijo del elemento (o un elemento de árbol no válido si este elemento no tiene hijos).
GetNextChild()
virtual wxTreeItemId wxTreeCtrl::GetNextChild( const wxTreeItemId & item, wxTreeItemIdValue & cookie ) const
Devuelve el siguiente hijo; llamar a GetFirstChild() para el primer hijo.
Para esta función de enumeración se debe pasar un parámetro cookie que es opaco para la aplicación pero necesario para que la biblioteca haga estas funciones reentrantes (es decir, permitir más de una enumeración en un mismo objeto simultáneamente). La cookie pasada a GetFirstChild() y GetNextChild() debe ser la misma.
Devuelve un elemento de árbol inválido si no hay más hijos.
Nota wxPerl: En wxPerl este método devuelve una lista de 2 elementos (item, cookie) en lugar de modificar sus parámetros.
GetNextSibling()
virtual wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId & item) const
Devuelve el siguiente hermano del elemento especificado; llamar a GetPrevSibling() para obtener el hermano anterior.
Devuelve un elemento de árbol no válido si no hay más hermanos.
GetNextVisible()
virtual wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId & item) const
Devuelve el siguiente elemento visible o un elemento no válido si este elemento es el último visible.
Nota: El propio elemento debe ser visible.
GetPrevSibling()
virtual wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId & item) const
Devuelve el hermano anterior del elemento especificado; llamar a GetNextSibling() para obtener el siguiente hermano.
Devuelve un elemento de árbol no válido si no hay más hijos.
GetPrevVisible()
virtual wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId & item) const
Devuelve el elemento visible anterior o un elemento inválido si este elemento es el primero visible.
Nota: El propio elemento debe ser visible.
GetQuickBestSize()
bool wxTreeCtrl::GetQuickBestSize() const
Devuelve true si el control utilizará un cálculo rápido para el mejor tamaño, teniendo en cuenta sólo el primer y el último elemento.
Por defecto es false.
GetRootItem()
virtual wxTreeItemId wxTreeCtrl::GetRootItem() const
Devuelve el elemento raíz del control de árbol.
GetSelection()
virtual wxTreeItemId wxTreeCtrl::GetSelection() const
Devuelve la selección, o un ítem inválido si no hay selección.
Esta función sólo funciona con los controles sin estilo wxTR_MULTIPLE, utilizar GetSelections() para los controles que sí tienen este estilo o, si se desea un único elemento, utilizar GetFocusedItem().
GetSelections()
virtual size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds & selection) const
Rellena el array de elementos del árbol pasado con los elementos actualmente seleccionados.
Esta función sólo puede invocarse si el control tiene el estilo wxTR_MULTIPLE.
Devuelve el número de elementos seleccionados.
Nota wxPerl: En wxPerl este método no toma parámetros y devuelve una lista de Wx::TreeItemId.
GetSpacing()
unsigned int wxTreeCtrl::GetSpacing() const
Devuelve el espaciado actual del control de árbol.
Es el número de DIP horizontales (píxeles independientes de DPI) entre los botones y las imágenes de estado.
GetStateImageCount()
int wxTreeCtrl::GetStateImageCount() const
Devuelve el número de imágenes de estado utilizadas por el control.
Devuelve el número de imágenes pasadas a la última llamada a SetStateImages() o 0 si nunca se había llamado.
GetStateImageList()
wxImageList* wxTreeCtrl::GetStateImageList() const
Devuelve la lista de imágenes de estado (de la que se toman las imágenes de estado definidas por la aplicación).
HasStateImages()
bool wxTreeCtrl::HasStateImages() const
Devuelve true si el control utiliza alguna imagen de estado.
Esto es equivalente a comparar el valor de retorno de GetStateImageCount() con 0, pero más claro.
HitTest()
wxTreeItemId wxTreeCtrl::HitTest( const wxPoint & point, int & flags ) const
Calcula qué elemento (si lo hay) se encuentra bajo el punto dado, devolviendo el id del elemento del árbol en este punto más la información extra flags.
flags es una lista de bits de lo siguiente:
- wxTREE_HITTEST_ABOVE: Por encima del área del cliente.
- wxTREE_HITTEST_BELOW: Debajo del área de cliente.
- wxTREE_HITTEST_NOWHERE: En el área de cliente pero por debajo del último elemento.
- wxTREE_HITTEST_ONITEMBUTTON: En el botón asociado a un ítem.
- wxTREE_HITTEST_ONITEMICON: En el bitmap asociado a un ítem.
- wxTREE_HITTEST_ONITEMINDENT: En la sangría asociada a un ítem.
- wxTREE_HITTEST_ONITEMLABEL: En la etiqueta (string) asociada a un ítem.
- wxTREE_HITTEST_ONITEMRIGHT: En el área a la derecha de un ítem.
- wxTREE_HITTEST_ONITEMSTATEICON: En el icono de estado de un ítem de la vista de árbol que se encuentra en un estado definido por el usuario.
- wxTREE_HITTEST_TOLEFT: A la derecha del área de cliente.
- wxTREE_HITTEST_TORIGHT: A la izquierda del área de cliente.
Nota wxPerl: En wxPerl este método sólo toma el parámetro point y devuelve una lista de 2 elementos (item, flags).
InsertItem()
wxTreeItemId wxTreeCtrl::InsertItem( const wxTreeItemId & parent, const wxTreeItemId & previous, const wxString & text, int image = -1, int selImage = -1, wxTreeItemData * data = nullptr )
Inserta un elemento después de uno dado (anterior).
Los parámetros image y selImage son un índice dentro de la lista de imágenes normales que especifica la imagen a utilizar para los elementos seleccionados y no seleccionados, respectivamente. Si image > -1 y selImage es -1, se utiliza la misma imagen para los elementos seleccionados y no seleccionados.
InsertItem()
wxTreeItemId wxTreeCtrl::InsertItem( const wxTreeItemId & parent, size_t pos, const wxString & text, int image = -1, int selImage = -1, wxTreeItemData * data = nullptr )
Inserta un elemento antes de otro identificado por su posición (pos).
pos debe ser menor o igual que el número de hijos.
Los parámetros image y selImage son un índice dentro de la lista de imágenes normales que especifica la imagen a utilizar para los elementos seleccionados y no seleccionados, respectivamente. Si image > -1 y selImage es -1, se utiliza la misma imagen para los elementos seleccionados y no seleccionados.
IsBold()
virtual bool wxTreeCtrl::IsBold(const wxTreeItemId & item) const
Devuelve true si el elemento dado está en negrita.
IsEmpty()
bool wxTreeCtrl::IsEmpty() const
Devuelve true si el control está vacío (es decir, no tiene elementos, ni siquiera el raíz).
IsExpanded()
virtual bool wxTreeCtrl::IsExpanded(const wxTreeItemId & item) const
Devuelve true si el elemento está expandido (sólo tiene sentido si tiene hijos).
IsSelected()
virtual bool wxTreeCtrl::IsSelected(const wxTreeItemId & item) const
Devuelve true si el elemento está seleccionado.
IsVisible()
virtual bool wxTreeCtrl::IsVisible(const wxTreeItemId & item) const
Devuelve true si el elemento está visible en la pantalla.
ItemHasChildren()
virtual bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId & item) const
Devuelve true si el elemento tiene hijos.
OnCompareItems()
virtual int wxTreeCtrl::OnCompareItems( const wxTreeItemId & item1, const wxTreeItemId & item2 )
Anular esta función en la clase derivada para cambiar el orden de los elementos en el control de árbol.
La función debe devolver un valor negativo, cero o positivo si el primer elemento es menor, igual o mayor que el segundo.
Hay que tener en cuenta que se deben utilizar las macros wxDECLARE_DYNAMIC_CLASS() y wxIMPLEMENT_DYNAMIC_CLASS() si se sobrescribe esta función porque, de lo contrario, la clase base considera que no está sobrescrita y utiliza la comparación por defecto, es decir, ordena los elementos alfabéticamente, lo que le permite optimizar completamente las llamadas a la función virtual.
PrependItem()
wxTreeItemId wxTreeCtrl::PrependItem( const wxTreeItemId & parent, const wxString & text, int image = -1, int selImage = -1, wxTreeItemData * data = nullptr )
Añade un elemento como primer hijo de parent, devolviendo un nuevo id de elemento.
Los parámetros image y selImage son un índice dentro de la lista de imágenes normales que especifica la imagen a utilizar para los elementos seleccionados y no seleccionados, respectivamente. Si image > -1 y selImage es -1, se utiliza la misma imagen para los elementos seleccionados y no seleccionados.
ScrollTo()
virtual void wxTreeCtrl::ScrollTo(const wxTreeItemId & item)
Desplaza el elemento especificado a la vista.
Hay que tener en cuenta que este método no funciona mientras la ventana está congelada (véase wxWindow::Freeze()), al menos en MSW.
SelectChildren()
virtual void wxTreeCtrl::SelectChildren(const wxTreeItemId & parent)
Selecciona todos los hijos inmediatos del padre dado.
Esta función sólo puede utilizarse con controles multiselección.
SelectItem()
virtual void wxTreeCtrl::SelectItem( const wxTreeItemId & item, bool select = true )
Selecciona el elemento dado.
En controles de selección múltiple, también se puede utilizar para deseleccionar un elemento actualmente seleccionado si el valor de select es false.
Hay que tener en cuenta que llamar a este método generará eventos wxEVT_TREE_SEL_CHANGING y wxEVT_TREE_SEL_CHANGED y que el cambio podría ser vetado por el controlador de eventos anterior.
SetButtonsImageList()
void wxTreeCtrl::SetButtonsImageList(wxImageList * imageList)
Establece la lista de imágenes de los botones (de la que se toman las imágenes de los botones definidos por la aplicación).
Las imágenes de botones asignadas con este método no serán borradas por el destructor de wxTreeCtrl, deberán borrarse explícitamente. Configurar o asignar la lista de imágenes de botones habilita la visualización de botones de imagen. Una vez activada, la única forma de desactivar la visualización de imágenes de botones es establecer la lista de imágenes de botones a nullptr.
Nota: Esta función sólo está disponible en la versión genérica.
SetFocusedItem()
virtual void wxTreeCtrl::SetFocusedItem(const wxTreeItemId & item)
Establece el elemento actualmente enfocado.
Parámetros
- item
- El elemento a convertir en el actual. Debe ser válido.
SetIndent()
virtual void wxTreeCtrl::SetIndent(unsigned int indent)
Establece la sangría para el control de árbol, en DIP (píxeles independientes de DPI).
SetItemBackgroundColour()
virtual void wxTreeCtrl::SetItemBackgroundColour( const wxTreeItemId & item, const wxColour & col )
Establece el color del fondo del elemento.
SetItemBold()
virtual void wxTreeCtrl::SetItemBold( const wxTreeItemId & item, bool bold = true )
Hace que el elemento aparezca en negrita si el parámetro bold es verdadero o lo restablece al estado normal.
SetItemData()
virtual void wxTreeCtrl::SetItemData( const wxTreeItemId & item, wxTreeItemData * data )
Establece los datos de cliente del elemento.
Hay que tener en cuenta que los datos del cliente previamente asociados con el elemento (si los hay) no son liberados por esta función y por lo tanto llamar a esta función varias veces para el mismo elemento dará lugar a fugas de memoria a menos que se elimine el puntero de datos del elemento antiguo.
Nota de wxPerl: wxPerl proporciona el siguiente método abreviado:
SetPlData(item, data): establece los datos Perl asociados con el Wx::TreeItemData. Es lo mismo que tree->GetItemData(item)->SetData(data).
SetItemDropHighlight()
virtual void wxTreeCtrl::SetItemDropHighlight( const wxTreeItemId & item, bool highlight = true )
Proporciona al elemento la información visual para las acciones de arrastrar y soltar, lo que resulta útil si se arrastra algo desde el exterior al control de árbol (a diferencia de una operación DnD dentro del control de árbol, que ya está implementada internamente).
SetItemFont()
virtual void wxTreeCtrl::SetItemFont( const wxTreeItemId & item, const wxFont & font )
Establece la fuente del elemento.
Todos los elementos del árbol deben tener la misma altura para evitar el recorte de texto, por lo que la altura de las fuentes debe ser la misma para todos ellos, aunque los atributos de fuente pueden variar.
SetItemHasChildren()
virtual void wxTreeCtrl::SetItemHasChildren( const wxTreeItemId & item, bool hasChildren = true )
Fuerza la aparición del botón junto al elemento.
Esto es útil para permitir al usuario expandir los elementos que no tienen hijos ahora, pero en su lugar añadirlos sólo cuando sea necesario, minimizando así el uso de memoria y el tiempo de carga.
SetItemImage()
virtual void wxTreeCtrl::SetItemImage( const wxTreeItemId & item, int image, wxTreeItemIcon which = wxTreeItemIcon_Normal )
Establece la imagen del elemento especificado.
Ver GetItemImage() para la descripción del parámetro which.
SetItemState()
void wxTreeCtrl::SetItemState( const wxTreeItemId & item, int state )
Establece el estado del elemento especificado.
El valor de state puede ser un índice en la lista de imágenes de estado, o uno de los valores especiales:
- wxTREE_ITEMSTATE_NONE: para desactivar el estado del ítem (no se mostrará la imagen de estado).
- wxTREE_ITEMSTATE_NEXT: para establecer el siguiente estado del ítem.
- wxTREE_ITEMSTATE_PREV: para establecer el estado anterior del ítem.
SetItemText()
virtual void wxTreeCtrl::SetItemText( const wxTreeItemId & item, const wxString & text )
Establece la etiqueta del elemento.
SetItemTextColour()
virtual void wxTreeCtrl::SetItemTextColour( const wxTreeItemId & item, const wxColour & col )
Establece el color del texto del elemento.
SetQuickBestSize()
void wxTreeCtrl::SetQuickBestSize(bool quickBestSize)
Si se pasa true, especifica que el control utilizará un cálculo rápido para el mejor tamaño, mirando sólo el primer y último elemento.
En caso contrario, tendrá en cuenta todos los elementos. El valor por defecto es false.
SetSpacing()
void wxTreeCtrl::SetSpacing(unsigned int spacing)
Establece el espaciado para el control de árbol.
El espaciado es el número de DIPs horizontales (píxeles independientes de DPI) entre los botones y las imágenes de estado. Esto no tiene efecto bajo wxMSW.
SetStateImageList()
virtual void wxTreeCtrl::SetStateImageList(wxImageList * imageList)
Establece la lista de imágenes de estado (de la que se toman las imágenes de estado definidas por la aplicación).
La lista de imágenes asignada con este método no será borrada por el destructor de wxTreeCtrl, debe borrarda explícitamente.
Nota: Es preferible utilizar SetStateImages() en el nuevo código.
SetStateImages()
virtual void wxTreeCtrl::SetStateImages(const wxVector < wxBitmapBundle > & images)
Establece las imágenes a utilizar para los estados de los elementos definidos por la aplicación.
Esta función toma un vector de objetos wxBitmapBundle que pueden especificar múltiples versiones del mismo icono para diferentes resoluciones de pantalla para cada estado. Si el vector está vacío, no se muestra ninguna imagen de estado.
SetWindowStyle()
void wxTreeCtrl::SetWindowStyle(long styles)
Establece los indicadores de modo asociados a la visualización del control de árbol.
El nuevo modo tiene efecto inmediato.
Nota: Sólo genérico; MSW ignora los cambios.
SortChildren()
virtual void wxTreeCtrl::SortChildren(const wxTreeItemId & item)
Ordena los hijos del elemento dado utilizando OnCompareItems().
Se debe anular ese método para cambiar el orden de clasificación (el valor predeterminado es el orden alfabético ascendente sensible a mayúsculas/minúsculas).
Toggle()
virtual void wxTreeCtrl::Toggle(const wxTreeItemId & item)
Alterna el elemento dado entre los estados contraído y expandido.
ToggleItemSelection()
void wxTreeCtrl::ToggleItemSelection(const wxTreeItemId & item)
Alterna el elemento dado entre los estados seleccionado y no seleccionado.
Sólo para controles multiselección.
Unselect()
virtual void wxTreeCtrl::Unselect()
Elimina la selección del elemento actualmente seleccionado (si existe).
UnselectAll()
virtual void wxTreeCtrl::UnselectAll()
Esta función se comporta igual que Unselect() si el control no tiene el estilo wxTR_MULTIPLE, o elimina la selección de todos los elementos si tiene este estilo.
UnselectItem()
void wxTreeCtrl::UnselectItem(const wxTreeItemId & item)
Deselecciona el elemento dado.
Sólo funciona en controles multiselección.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject, wxWithImages, wxControl, wxWindow y wxEvtHandler.