Another question in my continuing struggles to understand $PARAM’s, properties and other advanced skinning techniques.
In order to have general code to change details of the home screen and the various items on it I have made use of $PARAM to pass names of skin strings to a dialog to allow the user to change the details of the selected item. For example I have a skin string called CustomMovies.4.Label and when the item is clicked in the customization screen, this name is written to a window property called Window(settings).Property(CurrentLabel). Now I can use this property to set a new value of the skin string, but I can’t manage to then display the contents of this skin string in a <label> tag. The code as it currently stands is thus:
<include name="use-skinstring">
<param name="lab2"/>
<definition>
<label2>$INFO[$PARAM[lab2]]</label2>
</definition>
</include>
for the paramatized include.
<control type="label" id="8010"><!-- Hack to show current label string -->
<left>-200</left>
<top>-40</top>
<width>554</width>
<height>30</height>
<label>$INFO[Window(settings).Property(CurrentLabel),$INFO[Skin.String(,)]]</label>
<font>font11</font>
<visible>false</visible>
</control>
<control type="button" id="5011"><!-- Change Label of custom menu item -->
<width>554</width>
<height>48</height>
<label>- $LOCALIZE[21899]</label>
<include name="use-skinstring">
<param name="lab2" value="Control.GetLabel(8010)"/>
</include>
<font>font11</font>
<onclick>Skin.SetString($INFO[Window(settings).Property(ListCustomBase),,.Label])</onclick>
<onclick>SetFocus(9000)</onclick>
<enable>!IsEmpty(Window(settings).Property(ListCustomBase))</enable>
</control>
Button 5011 reads the label of Label 8010 and passed the value to the include. Currently it displays the string “$INFO[Skin.String(CustomMovies.4.Label)]” which is what I would have in the label to show what the label is normally. If I drop the $INFO from include I get Skin.String(CustomMovies.4.Label), so think I’m on the right track, just I’m missing something important.
Can anyone suggest something I can try? As a note the <onclick> above is working just fine (in button 5011), so the button does what it should, just I can’t feedback to the user the current state of the button.
Thanks, Wyrm (AppTV)