buttonbar — u_pbt_buttonbar #
← Referencia de componentes · Índice de la guía
buttonbar alinea una fila de botones de comando — icono, etiqueta o ambos — en un solo componente. Un clic informa el id del botón (
ue_clicked); cada botón se controla con un handle (of_button) para deshabilitarlo, colorearlo u ocultarlo. El componente a preferir en cuanto hay varios botones: un WebView2 para toda la barra, donde Nbuttonseparados costarían N.
▶ Verlo en vivo — Aplicación de demostración, mosaico Button bar, con el código y esta página lado a lado.
Inicio rápido #
// A command bar in three lines
uo_bar.of_add_button(/*key*/ "save", /*image_file*/ "mono:img\packimages.dll:svg/samples/save", /*text*/ "Save")
uo_bar.of_add_button(/*key*/ "find", /*image_file*/ "mono:img\packimages.dll:svg/samples/find", /*text*/ "Find")
uo_bar.of_add_button(/*key*/ "copy", /*image_file*/ "", /*text*/ "Copy") // no icon
// Grey out a button
uo_bar.of_button(/*key*/ "copy").ib_enabled = false
// React : ue_clicked carries the button key
// (in the ue_clicked event of the component)
CHOOSE CASE as_key
CASE "save" ; wf_save()
CASE "find" ; wf_find()
END CHOOSE
Propiedades #
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
ii_padding_x | integer | 12 | Sangría izquierda/derecha de la barra, en píxeles: el espacio antes del primer botón y después del último. 0 pega los botones a los bordes; -1 = la del tema |
ii_padding_y | integer | 12 | Sangría superior/inferior de la barra, en píxeles. Un botón LLENA la altura de la barra: esta sangría decide la altura de los botones (barra más alta o sangría menor = botones más altos). 12 por defecto; -1 = la del tema |
ii_gap | integer | -1 | Espacio ENTRE dos botones, en píxeles. -1 (por defecto) = el del tema. 0 junta los botones, separados por una línea cuando el tema la tiene |
is_align | string | end | Alinea la fila: start (izquierda), center, end (derecha, predeterminado, como un cuadro de diálogo) o justify (botones de igual ancho en todo el ancho). Valores lógicos (RTL) — constantes ALIGN_* |
is_default | string | "" | Clave del botón predeterminado — la acción principal, pintada con el acento, que Intro activa (como el Aceptar de un cuadro de diálogo). Cuando un botón de la barra tiene el foco del teclado, Intro activa ESE botón, que lleva entonces el aspecto predeterminado (la convención de Windows); is_default releído sigue siendo la clave puesta. Un predeterminado deshabilitado u oculto no toma Intro: la tecla se queda en la ventana. Cuando dos barras de una misma ventana tienen un botón predeterminado (dos hojas MDI, dos paneles), Intro va a la del lado del foco. El rol se va con su botón: quitarlo, o vaciar la barra, vacía is_default. Vacío = ninguno; solo un botón predeterminado a la vez |
is_cancel | string | "" | Clave del botón cancelar — el que Esc activa (como el Cancelar de un cuadro de diálogo). Deshabilitado u oculto, no toma Esc. El rol se va con su botón: quitarlo, o vaciar la barra, vacía is_cancel. Vacío = ninguno; solo un botón cancelar a la vez |
is_theme_style | string | "" | Estilo visual del componente (constantes THEME_STYLE_*); vacío = el de la aplicación, seguido en cada cambio |
is_theme_mode | string | "" | Variante clara u oscura (constantes THEME_MODE_*); vacío = la de la aplicación, seguida en cada cambio |
il_theme_accent | long | -1 | Color de acento de este componente (-1 = acento de la aplicación, o el del tema) |
is_tooltip | string | "" | Tooltip simple mostrado al pasar el ratón por el componente |
is_super_tooltip_title | string | "" | Título del tooltip enriquecido (prevalece sobre is_tooltip) |
is_super_tooltip_text | string | "" | Texto del tooltip enriquecido (se acepta el marcado enriquecido) |
is_super_tooltip_image | string | "" | Imagen del tooltip enriquecido |
Métodos #
| Método | Función |
|---|---|
of_add_button (string as_key, string as_image_file, string as_text) → long | Agrega un botón de comando (id, archivo de imagen, etiqueta) al final de la barra. mono: en la imagen la recolorea al tema; una etiqueta vacía hace un botón solo icono. Devuelve 0, -5 con clave vacía, una clave que contiene / o una barra vertical, una clave ya presente en la barra o sin imagen ni texto |
of_insert_button (string as_key, integer ai_index, string as_image_file, string as_text) → long | Inserta un botón de comando en la posición ai_index (a partir de 1), desplazando el resto. Devuelve 0, -5 con clave vacía, una clave que contiene / o una barra vertical, una clave ya presente en la barra o sin imagen ni texto |
of_remove_button (string as_key) → long | Quita un botón por su clave; los demás conservan su estado vivo. Su letra Alt, los atajos que la aplicación le dio, su rol predeterminado / cancelar, sus colores y su tooltip se van con él. Devuelve 0, -5 con clave vacía o una clave que no nombra ningún botón |
of_move_button (string as_key, integer ai_index) → long | Mueve un botón a la posición ai_index (a partir de 1) sin perder su estado vivo. Devuelve 0, -5 con clave vacía o una clave que no nombra ningún botón |
of_clear_buttons ( ) → long | Quita todos los botones de la barra, con sus letras Alt, los atajos que la aplicación les dio, los roles predeterminado / cancelar, colores y tooltips. Devuelve 0, -2 si no está creado |
of_focus_button (string as_key) → long | Pone el foco del teclado en UN botón — No en lugar de Sí ante una pregunta destructiva, para que Intro responda No. Devuelve 0, -5 con clave vacía o que no nombra ningún botón, -4 si el botón no puede tomarlo (deshabilitado, oculto o no dibujado en modo demo), -2 si no está creado |
of_register_shortcut (string as_chord, string as_key) → long | Da a UN botón un atajo de teclado (Ctrl+S, F5…): pulsado en cualquier lugar de la ventana, activa el botón (ue_clicked), incluso con el foco en otro sitio. Es independiente de la letra Alt del botón: deshabilitarlo, cambiar su letra o volver a habilitarlo nunca lo toca. Una combinación vacía lo quita. En una barra un atajo siempre nombra un botón: la forma de un argumento, o una clave que no nombra ningún botón, devuelve -5. Devuelve 0, -2 si no está creado |
of_button (string as_key) → n_pbt_buttonbar_button | Devuelve el handle de un botón (por id) para leer o cambiar sus propiedades (ver abajo) |
Eventos #
| Evento | Cuándo |
|---|---|
ue_clicked (string as_key) | Se ha usado un botón: un clic, Intro (el botón predeterminado, o el que tiene el foco), Esc (el botón cancelar), su letra Alt o un atajo registrado en él. Se pasa su clave: una aplicación que conecta Cancelar debe esperarlo también desde Esc. Un botón deshabilitado no emite nada |
Propiedades de un botón (of_button) #
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
ib_enabled | boolean | true | Activa o deshabilita un botón; deshabilitado, no se puede clicar y ni Intro, ni Esc, ni su atajo lo activan |
ib_visible | boolean | true | Muestra u oculta un botón; oculto, conserva su lugar y vuelve donde estaba |
is_text | string | "" | Etiqueta del botón; se cambia tras agregarlo. Un botón conserva una etiqueta o un icono: vaciar la etiqueta de un botón sin icono se rechaza, y la etiqueta se relee sin cambios |
is_image | string | "" | Icono del botón (archivo de imagen; mono: sigue el tema); se cambia tras agregarlo. Vaciar el icono de un botón sin etiqueta se rechaza. Un botón de solo icono se anuncia al lector de pantalla por su tooltip (is_tooltip), si no por su clave |
il_badge | long | 0 | Pequeña insignia de recuento en la esquina del botón (0 = ninguna) |
is_shortcut | string | "" | Mnemónico de este botón: Alt+la letra lo activa, desde cualquier lugar de la ventana, y la letra se subraya en su etiqueta. Una letra (se usa la primera); vacío = ninguna. Un atajo registrado explícitamente para la misma tecla (of_register_shortcut) pasa delante de la letra; un menú PB que usa la misma letra la pierde mientras el botón pueda activarse. Mientras el botón está deshabilitado, oculto o no dibujado en modo demo, su letra se deja a la ventana |
il_back_color | long | -1 | Fondo de ESTE botón (-1 = el del componente, que sigue el tema) |
il_text_color | long | -1 | Color del texto de ESTE botón (-1 = el del componente) |
il_back_color_hover | long | -1 | Fondo de ESTE botón al pasar (-1 = el del componente) |
il_text_color_hover | long | -1 | Color del texto de ESTE botón al pasar (-1 = el del componente) |
il_accent | long | -1 | Acento de ESTE botón (-1 = acento del componente) |
Heredado de la base común #
Estos miembros existen en todos los componentes visuales — no son propios de este. Se detallan una sola vez, en los capítulos transversales; esta tabla solo dice dónde leerlos.
| Miembros | Función | Detallado en |
|---|---|---|
of_count · of_keys_at · of_has | Recorrer lo que el componente contiene | 3.2 Los items |
of_reset | Poner el componente a cero | 3.6 Poner un componente a cero: of_reset() |
of_register_shortcut · of_clear_shortcuts | Atajos de teclado del componente | 3.5 Los atajos de teclado |
of_is_created · of_is_ready · of_get_last_error | Si ha nacido, si está listo, qué ha fallado | 3.7 Diagnóstico |
of_save_as_png · of_save_as_jpg | Exportar el render como imagen | 3.8 Exportar la representación como imagen |
of_set_redraw | Agrupar los cambios en un solo repintado | 3.10 Buenas prácticas |
of_preload_icons | Iconos mostrados sin retardo | Visualización instantánea: of_icon |
of_set_translation | Traducir una etiqueta del componente | 5.2 Adaptar una etiqueta: of_set_translation |
of_focus_webview | Dar el foco al componente | 6.4 Teclado y foco |
of_print · of_print_to_pdf | Imprimir, o escribir un PDF | 6.9 Imprimir |
of_set_property · of_get_property · of_component_name | Controlar una propiedad por su nombre | 3.1 El motor de propiedades |