buttonbar — u_pbt_buttonbar #
← Référence des composants · Sommaire du guide
buttonbar aligne une rangée de boutons de commande — icône, libellé, ou les deux — dans un seul composant. Un clic rapporte l'id du bouton (
ue_clicked) ; chaque bouton se pilote par un handle (of_button) pour le griser, le colorer, le masquer. C'est le composant à préférer dès qu'il y a plusieurs boutons : un WebView2 pour toute la barre, là où Nbuttonséparés en coûteraient N.
▶ Le voir en vrai — Application de démonstration, tuile Button bar, avec le code et cette page côte à côte.
Démarrage rapide #
// 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
Propriétés #
| Propriété | Type | Défaut | Description |
|---|---|---|---|
ii_padding_x | integer | 12 | Retrait gauche/droite de la barre, en pixels : l'espace avant le premier bouton et après le dernier. 0 colle les boutons aux bords ; -1 = celui du thème |
ii_padding_y | integer | 12 | Retrait haut/bas de la barre, en pixels. Un bouton REMPLIT la hauteur de la barre : c'est donc ce retrait qui décide de la hauteur des boutons (barre plus haute ou retrait plus petit = boutons plus hauts). 12 par défaut ; -1 = celui du thème |
ii_gap | integer | -1 | Espace ENTRE deux boutons, en pixels. -1 (défaut) = celui du thème. 0 accole les boutons, séparés d'un trait quand le thème en a un |
is_align | string | end | Aligne la rangée : start (gauche), center, end (droite, défaut, comme une boîte de dialogue) ou justify (boutons à largeurs égales sur toute la largeur). Valeurs logiques (RTL) — constantes ALIGN_* |
is_default | string | "" | Clé du bouton par défaut — l'action principale, peinte avec l'accent, que Entrée déclenche (comme le OK d'une boîte de dialogue). Quand un bouton de la barre a le focus clavier, Entrée déclenche CE bouton, qui porte alors l'apparence par défaut (la convention Windows) ; is_default relu reste la clé posée. Un bouton par défaut grisé ou masqué ne prend pas Entrée : la touche reste à la fenêtre. Quand deux barres d'une même fenêtre ont un bouton par défaut (deux feuilles MDI, deux panneaux), Entrée va à celle du côté du focus. Le rôle part avec son bouton : le retirer, ou vider la barre, vide is_default. Vide = aucun ; un seul bouton par défaut à la fois |
is_cancel | string | "" | Clé du bouton annuler — celui que Échap déclenche (comme le Annuler d'une boîte de dialogue). Grisé ou masqué, il ne prend pas Échap. Le rôle part avec son bouton : le retirer, ou vider la barre, vide is_cancel. Vide = aucun ; un seul bouton annuler à la fois |
is_theme_style | string | "" | Style visuel du composant (constantes THEME_STYLE_*) ; vide = celui de l'application, suivi à chaque changement |
is_theme_mode | string | "" | Variante claire ou sombre (constantes THEME_MODE_*) ; vide = celle de l'application, suivie à chaque changement |
il_theme_accent | long | -1 | Couleur d'accent de ce composant (-1 = l'accent de l'application, ou celui du thème) |
is_tooltip | string | "" | Info-bulle simple affichée au survol du composant |
is_super_tooltip_title | string | "" | Titre de l'info-bulle enrichie (prend le pas sur is_tooltip) |
is_super_tooltip_text | string | "" | Texte de l'info-bulle enrichie (balisage riche accepté) |
is_super_tooltip_image | string | "" | Image de l'info-bulle enrichie |
Méthodes #
| Méthode | Rôle |
|---|---|
of_add_button (string as_key, string as_image_file, string as_text) → long | Ajoute un bouton de commande (id, fichier image, libellé) à la fin de la barre. mono: sur l'image la recolore au thème ; un libellé vide fait un bouton icône seule. Rend 0, -5 sur une clé vide, une clé qui contient / ou une barre verticale, une clé déjà dans la barre ou un bouton sans image ni texte |
of_insert_button (string as_key, integer ai_index, string as_image_file, string as_text) → long | Insère un bouton de commande à la position ai_index (à partir de 1), décalant les suivants. Rend 0, -5 sur une clé vide, une clé qui contient / ou une barre verticale, une clé déjà dans la barre ou un bouton sans image ni texte |
of_remove_button (string as_key) → long | Retire un bouton par sa clé ; les autres gardent leur état vivant. Sa lettre Alt, les raccourcis que l'application lui a donnés, son rôle par défaut / annuler, ses couleurs et son info-bulle partent avec lui. Rend 0, -5 sur une clé vide ou une clé qui ne nomme aucun bouton |
of_move_button (string as_key, integer ai_index) → long | Déplace un bouton à la position ai_index (à partir de 1) sans perdre son état vivant. Rend 0, -5 sur une clé vide ou une clé qui ne nomme aucun bouton |
of_clear_buttons ( ) → long | Retire tous les boutons de la barre, avec leurs lettres Alt, les raccourcis que l'application leur a donnés, les rôles par défaut / annuler, couleurs et info-bulles. Rend 0, -2 si non créé |
of_focus_button (string as_key) → long | Pose le focus clavier sur UN bouton — Non plutôt que Oui devant une question destructrice, pour qu'Entrée réponde Non. Rend 0, -5 sur une clé vide ou qui ne nomme aucun bouton, -4 si le bouton ne peut pas le prendre (grisé, masqué, ou non dessiné en mode démo), -2 si non créé |
of_register_shortcut (string as_chord, string as_key) → long | Donne à UN bouton un raccourci clavier (Ctrl+S, F5…) : pressé n'importe où dans la fenêtre, il déclenche le bouton (ue_clicked), même quand le focus est ailleurs. Il est indépendant de la lettre Alt du bouton : griser le bouton, changer sa lettre ou le réactiver n'y touche jamais. Une corde vide le retire. Sur une barre un raccourci nomme toujours un bouton : la forme à un argument, ou une clé qui ne nomme aucun bouton, rend -5. Rend 0, -2 si non créé |
of_button (string as_key) → n_pbt_buttonbar_button | Rend le handle d'un bouton (par id) pour lire ou changer ses propriétés (voir ci-dessous) |
Événements #
| Événement | Quand |
|---|---|
ue_clicked (string as_key) | Un bouton a été utilisé : un clic, Entrée (le bouton par défaut, ou celui qui a le focus), Échap (le bouton annuler), sa lettre Alt ou un raccourci enregistré sur lui. Sa clé est passée : une application qui câble Annuler doit s'attendre à le recevoir aussi par Échap. Un bouton grisé n'émet rien |
Propriétés d'un bouton (of_button) #
| Propriété | Type | Défaut | Description |
|---|---|---|---|
ib_enabled | boolean | true | Active ou grise un bouton ; grisé, il ne se clique pas et ni Entrée, ni Échap, ni son raccourci ne le déclenchent |
ib_visible | boolean | true | Affiche ou masque un bouton ; masqué, il garde sa place et revient où il était |
is_text | string | "" | Libellé du bouton ; à changer après l'ajout. Un bouton garde un libellé ou une icône : vider le libellé d'un bouton sans icône est refusé, et le libellé se relit inchangé |
is_image | string | "" | Icône du bouton (fichier image ; mono: suit le thème) ; à changer après l'ajout. Vider l'icône d'un bouton sans libellé est refusé. Un bouton à icône seule est annoncé au lecteur d'écran par son info-bulle (is_tooltip), sinon par sa clé |
il_badge | long | 0 | Petit badge de comptage dans le coin du bouton (0 = aucun) |
is_shortcut | string | "" | Mnémonique de ce bouton : Alt+la lettre le déclenche, de n'importe où dans la fenêtre, et la lettre est soulignée dans son libellé. Une seule lettre (la première est utilisée) ; vide = aucune. Un raccourci enregistré explicitement pour la même touche (of_register_shortcut) passe devant la lettre ; un menu PB qui utilise la même lettre la perd tant que le bouton peut partir. Tant que le bouton est grisé, masqué ou non dessiné en mode démo, sa lettre est laissée à la fenêtre |
il_back_color | long | -1 | Fond de CE bouton (-1 = celui du composant, qui suit le thème) |
il_text_color | long | -1 | Couleur du texte de CE bouton (-1 = celle du composant) |
il_back_color_hover | long | -1 | Fond de CE bouton au survol (-1 = celui du composant) |
il_text_color_hover | long | -1 | Couleur du texte de CE bouton au survol (-1 = celle du composant) |
il_accent | long | -1 | Accent de CE bouton (-1 = accent du composant) |
Hérité du socle commun #
Ces membres existent sur tous les composants visuels — ils ne sont pas propres à celui-ci. Ils sont détaillés une seule fois, dans les chapitres transverses ; cette table dit seulement où les lire.
| Membres | Rôle | Détaillé dans |
|---|---|---|
of_count · of_keys_at · of_has | Parcourir ce que le composant contient | 3.2 Les items |
of_reset | Remettre le composant à zéro | 3.6 Remettre un composant à zéro : of_reset() |
of_register_shortcut · of_clear_shortcuts | Raccourcis clavier du composant | 3.5 Les raccourcis clavier |
of_is_created · of_is_ready · of_get_last_error | S'il est né, s'il est prêt, ce qui a échoué | 3.7 Diagnostic |
of_save_as_png · of_save_as_jpg | Exporter le rendu en image | 3.8 Exporter le rendu en image |
of_set_redraw | Grouper les modifications en un seul repaint | 3.10 Bonnes pratiques |
of_preload_icons | Icônes affichées sans délai | Affichage instantané : of_icon |
of_set_translation | Traduire un libellé du composant | 5.2 Adapter un libellé : of_set_translation |
of_focus_webview | Donner le focus au composant | 6.4 Clavier et focus |
of_print · of_print_to_pdf | Imprimer, ou écrire un PDF | 6.9 Imprimer |
of_set_property · of_get_property · of_component_name | Piloter une propriété par son nom | 3.1 Le moteur de propriétés |