PBToolboxAI v4 ← Site

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ù N button sé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éTypeDéfautDescription
ii_padding_xinteger12Retrait 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_yinteger12Retrait 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_gapinteger-1Espace 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_alignstringendAligne 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_defaultstring""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_cancelstring""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_stylestring""Style visuel du composant (constantes THEME_STYLE_*) ; vide = celui de l'application, suivi à chaque changement
is_theme_modestring""Variante claire ou sombre (constantes THEME_MODE_*) ; vide = celle de l'application, suivie à chaque changement
il_theme_accentlong-1Couleur d'accent de ce composant (-1 = l'accent de l'application, ou celui du thème)
is_tooltipstring""Info-bulle simple affichée au survol du composant
is_super_tooltip_titlestring""Titre de l'info-bulle enrichie (prend le pas sur is_tooltip)
is_super_tooltip_textstring""Texte de l'info-bulle enrichie (balisage riche accepté)
is_super_tooltip_imagestring""Image de l'info-bulle enrichie

Méthodes #

MéthodeRôle
of_add_button (string as_key, string as_image_file, string as_text) → longAjoute 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) → longInsè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) → longRetire 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) → longDé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 ( ) → longRetire 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) → longPose 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) → longDonne à 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_buttonRend le handle d'un bouton (par id) pour lire ou changer ses propriétés (voir ci-dessous)

Événements #

ÉvénementQuand
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éTypeDéfautDescription
ib_enabledbooleantrueActive ou grise un bouton ; grisé, il ne se clique pas et ni Entrée, ni Échap, ni son raccourci ne le déclenchent
ib_visiblebooleantrueAffiche ou masque un bouton ; masqué, il garde sa place et revient où il était
is_textstring""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_imagestring""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_badgelong0Petit badge de comptage dans le coin du bouton (0 = aucun)
is_shortcutstring""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_colorlong-1Fond de CE bouton (-1 = celui du composant, qui suit le thème)
il_text_colorlong-1Couleur du texte de CE bouton (-1 = celle du composant)
il_back_color_hoverlong-1Fond de CE bouton au survol (-1 = celui du composant)
il_text_color_hoverlong-1Couleur du texte de CE bouton au survol (-1 = celle du composant)
il_accentlong-1Accent 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.

MembresRôleDétaillé dans
of_count · of_keys_at · of_hasParcourir ce que le composant contient3.2 Les items
of_resetRemettre le composant à zéro3.6 Remettre un composant à zéro : of_reset()
of_register_shortcut · of_clear_shortcutsRaccourcis clavier du composant3.5 Les raccourcis clavier
of_is_created · of_is_ready · of_get_last_errorS'il est né, s'il est prêt, ce qui a échoué3.7 Diagnostic
of_save_as_png · of_save_as_jpgExporter le rendu en image3.8 Exporter le rendu en image
of_set_redrawGrouper les modifications en un seul repaint3.10 Bonnes pratiques
of_preload_iconsIcônes affichées sans délaiAffichage instantané : of_icon
of_set_translationTraduire un libellé du composant5.2 Adapter un libellé : of_set_translation
of_focus_webviewDonner le focus au composant6.4 Clavier et focus
of_print · of_print_to_pdfImprimer, ou écrire un PDF6.9 Imprimer
of_set_property · of_get_property · of_component_namePiloter une propriété par son nom3.1 Le moteur de propriétés

← Référence des composants · Sommaire du guide