Statictext — version history
The rich text block that replaces PowerBuilder's StaticText: markup, clickable links and actions, header look, scrolling banner, foldable sections and a file drop zone. Introduced in 1.0, free.
4.0 — October 2026 #
New #
[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.[action],[hyperlink]zones and[foldarea]headers can be reached from the keyboard:Tab, thenEnterorSpace; nothing responds while the block is disabled.of_refresh_parent_color(): reads again the color of the object the block sits on (the one around rounded corners) after your window's background changes; returns0, or-2if the component is not created.- With
ib_selectable,Ctrl+Ccopies the selection. il_back_colorwithii_corner_radius: the background now follows the rounded corners, and outside the corners the block takes the color of the object it sits on.- On a dark theme,
ib_hover_effectand hovered links lighten instead of darkening. of_append_text(as_markup)writes a log line by line: only the line added is sent and drawn, andis_textreads back every line joined by[br]; returns0, or-2if the component is not created.ib_follow_end(opt-in): the view of a log stays at the bottom as lines arrive, unless the reader has scrolled up.ib_auto_width(opt-in) andue_auto_width(al_width): the userobject takes the width of its text — the longest line, unwrapped — asib_auto_heightdoes for the height.
Fixed #
- Rich text: a
]escaped byof_escape_markupright after a tag no longer breaks the formatting around it ("[b]" + of_escape_markup("] end") + "[/b]"shows in bold, bracket included). - Rich text: a closing tag now closes its own tag only (
[b]A[i]B[/b]CleavesCin italics only); a closing tag without an opening one, or for a tag without content such as[br], is ignored. [picture=…]accepts a data URI (whatof_icon()returns) and a file name containing a comma: the dimensions are read at the end of the value.[hyperlink=HTTPS://…]: a scheme written in capitals is opened (the list stayshttp,https,mailto).- Folding a
[foldarea]no longer raisesue_clickedorue_double_clicked; an[action]zone in its header raisesue_actionwithout folding the block. - With
ib_selectable, releasing the mouse after selecting text no longer raisesue_clicked. - Reading
il_back_color,ii_marquee_speed,is_marquee_direction,ib_marquee_overflow_only,ib_marquee_pause_on_hoverandis_font_familyreturns the value you set (instead of-1,0,"",false, or a font family in quotes). of_resetalso clears the border color and width: the next border no longer inherits them.ii_marquee_speed = 0restores the default speed (60) instead of keeping the previous one.- Scrolling banner in right-to-left reading:
MARQUEE_STARTscrolls toward the start of reading;"left"and"right"stay physical. - Scrolling banner: a
[foldarea]still folds once scrolling is on; withib_marquee_overflow_only, a change of height no longer restarts the text from the beginning; withib_wrap = false, no more falseue_text_overflow(true). - With
ib_track_mouse,ue_mouse_leaveis raised even if the block was disabled while hovered. ii_line_spacingoutside 50-400 is brought back to the nearest bound and reads back as applied; an unknown scrolling direction behaves and reads back asMARQUEE_START.- A disabled block no longer shows the hand cursor or the hover effect, and refuses dropped files.
- A file drop (
ib_allow_drop) raisesue_drop_filesalone (no moreue_drag_leavebefore it), with full paths beyond 260 characters;of_resetremoves the drop target (ib_allow_dropback tofalse). - Reading back a long text value takes time proportional to its size and returns it whole (it slowed down with the size and was cut beyond a million characters).
- Enter or Esc pressed in the component, when it does not use them, goes back to the window: the PowerBuilder
DefaultorCancelCommandButtonfires (the key was lost). - A disabled component (
ib_enabled = false) leaves the Tab order; enabled again (or afterof_reset), it takes its place back. - With no language chosen by the application, the component announces English to screen readers (it announced French).
is_theme_style,is_theme_modeandil_theme_accentread back the style and mode shown and the component's own accent (-1when 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 #
See Migrating from 3.0 to 4.0 (sections 11.6 and 11.11).
ue_cyclebecomes optional: it is raised only whenib_track_cycle = true(likeue_mouse_enterwithib_track_mouse), and only at each full pass of the text — no longer for an animation inside the text.ii_padding:-1is the theme's padding (new default),0now means no padding. Anii_padding = 0written to mean "the theme's padding" becomes-1.of_scroll_to_endreturns along:0, or-2if the component is not created.- A markup image on a network share (
[picture=\\server\share\x.png]) is no longer shown: go throughof_icon(), which embeds it, or through apicturecomponent.
3.0 — September 2026 #
New #
of_set_property,of_get_propertyandof_component_name: drive a property by its name (settings screen, saved configuration).
Fixed #
[u][accent]text[/accent][/u]: the underline takes the color of the colored text instead of staying grey.- 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. - Reading
il_text_colorreturns the color you set, and-1for the theme's color (it returned0, black).
2.0 — September 2026 #
New #
ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.
Fixed #
- A Windows path, or a text containing a quote, received by
ue_actionorue_hyperlinkarrives intact (backslashes are no longer doubled, the text is no longer cut at the quote).
Behavior changes #
- The argument of
ue_actionis namedas_key(it wasas_id) — see Migrating from 1.0 to 2.0.
1.0 — August 2026 #
New #
- Rich text markup: bold, italics, underline, colors,
[picture=…]images, line breaks; horizontal and vertical alignment, word wrap or a single line with an ellipsis (and an optional tooltip showing the full text). - Clickable zones:
[hyperlink=…]opens the browser and raisesue_hyperlink,[action=…]raisesue_actionfor your code; foldable[foldarea]sections. - Header look: background, border, rounded corners, inner padding, hover effect for a button-like label.
- Scrolling banner (
ib_marquee): speed, direction, scrolling only when the text overflows, pause on hover,ue_cycleat each pass. - Optional interactions: file drop from Windows Explorer (
ue_drop_files), mouse tracking, selectable text, automatic height;ue_clicked,ue_double_clicked,ue_rclicked,ue_text_overflow. of_scroll_to_endfor a log whose last line must stay visible; export of the rendering to PNG or JPG.