Kodi Community Forum
Problem with passing values - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Skinning (https://forum.kodi.tv/forumdisplay.php?fid=12)
+--- Thread: Problem with passing values (/showthread.php?tid=88026)



Problem with passing values - mstef - 2010-12-20

The idea is to have different colors for each section, movies, tvshows, music, etc. I use the same view for each section. To have one view declaration and color independent I have to pass value of folder name where are textures for that color. As constant declaration is not usefull outside of numeric values in numeric parameters I can't use it in <texture> tag. So I create fake button wich has default control in myvideonav when onfocus set property and pass focus to default id=50.

in includes have declaration:

PHP Code:
<include name="ThemeColorPurple">
    <
control type="button" id="999">
        <
onfocus>SetProperty(ThemeColor,purple)</onfocus>
        <
onfocus>Control.SetFocus(50)</onfocus>
    </
control>
</include> 


in mymovienav.xml have:

PHP Code:
<include>ThemeColorPurple</include> 

and then in some view in itemlayout inside some list have:

PHP Code:
<control type="image">
    <
posx>0</posx>
    <
posy>0</posy>
    <
width>234</width>
    <
height>234</height>
    <
bordertexture>$INFO[Window.Property(ThemeColor),special://skin/media/,/holder-8x3-focus.png]</bordertexture>
    
<bordersize>12</bordersize>
    <
fadetime>100</fadetime>
    <
texture background="true" diffuse="holder-8x3-diffuse.png">$INFO[Listitem.Icon]</texture>
    <
aspectratio scalediffuse="false">stretch</aspectratio>
</
control


and it doesn't work
If I create label and put this string: "$INFO[Window.Property(ThemeColor),special://skin/media/,/holder-8x3-focus.png]" into label it display exactly path what I wont but it don't work inside bordertexture some way. There is no info in debug insted of creating property. Images are in placed. What I missed?


- ronie - 2010-12-21

most likely you can't use infolabels for bordertextures


- mstef - 2010-12-21

So do you have any idea how can I do that?


- Hitcher - 2010-12-21

Use the bordertexture in separate image control above the icon control?

PHP Code:
<control type="image"
    <
posx>0</posx
    <
posy>0</posy
    <
width>234</width
    <
height>234</height
    <
texture>$INFO[Window.Property(ThemeColor),special://skin/media/,/holder-8x3-focus.png]</texture> 
    
<bordersize>12</bordersize
    <
fadetime>100</fadetime
    <
aspectratio scalediffuse="false">stretch</aspectratio
</
control>
<
control type="image"
    <
posx>12</posx
    <
posy>12</posy
    <
width>220</width
    <
height>220</height>  
    <
fadetime>100</fadetime
    <
texture background="true" diffuse="holder-8x3-diffuse.png">$INFO[Listitem.Icon]</texture
    <
aspectratio scalediffuse="false">stretch</aspectratio
</
control



- mstef - 2010-12-21

Thank you for the hint. I'll try.


- mstef - 2010-12-21

The only thing is that the border and the icon will not load the same. If I use texture with icon and textureborder, the second will load if icon is loaded. In this scenario (separate images) I probably will have lot of frames without content when scrolling. That is why I didn't use ListItem.Overlay in panel container because they loaded before icons so I have only watched marks before content is loaded. I suppose I can use smart animation effects but I can't figured it out.


- mstef - 2010-12-21

Hmmm.... it's totaly freak. I can't get value by Window.Property(ThemeColor) from inside panel container focuslayout. It show empty. I don't know why I didn't check this yesterday. But if I put it outside panel container (the same file, a few lines below) it shows corectly value. Any suggestions? Smile


- Jezz_X - 2010-12-21

yeah only ListItem.blah labels will be checked and update inside panels and lists


- mstef - 2010-12-21

Ok, so I know what to do. I suppose it could be simpler. I have to create for each element block for each color section with sth like this <visible>StringCompare(Window.Property(ThemeColor),purple)</visible> and it will be work.
Thank you all for help.