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.

Tiles box — version history

u_pbt_tilesbox · Introduced in 1.0

A start-screen style tiles panel: grouped tiles in four sizes, colours, badges, animated tiles, collapsible groups and user reordering. Introduced in 1.0.

4.0 — October 2026 #

New #

  • Reordering from the keyboard (with ib_reorderable = true): Ctrl+Left / Right moves the focused tile within its group (in reading order), Ctrl+Up / Down sends it to the previous or next group; same ue_tile_moved and ue_layout_changed as a mouse drag.
  • The tile size menu opens and works from the keyboard (arrows, Enter, Escape).
  • Item colours (il_back_color, il_text_color, il_accent…) set on a group paint its header (background, title, hover, accent line), never its tiles.
  • of_tile(address).of_count() returns the number of faces added by of_add_live_item.
  • The Tab key stops once per group (on the last focused tile) and the arrows walk the tiles; arrows follow right-to-left reading order.
  • [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.

Fixed #

  • of_get_layout always returned "", so a saved layout could never be restored: it now returns the whole layout (the same text as ue_layout_changed), including each tile's size and visibility and each group's visibility.
  • of_set_layout finds a tile by its group and key (an entry naming it under another group is ignored instead of moving a same-key tile from elsewhere) and returns -5 on a text that is not JSON.
  • of_add_group refuses (-5) a key already taken (the existing group used to be renamed); of_add_tile / of_insert_tile refuse a taken key or a group never added (it used to be created under its key); an empty key or one containing / or | is refused too.
  • of_move_tile, of_remove_tile, of_add_live_item and of_clear_live_items return -5 on a tile that does not exist, of_remove_group on a group that does not exist; of_add_live_item of an empty text returns -5 instead of wiping is_live_text.
  • Setting of_group(key).is_title on a group never added no longer creates a visible group that could be neither filled nor removed.
  • of_tile(""), or an address with one or three levels, no longer stops the application ("Array boundary exceeded"): it returns an inert handle that writes nothing and reads back empty.
  • ib_enabled / ib_visible of a group and ii_badge_size read back the value in force (they returned false, false, 0).
  • A disabled group is inert: its header no longer collapses it nor raises ue_group_toggled, and a dragged tile can no longer be dropped into it; a tile disabled or hidden during a drag cancels the drag.
  • Handles held after of_remove_tile, of_remove_group, of_clear, or a tile dragged to another group are released; colours and tooltip follow a dragged tile and go away with what is removed (a tile recreated at the same address used to inherit them).
  • Keyboard focus and the size menu survive updates coming from PowerBuilder (a badge change); an arrow at the edge next to a smaller tile leaves the focus in place instead of jumping sideways; tile labels are read by screen readers without their markup.
  • 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).
  • 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.

Behavior changes #

  • The second argument of ue_tile_moved is renamed as_to_key (it carries one key: the destination group), instead of as_to_keys.
  • il_badge_color: -1 means not set (the theme's colour), like every other colour, and 0 is black; replace il_badge_color = 0 with -1.
  • Setting a group's ib_collapsed from your code raises ue_group_toggled, like a click on its header (nothing when the group is already in that state).
  • 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, 11.6 and 11.22.

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 tiles of a disabled group are no longer reached by the Tab key, and Enter no longer fires them.
  • A tile'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_tile, of_move_tile and the index returned by ue_tile_moved (2 → 3 migration guide, section 10.1).

2.0 — September 2026 #

New #

  • A tile's text and icon can be changed and read back after it is added (is_title, is_image; an empty image removes the icon).
  • of_count, of_keys_at and of_has tell which groups the box contains, and which tiles each group contains.
  • ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.

Behavior changes #

  • Everything is done from the component with a "group/tile" address: of_add_tile, of_insert_tile, of_move_tile, of_remove_tile, of_tile, of_add_live_item, of_clear_live_items; a group handle no longer adds anything.
  • of_add_group returns a long code instead of the group's handle; get the handle with of_group(as_key).
  • Events return the address in one argument: ue_tile_clicked(as_keys), ue_tile_context(as_keys), ue_tile_resized(as_keys, as_size), ue_tile_moved(as_keys, as_to_keys, al_index), ue_group_toggled(as_key, ab_collapsed).
  • See the 1 → 2 migration guide, section 9.4 (Tiles box).

1.0 — August 2026 #

New #

  • Tiles grouped under titled, collapsible groups (of_add_group, ib_collapsed, ue_group_toggled), in four sizes (small, medium, wide, large), with vertical or horizontal scrolling (is_scroll).
  • Per tile: own colours, badge (is_badge, il_badge_color), fixed overlay text (is_live_text) or animated faces (of_add_live_item), greyed and hidden states.
  • Mouse reordering between groups and resizing from a right-click menu (ib_reorderable, ue_tile_moved, ue_tile_resized), with a layout to save and restore (of_get_layout, of_set_layout, ue_layout_changed).
  • ue_tile_clicked and ue_tile_context (right-click) to react to a tile.