willz, im getting this weird problem with my skin, im using a multival to give users the options to choose which frames buttons to use from a selection of several different sets, however when i did so i discovered i get endless skin traces and i cant fix them.
blessedguy had a similar problem he resolved it by turning it to a boolval and restricting the option so you could have the one and only custom set or the default set, however if you cannot use multivals for doing this then how did you get around the problem for wam 2.0?
could you please look at my skin please and advise how i can fix this please?
the link to me skin is below
Download
I don't have time at the moment to look at skins as I am packed with work but I can explain how to get it working.
This was something pretty tricky to get right in WAM. In order to make it function correctly you must set up a resource group for every instance you want in the MultiVal.
For example say you have 4 button styles to chose from, what you do is set up 4 resource groups with the restriction set to whatever the value in the multi val is. For safety measures you always keep a default resource in the default resgroup.
So the way it works is that in your UIFiles it will be pointing to the one image, however in skininfo.xml it will load a different image depending on the option you have selected.
Here is a small sample.
<ResGroup>
<Restrictions>
<MsgVersions>
<Version Major="8" Minor="5"/>
</MsgVersions>
<SkinOptions>
<OptionSet>
<Conditions>Button= "Button1" </Conditions>
</OptionSet>
</SkinOptions>
</Restrictions>
<Resources>
<New>
<Pictures>
<Picture Id="59001">
<File>images/59001_button1.png</File>
</Picture>
</Pictures>
</New>
</Resources>
</ResGroup>
<ResGroup>
<Restrictions>
<MsgVersions>
<Version Major="8" Minor="5"/>
</MsgVersions>
<SkinOptions>
<OptionSet>
<Conditions>Button= "Button2" </Conditions>
</OptionSet>
</SkinOptions>
</Restrictions>
<Resources>
<New>
<Pictures>
<Picture Id="59001">
<File>images/59001_button2.png</File>
</Picture>
</Pictures>
</New>
</Resources>
</ResGroup>
<ResGroup>
<Restrictions>
<MsgVersions>
<Version Major="8" Minor="5"/>
</MsgVersions>
<SkinOptions>
<OptionSet>
<Conditions>Button= "Button3" </Conditions>
</OptionSet>
</SkinOptions>
</Restrictions>
<Resources>
<New>
<Pictures>
<Picture Id="59001">
<File>images/59001_button3.png</File>
</Picture>
</Pictures>
</New>
</Resources>
</ResGroup>
<ResGroup>
<Restrictions>
<MsgVersions>
<Version Major="8" Minor="5"/>
</MsgVersions>
<SkinOptions>
<OptionSet>
<Conditions>Button= "Button4" </Conditions>
</OptionSet>
</SkinOptions>
</Restrictions>
<Resources>
<New>
<Pictures>
<Picture Id="59001">
<File>images/59001_button4.png</File>
</Picture>
</Pictures>
</New>
</Resources>
</ResGroup>
So basically what the code does is for whatever the multival Button is set to, it will assign a different image to the resource 59001. You must also add in a 59001 resource into your default ResGroup as well.
what i did was create 2 resgroups one for a default set of frame buttons (WLM's own ones) and a 365 set, i may add more sets later on, what i then did is in each resgroup under restrictions looked like this.
<SkinOptions>
<OptionSet>
<MultiVal Name="FLWPack">365</MultiVal>
</OptionSet>
</SkinOptions>
then in the uifiles i used
<*PlusSkin Conditions(FLWPack = 365)*>
<Element id=atom(showmenubtn) layout=FlowLayout(0,0,0,0)>
<button id=Atom(FLWMenuBtn) class="FrameBtn" layoutpos=auto cmdid=20002 AccRole=57 active=MouseAndKeyboard|NoSyncFocus/>
<button id=Atom(FLWMinBtn) class="FrameBtn" layoutpos=auto cmdid=20004 active=mouse/>
<button id=Atom(FLWMaxBtn) class="FrameBtn" layoutpos=auto cmdid=20005 active=mouse/>
<button id=Atom(FLWCloseBtn) class="FrameBtn" layoutpos=auto cmdid=20001 active=mouse/>
</*PlusSkin*>
<*PlusSkin Conditions(FLWPack = Default)*>
<button id=Atom(FLWMinBtn) class="FrameBtn" layoutpos=auto cmdid=20004 active=mouse/>
<button id=Atom(FLWMaxBtn) class="FrameBtn" layoutpos=auto cmdid=20005 active=mouse/>
<button id=Atom(FLWCloseBtn) class="FrameBtn" layoutpos=auto cmdid=20001 active=mouse/>
</*PlusSkin*>
now based on everything i know and the fact i have used this general method for all other multivals in my skin successfully this should have worked.
each resgroup was copy pasted from the original in order to maintain the original resource number all i did is after coying the 365 set resgroup changed the wording from 365 to default including in the file paths so based on the ultival it chooses which group to run.
resources in each resgroup are 59006 - 59017 (minmaxclose) & 59026 - 59029 (FLWShowMenuBtn), but the skin trace error i get refers to 59005 which is my skin options button and this only happened after setting my uifiles to use the code above.
any ideas whats wrong?
</Restrictions>
That code appears to be fine though its not really as efficient as what it could be

regardless it does the job.
If it is pointing to an image outside the group then what I recommend you do is to comment out all traces of the 59005 image and then see if the error is still generated. If you get another error then that simply means either the condition wasn't set up correctly (structure wise) or you have something else going on e.g broken link.
thanks willz, i looked into it i got it working on a semi-solved basis, basically to explain my uifile code above i wanted it so if you use the 365 frame set then you get the showmenu button added, however the default version of messenger doesnt have a showmenu button so when users select the default option i didnt want to have to include one is it wouldnt really be a true representation of the default frame set.
however it appears that i cannot have it work like that you cant apply conditions to the frame buttons like that i have been forced therefore to use the 365 styled showmenu button on my default set until either a i figure out a way of doing it the way i wanted to do it or b i am able to get a general template of the minimise button without the symbal on it so i can make a custom showmenu button that fits in with the default frame sets general style.
to be honest the make a custom button and my present temporary solution really to me sound like bodge jobs and i would hate to compromise the integrity of my skin so if you do get time in the foreseeable future to help me willz or anyone else who may know enough to help me out itd be greatly appreciated.
on further reflection i wonder if maybe the fact i didnt condition around the content indexes stuff in the style files aswell as conditioning the code above might have caused my problem, its the only thing i hadnt thought to try yet.