PBToolboxAI AcheterBuyKaufenAcquistaComprarComprar

← Historique de tous les composants← History of every component← Versionsverlauf aller Komponenten← Cronologia di tutti i componenti← Historial de todos los componentes← Histórico de todos os componentes

L'historique des versions est publié en anglais.Version history is published in English.Der Versionsverlauf wird auf Englisch veröffentlicht.La cronologia delle versioni è pubblicata in inglese.El historial de versiones se publica en inglés.O histórico de versões é publicado em inglês.

Status bar — version history

u_pbt_statusbar · Introduced in 1.0

The window-bottom status bar made of panels: rich text, icons, mini progress bar, coloured states, clickable panels and dropdown lists. Introduced in 1.0.

4.0 — October 2026 #

New #

  • ib_show_resize_grip = true now gives a working grip: dragging it resizes the window by its corner (bottom-left in right-to-left layouts), with the diagonal cursor; it is not drawn on a maximized window or one without a resizable border.
  • A panel with a dropdown list also opens from the keyboard with Up / Down arrow (Left and Right still move to the neighbouring panel).
  • A right-click on a keyed panel that is not clickable raises ue_panel_rclicked: a context menu can finally open on "Line 12, Col 4" (a disabled panel stays silent).
  • The name the bar announces to screen readers follows the application language.
  • With "reduce animations" (Windows setting), the indeterminate progress bar pulses instead of sliding; in high contrast mode, the gauge and the state mark stay visible.
  • [symbol=name] tag in rich text: eighteen monochrome glyphs that follow the text colour (clock, location, person, calendar, phone, mail, warning…); an unknown name stays as text.
  • Every native menu of the component (like every native menu of the library) lets the user type the first letters of an entry to jump to it, read through the keyboard layout; a menu with more than 500 entries only draws what is visible.

Fixed #

  • The resize grip (ib_show_resize_grip) is visible in every theme: its dots now use the muted text colour of the theme; they were drawn in the border colour and could hardly be seen.
  • of_add_panel / of_insert_panel refuse (-5) a key already taken or containing / or |; of_move_panel, of_remove_panel, of_flash_panel, of_clear_menu and of_add_menu_separator refuse an unknown panel; of_add_menu_item / of_insert_menu_item refuse an unknown panel or a taken entry; of_remove_menu_item / of_move_menu_item refuse an unknown address. All of them used to return 0 and do nothing.
  • A choice made in the list of a panel that is removed, emptied (of_clear, of_clear_menu), disabled or hidden while the list is open no longer raises ue_panel_menu_clicked: the list closes.
  • A double-click on a panel with a dropdown list no longer adds ue_panel_double_clicked to the opened list; a list made of separators only, or whose entries are all hidden, no longer turns the panel into an empty selector.
  • of_panel(k).is_text read during an of_flash_panel returns the panel's text, not the temporary message.
  • ii_progress reads back -1 on a panel without a bar (instead of 0, like a bar at 0 %), and an out-of-range value reads back as drawn (150 → 100).
  • is_state ignores case ("Error" = error); an unknown value means "no state" instead of raising a script error.
  • A disabled panel takes the theme's grey, state mark included, without transparency and without losing its background on hover; state colours have a palette readable in dark themes, and the gauge reads well in every theme.
  • A separator between two panels aligned at the end of the bar is drawn between them, not at the end of the start group; the state accent and the Left / Right arrows follow right-to-left reading order.
  • of_panel("") or a two-level address no longer designate anything (they used to write into every keyless panel and separator); of_menu_item with a one-level address no longer writes onto the panel.
  • The colours and tooltip of a removed panel no longer carry over to a panel added later under the same key; handles are released by of_remove_panel, of_remove_menu_item, of_clear_menu and of_clear (IsValid() returns false).
  • A focused panel that becomes disabled or hidden hands the keyboard focus to its neighbour instead of losing it; updating a text, a progress or a state no longer redraws the whole bar (animations no longer jump).
  • In right-to-left reading, native menus hang from the right edge of their title and cascades open to the left (Left opens, Right closes).
  • Rich text: a closing tag closes its own tag only ([b]A[i]B[/b]C leaves C in italics only), a ] escaped by of_escape_markup right after a tag no longer breaks the formatting around it, and [picture=…] accepts a data URI and a file name containing a comma.
  • Reading back il_back_color_hover or il_text_color_hover of an item never coloured returns -1 (the theme's colour), like the other item colours (it returned 0, black).
  • A right-click on an item raises only one event, the item's, no longer a second, component-level one.
  • Enter or Esc pressed in the component, when it does not use them, goes back to the window: the PowerBuilder Default or Cancel CommandButton fires (the key was lost).
  • A disabled component (ib_enabled = false) leaves the Tab order; enabled again (or after of_reset), it takes its place back.
  • A language set by PBT_SetLanguage applies from the very next order given to the component: a text of an event raised by that order no longer comes in the old language.
  • With no language chosen by the application, the component announces English to screen readers (it announced French).
  • is_theme_style, is_theme_mode and il_theme_accent read back the style and mode shown and the component's own accent (-1 when it has none); an unknown or badly written value is ignored instead of leaving the component without a theme, and an axis left empty follows the application's theme.
  • The application accent (PBT_SetDefaultThemeAccent) survives a change of theme, is followed as long as the component has no accent of its own, and repaints everything derived from it (hover, pressed, selections); Windows high contrast is supported.
  • The documentation example of a user panel shows a neutral name.

Behavior changes #

  • A separator (of_add_sep) no longer counts in of_count, of_keys_at or the positions of of_insert_panel / of_move_panel: a position counts panels. A keyless panel does count (of_keys_at returns "" for it).
  • of_insert_panel(…, 0) inserts first (0 or less = first place); in 3.0 it appended at the end of the bar.
  • of_flash_panel returns -5 on an unknown or empty key, or on an address.
  • of_count returns a long and of_keys_at takes a long rank.
  • Rich text: a markup image on a network share ([picture=\\server\share\x.png]) is no longer shown: go through of_icon(), which embeds it.
  • See the 3 → 4 migration guide, sections 11.3 and 11.18.

3.0 — September 2026 #

New #

  • of_set_property, of_get_property and of_component_name: drive a property by its name (settings screen, saved configuration).

Fixed #

  • ue_panel_rclicked(as_key, al_x, al_y) finally returns screen coordinates (physical pixels), as documented: they were relative to the component.
  • The text of a hovered clickable panel is readable in Office 2007 dark (white text on pale yellow before).
  • A panel's colours read back through its handle (il_back_color, il_text_color…) returned 0 (black), set or not: they now return the colour set, and -1 for the theme's.
  • Rich text: a [word] that is not a tag is shown as typed (report[final].pdf) instead of disappearing with the rest of the text.

Behavior changes #

  • Positions count from 1: of_insert_panel, of_move_panel, of_insert_menu_item, of_move_menu_item (2 → 3 migration guide, section 10.1).

2.0 — September 2026 #

New #

  • A panel's menu is built entry by entry: of_add_menu_item("panel/id", label { , image }), of_insert_menu_item, of_remove_menu_item, of_move_menu_item, of_add_menu_separator, of_clear_menu, replacing the two parallel arrays of of_set_panel_menu.
  • Entry handle n_pbt_statusbar_menu_item (of_menu_item("panel/id")): ib_enabled greys, ib_checked checks, ib_visible hides an entry without removing it.
  • of_count, of_keys_at and of_has tell what the bar and each menu contain.
  • ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.

Behavior changes #

  • A panel's getter is of_panel(as_key) (instead of of_item), and identifiers are named as_key everywhere.
  • ue_panel_menu_clicked(as_keys) returns the "panel/entry" address in one argument, instead of (as_id, as_item_id).
  • See the 1 → 2 migration guide, section 9.4 (Statusbar).

1.0 — August 2026 #

New #

  • Keyed panels (of_add_panel, of_insert_panel, of_move_panel, of_remove_panel) in rich text with an icon, fixed or text-fitted width, aligned at the start or the end of the bar, and group breaks (of_add_sep).
  • Per panel: mini progress bar (ii_progress), indeterminate animated bar (ib_indeterminate), coloured state (is_state: info, warning, error, success), greyed and hidden states.
  • Opt-in clickable panels (ib_clickable): ue_panel_clicked, ue_panel_double_clicked, ue_panel_rclicked; a panel can become a selector with a dropdown list (ue_panel_menu_clicked).
  • Temporary message (of_flash_panel) that gives the panel its text back afterwards, and a resize grip drawn in the corner (ib_show_resize_grip).