SelectionTree Control

This control enables a user to change the selection state of features listed in the Feature table. The control is associated with a string valued property that the user can set by a Browse dialog. You can associate the control with a property by entering the property's name in the Property column of the Control table.

The SelectionTree control automatically publishes the following Control Events on Windows XP or earlier operating systems. The SelectionTree control publishes these events when the selected item is changed from one node to another. If the selection tree has no nodes, the control publishes these events and erases the contents of controls that subscribe to the event. These ControlEvents are not required to be listed in the ControlEvent table.

Control event Description
SelectionAction Publishes a string from the UIText table describing the highlighted item.
SelectionBrowse Generates a Browse dialog box used to modify the path of the highlighted item.
SelectionDescription Publishes a string from the Feature table describing the highlighted item.
SelectionNoItems Deletes the descriptive text or disables the buttons of an obsolete item.
SelectionPath Publishes the path for the highlighted item.
SelectionPathOn Publishes whether or not there is a selection path associated with the currently selected feature.
SelectionSize Publishes the size of the highlighted item.

 

Beginning with the Windows Server 2003 systems, SelectionTree controls publish all of the events in the above table, and in addition, publish a DoAction ControlEvent or a SetProperty ControlEvent. Records must be added to the ControlEvent table to publish DoAction or SetProperty ControlEvents.

Control event Description
DoAction Notifies the installer to execute a custom action.
SetProperty Sets a property to a new value.

 

Beginning with Windows Installer version 3.0, SelectionTree controls publish an event that runs custom actions listed in the ControlEvent table. The SelectionTree control publishes this event whenever the feature selection changes in the control or whenever a different selection state is chosen for the current feature. The custom actions run each time the event is published. The SelectionTree control sends information to the custom action by setting the values of the following properties. All these properties are all cleared when the SelectionTree control is closed.

Windows Installer 2.0: Not supported. The SelectionTree control does not publish the event and does not set the following properties.

Property Description
MsiSelectionTreeSelectedFeature The selected feature's name in the Feature field of the Feature table.
MsiSelectionTreeSelectedAction The selected feature's installation action state. The value may be INSTALLSTATE_ABSENT, INSTALLSTATE_LOCAL, INSTALLSTATE_SOURCE, or INSTALLSTATE_ADVERTISED.
MsiSelectonTreeChildrenCount Number of direct child nodes.
MsiSelectionTreeInstallingChildrenCount Number of direct child nodes that are INSTALLSTATE_LOCAL, INSTALLSTATE_SOURCE, or INSTALLSTATE_ADVERTISED.
MsiSelectionTreeSelectedCost Cost of installing the selected feature in units of 512 bytes.
MsiSelectionTreeChildrenCost Cost of installing all the children features in units of 512 bytes.
MsiSelectionTreeSelectedPath Path where the selected feature is being installed. Defined only if the feature is being installed as INSTALLSTATE_LOCAL.

 

Note

The contents of the Text field of the Control table is never displayed by the SelectionTree control. Instead this field specifies the style of text to be displayed by the control and contains a description of the control used by screen review utilities. To set the font and font style of a text string, prefix the string of displayed characters with {\style} or {&style}. Where style is an identifier listed in the TextStyle column of the TextStyle table. If neither of these are present, but the DefaultUIFont property is defined as a valid text style, that font is used. The information following this is read by screen review utilities as the description of the control. See Accessibility.

 

Control Attributes

You can use the following attributes with this control. To change the value of an attribute using an event, subscribe the control to a ControlEvent in the EventMapping table and list the attribute's identifier in the Attribute column. Enter the identifier of the ControlEvent in the Event column.

Attribute identifier Hexadecimal bit Description
IndirectPropertyName Name of an indirect property associated with the control. If the Indirect attribute bit is set, the control displays or changes the value of the property having this name. If the Indirect attribute bit is set, this name is also the value of the property listed in the Property column of the Control table.
Position Position of the control in the dialog box. Enter the control's width, height, and coordinates of the control's left corner into the Width, Height, X, and Y columns of the Control table. Use installer units for length and distance.
PropertyName Name of the property associated with this control. If the Indirect attribute bit is not set, the control displays or changes the value of the property having this name. This attribute is specified in the Property column of the Control table.
PropertyValue Current value of the property displayed or changed by this control. If the Indirect attribute bit is not set, this is the value of PropertyName. If the Indirect attribute bit is set, this is the value of IndirectPropertyName. If the attribute changes, the control reflects the new value.
Text Displays text in screenreaders according to text entered into the Text column of the Control table. See Accessibility.
Visible 0x00000000 0x00000001
Hidden control. Visible control.
Include this bit in the bit word of the Attributes column in the Control table to make the control visible or hidden upon its creation.
You can also hide or show a control by using the ControlCondition table.
Enabled 0x00000000 0x00000002
Control in a disabled state. Control in an enabled state.
Include this bit in the bit word in the Attributes column of the Control to enable the control on creation.
You can also enable or disable a control by using the ControlCondition table.
Sunken 0x00000000 0x00000004
Displays the default visual style. Displays the control with a sunken, 3D, look.
Include these bits in the bit word in the Attributes column of the Control table.
Indirect 0x00000000 0x00000008
The control displays or changes the value of the property in the Property column of the Control table. The control displays or changes the value of the property that has the Identifier listed in the Property column of the Control table.
Determines if the property associated with this control is referenced indirectly.
RTLRO 0x00000000 0x00000020
Text in the control is displayed in left-to-right reading order. Text in the control is displayed in right-to-left reading order.
RightAligned 0x00000000 0x00000040
Text in the control is aligned to the left. Text in the control is aligned to the right.
LeftScroll 0x00000000 0x00000080
The scroll bar is located on the right side of the control. The scroll bar is located on the left side of the control.
BiDi 0x000000E0 Set this value for a combination of the RTLRO, RightAligned, and LeftScroll attributes.

 

Remarks

This control can be created from the WC_TREEVIEW class by using the CreateWindowEx function. It has the WS_BORDER, TVS_HASLINES, TVS_HASBUTTONS, TVS_LINESATROOT, TVS_DISABLEDRAGDROP, TVS_SHOWSELALWAYS, WS_CHILD, WS_TABSTOP, and WS_GROUP styles.

The selection tree is only populated if the CostInitialize action and CostFinalize action have been called.

The following string in the UIText table is related to this control.

Term Description
AbsentPath
The path displayed for an item in the absent state.

 

The following six strings are used to display the number of children selected and the size associated with the highlighted item:

  • SelChildCostPos
  • SelChildCostNeg
  • SelParentCostPosPos
  • SelParentCostPosNeg
  • SelParentCostNegPos
  • SelParentCostNegNeg

The following strings are used to display the available selection options for an item in a popup menu:

  • MenuAbsent
  • MenuLocal
  • MenuCD
  • MenuNetwork
  • MenuAllLocal
  • MenuAllCD
  • MenuAllNetwork

The following strings are used to explain the present selection in the SelectionDescription ControlEvent.

  • SelAbsentAbsent
  • SelAbsentLocal
  • SelAbsentCD
  • SelAbsentNetwork
  • SelLocalAbsent
  • SelLocalLocal
  • SelLocalCD
  • SelLocalNetwork
  • SelCDAbsent
  • SelNetworkAbsent
  • SelCDLocal
  • SelNetworkLocal
  • SelCDCD
  • SelNetworkNetwork

The following four localized strings are used in formatting the size of a file:

  • Bytes
  • KB
  • MB
  • GB