# Visual Toolchest

All *Visual Toolchest* functions are defined in the *PPJ.Runtime.Vis* class as static methods. The names are all unchanged, with the *Vis* prefix being the name of the class: VisStrPad() is Vis.StrPad(). Also all the supported Visual Toolchest controls are declared in *PPJ.Runtime.Vis*. The names of the controls have been normalized to *Vis*\<Name>. Ice Porter changes the names automatically while porting: cColorCombBox is ported to VisColorComboBox.

All Visual Toolchest controls are directly derived from either PPJ controls (which are directly derived from .NET controls) or from .NET controls. Extended controls like the calendar or the outline control in the Visual Toolchest library are implemented extending the equivalent .NET controls, which are implemented in .NET as wrapper to the common controls library.

## Unsupported functions

There are no unsupported public functions for the *Visual Toolchest* library.&#x20;

However some SAL code may use undocumented functions that were not intended to be used directly and are not supported in the PPJ Framework.

## Unsupported controls

All *Visual Toolchest* controls are supported.&#x20;

However some extended controls may behave a bit differently or may have some limitations because we use the standard .NET implementation of common controls. The following table shows the equivalence between custom VT controls and Windows common controls:

| Visual Toolchest control | Equivalent .NET control (from Windows Common Controls) |
| ------------------------ | ------------------------------------------------------ |
| cRichEdit                | RichTextBox                                            |
| cOutlineListBox          | TreeView                                               |
| cDesktopListBox          | TreeView                                               |
| cDirListBox              | TreeView                                               |
| cDirTreeListBox          | TreeView                                               |
| cListView                | ListView                                               |
| cCalendar                | MonthCalendar                                          |
| cCalendarDropDown        | DateTimePicker                                         |

## Unsupported styles

Some Visual Toolchest controls support a number of style constants that alter the behavior of the control. Most of the styles have a direct correspondence to Windows Common Controls styles and are supported in the PPJ Framework. The table below lists the style correspondence.

| Control  | Supported VT styles                                                                                                                                       | Equivalent property                                                                                                                                  |
| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| TreeView | <p>LBS\_KillFocusNoSelect</p><p>LBS\_ShowHorzScrollBar</p><p>LBS\_ShowNoTree</p><p>LBS\_ShowSelectText</p><p>LBS\_Explorer</p><p>LBS\_DisableNoScroll</p> | <p>HideSelection</p><p>HorizontalScrollbar (only for VisOutlineListBox)</p><p>ShowLines</p><p>FullRowSelect</p><p>ShowPlusMinus</p><p>Scrollable</p> |
| ComboBox | None                                                                                                                                                      | None                                                                                                                                                 |
| ListBox  | LBS\_NoAutoResize                                                                                                                                         | IntegralHeight                                                                                                                                       |

&#x20;

{% hint style="success" %}
The original SAL application may try to apply VT style LBS\_VisExtensions to controls that are not derived from VT classes. This is not supported in the PPJ Framework because it's an internal feature of the VT library used to subclass the control. When reading the styles of a VT derived class, the LBS\_VisExtensions value is automatically added by the PPJ Framework to the return value.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.iceteagroup.com/general/framework/features/visual-toolchest.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
