Controle SelectionTree

Esse controle permite que um usuário altere o estado de seleção dos recursos listados na tabela Feature. O controle está associado a uma propriedade com valor de cadeia de caracteres que o usuário pode definir por uma caixa de diálogo Browse. Você pode associar o controle a uma propriedade inserindo o nome da propriedade na coluna Property da tabela Control.

O controle SelectionTree publica automaticamente os seguintes Eventos de Controle nos sistemas operacionais Windows XP ou anterior. O controle SelectionTree publica esses eventos quando o item selecionado é alterado de um nó para outro. Se a árvore de seleção não tiver nós, o controle publicará esses eventos e apagará o conteúdo dos controles que assinam o evento. Esses ControlEvents não precisam ser listados na tabela ControlEvent.

Evento de controle Descrição
SelectionAction Publica uma cadeia de caracteres da tabela UIText que descreve o item realçado.
SelectionBrowse Gera a caixa de diálogo Browse usada para modificar o caminho do item realçado.
SelectionDescription Publica uma cadeia de caracteres da tabela UIText que descreve o item realçado.
SelectionNoItems Exclui o texto descritivo ou desabilita os botões de um item obsoleto.
SelectionPath Publica o caminho do item realçado.
SelectionPathOn Publica se há um caminho de seleção associado ao recurso selecionado no momento.
SelectionSize Publica o tamanho do item realçado.

 

A partir dos sistemas Windows Server 2003, os controles SelectionTree publicam todos os eventos na tabela acima e, além disso, publicam um DoAction ControlEvent ou um SetProperty ControlEvent. Os registros devem ser adicionados à tabela ControlEvent para publicar DoAction ou SetProperty ControlEvents.

Evento de controle Descrição
DoAction Notifica o instalador para executar uma ação personalizada.
SetProperty Define uma propriedade como um novo valor.

 

A partir do Windows Installer versão 3.0, os controles SelectionTree publicam um evento que executa as ações personalizadas listadas na tabela ControlEvent. O controle SelectionTree publica esse evento sempre que a seleção de recursos é alterada no controle ou sempre que um estado de seleção diferente é escolhido para o recurso atual. As ações personalizadas são executadas sempre que o evento é publicado. O controle SelectionTree envia informações para a ação personalizada definindo os valores das propriedades a seguir. Todas essas propriedades são limpas quando o controle SelectionTree é fechado.

Windows Installer 2.0: sem suporte. O controle SelectionTree não publica o evento e não define as propriedades a seguir.

Propriedade Descrição
MsiSelectionTreeSelectedFeature O nome do recurso selecionado no campo Feature da tabela Feature.
MsiSelectionTreeSelectedAction O estado de ação de instalação do recurso selecionado. O valor pode ser INSTALLSTATE_ABSENT, INSTALLSTATE_LOCAL, INSTALLSTATE_SOURCE ou INSTALLSTATE_ADVERTISED.
MsiSelectonTreeChildrenCount Número de nós filho diretos.
MsiSelectionTreeInstallingChildrenCount Número de nós filho diretos que são INSTALLSTATE_LOCAL, INSTALLSTATE_SOURCE ou INSTALLSTATE_ADVERTISED.
MsiSelectionTreeSelectedCost Custo de instalação do recurso selecionado em unidades de 512 bytes.
MsiSelectionTreeChildrenCost Custo da instalação de todos os recursos filho em unidades de 512 bytes.
MsiSelectionTreeSelectedPath Caminho em que o recurso selecionado está sendo instalado. Definido somente se o recurso estiver sendo instalado como INSTALLSTATE_LOCAL.

 

Observação

O conteúdo do campo Text da Tabela Control nunca é exibido pelo controle SelectionTree. Em vez disso, esse campo especifica o estilo do texto a ser exibido pelo controle e contém uma descrição do controle usado pelos utilitários de revisão de tela. Para definir a fonte e o estilo da fonte de uma cadeia de texto, acrescente à cadeia de caracteres exibidos o prefixo {\style} ou {&style}. Sendo que estilo é um identificador listado na coluna TextStyle da Tabela TextStyle. Se nenhum deles estiver presente, mas a propriedade DefaultUIFont for definida como um estilo de texto válido, essa fonte será usada. As informações a seguir são lidas por utilitários de revisão de tela como a descrição do controle. Confira Acessibilidade.

 

Atributos de Controle

É possível usar os atributos a seguir com esse controle. Para alterar o valor de um atributo usando um evento, assine o controle em um ControlEvent na tabela EventMapping e liste o identificador do atributo na coluna Attribute. Insira o identificador do ControlEvent na coluna Event.

Identificador de atributo Bit hexadecimal Descrição
IndirectPropertyName Nome de uma propriedade indireta associada ao controle. Caso o bit de atributo Indireto esteja definido, o controle exibirá ou alterará o valor da propriedade com esse nome. Se o bit do atributo Indirect estiver definido, esse nome também será o valor da propriedade listada na coluna Property da tabela Control.
Posição Posição do controle na caixa de diálogo. Insira a largura, a altura e as coordenadas do controle do canto esquerdo do controle nas colunas Width, Height, X e Y da tabela Control. Use Unidades do instalador para definir o comprimento e a distância.
PropertyName Nome da propriedade associada a esse controle. Caso o bit de atributo Indireto não esteja definido, o controle exibirá ou alterará o valor da propriedade com esse nome. Esse atributo é especificado na coluna Property da tabela Control.
PropertyValue Valor atual da propriedade exibida ou alterada por esse controle. Se o bit do atributo Indirect não for definido, esse será o valor de PropertyName. Se o bit do atributo Indirect estiver definido, esse será o valor de IndirectPropertyName. Se o atributo for alterado, o controle refletirá o novo valor.
Texto Exibe texto em leitores de tela de acordo com o texto inserido na coluna Text da tabela Control. Confira Acessibilidade.
Visível 0x00000000 0x00000001
Controle oculto. Controle visível.
Inclua esse bit na palavra de bit da coluna Attributes na tabela Control para tornar o controle visível ou oculto após a criação.
Você também pode ocultar ou mostrar um controle usando a tabela ControlCondition.
Enabled 0x00000000 0x00000002
Controle em um estado desabilitado. Controle em um estado habilitado.
Inclua esse bit na palavra de bit na coluna Attributes do Controle para habilitar o controle na criação.
Você também pode habilitar ou desabilitar um controle usando a tabela ControlCondition.
Sunken 0x00000000 0x00000004
Exibe o estilo visual padrão. Exibe o controle com uma aparência 3D em baixo-relevo.
Inclua esses bits na palavra de bit da coluna Attributes da tabela Control.
Indireto. 0x00000000 0x00000008
O controle exibe ou altera o valor da propriedade na coluna Property da tabela Control. O controle exibe ou altera o valor da propriedade que tem o Identificador listado na coluna Property da tabela Control.
Determina se a propriedade associada a esse controle é indiretamente referenciada.
RTLRO 0x00000000 0x00000020
O texto no controle é exibido na ordem de leitura da esquerda para a direita. O texto no controle é exibido na ordem de leitura da direita para a esquerda.
RightAligned 0x00000000 0x00000040
O texto no controle é alinhado à esquerda. O texto no controle é alinhado à direita.
LeftScroll 0x00000000 0x00000080
A barra de rolagem está localizada no lado direito do controle. A barra de rolagem está localizada no lado esquerdo do controle.
BiDi 0x000000E0 Defina esse valor para uma combinação dos atributos RTLRO, RightAligned e LeftScroll.

 

Comentários

Esse controle pode ser criado a partir da classe WC_TREEVIEW usando a função CreateWindowEx. Ele tem os estilos WS_BORDER, TVS_HASLINES, TVS_HASBUTTONS, TVS_LINESATROOT, TVS_DISABLEDRAGDROP, TVS_SHOWSELALWAYS, WS_CHILD, WS_TABSTOP e WS_GROUP.

A árvore de seleção é preenchida somente se a ação CostInitialize e a ação CostFinalize forem chamadas.

A cadeia de caracteres a seguir na tabela UIText está relacionada a esse controle.

Termo Descrição
AbsentPath
O caminho exibido para um item no estado ausente.

 

As seis cadeias de caracteres a seguir são usadas para exibir o número de filhos selecionados e o tamanho associado ao item realçado:

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

As cadeias de caracteres a seguir são usadas para exibir as opções de seleção disponíveis para um item em um menu pop-up:

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

As cadeias de caracteres a seguir são usadas para explicar a seleção atual no SelectionDescription ControlEvent.

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

As quatro cadeias de caracteres localizadas a seguir são usadas na formatação do tamanho de um arquivo:

  • Bytes
  • KB
  • MB
  • GB