buttonbar — u_pbt_buttonbar #
← Riferimento dei componenti · Sommario della guida
buttonbar dispone una fila di pulsanti di comando — icona, etichetta o entrambi — in un solo componente. Un clic riporta la chiave del pulsante (
ue_clicked); ogni pulsante si pilota con un handle (of_button) per disabilitarlo, colorarlo o nasconderlo. Il componente da preferire non appena ci sono più pulsanti: un WebView2 per tutta la barra, dove Nbuttonseparati ne costerebbero N.
▶ Vederlo dal vivo — Applicazione dimostrativa, tessera Button bar, con il codice e questa pagina fianco a fianco.
Avvio rapido #
// A command bar in three lines : key, label, icon
// ("&Save" underlines the S : Alt+S fires the button from anywhere in the window)
uo_bar.of_add_button(/*key*/ "save", /*text*/ "&Save", /*image*/ "mono:img\packimages.dll:svg/samples/save")
uo_bar.of_add_button(/*key*/ "find", /*text*/ "&Find", /*image*/ "mono:img\packimages.dll:svg/samples/find")
uo_bar.of_add_button(/*key*/ "copy", /*text*/ "&Copy")
// A chord : Ctrl+S fires Save, whatever control has the focus
uo_bar.of_button(/*key*/ "save").is_shortcut = "Ctrl+S"
// 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
Proprietà #
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
ib_enabled | boolean | true | L'intera barra attiva o disabilitata. Disabilitata, nessun pulsante risponde — né clic, né Invio, Esc, lettera Alt o scorciatoia: questi tasti restano alla finestra — e la barra esce dall'ordine di tabulazione. Ogni pulsante conserva il proprio ib_enabled |
ii_padding_x | integer | 12 | Rientro sinistro/destro della barra, in pixel: lo spazio prima del primo pulsante e dopo l'ultimo. 0 accosta i pulsanti ai bordi; -1 = quello del tema |
ii_padding_y | integer | 12 | Rientro alto/basso della barra, in pixel. Un pulsante RIEMPIE l'altezza della barra: questo rientro decide quindi l'altezza dei pulsanti (barra più alta o rientro minore = pulsanti più alti). 12 per impostazione predefinita; -1 = quello del tema |
ii_gap | integer | -1 | Spazio TRA due pulsanti, in pixel. -1 (predefinito) = quello del tema. 0 unisce i pulsanti, separati da una linea quando il tema ne ha una |
ii_image_size | integer | 0 | Dimensione delle icone dei pulsanti, in pixel; 0 = quella del tema (18) |
ii_badge_size | integer | 0 | Altezza dei badge, in pixel — il loro testo segue; 0 = quella del tema (16) |
is_align | string | end | Allinea la fila: start (sinistra), center, end (destra, predefinito, come una finestra di dialogo) o justify (pulsanti di uguale larghezza su tutta la larghezza). Valori logici (RTL) — costanti ALIGN_* |
is_default | string | "" | Chiave del pulsante predefinito — l'azione primaria, colorata con l'accento, che Invio attiva (come l'OK di una finestra di dialogo). Quando un pulsante della barra ha il focus della tastiera, Invio attiva QUEL pulsante, che prende allora l'aspetto predefinito (la convenzione di Windows); is_default riletto resta la chiave impostata. Senza pulsante predefinito, il pulsante con il focus mantiene solo il suo anello di focus. Un predefinito disabilitato o nascosto non prende Invio: il tasto resta alla finestra — non va mai al pulsante predefinito di UN'ALTRA barra, nemmeno se è l'unico. Quando due barre della stessa finestra hanno un pulsante predefinito (due fogli MDI, due pannelli), Invio va a quella dal lato del focus. Il ruolo se ne va con il suo pulsante: rimuoverlo, o svuotare la barra, svuota is_default. Vuoto = nessuno; un solo pulsante predefinito alla volta |
is_cancel | string | "" | Chiave del pulsante annulla — quello che Esc attiva (come l'Annulla di una finestra di dialogo). Disabilitato o nascosto, non prende Esc. Il ruolo se ne va con il suo pulsante: rimuoverlo, o svuotare la barra, svuota is_cancel. Vuoto = nessuno; un solo pulsante annulla alla volta |
is_theme_style | string | "" | Stile visivo del componente (costanti THEME_STYLE_*); vuoto = quello dell'applicazione, seguito a ogni cambio |
is_theme_mode | string | "" | Variante chiara o scura (costanti THEME_MODE_*); vuoto = quella dell'applicazione, seguita a ogni cambio |
il_theme_accent | long | -1 | Colore d'accento di questo componente (-1 = accento dell'applicazione, o quello del tema) |
is_tooltip | string | "" | Tooltip semplice mostrato al passaggio del mouse sul componente |
is_super_tooltip_title | string | "" | Titolo del tooltip avanzato (prevale su is_tooltip) |
is_super_tooltip_text | string | "" | Testo del tooltip avanzato (markup avanzato accettato) |
is_super_tooltip_image | string | "" | Immagine del tooltip avanzato |
Metodi #
| Metodo | Ruolo |
|---|---|
of_add_button (string as_key, string as_text {, string as_image}) → long | Aggiunge un pulsante di comando alla fine della barra: la sua chiave, la sua etichetta e, a scelta, la sua icona (file immagine; mono: la ricolora al tema). L'etichetta accetta il markup avanzato; &Save sottolinea la S e fa attivare il pulsante con Alt+S, && è una & letterale. Un'etichetta vuota fa un pulsante con sola icona. Restituisce 0, -5 su una chiave vuota, una chiave che contiene / o una barra verticale, una chiave già nella barra, o un pulsante senza immagine né testo |
of_insert_button (string as_key, string as_text, string as_image, integer ai_index) → long | Inserisce un pulsante di comando alla posizione ai_index (a partire da 1), spostando i successivi; oltre l'ultimo va in fondo, a 0 o meno in testa. Restituisce 0, -5 su una chiave vuota, una chiave che contiene / o una barra verticale, una chiave già nella barra, o un pulsante senza immagine né testo |
of_remove_button (string as_key) → long | Rimuove un pulsante per chiave; gli altri mantengono il loro stato vivo. La sua lettera Alt, le scorciatoie che l'applicazione gli ha dato, il suo ruolo predefinito / annulla, i suoi colori e il suo tooltip se ne vanno con lui. Restituisce 0, -5 con chiave vuota o una chiave che non nomina alcun pulsante |
of_move_button (string as_key, integer ai_index) → long | Sposta un pulsante alla posizione ai_index (a partire da 1; oltre l'ultimo = in fondo, 0 o meno = in testa) senza perdere il suo stato vivo. Restituisce 0, -5 con chiave vuota o una chiave che non nomina alcun pulsante |
of_clear_buttons ( ) → long | Rimuove tutti i pulsanti dalla barra, con le loro lettere Alt, le scorciatoie che l'applicazione ha dato loro, i ruoli predefinito / annulla, colori e tooltip. Restituisce 0, -2 se non creato |
of_clear_shortcuts ( ) → long | Rimuove la scorciatoia di TUTTI i pulsanti: non risponde più, non compare più nel tooltip, e is_shortcut si rilegge vuoto. Le lettere Alt restano. Restituisce 0, -2 se non creato |
of_focus_button (string as_key) → long | Mette il focus della tastiera su UN pulsante — No piuttosto che Sì davanti a una domanda distruttiva, perché Invio risponda No. Restituisce 0, -5 con chiave vuota o che non nomina alcun pulsante, -4 se il pulsante non può prenderlo (disabilitato, nascosto, in una barra disabilitata o non disegnato in modalità demo), -2 se non creato |
of_register_shortcut (string as_chord, string as_key) → long | Dà una scorciatoia da tastiera (Ctrl+S, F5…) a UN pulsante, come il suo is_shortcut: premuta ovunque nella finestra, attiva il pulsante (ue_clicked), anche quando il focus è altrove, e si aggiunge al suo tooltip. È indipendente dalla lettera Alt del pulsante. Finché il pulsante non può attivarsi (disabilitato, nascosto, non disegnato), il tasto resta alla finestra. Una combinazione vuota la rimuove. Su una barra una scorciatoia nomina sempre un pulsante: la forma con un argomento, o una chiave che non nomina alcun pulsante, restituisce -5; una combinazione che la finestra non può mai sollevare (una lettera da sola, Ctrl+Shift) restituisce -5 e mantiene la scorciatoia in essere. Restituisce 0, -2 se non creato |
of_button (string as_key) → n_pbt_buttonbar_button | Restituisce l'handle di un pulsante (dalla sua chiave) per leggere o cambiare le sue proprietà (vedi sotto). Una chiave che non nomina alcun pulsante riceve un handle neutro condiviso: ciò che gli si dà non va da nessuna parte. of_count, of_keys_at e of_has contano anche i pulsanti nascosti |
Eventi #
| Evento | Quando |
|---|---|
ue_clicked (string as_key) | Un pulsante è stato usato: un clic, Invio (il pulsante predefinito, o quello che ha il focus), Esc (il pulsante annulla), la sua lettera Alt o una scorciatoia registrata su di lui. La sua chiave è passata: un'applicazione che collega Annulla deve aspettarselo anche da Esc. Un pulsante disabilitato non emette nulla |
ue_button_rclicked (string as_key, long al_x, long al_y) | Clic destro su UN pulsante, o tasto Menu su quello che ha il focus, con la sua chiave: il punto in cui aprire il menu di quel pulsante. Un pulsante disabilitato non risponde. È l'unico evento di quel clic destro: ue_rclicked non viene sollevato in più; al_x, al_y: dove aprire il menu, in pixel dello schermo — il puntatore, o da tastiera (tasto Menu, Maiusc+F10) l'angolo in basso a sinistra del pulsante; un contextmenu vi si apre così com'è (uo_menu.of_show(al_x, al_y)) |
ue_rclicked ( ) | Clic destro sulla barra FUORI da qualsiasi pulsante. Un clic destro su un pulsante solleva solo ue_button_rclicked: un menu scritto in entrambi non si apre mai due volte |
Proprietà di un pulsante (of_button) #
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
ib_enabled | boolean | true | Attiva o disabilita un pulsante; disabilitato, non si clicca e né Invio, né Esc, né la sua lettera Alt, né la sua scorciatoia lo attivano — questi tasti restano alla finestra; le frecce lo saltano |
ib_visible | boolean | true | Mostra o nasconde un pulsante; nascosto, mantiene il posto e ritorna dov'era |
is_text | string | "" | L'etichetta del pulsante, markup avanzato accettato; da cambiare dopo l'aggiunta. &Save sottolinea la S e fa attivare il pulsante con Alt+S da qualsiasi punto della finestra, come un CommandButton PowerBuilder; && è una & letterale. Un pulsante conserva un'etichetta o un'icona: svuotare l'etichetta di un pulsante senza icona è rifiutato, e l'etichetta si rilegge invariata |
is_image | string | "" | Icona del pulsante (file immagine; mono: segue il tema); da cambiare dopo l'aggiunta. Svuotare l'icona di un pulsante senza etichetta è rifiutato. Un pulsante solo icona è annunciato allo screen reader dal suo tooltip (is_tooltip), altrimenti dalla sua chiave |
is_style | string | standard | L'aspetto del pulsante: standard, primary (il blocco d'accento), flat (senza cornice a riposo) o danger (un'azione distruttiva, nel colore di pericolo del tema) — costanti STYLE_*; un valore sconosciuto si rilegge standard. Un pulsante disabilitato perde il riempimento |
is_badge | string | "" | Un piccolo badge nell'angolo del pulsante: un numero (3; oltre 99 mostra 99+) o una parola breve (New, !). "" o 0 = nessuno. Un lettore di schermo lo sente con il nome del pulsante |
il_badge | long | 0 | Lo stesso badge, come numero (0 = nessuno); un badge-parola si rilegge 0 qui |
il_badge_color | long | -1 | Colore del badge di QUESTO pulsante; -1 = quello del tema, 0 è il nero. Il testo sopra è scelto per restare leggibile |
is_mnemonic | string | "" | La lettera Alt del pulsante quando non è la & della sua etichetta — prevale su di essa: una lettera o una cifra, la prima della sua specie nell'etichetta è sottolineata. Vuoto = la & dell'etichetta. Finché il pulsante non può attivarsi, la sua lettera resta alla finestra |
is_shortcut | string | "" | Una COMBINAZIONE di tasti per questo pulsante — Ctrl+S, F5, Ctrl+Shift+P: premuta ovunque nella finestra, attiva il pulsante e si aggiunge al suo tooltip (Save (Ctrl+S)). Si rilegge nella sua forma canonica (ctrl+s); una combinazione che la finestra non può mai sollevare è rifiutata e si rilegge vuota. Come of_register_shortcut(chord, key). La lettera Alt è la & dell'etichetta, o is_mnemonic |
il_back_color | long | -1 | Sfondo di QUESTO pulsante (-1 = quello del componente, che segue il tema) |
il_text_color | long | -1 | Colore del testo di QUESTO pulsante (-1 = quello del componente) |
il_back_color_hover | long | -1 | Sfondo di QUESTO pulsante al passaggio (-1 = quello del componente) |
il_text_color_hover | long | -1 | Colore del testo di QUESTO pulsante al passaggio (-1 = quello del componente) |
il_accent | long | -1 | Accento di QUESTO pulsante: colora il suo badge e, quando è il pulsante predefinito (o in stile primary), il suo riempimento (-1 = l'accento del componente) |
Ereditato dalla base comune #
Questi membri esistono su tutti i componenti visivi — non sono propri di questo. Sono descritti una sola volta, nei capitoli trasversali; questa tabella dice solo dove leggerli.
| Membri | Ruolo | Descritto in |
|---|---|---|
of_count · of_keys_at · of_has | Percorrere ciò che il componente contiene | 3.2 Gli item |
of_reset | Riportare il componente a zero | 3.6 Riportare un componente a zero: of_reset() |
of_register_shortcut · of_clear_shortcuts | Scorciatoie da tastiera del componente | 3.5 Le scorciatoie da tastiera |
of_is_created · of_is_ready · of_get_last_error | Se è nato, se è pronto, cosa è fallito | 3.7 Diagnostica |
of_save_as_png · of_save_as_jpg | Esportare il rendering in immagine | 3.8 Esportare il rendering come immagine |
of_set_redraw | Raggruppare le modifiche in un solo ridisegno | 3.10 Buone pratiche |
of_preload_icons | Icone mostrate senza ritardo | Visualizzazione istantanea: of_icon |
of_set_translation | Tradurre una dicitura del componente | 5.2 Adattare un'etichetta: of_set_translation |
of_focus_webview | Dare il focus al componente | 6.4 Tastiera e focus |
of_print · of_print_to_pdf | Stampare, o scrivere un PDF | 6.9 Stampare |
of_set_property · of_get_property · of_component_name | Pilotare una proprietà per nome | 3.1 Il motore delle proprietà |
is_accessible_name · is_accessible_description | Il nome e la descrizione che dice un lettore di schermo | 3.4 Proprietà ed event opzionali |