Picture structure inspector

Picture structure inspector

The Picture Structure window is an inspector — it shows all graphic objects of the active picture as a tree, the way they are actually arranged in the picture. Objects placed in a group appear as child objects of that group, so it is immediately obvious what belongs to what.

An inspector is an auxiliary window of the editor that shows structured data as a tree and lets you work with it directly. It stays open next to the picture and its content follows whatever is currently open in the editor.

It is more than an overview. The inspector is also a tool for working with objects: it lets you select an object or a whole group of objects directly in the picture, visually isolate them from the rest of the picture, and search for objects by name.

What it gives you

  • Orientation in complex pictures. In a picture with dozens of overlapping objects, group membership cannot be read from the drawing area at all. In the tree it is visible at a glance.

  • Selecting objects that are hard to click. An object covered by another object, an object with zero size, or a member of a grouped group can be found and selected in the tree without hunting around the drawing area.

  • Focusing on a part of the picture. Visual isolation temporarily hides everything else, so you can work on the selected part without visual noise.

  • Searching by name. If objects have local variables assigned, they can be filtered in the tree by those names.

  • Bulk operations. By checking several rows you can select or isolate a whole set of logically related objects at once, even when they are not grouped in the picture.


Opening the window

The window can be opened in two ways:

  • with the Picture structure button in the main toolbar,

  • with the menu item Edit → Picture structure …

Both are available only when a picture is open. The window does not open automatically when the editor starts; once opened, it immediately loads the active picture and shows its name in the window title.

structure_inspector.png

The structure tree

Each row of the tree represents one graphic object of the picture.

  • Groups contain their members as child nodes. A group can be expanded and collapsed by clicking its node or with the right / left arrow keys.

  • Object name. If a local (reference) variable is assigned to an object, the row is labelled with the variable name and highlighted in colour. If none is assigned, the object is labelled generically as Object with its ID. This makes named objects easy to tell apart from unnamed ones.

  • Object type. The right-hand column shows the type of the graphic object and its ID, for example (Push button : 2).

  • A dimmed row means the object is currently hidden in the picture — either by visual isolation or by filtering from the editor toolbar.

  • The tree refreshes automatically. When an object is created, deleted, copied, grouped, ungrouped, reordered, or when a change is reverted with Undo / Redo, the inspector redraws itself.

Note on renaming. When a local variable is assigned or renamed on the Script tab, the change is written to the picture only when the object is left (when the selection changes). The name in the tree is therefore updated at that moment, not while you type.

Column splitter

The vertical splitter between the name column and the value column can be dragged with the mouse; the cursor changes to a double-headed arrow above it. Double-clicking the splitter resets it to the middle of the window.


Working with objects in the picture

There are two buttons at the end of each row:

Button

Meaning

Button

Meaning

bulb

Visual Isolation — hides everything in the picture except this object and its content, and scrolls the picture to it. Clicking again shows the whole picture.

check mark

Select Object — selects the object in the picture, exactly as if it had been clicked with the mouse. If the object is hidden by isolation, the isolation is extended to include it.

Visual isolation

Isolation keeps only the chosen object visible in the picture. The following applies to it:

  • A group is isolated together with its content. When a group member is isolated, the groups above it stay visible as well — otherwise the member would belong to nothing in the picture and a click in the drawing area would have nothing to select.

  • The picture is scrolled so that the isolated object is within the visible area. If it does not fit, its top left corner is aligned; the zoom is not changed.

  • Filtering from the toolbar is switched off. Isolation and filtering drive the same object visibility, so the first recalculation of the filters would silently cancel the isolation.

  • If the isolation hides currently selected objects, the selection is cleared — as a whole, not just its hidden part. The row the isolation was started from stays selected in the tree.

  • The isolated object is not selected in the picture. Use the check mark next to the bulb to select it.

  • Clicking the same bulb again shows the whole picture. Clicking the bulb of another object switches the isolation to that object. The bulb therefore shows the whole picture only when exactly what the isolation of this object would produce is currently displayed; otherwise it isolates the object again.

  • The isolation does not survive the inspector window. Closing the window brings the picture back to showing everything — otherwise hidden objects would stay in it with nothing in the editor to point that out.

Hidden objects are dimmed in the tree. While isolation is on, the rows of hidden objects are drawn in a lighter colour, so it is immediately clear what the isolation kept visible and what it hid. The same applies to objects hidden by filtering from the toolbar or by the VISIBLE column in the reference list.

An object outside the picture area. A graphic object can be positioned completely outside the picture area — isolation then makes no sense for it, because it cannot be scrolled to and is not drawn in the picture at all. The bulb in such a row is disabled and its tooltip says why, and where the object actually is:

Object is outside the picture area Position: X : 5200; Y : -120; DX : 100; DY : 50 Picture: DX : 500; DY : 400

The Select Object check mark stays available — selecting is the only way to grab such an object and move it into the picture area.

Clicking through a group. When part of a group content is hidden, the group does not take the click in the drawing area — an isolated group member can therefore be selected directly, without the ALT key.

Selection extends the isolation

When an object that is currently hidden is selected — by the check mark in its row or by the Select Checked Objects item — the isolation is not cancelled. The hidden objects concerned are added to the visible ones (together with the groups above them) and the rest of the picture stays hidden. The row of such an object stops being dimmed.

Otherwise selecting a hidden object would draw the selection markers where nothing can be seen. This way the context the user has set up by the isolation is not thrown away either — the set of visible objects can be built up step by step.

Two things are worth noting: extending the isolation switches off filtering from the toolbar just as the isolation itself does, and since what is displayed is no longer exactly what the original isolation produced, clicking the bulb of the original object isolates it again instead of showing the whole picture.

Dynamic Link with Editor

When the Dynamic Link with Editor option is enabled in the context menu, the link also works the other way round: selecting an object in the drawing area moves the inspector to the corresponding tree row. The option can be switched off if it gets in the way.


Filtering by name

The Show Filtering context menu option displays a filter row above the tree.

  • Type the text that the tree should be restricted to. Filtering works on the object name — that is, on the name of the local variable, if the object has one assigned.

  • Confirm the filter with Enter or with the Apply Filter button.

  • The Cancel Filtering button removes the filter and shows the whole tree again.


Bulk operations with checked objects

The Show Checking context menu option displays a control row above the tree:

zaskrtavanie.png

Turning on Allow Checking adds a check box in front of every object name. The number of checked objects is shown continuously in the control row. A check box can also be toggled with the Space key.

The button opens a menu with actions:

Item

Meaning

Item

Meaning

Check All

checks all displayed rows

Uncheck All

clears all check marks

Invert

swaps checked and unchecked rows

Select Checked Objects

selects all checked objects in the picture at once; checked objects that are hidden are added to the visible ones and the isolation stays on

Isolate Checked

hides everything in the picture except the checked objects; clicking again shows the whole picture

A typical workflow combines both: find the objects with the filter, check them, remove the visual noise with isolation, and then select them all at once for further editing.

Checking is persistent within a picture — it survives filtering, the automatic refresh of the tree, and grouping or ungrouping of objects. It is cleared only when you switch to another picture.


Context menu

Right-clicking anywhere in the window (or pressing Shift+F10) opens the menu:

structure_inspector_popup.png

Item

Meaning

Item

Meaning

Collapse All

collapses all groups in the tree

Expand All

expands the whole tree

Show Filtering

shows or hides the filter row

Show Checking

shows or hides the checking control row

Dynamic Link with Editor

turns on or off passing the selection from the picture to the inspector

Show All

cancels the visual isolation and shows all objects in the picture; available only when part of the objects is hidden


Keyboard control

The inspector works in two modes. In browse mode the keys move through the rows of the tree. In row edit mode the focus is on a particular control element of the row — a text box, a button, a check box or a drop-down list.

Browse mode

Key

Action

Key

Action

↑ ↓ PgUp PgDn Home End

move through the displayed rows

→ ←

expand and collapse a node — the right arrow expands a collapsed node and moves to the first child object of an expanded one, the left arrow does the opposite

Space

toggle the check box of the row

F2 or Enter

start row edit mode — the focus moves to a control element of the row

Tab

leave the inspector, the focus moves to the next control of the window

Row edit mode

In edit mode a horizontal coloured line is drawn under the row: a lighter colour underlines the whole row being edited, and a stronger colour marks exactly the element of the row that is currently active. As you move between elements, the stronger segment moves with you, so it is always visible where the keyboard is.

Key

Action

Key

Action

Tab / Shift+Tab

next / previous element of the row; after the last one it continues with the first

→ ←

the same as Tab / Shift+Tab, unless the element itself claims the arrow key

↑ ↓ PgUp PgDn Home End

leave the element and move through the rows, unless the element claims these keys; edit mode stays on and on the new row the focus is set to the same element

Space or Enter

toggle the element if it is a check box; otherwise the key belongs to the element

Esc

discard the change being typed and return to browse mode

When an element claims the keys. Some elements need the arrow keys for their own handling. In that case they cannot be used to move between the elements of the row:

Element

Claims

Element

Claims

text box

← → Home End ↑ ↓ PgUp PgDn

spin box

↑ ↓

drop-down list

↑ ↓ ← → PgUp PgDn Home End

button, check box, static text

nothing — all keys are used for moving

So from a text box you move between the elements with Tab, while from a button the arrow keys work as well. There are always two ways out of an element: Esc back to the row and Tab to the next element.

A row whose only control element is the check box in front of the name does not react to F2 or Enter. Such a check box is toggled with the Space key directly in browse mode.

Within the window

Key

Action

Key

Action

F6

switch between the tree and the control row

Shift+F10

open the context menu


What the window remembers

The following is preserved after the editor is closed:

  • the position and size of the window,

  • the position of the column splitter,

  • the Show Filtering, Show Checking, Allow Checking and Dynamic Link with Editor options.

The filter text and the list of checked objects are deliberately not remembered — the inspector always opens with the complete tree of the active picture.


Notes and limitations

  • A check mark next to Isolate Checked means "part of the picture objects is hidden". It therefore also appears when objects are hidden by filtering from the toolbar rather than by isolation. Clicking the item shows the whole picture in both cases. The same holds for whether the Show All item in the context menu is available.

  • When several members of the same grouped group are selected, the selection markers are drawn only for the last one. All the objects are selected; this affects the display only.