Shell explorer — version history
The tree of the real Windows shell — Desktop, This PC, drives, folders, Network — with the machine's own icons. Introduced in 2.0.
4.0 — October 2026 #
New #
is_file_filter: the files shown whenib_show_filesis true, by patterns (*.pdf;*.docx) matched against the real name; folders always pass.ib_show_hidden: hidden files and folders; until the application sets it, it follows the "Hidden items" setting of the machine's File Explorer.ib_enabled: when false, the tree stays on screen, dimmed, answers neither mouse nor keyboard and leaves the tab order; the application can still drive it.of_refresh(as_path)re-reads a single branch;of_refreshnow returns along.ue_collapsed(as_path): a branch closes.ue_path_not_found(as_path, as_action, as_reason): anof_expandorof_selectcould not be served (missing path, outside the root, not a branch, unreadable branch).of_selected_is_folder(): folder or file, for the selected node.of_has,of_countandof_keys_attake a whole path (its backslashes are not levels, case does not matter); the path returned byof_keys_atcan be passed back as is toof_has,of_select,of_expand.- A path not drawn yet can be reached from any root: under the Desktop,
of_select("C:\Windows\System32")goes through This PC and opens the branches above it. - Full keyboard: Home, End, Page Up/Down, typing the start of a name, Right arrow to enter, Enter as a double-click; in right-to-left reading, the Left and Right arrows swap.
- A truncated label shows its full name in a tooltip; icons switch to the large size above 150 % display scale.
Fixed #
- Reading the shell no longer freezes the application: a disconnected network drive, an unresponsive share or a folder with thousands of files are read in the background.
- An unresponsive share raises
ue_error("…: timeout") after 30 seconds instead of showing "…" forever; the branch is asked again when reopened. - A folder without access rights is an error (
ue_error), no longer an empty folder; an unreadable root says so in the tree, an unreadable branch closes again. - A
.ziparchive is no longer shown as a folder; withib_show_files, a folder that contains only files has its chevron. - An
of_expandorof_selectalways completes — served, or reported byue_path_not_found— instead of waiting forever and reopening what the user closed; a folder created after its parent was read is found. - The same folder shown at two levels (Music under the Desktop and under the user folder): a click, a chevron or a double-click on one no longer acts on the other.
- The keyboard focus follows the selected row.
- 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 language set by
PBT_SetLanguageapplies 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_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. - A disabled component (
ib_enabled = false) leaves the Tab order; enabled again (or afterof_reset), it takes its place back.
Behavior changes #
of_refresh()and a change ofib_show_filesno longer collapse the tree: open branches and the selection come back, found again by their path; a selection that no longer exists raisesue_selected("", "").of_selectreturns along;of_expand,of_selectandof_collapseon an empty path return-5;of_expandon a file or on a folder without children raisesue_path_not_found(…, "expand", "not a branch").of_keys_at(path, i)returns the child's whole path (it returnedpath/child).- Hidden items appear when the machine's File Explorer shows them: set
ib_show_hidden = falseto never show them. of_count()without argument counts the displayed rows.of_countreturns alongandof_keys_attakes alongrank.- See the 3 → 4 migration guide, section 11.35.
3.0 — September 2026 #
New #
of_set_property,of_get_propertyandof_component_name: drive a property by its name (settings screen, saved configuration).
Fixed #
ue_errorwas never raised: it now is, while script errors in the page stay onue_script_error.
2.0 — September 2026 #
New #
- First release: the shell tree as File Explorer shows it — Desktop, This PC, drives, folders, Network — with the machine's icons (the AutoCAD icon on a
.dwgwhen AutoCAD is installed) and the shell's display names. is_root(ROOT_*constants, or a path) chooses where the tree starts;ib_show_filesalso shows files.of_expand,of_collapse,of_selectandof_refreshdrive the tree;of_selected_key()returns the parsing name of the selected node (the only key the shell can read back) andof_selected_name()its display name.- Events
ue_selected(as_path, as_name),ue_expanded,ue_activated(double-click, Enter) andue_error. - Branches are read on demand, when first opened.
ue_script_error: a script error in the page reaches PowerBuilder with its message instead of being lost.