I'm trying to build a Treeview hierarchy of checkable elements and labels that must be more or less like this:
Standalone Controls (label, root)
|__Check/Uncheck all controls of all groups (checkbox)
| |
| |__Controls group 1 (group description label)
| | |__Check/Uncheck all these controls (checkbox)
| | |__Control name 1 (task)
| | |__Control name 2 (task)
| | |__Control name 3 (task)
| |
| |__Controls group 2 (group description label)
| | |__Check/Uncheck all these controls (checkbox)
| | |__Control name 1 (task)
| | |__Control name 2 (task)
| | |__Control name 3 (task)
...and so on.
Or this variant below in case of the hierarchy shown above could be too hard to code it:
Standalone Controls (label, root)
|
|__Controls group 1 (group description label)
| |__Check/Uncheck all these controls (checkbox)
| |__Control name 1 (task)
| |__Control name 2 (task)
| |__Control name 3 (task)
|
|__Controls group 2 (group description label)
| |__Check/Uncheck all these controls (checkbox)
| |__Control name 1 (task)
| |__Control name 2 (task)
| |__Control name 3 (task)
However, what I got so far is this:
This is a sample of the code I have:
[CustomMessages]
StandaloneDescr=%nStandalone Controls
ButtonsDescr=%nButtons
CheckboxesDescr=%nCheckboxes
GroupboxesDescr=%nGroupboxes
KnobsDescr=%nKnobs
...
[Tasks]
Name: WinFormsControls; Description: Check/Uncheck all; GroupDescription: {cm:StandaloneDescr}
Name: WinFormsControls; Description: Check/Uncheck all; GroupDescription: {cm:ButtonsDescr}
Name: WinFormsControls\CButton; Description: CButton
Name: WinFormsControls\GlassButton; Description: Glass Button
Name: WinFormsControls\MyCommandButtonNET; Description: My Command Button.NET
Name: WinFormsControls\PulseButton; Description: Pulse Button
Name: WinFormsControls; Description: Check/Uncheck all; GroupDescription: {cm:CheckboxesDescr}
Name: WinFormsControls\DontShowAgainCheckbox; Description: Don't Show Again Checkbox
Name: WinFormsControls; Description: Check/Uncheck all; GroupDescription: {cm:GroupboxesDescr}
Name: WinFormsControls\Grouper; Description: Grouper
Name: WinFormsControls; Description: Check/Uncheck all; GroupDescription: {cm:KnobsDescr}
Name: WinFormsControls\Knob; Description: Knob
Name: WinFormsControls\KnobControl; Description: KnobControl
...
How can I do this right?.
If I understand your question correctly, the problem is that the main "Standalone controls" checkbox does not work, right? Because it's not a part of the hierarchy.
The easiest solution is to give up on the
GroupDescription
's and move them to the checkbox description:If you want to keep the
GroupDescription
's, you can bind the main "Check/Uncheck all" to the other checkboxes programmatically:If you really need the hierarchy (indentation), you need to build a custom page. Inno Setup does not support nested group descriptions in the
Tasks
section. It ignores theGroupDescription
parameter for child tasks.And you will need to bind the tasks to actions in sections like
[Files]
,[Run]
or[Registry]
using aCheck
parameters:For a similar question, see How to split tasklist at tasks page of Inno Setup into multiple columns?