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.

Tab — version history

u_pbt_tab · Introduced in 1.0

Modern tabs hosting real PowerBuilder controls (user objects, DataWindows, other components): movable tab strip, icons, closable and reorderable tabs. Introduced in 1.0.

4.0 — October 2026 #

New #

  • ue_tab_rclicked(as_key): with ib_context_menu = false, a right-click selects the tab then raises this event, so you can open your own menu (a disabled tab stays silent).
  • Keyboard in the tab strip: Delete closes the focused closable tab, Up / Down walk a vertical strip, the arrows skip disabled or overflowed tabs and follow right-to-left reading order; Enter keeps the focus on the tab.
  • Hiding or showing a tab from your code (ib_visible) raises ue_layout_changed with the whole layout, like of_move_page.
  • The label of the "···" button of overflowed tabs follows the application language.
  • [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.
  • A middle click closes a closable tab, like its close button (ue_tab_closing is asked first when ib_veto_close = true); a tab that cannot close ignores it.
  • Ctrl+Tab / Ctrl+Shift+Tab and Ctrl+Page Down / Ctrl+Page Up move to the next / previous tab, wrapping round, skipping hidden and disabled tabs, from the tab strip and from inside a page (a PowerBuilder control or another component hosted in it); like a click, they ask ue_selection_changing when ib_veto_selection = true.

Fixed #

  • A disabled or hidden tab is no longer activated or closed: not by its close button, its shortcut (is_shortcut), "Close all / others / to the right", nor by of_select_page (which returns -5).
  • When the active tab is closed, removed or hidden, the selectable neighbour takes over (right, otherwise left); as_from_key of ue_selection_changed names the tab actually left, even when it is gone. When no tab is visible any more, the page is hidden and ue_selection_changed(previous, "") is raised.
  • of_add_page returns -5 for a control already hosted (by this tab or another component) and for an empty key, a key already taken or containing / or |; a failed addition gives the page back to its window and leaves the key free.
  • of_select_page returns -5 when the page could not become active, including when no tab is active afterwards.
  • of_set_layout returns -5 on a text that is not JSON and ignores a malformed entry instead of breaking the page.
  • A tab disabled or hidden while ue_tab_closing awaits its answer stays open; going back to the current tab while ue_selection_changing awaits its answer cancels the question.
  • Removing or closing a page releases its handle (IsValid() returns false) and its shortcut: a page reopened under the same key starts afresh, without the colours or tooltip of the old one.
  • A tab removed while being dragged cancels the drag; changing is_position recomputes the overflowed tabs; after Delete, the focus moves to the newly active tab.
  • A disabled tab is readable in every theme (text in the theme's disabled colour, including when it is active); when closable, it shows neither a close button nor an empty gap.
  • Your tab tooltip takes precedence over the full name shown for a truncated title.
  • 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).
  • Holding a shortcut key down no longer repeats the action; Ctrl+-, Ctrl++, Ctrl+, and Ctrl+. fire on any keyboard layout, AZERTY included.
  • 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.
  • Typing a character with AltGr in a PowerBuilder field (the euro of a French keyboard, AltGr+E) no longer fires a Ctrl+Alt shortcut of that key.

Behavior changes #

  • ib_veto_selection and ib_veto_close default to false: ue_selection_changing and ue_tab_closing are raised only when you switch them on. Once on, of_select_page asks too and returns -4 on a refusal.
  • of_count returns a long and of_keys_at takes a long rank.
  • Disabling the active tab leaves it active and its page usable: disabling the page is up to the application.
  • 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.1, 11.3 and 11.20.

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 #

  • The text of a hovered tab is readable in Office 2007 dark, and a hovered close button keeps its tab's colour (it turned to the accent's orange on the yellow band).
  • A tab'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 #

  • The positions of of_insert_page and of_move_page count from 1, like the one returned by ue_tab_reordered (2 → 3 migration guide, section 10.1).

2.0 — September 2026 #

New #

  • is_shortcut and a tab's tooltips can be read back (they returned an empty string).
  • of_count, of_keys_at and of_has tell which tabs the component contains.
  • ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.

Behavior changes #

  • A page's getter is of_page(as_key) (instead of of_item), and identifiers are named as_key: ue_selection_changed(as_from_key, as_key), ue_selection_changing, ue_tab_closed, ue_tab_closing, ue_tab_reordered.
  • See the 1 → 2 migration guide, section 9.4 (Tab).

1.0 — August 2026 #

New #

  • A page is a real PowerBuilder control (of_add_page, of_insert_page): the component positions it, resizes it and shows it when its tab is selected; of_remove_page gives it back to its window.
  • Tab strip at the top, bottom or vertical (is_position), overflowed tabs gathered under a "···" button (is_overflow_mode).
  • Per tab: rich-text title, icon, greyed and hidden states, close button (ib_closable) and a keyboard shortcut that activates it from anywhere in the window (is_shortcut).
  • Mouse reordering (ib_reorderable, ue_tab_reordered), built-in "Close / Close others / to the right / all" context menu, layout to save and restore (of_get_layout, of_set_layout, ue_layout_changed).
  • Cancellable questions before a tab change (ue_selection_changing) and before a close (ue_tab_closing).