[Touch Diamond, MDA Compact IV General] MonteCristoffOn:
Reading your xml, I've understood that.

But what about the multi values keys ?

Just a little example with ringtones...

Of course you can change it via the classic WM Phone Settings panel, but imagine we want to add this tweak in TF3D Config... just to illustrate how it could be.

The key is : HKCU\ControlPanel\Sounds\RingTone0\Script

Values are :

a (for none)

apw3r (simple ring)

c50apw3c150r (increasing ring)

p (ring once)

av3w3r (vibrate)

av0pw3r (vibrate and ring)

v3w3apw3r (vibrate then ring)

c50av0pw3c150r (vibrate and increasing ring)

v1w1v1w1v1w1c50apw3c150r (vibrate 3x then increasing ring, this is my favorite...)

OK, let's do the TF3D Custom xml file with that...

(not tested, it's just for the exercise :))

<?xml version="1.0" standalone="yes"?>
<Tweaks>
<Tweak>
<Name>Ringtone 1</Name>
<Description>Change the Ringtone : none</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>a</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 2</Name>
<Description>Change the Ringtone : ring (default)</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>apw3r</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 3</Name>
<Description>Change the Ringtone : increasing ring</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>c50apw3c150r</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 4</Name>
<Description>Change the Ringtone : ring once</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>p</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 5</Name>
<Description>Change the Ringtone : vibrate</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>av3w3r</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 6</Name>
<Description>Change the Ringtone : vibrate and ring</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>av0pw3r</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 7</Name>
<Description>Change the Ringtone : vibrate then ring</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>v3w3apw3r</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 8</Name>
<Description>Change the Ringtone : vibrate and increasing ring</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>c50av0pw3c150r</NewValue>
</Tweak>
<Tweak>
<Name>Ringtone 7</Name>
<Description>Change the Ringtone : vibrate 3x then increasing ring</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<NewValue>v1w1v1w1v1w1c50apw3c150r</NewValue>
</Tweak>
</Tweaks>

I think you will agree with me : this is not a very elegant solution...

What about this kind of xml structure ?

<?xml version="1.0" standalone="yes"?>
<Tweaks>
<Tweak>
<Name>Ringtone</Name>
<Description>Change the Ringtone</Description>
<RegRoot>HKCU</RegRoot>
<RegKey>ControlPanel\Sounds\RingTone0</RegKey>
<RegValue>Script</RegValue>
<RegValueKind>String</RegValueKind>
<DefaultValue>apw3r</DefaultValue>
<Options>
<OptionValue>a</OptionValue><OptionDescription>None</OptionDescription>
<OptionValue>apw3r</OptionValue><OptionDescription>Ring (default)</OptionDescription>
<OptionValue>c50apw3c150r</OptionValue><OptionDescription>Increasing ring</OptionDescription>
<OptionValue>p</OptionValue><OptionDescription>Ring once</OptionDescription>
<OptionValue>av3w3r </OptionValue><OptionDescription>Vibrate</OptionDescription>
<OptionValue>av0pw3r</OptionValue><OptionDescription>Vibrate and ring</OptionDescription>
<OptionValue>v3w3apw3r</OptionValue><OptionDescription>Vibrate then ring</OptionDescription>
<OptionValue>c50av0pw3c150r</OptionValue><OptionDescription>Vibrate and increasing ring</OptionDescription>
<OptionValue>v1w1v1w1v1w1c50apw3c150r</OptionValue><OptionDescription>vibrate 3x then increasing ring</OptionDescription>
</Options>
</Tweak>

</Tweaks>

Of course, parsing will be different and your app will probably need some modifications...

But I'm sure it would be better !

CU soon.

;)