Skip to main content

SalNavigationBar

Namespace: PPJ.Runtime.Windows

Assembly: PPJ.Runtime.50 (5.0.0.0)

Integrates the navigation-band control with SAL window actions and window operations.

public class SalNavigationBar : NaviBar, ISalWindow

Example:

void AddControl(System.Windows.Forms.Control parent)
{
var control = new PPJ.Runtime.Windows.SalNavigationBar();
control.Name = "SalNavigationBar";
parent.Controls.Add(control);
}

Constructors

Instance member SalNavigationBar()

Initializes the navigation bar and its SAL window implementation.

Properties

Instance member NamedProperties

SalNamedProperties: Gets the SAL named-property collection associated with this control.

Methods

Instance member AddGroup(paneIndex, groupIndex, groupTitle, height)

Creates a group in a navigation pane and assigns its height in form units.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
groupIndexSalNumberThe zero-based position among pane client controls, or -1 to append.
groupTitleSalStringThe displayed group caption.
heightSalNumberThe group height in vertical form units.

Returns: SalBoolean. True if added; false for an invalid pane or insertion index.

Instance member AddPane(paneIndex, name, expandedImage, collapsedImage)

Creates a navigation pane with the specified name, caption, and state images.

ParameterTypeDescription
paneIndexSalNumberThe zero-based insertion index, or -1 to append.
nameSalStringThe pane name and initial displayed caption.
expandedImageSalStringThe image name used for the expanded pane.
collapsedImageSalStringThe image name used for the collapsed pane.

Returns: SalBoolean. True if inserted; false for an invalid insertion index.

Instance member AssociateChild(paneIndex, groupIndex, control)

Reparents a control into a group or an otherwise empty pane.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
groupIndexSalNumberThe client-control index whose child collection receives the control; zero targets the pane directly when its client area is empty.
controlControlThe control to add.

Returns: SalBoolean. True if a target was found and the control was added; otherwise, false.

Instance member BringWindowToTop()

Brings this control to the front, or activates it when it is a top-level or MDI form.

Returns: SalBoolean. True if the translated control exists; otherwise, false.

Instance member CenterWindow()

Centers this window within its parent or, for a top-level form, its owner or screen working area.

Returns: SalBoolean. True when the translated control exists; otherwise, false.

A top-level form is constrained to the selected screen working area. A control without a parent is unchanged unless it is a top-level form.

Instance member ClearCursor(type)

Restores the default cursor for a role, using the I-beam for TextBox subclasses.

ParameterTypeDescription
typeSalNumberThe cursor role: Sys.CURSOR_Window, Sys.CURSOR_DragDrop, or Sys.CURSOR_DisableDrop.

Returns: SalBoolean. True if the cursor is assigned to a supported role; otherwise, false.

Instance member DestroyWindow()

Closes this window when it is a form, or disposes the control.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

A true result reports that the close or disposal request was made; a form can apply its own closing behavior.

Instance member DisableWindow()

Disables input to this control, or clears editability for a table column.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

Instance member DisassociateChild(paneIndex, control)

Clears a control's parent when the control is contained in the specified pane.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
controlControlThe control to detach.

Returns: SalBoolean. True when detached; false for an invalid pane or a control outside the pane.

Instance member EnablePane(paneIndex, enable)

Shows or hides a pane by updating its Visible property.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
enableSalBooleanTrue to show the pane; false to hide it.

Returns: SalBoolean. The previous visibility state, or false for an invalid index.

Instance member EnableWindow()

Enables input to this control, or enables editing for a table column.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

For text-box controls, this operation also clears the read-only setting.

Native disabled styles are also cleared. When needed, tab navigation is restored except for unchecked radio buttons.

Instance member ExpandGroup(paneIndex, groupIndex, expand)

Changes the expanded state of a navigation group.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
groupIndexSalNumberThe zero-based group index in the pane client area.
expandSalBooleanTrue to expand; false to collapse.

Returns: SalBoolean. True after changing an identified navigation group; otherwise, false.

Instance member FindChild(windowName)

Searches this window for a child control by name.

ParameterTypeDescription
windowNameSalStringThe child control name to locate.

Returns: SalWindowHandle. The matching child handle, or a null SAL handle if no child is found.

Instance member FireWindowActions(msg, mywParam, mylParam)

Invokes this control's SAL action handlers directly and returns their result.

ParameterTypeDescription
msgSalNumberThe action message code.
mywParamSalNumberThe first action parameter.
mylParamSalNumberThe second action parameter.

Returns: SalNumber. The result stored in the dispatched action arguments.

Instance member FormUnitsToPixels(formUnits, vertical)

Converts a length in form units to pixels using this control's form metrics.

ParameterTypeDescription
formUnitsSalNumberThe length in form units.
verticalSalBooleanTrue for a vertical measurement; false for a horizontal measurement.

Returns: SalNumber. The converted pixel length.

Instance member GetActivePane()

Finds the first pane whose name matches the active band.

Returns: SalNumber. The zero-based pane index, or -1 when no active band or matching pane exists.

Instance member GetClassName()

Gets the translated application class name associated with this control.

Returns: SalString. The class name, an empty string for a runtime-defined class, or a null SAL string for an unresolved or native control.

Forms use their base type; nested table-window types are walked upward to a non-nested type.

Instance member GetControlType()

Gets the SAL window type of this control.

Returns: SalNumber. The SAL Sys.TYPE_* code for the translated control.

Instance member GetFirstChild(typeMask)

Finds the first child matching a SAL window-type mask.

ParameterTypeDescription
typeMaskSalNumberThe SAL window types to include; zero matches no controls.

Returns: SalWindowHandle. The first matching child handle, or a null SAL handle when none matches.

Ordinary controls use tab order; table columns use their creation order, and MDI forms use their child-form collection.

Instance member GetFont(name, size, enhancement)

Reads the control font's family, point size, and style flags.

ParameterTypeDescription
name by referenceSalStringReceives the font family name.
size by referenceSalNumberReceives the size in points.
enhancement by referenceSalNumberReceives the combined Sys.FONT_Enh* style flags.

Returns: SalBoolean. True if a font was available; otherwise, false.

Instance member GetLocation(x, y)

Reads this control's location in form units.

ParameterTypeDescription
x by referenceSalNumberReceives the horizontal location.
y by referenceSalNumberReceives the vertical location.

Returns: SalBoolean. Always true; an unresolved control produces zero coordinates.

Instance member GetName(text)

Copies this control's name to the supplied variable.

ParameterTypeDescription
text by referenceSalStringReceives the control name when the operation succeeds.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

Instance member GetName()

Gets this control's name.

Returns: SalString. The control name, or an empty string if the control cannot be resolved.

Instance member GetNextChild(typeMask)

Finds the next sibling matching a SAL window-type mask.

ParameterTypeDescription
typeMaskSalNumberThe SAL window types to include; zero matches no controls.

Returns: SalWindowHandle. The next matching control handle, or a null SAL handle when none matches.

Instance member GetPaneIcon(paneIndex, binary, format, expanded)

Serializes the image used for one pane state.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
binary by referenceSalBinaryReceives the encoded image, or an empty wrapper when no image is assigned.
formatSalNumberSys.PIC_FormatBitmap or Sys.PIC_FormatIcon.
expandedSalBooleanTrue for the large expanded-state image; false for the small collapsed-state image.

Returns: SalBoolean. True when the pane exists and its image is absent or successfully encoded; false for an invalid pane or unsupported format with an assigned image.

Instance member GetPaneIndex(name)

Finds the first pane with the supplied name.

ParameterTypeDescription
nameSalStringThe pane name to match.

Returns: SalNumber. The zero-based index, or -1 when no pane matches.

Instance member GetPaneTitle(paneIndex, title)

Copies a pane's displayed caption to a SAL string.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
title by referenceSalStringReceives the caption on success; unchanged for an invalid index.

Returns: SalBoolean. True when the caption was read; otherwise, false.

Instance member GetPaneTitle(paneIndex)

Gets a pane's displayed caption.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.

Returns: SalString. The caption, or a null SAL string for an invalid index.

Instance member GetParent()

Gets the SAL parent form, owner, or table container for this control.

Returns: SalWindowHandle. The parent window handle, or a null SAL handle if no parent can be resolved.

Instance member GetProperty(name, value)

Reads a SAL named property into a supplied variable.

ParameterTypeDescription
nameSalStringThe property name.
value by referenceSalStringReceives the value only when the property is found.

Returns: SalBoolean. True if a non-null property value was found; otherwise, false.

Instance member GetProperty(name)

Gets the value of a SAL named property.

ParameterTypeDescription
nameSalStringThe property name.

Returns: SalString. The property value, or a SAL null string if the value is unavailable.

Instance member GetSize(width, height)

Reads this control's size in form units.

ParameterTypeDescription
width by referenceSalNumberReceives the width.
height by referenceSalNumberReceives the height.

Returns: SalBoolean. Always true; an unresolved control produces a zero size.

Instance member GetText(text, maxLen)

Copies this control's displayed text or long-string value to a SAL string.

ParameterTypeDescription
text by referenceSalStringReceives the retrieved text.
maxLenSalNumberThe maximum character count for ordinary text; ignored for a Sys.DT_LongString value.

Returns: SalNumber. The number of characters copied, or zero when no text is available.

Instance member GetText(maxLen)

Gets this control's displayed text or long-string value.

ParameterTypeDescription
maxLenSalNumberThe maximum character count for ordinary text; ignored for a Sys.DT_LongString value.

Returns: SalString. The retrieved text, or an empty string if the control cannot be resolved.

Instance member GetWindowColor(colorIndex)

Reads a window or cell color as a Win32 color value.

ParameterTypeDescription
colorIndexSalNumberThe Sys.COLOR_Index* color component to read.

Returns: SalNumber. The color encoded as a Win32 color value, or zero if the control is unavailable.

Transparent colors are reported as Sys.COLOR_None. Table-column window colors use the system window colors; cell colors use the column settings.

Instance member GetWindowState()

Gets the visibility and form-state classification of this window.

Returns: SalNumber. A Sys.Window_* state code; visible non-form controls report Sys.Window_Normal.

Instance member GroupIsExpanded(paneIndex, groupIndex)

Gets the expanded state of a navigation group.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
groupIndexSalNumberThe zero-based group index in the pane client area.

Returns: SalBoolean. The group's expanded state, or false when the indices do not identify a navigation group.

Instance member HideWindow()

Hides this control or table column.

Returns: SalBoolean. The visibility state before the operation, or false if the control cannot be resolved.

Instance member InvalidateWindow()

Invalidates this control and its child controls for repainting.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

Instance member IsDerivedFromClass(typeClass)

Tests this control's runtime type against an application base type.

ParameterTypeDescription
typeClassTypeThe type to test, including the framework's emulated inheritance relationships.

Returns: SalBoolean. True if the runtime type derives from the requested type; otherwise, false.

Instance member IsEnabled()

Determines whether this control accepts input.

Returns: SalBoolean. The enabled state, or the editable flag for a table column; false if the control cannot be resolved.

Instance member IsVisible()

Determines whether this control is visible.

Returns: SalBoolean. The visible state, or the visibility flag for a table column; false if the control cannot be resolved.

Instance member KillTimer(idEvent)

Stops the native window timer with the specified identifier.

ParameterTypeDescription
idEventSalNumberThe timer identifier to remove.

Returns: SalBoolean. The native timer-removal result, or false if the control cannot be resolved.

Instance member LoadState(xml)

Deserializes navigation settings and applies them to the bar.

ParameterTypeDescription
xmlSalStringThe XML produced by SaveState.

Returns: SalBoolean. False for empty XML or an incompatible deserialized object; true after applying the settings.

Malformed XML and deserialization failures propagate to the caller.

Instance member MoveWindow(xOffset, yOffset)

Moves this control by an offset expressed in form units.

ParameterTypeDescription
xOffsetSalNumberThe horizontal offset to add to the current position.
yOffsetSalNumberThe vertical offset to add to the current position.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

Protected member OnActiveBandChanged(e)

Raises the base active-band event and dispatches SAM_NavChange with the active band's index in Controls.

ParameterTypeDescription
eEventArgsThe active-band event data.

Protected member OnBandResized(e)

Raises the base resize event and dispatches SAM_NavResize with the band index and packed pixel dimensions.

ParameterTypeDescription
eNaviBandEventArgsThe resized band.

The low word contains width and the high word contains height.

Protected member OnGroupCollapsed(e)

Raises the base group-collapse event and dispatches SAM_NavGroupCollapse with band and group indices.

ParameterTypeDescription
eNaviBandEventArgsThe affected band and group.

Protected member OnGroupExpanded(e)

Raises the base group-expand event and dispatches SAM_NavGroupExpand with band and group indices.

ParameterTypeDescription
eNaviBandEventArgsThe affected band and group.

Instance member PaneIsEnabled(paneIndex)

Determines whether a pane is visible.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.

Returns: SalBoolean. The pane visibility, or false for an invalid index.

Instance member PixelsToFormUnits(numPixels, vertical)

Converts a pixel length to form units using this control's form metrics.

ParameterTypeDescription
numPixelsSalNumberThe pixel length to convert.
verticalSalBooleanTrue for a vertical measurement; false for a horizontal measurement.

Returns: SalNumber. The converted length in form units.

Instance member PostMessage(msg, mywParam, mylParam)

Posts a native Windows message to this control for asynchronous processing.

ParameterTypeDescription
msgSalNumberThe Windows or SAL message code.
mywParamSalNumberThe first message parameter.
mylParamSalNumberThe second message parameter.

Returns: SalBoolean. True if the native message was posted; false for an unavailable or disposed control, or if posting fails.

Instance member RemoveGroup(paneIndex, groupIndex)

Removes the client control at the specified group position.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
groupIndexSalNumberThe zero-based index in the pane client-area controls.

Returns: SalBoolean. True if removed; false for an invalid index.

Instance member RemovePane(paneIndex)

Removes a navigation pane by index.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.

Returns: SalBoolean. True if removed; false for an invalid index.

Instance member SaveState(xml)

Serializes the current navigation settings as XML.

ParameterTypeDescription
xml by referenceSalStringReceives the serialized settings.

Returns: SalBoolean. True after serialization completes.

Serialization failures propagate to the caller.

Instance member SendMessage(msg, mywParam, mylParam)

Sends a native Windows message to this control synchronously.

ParameterTypeDescription
msgSalNumberThe Windows or SAL message code.
mywParamSalNumberThe first message parameter.
mylParamSalNumberThe second message parameter.

Returns: SalNumber. The native message result, or zero when the control is unavailable or disposed.

Instance member SendMessageToChildren(msg, mywParam, mylParam)

Sends a message to this control's child windows and eligible descendants.

ParameterTypeDescription
msgSalNumberThe Windows or SAL message code.
mywParamSalNumberThe first message parameter.
mylParamSalNumberThe second message parameter.

Returns: SalBoolean. True after dispatching; false when the parent is unavailable or disposed.

Traversal does not descend into embedded forms or user controls. Close and destroy messages for ordinary child controls are routed to their action handlers instead of their native window procedures.

Instance member SetActivePane(paneIndex)

Activates the pane at the specified index.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.

Returns: SalBoolean. True after assignment; false for an invalid index.

Instance member SetContextMenu(menuName, flags)

Creates and assigns a context menu for this control.

ParameterTypeDescription
menuNameSalStringThe menu type name to resolve.
flagsSalNumberUse Sys.CM_TableCell to assign the table's cell-editor menu; otherwise, assign the control's context menu.

Returns: SalBoolean. True if a control and menu type resolve and the menu is created; otherwise, false.

When called during a SAL context-menu action, the created menu is also shown at the current mouse position.

Instance member SetContextMenu(menuType, flags)

Creates and assigns a context menu for this control.

ParameterTypeDescription
menuTypeTypeThe menu type to instantiate.
flagsSalNumberUse Sys.CM_TableCell to assign the table's cell-editor menu; otherwise, assign the control's context menu.

Returns: SalBoolean. True if a control and menu type resolve and the menu is created; otherwise, false.

When called during a SAL context-menu action, the created menu is also shown at the current mouse position.

Instance member SetCursor(resource, type)

Loads a cursor resource and assigns it to the requested role.

ParameterTypeDescription
resourceSalResourceCursorThe cursor resource to load.
typeSalNumberThe cursor role: Sys.CURSOR_Window, Sys.CURSOR_DragDrop, or Sys.CURSOR_DisableDrop.

Returns: SalBoolean. True if the cursor is assigned to a supported role; otherwise, false.

Instance member SetCursor(resourceId, type)

Assigns a system cursor or a cursor identified by its native handle to the requested role.

ParameterTypeDescription
resourceIdInt32A Sys.CURSOR_* identifier, or a native cursor handle represented as an integer.
typeSalNumberThe cursor role: Sys.CURSOR_Window, Sys.CURSOR_DragDrop, or Sys.CURSOR_DisableDrop.

Returns: SalBoolean. True if the cursor is assigned to a supported role; otherwise, false.

Instance member SetCursor(blob, type)

Loads a cursor from binary data and assigns it to the requested role.

ParameterTypeDescription
blobSalStringThe cursor file data stored in a SAL binary string.
typeSalNumberThe cursor role: Sys.CURSOR_Window, Sys.CURSOR_DragDrop, or Sys.CURSOR_DisableDrop.

Returns: SalBoolean. True if loading and assignment succeed; otherwise, false.

Instance member SetCursorFile(file, type)

Loads a cursor file and assigns it to the requested role.

ParameterTypeDescription
fileSalStringThe cursor file path.
typeSalNumberThe cursor role: Sys.CURSOR_Window, Sys.CURSOR_DragDrop, or Sys.CURSOR_DisableDrop.

Returns: SalBoolean. True if loading and assignment succeed; otherwise, false.

Instance member SetFocus()

Moves keyboard focus to this control, deferring the change when SAL validation is in progress.

Returns: SalWindowHandle. The previously focused managed control as a SAL handle, or a null handle if the target is unavailable, a table column, an ActiveX host, disabled, or hidden.

Instance member SetFont(name, size, enhancement)

Creates and assigns a font to this control.

ParameterTypeDescription
nameSalStringThe font family name.
sizeSalNumberThe font size in points.
enhancementSalNumberThe combined Sys.FONT_Enh* style flags.

Returns: SalBoolean. True if the font was created and assigned; otherwise, false.

Instance member SetLocation(x, y)

Sets this control's location in form units.

ParameterTypeDescription
xSalNumberThe new horizontal coordinate.
ySalNumberThe new vertical coordinate.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

For forms, this also selects manual startup positioning.

Instance member SetPaneIcon(paneIndex, binary, format, expanded)

Loads or clears the image used for one pane state.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
binarySalBinaryThe image bytes; a null wrapper or null binary value clears the image.
formatSalNumberSys.PIC_FormatBitmap or Sys.PIC_FormatIcon when loading data.
expandedSalBooleanTrue for the large expanded-state image; false for the small collapsed-state image.

Returns: SalBoolean. True after assignment; false for an invalid pane or unsupported input format.

Invalid encoded image data can throw.

Instance member SetPaneTitle(paneIndex, title)

Changes a pane's displayed caption without changing its name.

ParameterTypeDescription
paneIndexSalNumberThe zero-based pane index.
titleSalStringThe caption to display.

Returns: SalBoolean. True after assignment; false for an invalid index.

Instance member SetProperty(name, value, length)

Assigns a SAL named property after limiting the value's length.

ParameterTypeDescription
nameSalStringThe property name.
valueSalStringThe value to assign.
lengthSalNumberThe number of leading characters to retain.

Returns: SalBoolean. True if the translated control implements the SAL window contract; otherwise, false.

Instance member SetSize(width, height)

Sets this control's dimensions in form units.

ParameterTypeDescription
widthSalNumberThe new width.
heightSalNumberThe new height.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

Instance member SetText(text)

Assigns the control's displayed text.

ParameterTypeDescription
textSalStringThe text to assign.

Returns: SalBoolean. True if the translated control exists and assignment completes; otherwise, false.

An empty string is passed as null when assigning combo-box text.

Instance member SetTimer(idEvent, elapseMilliSec)

Creates or updates a native window timer for this control.

ParameterTypeDescription
idEventSalNumberThe timer identifier.
elapseMilliSecSalNumberThe requested interval in milliseconds.

Returns: SalBoolean. True if the native timer was created; otherwise, false.

Instance member SetWindowColor(colorIndex, color)

Assigns a SAL window, table-cell, text, or transparent-image color.

ParameterTypeDescription
colorIndexSalNumberThe Sys.COLOR_Index* component to update.
colorSalNumberThe SAL color value.

Returns: SalBoolean. True for a recognized color index and resolved control, even when the component does not apply to that control; otherwise, false.

Cell colors apply to table columns; window colors apply to other controls. Transparent colors require the SAL picture-control contract.

Instance member ShowWindow()

Shows this control or table column.

Returns: SalBoolean. The visibility state before the operation, or false if the control cannot be resolved.

Instance member TrackPopupMenu(menuName, flags, x, y)

Creates and displays a temporary popup menu at screen coordinates.

ParameterTypeDescription
menuNameSalStringThe menu type name to resolve.
flagsSalNumberSAL TPM_* alignment and cursor-position flags; center alignment and TPM_ContextMenu are unsupported.
xSalNumberThe screen X coordinate, unless TPM_CursorX selects the cursor position.
ySalNumberThe screen Y coordinate, unless TPM_CursorY selects the cursor position.

Returns: SalBoolean. True after the popup is shown; false when the target or menu cannot be resolved.

The previous context menu is restored after display and the temporary menu is queued for disposal.

Instance member TrackPopupMenu(menuType, flags, x, y)

Creates and displays a temporary popup menu at screen coordinates.

ParameterTypeDescription
menuTypeTypeThe menu type to instantiate.
flagsSalNumberSAL TPM_* alignment and cursor-position flags; center alignment and TPM_ContextMenu are unsupported.
xSalNumberThe screen X coordinate, unless TPM_CursorX selects the cursor position.
ySalNumberThe screen Y coordinate, unless TPM_CursorY selects the cursor position.

Returns: SalBoolean. True after the popup is shown; false when the target or menu cannot be resolved.

The previous context menu is restored after display and the temporary menu is queued for disposal.

Instance member UpdateWindow()

Requests an update of this control.

Returns: SalBoolean. True if the operation is accepted by the SAL window implementation; otherwise, false.

Instance member WinHelp(file, command, numData, strData)

Invokes the legacy Windows Help API for this control.

ParameterTypeDescription
fileSalStringThe help file path.
commandSalNumberThe Sys.HELP_* command.
numDataSalNumberThe numeric topic or index for HELP_Context and HELP_SetIndex.
strDataSalStringThe lookup text for HELP_Key.

Returns: SalBoolean. The native help result, or false for an empty file name.

Instance member Yield()

Dispatches one pending message for this window, or processes application messages when no window handle exists.

Message dispatch can reenter application code.

Events

Instance member MessageActions

SalMessageHandler Provides the legacy SAL message-handler event.

Use WindowActions for new handlers.

Instance member WindowActions

WindowActionsEventHandler Occurs when this control dispatches a SAL or custom window action.

Implements

NameDescription
ISalWindowExposes SAL message dispatch and runtime metadata for child controls, forms, dialogs, and MDI windows.