PBToolboxAI v3 ← Site

buttonbar — u_pbt_buttonbar #

← Component reference · Guide contents

buttonbar lays out a row of command buttons — icon, label, or both — in one component. A click reports the button id (ue_clicked); each button is driven by a handle (of_button) to disable, colour or hide it. It is the component to prefer as soon as there are several buttons: one WebView2 for the whole bar, where N separate button would cost N.

▶ See it live — Demo application, Button bar tile, with the code and this page side by side.


Quick start #

// Une barre d'actions, en trois lignes
uo_bar.of_add_button("save", "mono:img\packimages.dll:svg/samples/save", "Save")
uo_bar.of_add_button("find", "mono:img\packimages.dll:svg/samples/find", "Find")
uo_bar.of_add_button("copy", "", "Copy")   // sans icone

// Griser un bouton
uo_bar.of_button("copy").ib_enabled = false

// Reagir : ue_clicked porte l'id du bouton
// (dans l'evenement ue_clicked du composant)
CHOOSE CASE as_key
	CASE "save" ; wf_save()
	CASE "find" ; wf_find()
END CHOOSE

Properties #

PropertyTypeDefaultDescription
ii_padding_xinteger12Left/right inset of the bar, in pixels: the space before the first button and after the last one. 0 presses the buttons to the edges
ii_padding_yinteger12Top/bottom inset of the bar, in pixels. A button FILLS the bar's height, so this inset decides how tall the buttons are (a taller bar, or a smaller inset, gives taller buttons). 12 by default; -1 = the theme's
ii_gapinteger-1Space BETWEEN two buttons, in pixels. -1 (default) = the theme's: a classic theme joins the buttons (with a separator line), the others detach them. 0 joins them whatever the theme
is_alignstringendAligns the row: start (left), center, end (right, default, like a dialog) or justify (equal-width buttons across the full width). Logical (RTL-aware) values — ALIGN_* constants
is_defaultstring""Key of the default button — the primary action, painted with the accent, that Enter fires (like a dialog's OK). Empty = none; only one default button at a time
is_cancelstring""Key of the cancel button — the one Escape fires (like a dialog's Cancel). Empty = none; only one cancel button at a time
is_theme_stylestringfluentVisual style of the component (THEME_STYLE_* constants)
is_theme_modestringlightLight or dark variant (THEME_MODE_* constants)
il_theme_accentlong-1Accent color of this component (-1 = the theme accent)
is_tooltipstring""Simple tooltip shown when hovering the component
is_super_tooltip_titlestring""Title of the rich tooltip (takes precedence over is_tooltip)
is_super_tooltip_textstring""Text of the rich tooltip (rich markup accepted)
is_super_tooltip_imagestring""Image of the rich tooltip

Methods #

MethodRole
of_add_button (string as_key, string as_image_file, string as_text) → longAdds a command button (id, image file, label) at the end of the bar. mono: on the image recolours it to the theme; an empty label makes an icon-only button. Returns 0, -5 on an empty key or a button with neither image nor text
of_insert_button (string as_key, integer ai_index, string as_image_file, string as_text) → longInserts a command button at position ai_index (0 based), shifting the rest right. Returns 0, -5 on an empty key or a button with neither image nor text
of_remove_button (string as_key) → longRemoves one button by its key; the others keep their live state. Returns 0, -5 on an empty key
of_move_button (string as_key, integer ai_index) → longMoves one button to position ai_index (0 based) without losing its live state. Returns 0, -5 on an empty key
of_clear_buttons ( ) → longRemoves every button from the bar. Returns 0, -2 when not created
of_button (string as_key) → n_pbt_buttonbar_buttonReturns a button's handle (by id) to read or change its properties (see below)

Events #

EventWhen
ue_clicked (string as_key)The user clicked a command button: its id is passed. A disabled button emits nothing

A button's properties (of_button) #

PropertyTypeDefaultDescription
ib_enabledbooleantrueEnables or disables a button; disabled, it cannot be clicked
ib_visiblebooleantrueShows or hides a button; hidden, it keeps its place and comes back where it was
is_textstring""The button label; change it after adding
is_imagestring""The button icon (image file; mono: follows the theme); change it after adding
il_badgelong0A small count badge in the button corner (0 = none)
is_shortcutstring""Mnemonic for this button: Alt+the letter fires it, and the letter is underlined in its label. One letter (the first is used); empty = none
il_back_colorlong-1Background of THIS button (-1 = the component's, which follows the theme)
il_text_colorlong-1Text colour of THIS button (-1 = the component's)
il_back_color_hoverlong-1Background of THIS button on hover (-1 = the component's)
il_text_color_hoverlong-1Text colour of THIS button on hover (-1 = the component's)
il_accentlong-1Accent of THIS button (-1 = the component's accent)

Inherited from the common base #

These members exist on every visual component — they are not specific to this one. They are detailed once, in the transverse chapters; this table only says where to read them.

MembersRoleDetailed in
of_count · of_keys_at · of_hasWalk what the component holds3.2 Items
of_resetPut the component back to zero3.6 Resetting a component: of_reset()
of_register_shortcut · of_clear_shortcutsThe component's keyboard chords3.5 Keyboard shortcuts
of_is_created · of_is_ready · of_get_last_errorWhether it was born, whether it is ready, what failed3.7 Diagnostics
of_save_as_png · of_save_as_jpgExport the rendering as an image3.8 Exporting the rendering as an image
of_set_redrawGroup changes into a single repaint3.10 Best practices
of_preload_iconsIcons shown with no delayInstant display: of_icon
of_set_translationTranslate one of the component's labels5.2 Adapting a label: of_set_translation
of_focus_webviewGive the component the focus6.4 Keyboard and focus
of_print · of_print_to_pdfPrint, or write a PDF6.9 Printing
of_set_property · of_get_property · of_component_nameDriving a property by its name3.1 The property engine

← Component reference · Guide contents