ribbon — u_pbt_ribbon #
← Riferimento dei componenti · Sommario della guida
Barra multifunzione in stile Office: schede, gruppi, dodici tipi di controlli avanzati, menu applicativo, barra di accesso rapido, schede contestuali con banner e keytip.
▶ Vederlo dal vivo — Applicazione dimostrativa, riquadro Ribbon: l'anteprima, il codice che lo produce e questa pagina, affiancati.
In breve #
| Userobject | u_pbt_ribbon |
| Classi degli item | n_pbt_ribbon_tab (scheda), n_pbt_ribbon_group (gruppo), n_pbt_ribbon_item (controllo), n_pbt_ribbon_menu_item (voce di menu), n_pbt_ribbon_ctx_group (gruppo di schede contestuali) |
| Serve per | Sostituire una barra dei menu e le relative barre degli strumenti con un'interfaccia di comando moderna, leggibile e gerarchizzata |
| Altezza | Intrinseca: la barra multifunzione si allinea sempre al proprio contenuto, nulla da attivare — vedere Altezza automatica |
| Limite in modalità demo | 2 schede al massimo — vedere La modalità demo |
La regola d'oro: tutto passa dal percorso #
La barra multifunzione è una gerarchia a quattro livelli: scheda → gruppo → controllo → voce di menu. Non c'è alcun identificatore globale da gestire: ogni oggetto si raggiunge attraverso il percorso che vi conduce e ogni aggiunta avviene sull'handle del genitore.
// Leggere o pilotare un controllo : sempre il percorso completo
uo_ribbon.of_item(/*keys*/ "home/clipboard/paste").ib_enabled = false
Due conseguenze pratiche e comode: due gruppi diversi possono usare lo stesso identificatore di controllo senza intralciarsi e gli event Le consegnano il percorso completo — sa sempre da dove proviene il clic.
Avvio rapido #
// event open della finestra
// Una scheda
uo_ribbon.of_add_tab(/*key*/ "home", /*title*/ "Home")
// Un gruppo: un pulsante grande e due piccoli
uo_ribbon.of_add_group(/*keys*/ "home/clipboard", /*title*/ "Appunti")
uo_ribbon.of_add_big_button(/*keys*/ "home/clipboard/paste", /*label*/ "Incolla", /*image*/ "mono:img\paste.svg")
uo_ribbon.of_add_button(/*keys*/ "home/clipboard/cut", /*label*/ "Taglia", /*image*/ "mono:img\cut.svg")
uo_ribbon.of_add_button(/*keys*/ "home/clipboard/copy", /*label*/ "Copia", /*image*/ "mono:img\copy.svg")
// Mostrare la scheda
uo_ribbon.of_select_tab(/*key*/ "home")
// event ue_clicked di uo_ribbon : (string as_keys)
choose case as_keys
case "home/clipboard/paste" ; of_paste()
case "home/clipboard/cut" ; of_cut()
case "home/clipboard/copy" ; of_copy()
end choose
Proprietà #
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
is_app_button | string | "" | Etichetta del pulsante applicativo, in alto a sinistra, che apre il menu applicativo. Rinominarlo conserva il suo menu; una stringa vuota rimuove il pulsante, con il suo menu. Le voci del menu applicativo richiedono prima il pulsante |
ib_minimized | boolean | false | true riduce la barra multifunzione alle sole intestazioni delle schede; un clic su una scheda la espande temporaneamente. Impostato dal codice, attiva ue_minimized come il gesto dell'utente — nulla quando la barra è già in quello stato; ue_size_changed comunica la nuova altezza |
ib_veto_gallery | boolean | false | Chiedere prima che una piastrella di galleria venga scelta — dall'utente o da of_select_gallery_item (attiva ue_gallery_selection_changing, che può rifiutare; un of_select_gallery_item rifiutato restituisce -4). Inattivo per impostazione predefinita, come ogni evento annullabile: ogni domanda costa un andata e ritorno verso PowerBuilder (~35 ms). Lo metta a true quando la sua applicazione risponde |
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 |
Costante — ACCENT_LIGHT (-1): da passare come colore di una scheda o di un gruppo contestuale affinché segua il colore d'accento del tema, schiarito, anziché un colore fisso.
Proprietà di una scheda — n_pbt_ribbon_tab #
Ottenute tramite of_tab("tab"), si modificano a caldo.
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
ib_visible | boolean | true | false nasconde la scheda senza eliminarla — è il meccanismo stesso delle schede contestuali |
is_title | string | "" | Titolo della scheda. Posto da of_add_tab; scriverlo qui lo cambia, leggerlo dice cosa mostra |
is_keytip | string | "" | Tasto di accesso rapido mostrato dopo aver premuto Alt ("H" per Home). Una lettera o più ("FP", come in Office), digitate una dopo l'altra; Backspace riprende l'ultima. Solo lettere e cifre |
Proprietà di un gruppo — n_pbt_ribbon_group #
Ottenute tramite of_group("tab/group").
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
ib_visible | boolean | true | false nasconde il gruppo e tutti i suoi controlli |
is_title | string | "" | Dicitura sotto il gruppo. Posta da of_add_group; scriverla qui la cambia |
ib_launcher | boolean | false | Mostra la piccola freccia in basso a destra nel gruppo — l'avvio della finestra di dialogo (attiva ue_launcher). La freccia vive nella barra del titolo del gruppo, e un gruppo che la barra multifunzione ha dovuto ridurre per mancanza di spazio la mantiene nello stesso posto — viaggia inoltre nel pannello aperto dal gruppo ridotto. |
Costanti di modalità del selettore di colore: COLORMODE_PALETTE (tavolozza di campioni, modalità predefinita) e COLORMODE_OPEN (tavolozza completa con conferma).
Proprietà di un controllo — n_pbt_ribbon_item #
Ottenute tramite of_item("tab/group/control"). Si applicano a tutti i tipi di controllo; le proprietà prive di senso per un dato tipo vengono semplicemente ignorate.
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
is_label | string | "" | Etichetta del controllo. Accetta il testo formattato con tag |
is_image | string | "" | Immagine del controllo (pulsante, pulsante grande, pulsante diviso, pulsante a discesa, casella di controllo, selettore di colore, pulsante della barra di accesso rapido), con gli stessi prefissi dell'aggiunta (mono:, tint:). "" la rimuove. Riletta in tempo reale |
ib_enabled | boolean | true | false disattiva il controllo e ne blocca l'attivazione |
ib_checked | boolean | false | Stato premuto di un interruttore o selezionato di una casella di controllo |
ib_visible | boolean | true | false nasconde il controllo; i vicini si compattano |
is_text | string | "" | Testo digitato o selezionato in una casella combinata |
id_value | double | 0 | Valore numerico di un selettore numerico |
id_min | double | 0 | Solo selettore numerico: limite inferiore dell'intervallo, modificabile in qualsiasi momento. Il valore viene subito riportato nel nuovo intervallo, in silenzio (nessun ue_value_changed, come id_value scritto dal codice). Su qualsiasi altro controllo non ha effetto e si rilegge 0 |
id_max | double | 0 | Solo selettore numerico: limite superiore dell'intervallo, modificabile in qualsiasi momento; il valore viene riportato nell'intervallo in silenzio, come per id_min. Su qualsiasi altro controllo non ha effetto e si rilegge 0 |
id_step | double | 0 | Solo selettore numerico: passo delle frecce e dei tasti Su / Giù, modificabile in qualsiasi momento. Un passo di 0 o meno viene ignorato. Su qualsiasi altro controllo non ha effetto e si rilegge 0 |
il_color | long | -1 | Colore corrente di un selettore di colore |
ii_visible_items | integer | 3 | Solo raccolta: numero di riquadri che la striscia compressa mostra in una volta. Gli altri restano raggiungibili tramite le frecce, oppure nella griglia espansa |
is_keytip | string | "" | Tasto di accesso rapido del controllo, mostrato dopo Alt e la lettera della scheda. Una lettera o più ("FP", come in Office), digitate una dopo l'altra; Backspace riprende l'ultima. Solo lettere e cifre. Un controllo di un gruppo ridotto conserva il suo tasto: apre il pannello del gruppo |
is_tooltip | string | "" | Tooltip semplice mostrato al passaggio del mouse sull'item |
is_super_tooltip_title | string | "" | Titolo del tooltip avanzato dell'item (prevale su is_tooltip) |
is_super_tooltip_text | string | "" | Testo del tooltip avanzato dell'item (markup avanzato accettato) |
is_super_tooltip_image | string | "" | Immagine del tooltip avanzato dell'item |
Proprietà di una voce di menu — n_pbt_ribbon_menu_item #
Ottenute tramite of_menu_item("tab/group/control/entry").
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
is_image | string | "" | Immagine della voce di menu. Una stringa vuota la toglie |
of_is_separator ( ) → boolean | — | — | La voce è una linea di separazione? Sola lettura: cosa una voce è è stato deciso all'aggiunta |
of_is_header ( ) → boolean | — | — | La voce è un titolo non cliccabile? Sola lettura, stessa ragione |
of_is_checkable ( ) → boolean | — | — | La voce porta un segno di spunta? Sola lettura; ib_checked dice se è messo |
ib_enabled | boolean | true | false disattiva la voce |
ib_visible | boolean | true | false toglie la voce dal menu alla sua prossima apertura — cascata compresa — senza rimuoverla |
ib_checked | boolean | false | Segno di spunta di una voce creata con of_add_menu_check |
Proprietà di una voce del menu applicativo — n_pbt_ribbon_app_menu_item #
Ottenute tramite of_app_menu_item("recent/a.txt"). Si modificano al volo: il menu le recepisce alla sua prossima apertura.
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
is_label | string | "" | Testo della voce |
is_image | string | "" | Immagine della voce. Una stringa vuota la rimuove |
ib_enabled | boolean | true | false disattiva la voce: mostrata, mai scelta — Salva quando non c'è nulla da salvare |
ib_checked | boolean | false | Segno di spunta davanti alla voce |
ib_visible | boolean | true | false toglie la voce dal menu alla sua prossima apertura — sottomenu compreso — senza eliminarla |
of_is_separator ( ) → boolean | — | — | La voce è una linea di separazione? Sola lettura |
of_keys_at (long al_index) → string | — | — | L'indirizzo della voce alla posizione ai_index (da 1) sotto questa — o al primo livello per of_app_menu_item("") —, "" oltre la fine: l'indirizzo che of_app_menu_item e of_remove_app_menu_item ricevono |
I dodici tipi di controlli #
Si aggiungono tutti all'indirizzo di un gruppo — "home/clipboard" — e restituiscono 0 (-5 per un argomento non valido, -2 se il componente non è creato); un menu o un elenco si riempie poi all'indirizzo del controllo.
| Metodo del gruppo | Controllo ottenuto | Event |
|---|---|---|
of_add_big_button (string as_keys, string as_label, string as_image) → long | Pulsante grande a tutta altezza, icona sopra l'etichetta. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_clicked |
of_add_big_split (string as_keys, string as_label, string as_image) → long | Pulsante grande diviso: la parte superiore agisce, la freccia apre il menu. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_clicked · ue_menu_selected |
of_add_big_dropdown (string as_keys, string as_label, string as_image) → long | Pulsante grande con menu a discesa. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_menu_selected |
of_add_button (string as_keys, string as_label, string as_image) → long | Pulsante piccolo (impilato in colonne da tre). Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_clicked |
of_add_toggle (string as_keys, string as_label, string as_image) → long | Piccolo interruttore che rimane premuto. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_toggled |
of_add_dropdown (string as_keys, string as_label, string as_image) → long | Pulsante piccolo con menu a discesa. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_menu_selected |
of_add_checkbox (string as_keys, string as_label) → long | Casella di controllo. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_toggled |
of_add_separator (string as_keys) → long | Separatore verticale tra due blocchi di controlli. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | — |
of_add_combo (string as_keys, integer ai_width_px, boolean ab_editable) → long | Casella combinata, modificabile o meno. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_combo_changed |
of_add_spinner (string as_keys, integer ai_width_px, double ad_min, double ad_max, double ad_step, double ad_value) → long | Selettore numerico con frecce. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_value_changed |
of_add_colorpicker (string as_keys, string as_label, string as_image, long al_color) → long | Pulsante di colore diviso: il clic riapplica, la freccia apre la tavolozza di campioni. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato | ue_clicked · ue_color_changed |
of_add_gallery (string as_keys, integer ai_width_px, integer ai_tile_w, integer ai_tile_h) → long | Striscia scorrevole di piastrelle illustrate | ue_gallery_selection_changed |
of_add_colorpicker accetta un quinto argomento as_mode: COLORMODE_PALETTE (tavolozza di campioni) o COLORMODE_OPEN (tavolozza completa con i pulsanti OK e Annulla).
Metodi #
Costruire la barra multifunzione #
| Metodo | Ruolo |
|---|---|
of_add_tab (string as_key, string as_title) | Aggiunge una scheda e restituisce 0 (-5 per un argomento non valido, -2 se il componente non è creato): i gruppi si aggiungono poi al suo indirizzo |
of_insert_tab (string as_key, string as_title, integer ai_index) | Aggiunge una scheda nella posizione che sceglie lei (1 = in testa) invece che in fondo, e restituisce 0 (-5 per un argomento non valido, -2 se il componente non è creato) come of_add_tab. Un id già assegnato viene rifiutato |
of_tab (string as_key) | Handle di una scheda esistente (creata al primo accesso) |
of_add_group (string as_keys, string as_title) | Aggiunge un gruppo intitolato a una scheda — "home/clipboard" — e restituisce 0 (-5 per un argomento non valido, -2 se il componente non è creato) |
of_group (string as_keys) | Handle di un gruppo esistente, tramite il suo indirizzo |
of_item (string as_keys) | Handle di un controllo esistente, tramite il suo indirizzo — "home/clipboard/paste" |
of_select_tab (string as_key) | Attiva una scheda, come un clic su di essa: segue ue_selection_changed (subito dopo il suo script, dalla coda degli eventi; nulla quando la scheda è già attiva), e of_selected_key la rilegge subito. A differenza di un clic, non espande una barra ridotta. Restituisce 0 una volta applicato, -5 per una scheda sconosciuta o nascosta, -2 se il componente non è creato |
of_selected_key ( ) | Chiave della scheda attiva, "" se nessuna. Letta in diretta dal componente: già da ue_selection_changed, o subito dopo of_select_tab, indica la nuova scheda |
of_remove_group (string as_keys) | Rimuove un gruppo e tutti i suoi controlli, tramite il suo indirizzo; gli handle di ciò che se ne va sono liberati. Restituisce 0 una volta applicato, -5 quando nessun gruppo vive a quell'indirizzo, -2 se il componente non è creato |
of_remove_item (string as_keys) | Rimuove un controllo tramite il suo indirizzo (scheda/gruppo/controllo), oppure un pulsante della barra di accesso rapido tramite la sola chiave; il suo handle è liberato. Restituisce 0 una volta applicato, -5 quando nulla del genere vive a quell'indirizzo, -2 se il componente non è creato |
of_remove_tab (string as_key) | Rimuove una scheda e tutto il suo contenuto; gli handle di ciò che se ne va sono liberati. Restituisce 0 una volta applicato, -5 quando nessuna scheda porta quella chiave, -2 se il componente non è creato |
of_clear ( ) | Svuota completamente la barra multifunzione: schede, gruppi, controlli, barra di accesso rapido, menu applicativo. Restituisce 0 una volta applicato, -2 se il componente non è creato |
Riempire i menu e gli elenchi #
Tutti questi metodi si richiamano sul componente, con l'indirizzo del controllo (scheda/gruppo/controllo) — la voce, la scelta o il riquadro come quarto livello.
| Metodo | Ruolo |
|---|---|
of_add_menu_item (string as_keys, string as_label, string as_image) | Voce del menu di un pulsante a discesa o diviso: scheda/gruppo/controllo/voce, un livello in più per ogni cascata. Restituisce 0 una volta applicato, -5 per un indirizzo errato, un genitore che non è né un menu a discesa né una voce, o una chiave già presa in quel menu, -2 se il componente non è creato |
of_add_menu_check (string as_keys, string as_label) · (id, label, image) | Voce selezionabile: il clic ne inverte lo stato e lo riporta in ue_menu_selected. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato |
of_add_menu_header (string as_keys, string as_label) | Riga di titolo non cliccabile, per suddividere un menu lungo. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato |
of_add_menu_separator (string as_keys) | Riga di separazione in un menu: as_keys indica il controllo per il suo menu, oppure una voce per la cascata sotto di essa. Restituisce 0 una volta applicato, -5 per un argomento non valido (chiave vuota, indirizzo errato), -2 se il componente non è creato |
of_remove_menu_item (string as_keys) | Rimuove una voce di un menu, con la sua cascata (scheda/gruppo/controllo/voce, più in profondità per una voce in cascata); i suoi handle sono liberati. Restituisce 0 una volta applicato, -5 quando nessuna voce vive a quell'indirizzo, -2 se il componente non è creato |
of_clear_menu (string as_keys) | Svuota il menu di un pulsante a discesa o diviso (scheda/gruppo/controllo): un elenco «File recenti» si ricostruisce voce per voce, senza ricreare il controllo. Restituisce 0 una volta applicato, -5 quando l'indirizzo non è né un menu a discesa né un pulsante diviso, -2 se il componente non è creato |
of_menu_item (string as_keys) | Handle di una voce di menu, per disattivarla o selezionarla a caldo |
of_add_combo_item (string as_keys, string as_label) | Aggiunge una scelta all'elenco di una casella combinata; una scelta ha come chiave la sua etichetta. Restituisce 0 una volta applicato, -5 quando l'indirizzo non è una casella combinata, o per un'etichetta già nell'elenco, vuota, o che contiene / o una barra verticale, -2 se il componente non è creato |
of_remove_combo_item (string as_keys) | Rimuove una scelta di una casella combinata: scheda/gruppo/elenco/etichetta. Restituisce 0 una volta applicato, -5 quando l'elenco non ha quella scelta, -2 se il componente non è creato |
of_clear_combo (string as_keys) | Svuota l'elenco di una casella combinata (scheda/gruppo/elenco); il suo testo resta. Restituisce 0 una volta applicato, -5 quando l'indirizzo non è una casella combinata, -2 se il componente non è creato |
of_add_gallery_item (string as_keys, string as_image, string as_label) | Aggiunge una tessera a una raccolta (scheda/gruppo/raccolta/tessera); la sua etichetta è anche il suo nome per un lettore di schermo. Restituisce 0 una volta applicato, -5 per un indirizzo errato, un terzo livello che non è una raccolta, o una tessera già presa, -2 se il componente non è creato |
of_remove_gallery_item (string as_keys) | Rimuove una tessera di una raccolta (scheda/gruppo/raccolta/tessera). Quando la tessera selezionata se ne va, non resta nulla di selezionato. Restituisce 0 una volta applicato, -5 quando quella tessera non esiste, -2 se il componente non è creato |
of_select_gallery_item (string as_keys) | Seleziona una tessera della raccolta da programma, tramite il suo indirizzo a quattro livelli, come una scelta: con ib_veto_gallery attivo, viene posto prima ue_gallery_selection_changing; poi segue ue_gallery_selection_changed. Tessera già selezionata: nulla viene chiesto né sollevato. Restituisce 0 una volta applicato (o se già selezionata), -4 se il suo ue_gallery_selection_changing ha rifiutato (la tessera resta), -5 per un'altra profondità o una tessera mai aggiunta da of_add_gallery_item, -2 se il componente non è creato |
of_open (string as_keys) | Apre da programma il menu, l'elenco o la tavolozza del controllo a quell'indirizzo (scheda/gruppo/controllo); l'indirizzo di un gruppo (scheda/gruppo) ne apre il pannello quando una finestra troppo stretta lo ha ridotto. Restituisce 0 una volta applicato, -5 per un indirizzo che non nomina né un controllo né un gruppo (un pulsante della barra di accesso rapido non ha un menu da aprire), -2 se il componente non è creato |
Menu applicativo e barra di accesso rapido #
| Metodo | Ruolo |
|---|---|
of_add_app_menu_item (string as_keys, string as_label, string as_image) | Voce del menu applicativo (quello che apre il pulsante is_app_button), tramite il suo indirizzo: recent alla radice, recent/a.txt nel sottomenu di recent. Restituisce 0 una volta applicato, -5 per una chiave non valida (vuota, / o barra verticale in un livello, che inizia con __), una chiave già presa, una voce genitore sconosciuta, o senza pulsante applicativo, -2 se il componente non è creato |
of_add_app_menu_separator (string as_keys) | Linea di separazione nel menu applicativo. as_keys è il suo indirizzo, come quello di una voce: s1 alla radice, saveas/s1 nel sottomenu di saveas; un indirizzo vuoto riceve una chiave propria. Restituisce 0 una volta applicato, -5 per una chiave già presa, una voce genitore sconosciuta, o senza pulsante applicativo, -2 se il componente non è creato |
of_remove_app_menu_item (string as_keys) | Rimuove una voce (o linea di separazione) del menu applicativo tramite il suo indirizzo, con il suo sottomenu; i suoi handle sono liberati. Restituisce 0 una volta applicato, -5 quando quella voce non esiste, -2 se il componente non è creato |
of_app_menu_item (string as_keys) | Handle di una voce del menu applicativo (save, recent/a.txt), per disattivarla, spuntarla, nasconderla o rinominarla al volo — vedere sotto. of_app_menu_item("") rappresenta il menu stesso: of_count e of_keys_at ne percorrono il primo livello |
of_add_qat (string as_key, string as_image, string as_tooltip) | Pulsante della barra di accesso rapido, sopra le schede; il suo tooltip è anche il suo nome per un lettore di schermo. Restituisce 0 una volta applicato, -5 per una chiave non valida (vuota, / o barra verticale in un livello, che inizia con __) o una chiave già nella barra, -2 se il componente non è creato |
of_qat_item (string as_key) | Handle di un pulsante di accesso rapido, per disattivarlo o nasconderlo a caldo |
Schede contestuali #
| Metodo | Ruolo |
|---|---|
of_add_contextual_tab (string as_key, string as_title, long al_color) | Scheda contestuale isolata: creata nascosta, contrassegnata da un filetto colorato. Passate ACCENT_LIGHT per seguire l'accento del tema. Restituisce 0 una volta applicato, -5 per una chiave non valida (vuota, / o barra verticale in un livello, che inizia con __) o una chiave già presa, -2 se il componente non è creato |
of_add_contextual_group (string as_key, string as_title) · (id, title, al_color) | Gruppo di schede contestuali: una fascia colorata con titolo corona le sue schede. Restituisce 0 una volta applicato, -5 per una chiave non valida (vuota, / o barra verticale in un livello, che inizia con __) o una chiave già presa (il suo colore cambia tramite of_ctx_group(chiave).il_color), -2 se il componente non è creato |
of_ctx_group (string as_key) | Recupera l'handle di un gruppo contestuale già creato, tramite la sua chiave — è su di esso che si impostano le sue proprietà |
of_remove_contextual_group (string as_key) | Rimuove un gruppo di schede contestuali e le schede che corona — gli appartengono; i loro handle sono liberati. Restituisce 0 una volta applicato, -5 quando of_add_contextual_group non ha mai creato quel gruppo, -2 se il componente non è creato |
of_add_contextual_tab (string as_key, string as_title, string as_group_key) | Aggiunge una scheda sotto un gruppo contestuale: creata nascosta, coronata dalla fascia colorata del gruppo. Restituisce 0 una volta applicato, -5 per una chiave non valida o già presa, o un gruppo mai creato da of_add_contextual_group, -2 se il componente non è creato |
il_color (proprietà) | Su un handle di gruppo contestuale: ricolora il banner a caldo (ACCENT_LIGHT per tornare al colore d'accento) |
Comuni #
| Metodo | Ruolo |
|---|---|
of_reset ( ) | Svuota la barra multifunzione e la riporta allo stato iniziale, proprietà comprese. Restituisce 0 una volta applicato, -2 se il componente non è creato |
of_set_redraw (boolean) | Raggruppa una raffica di modifiche in un unico rendering. Restituisce 0 una volta applicato, -2 se il componente non è creato |
of_preload_icons (string as_icons[]) | Preriscalda un lotto di icone all'avvio: una scheda aperta più tardi mostra le proprie istantaneamente. Restituisce 0 una volta applicato, -2 se il componente non è creato |
of_save_as_png (string) · of_save_as_jpg (string) | Esporta il rendering come immagine. Restituisce 0 una volta scritta l'immagine, -4 se la scrittura fallisce, -2 se il componente non è creato |
Event #
Tutti gli event dei controlli portano con sé il percorso completo: non ha mai bisogno di un identificatore univoco in tutta l'applicazione.
| Event | Attivato quando |
|---|---|
ue_clicked (string as_keys) | L'utente clicca un pulsante, un pulsante grande, la parte principale di un pulsante diviso o un pulsante della barra di accesso rapido — nella barra, nel pannello di un gruppo ridotto, o tramite il suo tasto di accesso rapido. as_keys è l'indirizzo scheda/gruppo/controllo, o la sola chiave di un pulsante di accesso rapido |
ue_toggled (string as_keys, boolean ab_checked) | L'utente commuta un pulsante interruttore o una casella di controllo (nella barra o nel pannello di un gruppo ridotto); ab_checked porta il nuovo stato. Scrivere ib_checked dal codice non attiva nulla |
ue_menu_selected (string as_keys, boolean ab_checked) | L'utente sceglie una voce del menu di un pulsante a discesa o diviso. as_keys è il suo indirizzo completo: scheda, gruppo, controllo portatore, poi la voce — un livello in più per ogni cascata. Una voce spuntabile commuta prima, e ab_checked porta il suo nuovo stato. Una voce disattivata o nascosta non si sceglie |
ue_combo_changed (string as_keys, string as_text) | L'utente conferma il testo di una casella combinata: una scelta nel suo elenco, Invio nel campo, o l'uscita dal campo dopo una digitazione. Esc abbandona la digitazione senza attivare nulla; scrivere is_text dal codice non attiva nulla neppure |
ue_value_changed (string as_keys, double ad_value) | L'utente cambia il valore di un contatore: le sue frecce, Su / Giù nel campo, Invio o l'uscita dal campo dopo una digitazione (Esc la abbandona). ad_value è il nuovo valore, contenuto nell'intervallo del contatore. Scrivere id_value dal codice non attiva nulla |
ue_color_changed (string as_keys, long al_color) | L'utente sceglie un colore (tavolozza o selettore), oppure clicca la parte principale di un selettore di colore per riapplicarne il colore corrente; al_color è il colore PowerBuilder. Scrivere il_color dal codice non attiva nulla |
ue_gallery_selection_changed (string as_from_keys, string as_keys) | Una piastrella di galleria è stata scelta — dall'utente o da of_select_gallery_item (anche un ordine del suo codice lo solleva). Stessi argomenti di ue_gallery_selection_changing: la domanda e il suo esito si leggono allo stesso modo, e as_from_keys è la piastrella lasciata |
ue_gallery_selection_changing (string as_from_keys, string as_keys) → boolean | Annullabile, posto prima che la piastrella venga scelta. Sollevato solo quando ib_veto_gallery = true. as_from_keys è la piastrella corrente. Posto anche per of_select_gallery_item. Restituisca false per conservarla (uno stile che il documento non può ancora assumere): of_select_gallery_item restituisce allora -4 |
ue_launcher (string as_keys) | L'utente clicca la freccia di avvio di un gruppo (anche dal pannello di un gruppo ridotto): as_keys è l'indirizzo del gruppo scheda/gruppo — aprite la vostra finestra delle opzioni |
ue_selection_changed (string as_keys) | Un'altra scheda passa in primo piano: un clic, la rotellina sopra la barra, un tasto di accesso rapido, oppure of_select_tab (anche un ordine del suo codice lo solleva). as_keys è la chiave della scheda — vuota quando non ne resta nessuna, dopo che la scheda attiva è stata nascosta o rimossa |
ue_app_button ( ) | Si fa clic sul pulsante applicativo |
ue_app_menu_selected (string as_keys) | L'utente sceglie una voce del menu applicativo: as_keys è il suo indirizzo (saveas/as_pdf). Una voce disattivata o nascosta non si sceglie |
ue_minimized (boolean ab_minimized) | La barra si riduce o si espande: il chevron alla fine della riga delle schede, un doppio clic su una scheda, oppure ib_minimized impostato dal suo codice (anche un ordine lo attiva); ue_size_changed comunica la nuova altezza in ogni caso |
ue_size_changed (long al_height, boolean ab_minimized) | L'altezza della barra multifunzione è cambiata da sola: ridotta, espansa, una scheda contestuale mostrata, una finestra più stretta che perde una riga. A differenza di ue_auto_height — che parla solo quando il componente si ridimensiona da sé — questo si attiva sia che l'altezza automatica sia attiva o no: è pura informazione, per ricollocare ciò che sta sotto |
ue_keytips (boolean ab_on, integer ai_level) | I keytip compaiono (true) o scompaiono (false). ai_level indica a che punto è la navigazione: 1 = le schede sono lettrate, 2 = lo sono i comandi della scheda corrente, 0 = nessun keytip |
ue_auto_height (long al_height) | La barra multifunzione comunica la propria altezza ideale e vi si è appena adattata — sempre attivo: l'altezza di una barra multifunzione è intrinseca |
ue_ready ( ) | Il componente ha terminato il caricamento; tutto ciò che è stato inviato prima è stato riprodotto |
ue_runtime_missing ( ) | Il runtime WebView2 è assente: il componente resta vuoto |
ue_bg_color (long al_color) | Il componente ha calcolato il colore di sfondo del proprio tema; l'userobject lo ha già adottato (backcolor) |
Esempi #
Una barra multifunzione completa, dal menu applicativo ai gruppi #
// event open : si raggruppa tutta la costruzione in un unico rendering
// Sospendere il disegno e dare un nome al pulsante dell'applicazione
uo_ribbon.of_set_redraw(/*on*/ false)
uo_ribbon.is_app_button = "File"
// Menu applicativo, con una cascata sotto "Salva con nome"
uo_ribbon.of_add_app_menu_item(/*keys*/ "new", /*label*/ "Nuovo", /*image*/ "mono:img\new.svg")
uo_ribbon.of_add_app_menu_item(/*keys*/ "open", /*label*/ "Apri...", /*image*/ "mono:img\open.svg")
uo_ribbon.of_add_app_menu_item(/*keys*/ "save_as", /*label*/ "Salva con nome", /*image*/ "mono:img\saveas.svg")
uo_ribbon.of_add_app_menu_item(/*keys*/ "save_as/as_pdf", /*label*/ "Documento PDF", /*image*/ "")
uo_ribbon.of_add_app_menu_item(/*keys*/ "save_as/as_csv", /*label*/ "File CSV", /*image*/ "")
uo_ribbon.of_add_app_menu_separator(/*keys*/ "sep1")
uo_ribbon.of_add_app_menu_item(/*keys*/ "quit", /*label*/ "Esci", /*image*/ "mono:img\exit.svg")
// Barra di accesso rapido, sopra le schede
uo_ribbon.of_add_qat(/*key*/ "qat_save", /*image*/ "mono:img\save.svg", /*tooltip*/ "Salva")
uo_ribbon.of_add_qat(/*key*/ "qat_undo", /*image*/ "mono:img\undo.svg", /*tooltip*/ "Annulla")
// Scheda Home
uo_ribbon.of_add_tab(/*key*/ "home", /*title*/ "Home")
uo_ribbon.of_tab(/*key*/ "home").is_keytip = "H"
// Un gruppo: un pulsante diviso con il suo menu, poi due pulsanti piccoli
uo_ribbon.of_add_group(/*keys*/ "home/clipboard", /*title*/ "Appunti")
uo_ribbon.of_add_big_split(/*keys*/ "home/clipboard/paste", /*label*/ "Incolla", /*image*/ "mono:img\paste.svg")
uo_ribbon.of_add_menu_item(/*keys*/ "home/clipboard/paste/paste_text", /*label*/ "Incolla senza formattazione", /*image*/ "")
uo_ribbon.of_add_menu_item(/*keys*/ "home/clipboard/paste/paste_link", /*label*/ "Incolla come collegamento", /*image*/ "")
uo_ribbon.of_add_button(/*keys*/ "home/clipboard/cut", /*label*/ "Taglia", /*image*/ "mono:img\cut.svg")
uo_ribbon.of_add_button(/*keys*/ "home/clipboard/copy", /*label*/ "Copia", /*image*/ "mono:img\copy.svg")
uo_ribbon.of_group(/*keys*/ "home/clipboard").ib_launcher = true // freccia delle opzioni in basso a destra
// Disegnare tutto in una volta, poi mostrare la scheda
uo_ribbon.of_set_redraw(/*on*/ true)
uo_ribbon.of_select_tab(/*key*/ "home")
Un unico smistamento dei clic #
// event ue_clicked di uo_ribbon : (string as_keys)
// Il percorso completo arriva con l'event : basta un solo smistamento,
// e due gruppi possono riutilizzare lo stesso identificatore senza disturbarsi.
choose case as_keys
case "clipboard/cut" ; of_cut()
case "clipboard/copy" ; of_copy()
case "clipboard/paste" ; of_paste()
case "font/bold" ; of_toggle_bold()
end choose
Pilotare lo stato dei controlli in base ai diritti #
// Sempre attraverso il percorso : scheda > gruppo > controllo
uo_ribbon.of_item(/*keys*/ "home/clipboard/paste").ib_enabled = of_clipboard_has_data()
uo_ribbon.of_item(/*keys*/ "home/tools/brush").ib_checked = true
uo_ribbon.of_tab(/*key*/ "admin").ib_visible = gb_administrator
// Disattivare una voce DENTRO un menu a discesa (livello 4)
uo_ribbon.of_item(/*keys*/ "home/clipboard/paste") &
.of_menu_item(/*keys*/ "paste_link").ib_enabled = false
Schede contestuali con banner #
Il principio di Office: schede che compaiono solo quando la selezione le giustifica, sovrastate da un banner intitolato e colorato.
// event open : si prepara il gruppo contestuale, nascosto per impostazione predefinita
// Senza colore, il banner segue il colore d'accento del tema ; RGB(...) per imporlo
uo_ribbon.of_add_contextual_group(/*key*/ "img", /*title*/ "Strumenti immagine", &
/*color*/ RGB(/*red*/ 224, /*green*/ 32, /*blue*/ 96))
uo_ribbon.of_add_contextual_tab(/*key*/ "format", /*title*/ "Formato", /*group_key*/ "img")
uo_ribbon.of_add_group(/*keys*/ "format/adjust", /*title*/ "Regola")
uo_ribbon.of_add_big_button(/*keys*/ "format/adjust/crop", /*label*/ "Ritaglia", /*image*/ "mono:img\crop.svg")
uo_ribbon.of_add_button(/*keys*/ "format/adjust/rotate", /*label*/ "Ruota", /*image*/ "mono:img\rotate.svg")
// Alla selezione di un'immagine : si rivela la scheda e la si attiva
uo_ribbon.of_tab(/*key*/ "format").ib_visible = true
uo_ribbon.of_select_tab(/*key*/ "format")
// Alla deselezione : la si nasconde, il banner sparisce con lei
uo_ribbon.of_tab(/*key*/ "format").ib_visible = false
Casella combinata, selettore numerico, selettore di colore e raccolta #
// Un nuovo gruppo nella scheda
uo_ribbon.of_add_group(/*keys*/ "home/font", /*title*/ "Carattere")
// Casella combinata modificabile : la si riempie tramite il suo handle
uo_ribbon.of_add_combo(/*keys*/ "home/font/font_name", /*width_px*/ 140, /*editable*/ true)
uo_ribbon.of_add_combo_item(/*keys*/ "home/font/font_name", /*label*/ "Segoe UI")
uo_ribbon.of_add_combo_item(/*keys*/ "home/font/font_name", /*label*/ "Arial")
uo_ribbon.of_add_combo_item(/*keys*/ "home/font/font_name", /*label*/ "Calibri")
uo_ribbon.of_item(/*keys*/ "home/font/font_name").is_text = "Segoe UI"
// Selettore numerico : minimo, massimo, passo, valore iniziale
uo_ribbon.of_add_spinner(/*keys*/ "home/font/size", /*width_px*/ 70, /*min*/ 6, /*max*/ 96, &
/*step*/ 1, /*value*/ 11)
// Selettore di colore in modalita tavolozza completa (con OK / Annulla)
uo_ribbon.of_add_colorpicker(/*keys*/ "home/font/color", /*label*/ "Colore", &
/*image*/ "mono:img\font-color.svg", &
/*color*/ RGB(/*red*/ 0, /*green*/ 0, /*blue*/ 0), &
/*mode*/ u_pbt_ribbon.COLORMODE_OPEN)
// Raccolta di stili : riquadri illustrati scorrevoli
uo_ribbon.of_add_gallery(/*keys*/ "home/font/styles", /*width_px*/ 220, &
/*tile_w*/ 64, /*tile_h*/ 48)
uo_ribbon.of_add_gallery_item(/*keys*/ "home/font/styles/st_normal", /*image*/ "img\style-normal.png", /*label*/ "Normale")
uo_ribbon.of_add_gallery_item(/*keys*/ "home/font/styles/st_title", /*image*/ "img\style-titre.png", /*label*/ "Titolo")
uo_ribbon.of_add_gallery_item(/*keys*/ "home/font/styles/st_note", /*image*/ "img\style-note.png", /*label*/ "Nota")
uo_ribbon.of_add_gallery_item(/*keys*/ "home/font/styles/st_code", /*image*/ "img\style-code.png", /*label*/ "Codice")
// La striscia compressa mostra 4 riquadri alla volta ; gli altri restano
// raggiungibili tramite le frecce, oppure nella griglia espansa.
uo_ribbon.of_item(/*keys*/ "home/font/styles").ii_visible_items = 4
// Lo stile selezionato all'inizio
uo_ribbon.of_select_gallery_item(/*keys*/ "home/font/styles/st_normal")
// event ue_value_changed di uo_ribbon : (string as_keys, double ad_value)
n_pbt_utils lnv_utils // autoinstantiate : niente da creare, niente da distruggere
if lnv_utils.of_leaf(/*keys*/ as_keys) = "size" then of_apply_size(ad_value)
L'intervallo e il passo di un selettore numerico si cambiano in seguito tramite id_min, id_max e id_step del suo handle: il valore viene subito riportato nel nuovo intervallo, senza attivare ue_value_changed. La sua immagine, come quella di ogni controllo, si cambia tramite is_image.
// La dimensione massima dipende dal carattere scelto : 96, poi 400 a passi di 2
uo_ribbon.of_item(/*keys*/ "home/font/size").id_max = 400
uo_ribbon.of_item(/*keys*/ "home/font/size").id_step = 2
// event ue_color_changed di uo_ribbon : (string as_keys, long al_color)
n_pbt_utils lnv_utils // autoinstantiate : niente da creare, niente da distruggere
if lnv_utils.of_leaf(/*keys*/ as_keys) = "color" then of_apply_color(al_color)
Rifiutare la scelta di un riquadro di raccolta #
// La domanda e posta solo su richiesta: questa riga la attiva, e
// ue_gallery_selection_changing decide allora di ogni piastrella.
uo_ribbon.ib_veto_gallery = true
// event ue_gallery_selection_changing di uo_ribbon :
// (string as_from_keys, string as_keys)
// Restituire FALSE conserva il riquadro corrente (as_from_keys).
n_pbt_utils lnv_utils // autoinstantiate : niente da creare, niente da distruggere
if lnv_utils.of_leaf(/*keys*/ as_keys) = "st_code" and not of_document_supports_code() then
MessageBox("Stile", "Questo documento non può assumere lo stile Codice.")
return false
end if
return true
L'avvio della finestra di dialogo #
// La piccola freccia in basso a destra nel gruppo
uo_ribbon.of_group(/*keys*/ "home/font").ib_launcher = true
// event ue_launcher di uo_ribbon : (string as_keys)
// Il percorso identifica il gruppo : si apre la finestra delle opzioni corrispondente.
n_pbt_utils lnv_utils // autoinstantiate : niente da creare, niente da distruggere
choose case lnv_utils.of_leaf(/*keys*/ as_keys)
case "font" ; open(w_font_options)
case "clipboard" ; open(w_paste_options)
end choose
Keytip: guidare la barra multifunzione da tastiera #
// Alt mostra le lettere ; Alt poi H poi C attiva "copy"
uo_ribbon.of_tab(/*key*/ "home").is_keytip = "H"
uo_ribbon.of_item(/*keys*/ "home/clipboard/copy").is_keytip = "C"
uo_ribbon.of_item(/*keys*/ "home/clipboard/cut").is_keytip = "X"
Una pressione di Alt ovunque si trovi il focus nella finestra passa la mano alla barra multifunzione: prende il focus da tastiera e mostra le proprie lettere. Non c'è nulla da collegare: basta che sia dichiarato almeno un keytip. Esc, un secondo Alt o la scelta di un comando restituiscono il focus al controllo che l'utente aveva abbandonato. Un tasto può avere più lettere ("FP", come in Office): l'utente le digita una dopo l'altra, i badge che non iniziano più con quanto digitato si fanno da parte, e Backspace li riporta. Un controllo di un gruppo ridotto conserva il suo tasto: apre il pannello del gruppo.
ue_keytips la avvisa a ogni cambiamento di stato e le comunica il livello corrente:
// event ue_keytips di uo_ribbon : (boolean ab_on, integer ai_level)
// La tastiera pilota la barra multifunzione: cancellare il suggerimento della
// barra di stato, che parla del mouse, e ripristinarlo quando le lettere spariscono.
if ab_on then
uo_statusbar.of_item(/*keys*/ "main").is_text = "Digiti una lettera (livello " + String(ai_level) + ")"
else
uo_statusbar.of_item(/*keys*/ "main").is_text = ""
end if
Tooltip avanzati su un controllo #
// Il super tooltip del pulsante Incolla: un titolo, un testo, un'immagine
lnv_item = uo_ribbon.of_item(/*keys*/ "home/clipboard/paste")
lnv_item.is_super_tooltip_title = "Incolla (Ctrl+V)"
lnv_item.is_super_tooltip_text = "Inserisce il contenuto degli appunti." &
+ "[br][br][size-=15]Usi la freccia per incollare senza formattazione.[/size-=15]"
lnv_item.is_super_tooltip_image = "img\paste.png"
Queste quattro proprietà sono esattamente le stesse di qualsiasi altro item della libreria. Per un tooltip su una sola riga basta is_tooltip.
Altezza automatica #
La barra multifunzione si dimensiona da sola: non c'è nulla da attivare. La avvisa a ogni cambiamento di altezza (compressione, scheda contestuale, cambio di tema) affinché Lei possa riposizionare ciò che si trova al di sotto.
// event ue_auto_height di uo_ribbon : (long al_height)
// La barra multifunzione si e gia ridimensionata : si riposiziona cio che sta sotto.
uo_content.y = uo_ribbon.y + uo_ribbon.height
uo_content.height = this.height - uo_content.y
Ridurre la barra multifunzione per guadagnare spazio #
// Start with the ribbon folded: only the tab headers show
uo_ribbon.ib_minimized = true
// event ue_minimized di uo_ribbon : (boolean ab_minimized)
// Si memorizza la preferenza dell'utente per la prossima apertura.
of_save_preference("ribbon_collapsed", ab_minimized)
Ripartire da una barra multifunzione vuota #
// of_reset svuota schede, gruppi, controlli, barra di accesso rapido e menu
uo_ribbon.of_reset()
uo_ribbon.of_add_tab(/*key*/ "home", /*title*/ "Home")
Da un menu PowerBuilder esistente #
Un'applicazione PowerBuilder ha già descritto i suoi comandi una volta: nel suo menu. Etichette, scorciatoie, immagini, separatori, sottomenu, suggerimenti — c'è tutto. n_pbt_menu2ribbon rilegge quel menu tramite RTTI e scrive il PowerScript che costruisce la barra multifunzione corrispondente.
// Una sola volta, a mano : il generatore SCRIVE del codice, non viene eseguito
// in produzione. Incollate il risultato nell'open della vostra finestra.
n_pbt_menu2ribbon lnv_gen
string ls_code
// Generare il codice dal menu
lnv_gen = create n_pbt_menu2ribbon
ls_code = lnv_gen.of_generate(/*menu*/ m_principal, /*ribbon_var*/ "uo_ribbon")
destroy lnv_gen
// Copiarlo, pronto da incollare
ClipBoard(ls_code)
La conversione è deterministica: nessuna IA, nessuna chiamata di rete, niente che esca dalla postazione. Ogni chiave generata è il ClassName della voce di menu (m_fichier, m_ouvrir): l'indirizzo che la barra multifunzione riporta (m_fichier/g1/m_ouvrir) riconduce quindi alla voce, e il router scritto alla fine del codice ne scatena il Clicked da ue_clicked, ue_toggled e ue_menu_selected - il vostro codice esistente viene eseguito tale e quale. I sottomenu sono ripresi a qualsiasi profondità, una voce nascosta viene esclusa, una disattivata resta disattivata, una spuntata diventa un interruttore o una voce spuntabile che parte spuntata.
Il codice prodotto è un punto di partenza da rileggere, non un risultato finito: un menu è un elenco, una barra multifunzione è un'impaginazione. Raggruppate, scegliete i pulsanti grandi, togliete ciò che non merita di stare sempre in vista. L'esempio 9 della pagina barra multifunzione dell'applicazione dimostrativa mostra un risultato completo.
Buone pratiche #
- Racchiuda tutta la costruzione tra
of_set_redraw(false)eof_set_redraw(true): una barra multifunzione completa viene così disegnata in una sola volta, senza sfarfallio. - Ogni aggiunta restituisce un codice:
0, oppure-5per un indirizzo errato, un padre della natura sbagliata o una chiave già presa. Lo verifichi dove un errore di costruzione le importa; per pilotare un controllo in seguito,of_item(indirizzo)restituisce il suo handle. - Richiami
of_preload_iconsall'avvio: senza di esso, la prima visualizzazione di una scheda mai aperta mostra un breve ritardo prima delle sue icone. - Un identificatore deve essere univoco solo all'interno del proprio gruppo. Ne approfitti per dare ai controlli nomi semplici (
copy,paste) anziché ricorrere ai prefissi. - Riservi le schede contestuali ai comandi che non hanno alcun senso fuori contesto: una scheda permanente disattivata è più riposante di una scheda che compare e scompare.
- La domanda prima di una piastrella è inattiva per impostazione predefinita: la attivi con
ib_veto_gallery = truesolo seue_gallery_selection_changingdeve poter rifiutare, perché ogni domanda costa un andata e ritorno verso PowerBuilder. - Un solo avvio di finestra di dialogo per gruppo, e soltanto se il gruppo ha davvero opzioni avanzate da offrire.
- Per ricostruire un'intera barra multifunzione, preferisca
of_clear()(oof_reset()) a una serie diof_remove_tab: un solo comando, e tutti gli handle distribuiti vengono liberati in una volta. - Per una barra dei comandi più leggera, senza schede né gruppi, veda toolbar; per una navigazione laterale, listbar.
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à |
Due aiuti non sono ereditati: of_icon e of_escape_markup vivono su n_pbt_utils. Ne dichiari uno — n_pbt_utils lnv_utils, niente da creare — e li chiami su di esso.