Mod Estuary skinning manual (DELETED)
#1
work in progress
if you have any tips please share 
if you can make things easier to understand please share 

https://kodi.wiki/view/Estuary_Modification

Adding menu and accompanying  screen
how the menu and widget screen are linked

<item>
<label>$LOCALIZE[1]</label>
<onclick>ActivateWindow(Pictures)</onclick>
<property name="menu_id">$NUMBER[4000]</property>
<thumb>icons/sidemenu/pictures.png</thumb>
<property name="id">pictures</property>
<visible>!Skin.HasSetting(HomeMenuNoPicturesButton)</visible>
</item>
right screen
<control type="group" id="4000">
     <visible>String.IsEqual(Container(9000).ListItem.Property(id),pictures)</visible>
     <include content="Visible_Right_Delayed">
      <param name="id" value="pictures"/>
     </include>
     <control type="grouplist" id="4001">
      <include>WidgetGroupListCommon</include>
      <include content="WidgetListCategories" condition="!Skin.HasSetting(HomeMenuNoPicturesButton)">
       <param name="content_path" value="sources://pictures/"/>
       <param name="widget_header" value="$LOCALIZE[20094]"/>
       <param name="widget_target" value="pictures"/>
       <param name="list_id" value="4100"/>
       <param name="icon_height" value="110"/>
      </include>
     </control>
     
    </control>
<item> menu item tag
    <label>$LOCALIZE[1]</label> name of menu in this one it is = to pictures
    <property name="menu_id">$NUMBER[4000]</property> this is the number linked to the groups
    <control type="group" id="4000"> <control type="grouplist" id="4001"> <param name="list_id" value="4100"/>
    <onclick>ActivateWindow(Pictures)</onclick> ActivateWindow or plugin or node
    <thumb>icons/sidemenu/pictures.png</thumb> image thumb icon
    <property name="id">pictures</property> is the same
<visible>String.IsEqual(Container(9000).ListItem.Property(id),pictures)</visible>
    and <param name="id" value="pictures"/>
    <visible>!Skin.HasSetting(HomeMenuNoPicturesButton)</visible> not needed unless you are going to hide it
    </item> close item tag
    missing from pictures but needed for widget rows is <pagecontrol>menu_id010</pagecontrol> and it uses the same menu_id 010
    and and is placed after  <include>WidgetGroupListCommon</include> and after widget rows is <include content="WidgetScrollbar" condition="Skin.HasSetting(touchmode)">
      <param name="scrollbar_id" value="menu_id010"/>
     </include>
Example of how this works kids zone edit home.xml

 <item>
               <label>kids zone</label>
               <onclick>ActivateWindow(10025,&quot;plugin://plugin.video.youtube/kodion/search/list/&quot;,return)</onclick>
              <property name="menu_id">$NUMBER[30000]</property>
              <thumb>icons/sidemenu/kids.png</thumb>
             <property name="id">kidszone</property>
             </item>


    
 <control type="group" id="21000"> add before <control type="group" id="30000">
     <visible>String.IsEqual(Container(9000).ListItem.Property(id),kidszone)</visible>
     <include content="Visible_Right_Delayed">
      <param name="id" value="kidszone"/>
     </include>
     <control type="grouplist" id="30001">
      <include>WidgetGroupListCommon</include>
      <pagecontrol>30010</pagecontrol>
      Widgets can be added from a node (library://video/movies/) see kodi node library examples https://forum.kodi.tv/showthread.php?tid=344482
      
      <include content="WidgetListPoster" condition="Library.HasContent(movies)">
       <param name="content_path" value="special://skin/playlists/unwatched_movies.xsp"/>
       <param name="widget_header" value="$LOCALIZE[31007]"/>
       <param name="widget_target" value="videos"/>
       <param name="list_id" value="30300"/>
      </include>
      <include content="WidgetListPoster" condition="Library.HasContent(movies)">
       <param name="content_path" value="special://skin/playlists/random_movies.xsp"/>
       <param name="widget_header" value="$LOCALIZE[31006]"/>
       <param name="widget_target" value="videos"/>
       <param name="list_id" value="30400"/>
      </include>
      </control>
      <include content="WidgetScrollbar" condition="Skin.HasSetting(touchmode)">
      <param name="scrollbar_id" value="5010"/>
     </include>
     </control>

content screen


the <param name="list_id" value="30300"/> of the next widget needs to be higher then the one before <param name="list_id" value="30310"/>

Image
Reply
#2
decrease the poster size on the home menu
view 54

<include name="InfoWallMusicLayout">
  <param name="fallback_image">DefaultFolder.png</param>
  <param name="main_label">$INFO[ListItem.Artist]</param>
  <param name="sub_label">$INFO[ListItem.Title]</param>
  <param name="single_label">$INFO[ListItem.Label]</param>
  <param name="focused">false</param>
  <definition>
<!-- box -->
   <control type="image">
    <top>0</top>
    <left>0</left>
    <width>250</width>
    <height>300</height>
    <texture>dialogs/dialog-bg-nobo.png</texture>
    <bordertexture border="21">overlays/shadow.png</bordertexture>
    <bordersize>20</bordersize>
   </control>
<!-- frame -->
   <control type="image">
    <top>0</top>
    <left>0</left>
    <width>250</width>
    <height>300</height>
    <texture colordiffuse="button_focus">colors/grey.png</texture>
    <bordertexture border="21">overlays/shadow.png</bordertexture>
    <bordersize>20</bordersize>
    <visible>$PARAM[focused]</visible>
    <include condition="$PARAM[focused]">Animation_FocusTextureFade</include>
   </control>
<!-- InfoWallThumb -->
   <control type="image">
    <left>0</left>
    <top>25</top>
    <width>250</width>
    <height>250</height>
    <texture fallback="$PARAM[fallback_image]" background="true">$VAR[InfoWallThumbVar]</texture>
    <aspectratio>keep</aspectratio>
    <bordersize>20</bordersize>
   </control>
<!-- text -->
   <control type="textbox">
    <left>0</left>
    <top>225</top>
    <width>240</width>
    <height>80</height>
    <font>font12</font>
    <align>center</align>
    <aligny>center</aligny>
    <label>$PARAM[single_label]</label>
    <visible>!String.IsEqual(ListItem.DBType,album)</visible>
   </control>
 <!-- top text   -->
Includes_Home.xml
<itemlayout width="206" height="386">
<focusedlayout width="206" height="386">
<include name="WidgetListPoster">
  <definition>
   <include content="CategoryLabel">
    <param name="label">$PARAM[widget_header]</param>
    <param name="list_id" value="$PARAM[list_id]"/>
   </include>
   <include content="BusyListSpinner">
    <param name="list_id" value="$PARAM[list_id]"/>
    <param name="posy" value="250"/>
   </include>
   <control type="panel" id="$PARAM[list_id]">
    <left>0</left>
    <top>60</top>
    <visible>Integer.IsGreater(Container($PARAM[list_id]).NumItems,0) | Container($PARAM[list_id]).IsUpdating</visible>
    <right>0</right>
    <height>330</height>
    <include content="WidgetListCommon">
     <param name="list_id" value="$PARAM[list_id]"/>
    </include>
    <itemlayout width="206" height="386">
     <control type="group">
      <left>68</left>
      <top>10</top>
      <include content="InfoWallMovieLayout">
       <param name="focused" value="false" />
      </include>
     </control>
    </itemlayout>
    <focusedlayout width="206" height="386">
     <control type="group">
      <depth>DepthContentPopout</depth>
      <left>68</left>
      <top>10</top>
      <animation type="Focus">
       <effect type="zoom" start="100" end="110" time="200" tween="sine" easing="inout" center="230,130" />
      </animation>
      <animation type="Unfocus">
       <effect type="zoom" start="110" end="100" time="200" tween="sine" easing="inout" center="230,130" />
      </animation>
      <include content="InfoWallMovieLayout">
       <param name="focused" value="true" />
      </include>
     </control>
    </focusedlayout>
    <content sortby="$PARAM[sortby]" sortorder="$PARAM[sortorder]" target="$PARAM[widget_target]" limit="15">$PARAM[content_path]</content>
   </control>
  </definition>
 </include>
Reply
#3
EPG mod change channel name to channel icon
edit Includes_PVR.xml
find
<control type="label" id="1">
      <left>68</left>
      <top>-2</top>
      <height>60</height>
      <font>font0</font>
      <label>$INFO[ListItem.ChannelName]</label>
      <aligny>center</aligny>
      <textoffsetx>10</textoffsetx>
     </control>

there are 2 lots to change


replace with
<control type="image" id="1">
      <top>0</top>
      <left>75</left>
      <width>100</width>
      <height>60</height>
      <aspectratio align="center" aligny="center">keep</aspectratio>
      <fadetime>400</fadetime>
      <texture>$INFO[ListItem.Icon]</texture>
     </control>

music menu straight to album
replace
<item>
       <label>$LOCALIZE[2]</label>
       <onclick>ActivateWindow(Music,root,return)</onclick>
       <property name="menu_id">$NUMBER[7000]</property>
       <thumb>icons/sidemenu/music.png</thumb>
       <property name="id">music</property>
       <visible>!Skin.HasSetting(HomeMenuNoMusicButton)</visible>
      </item>
with
     
 <item>
       <label>$LOCALIZE[2]</label>
       <onclick>ActivateWindow(10502,&quot;library://music/albums.xml/&quot;,return)</onclick>
       <property name="menu_id">$NUMBER[7000]</property>
       <thumb>icons/sidemenu/music.png</thumb>
       <property name="id">music</property>
       <visible>!Skin.HasSetting(HomeMenuNoMusicButton)</visible>
      </item>

to make fanart more visible
Includes.xml
<texture background="true" colordiffuse="37FFFFFF">$VAR[MediaFanartVar]</texture>

you can change 37FFFFFF 37 is visibility and fffffff is white

or you can delete it
<texture background="true" >$VAR[MediaFanartVar]</texture>

set up full width menus
under <control type="fixedlist" id="9000"> find  <width>95</width> and change to  <width>450</width>



<control type="image">
<left>-3</left>
<top>1</top>
<width>450</width>
<height>95</height>
<texture colordiffuse="button_focus">$INFO[ListItem.Art(thumb)]</texture>
<animation effect="fade" start="0" end="100" time="300" reversible="false">Focus</animation>
</control>
<control type="image">
<left>0</left>
<top>0</top>
<width>450</width>
<height>95</height>
<texture colordiffuse="51FFFFFF">colors/black.png</texture>
<animation effect="fade" start="100" end="0" time="0" condition="[!Control.HasFocus(9000) + !ControlGroup(700).HasFocus] | System.HasActiveModalDialog">Conditional</animation>
</control>
</control>
<control type="image">
<left>-3</left>
<top>1</top>
<width>450</width>
<height>95</height>
<texture>$INFO[ListItem.Art(thumb)]</texture>
</control>
<control type="label">
<left>104</left>
<top>0</top>
<height>95</height>
<width>560</width>
<aligny>center</aligny>
<font>font37</font>
<!--- <label>$INFO[ListItem.Label]</label> -->
<shadowcolor>text_shadow</shadowcolor>
</control>

</focusedlayout>
<itemlayout height="95">
<control type="image">
<left>-3</left>
<top>1</top>
<width>450</width>
<height>95</height>
<texture colordiffuse="44FFFFFF">$INFO[ListItem.Art(thumb)]</texture>
</control>
Reply
#4
flix prime look
Variables.xml
look for <variable name="BannerVar">
   --> line 172
   add   

  <variable name="BannerVar">
  <value condition="!String.IsEmpty(ListItem.Art(banner))">$INFO[ListItem.Art(banner)]</value>
  <value>$INFO[ListItem.Art(tvshow.banner)]</value>
 </variable>
  <variable name="landscapeVar">
  <value condition="!String.IsEmpty(ListItem.Art(landscape))">$INFO[ListItem.Art(landscape)]</value>
  <value condition="String.IsEmpty(ListItem.Art(landscape))">$INFO[ListItem.Art(poster)]</value>
  <value>$INFO[ListItem.Art(landscape)]</value>
 </variable>
     
  View_54_InfoWall.xml
  Image
  <visible>!String.IsEmpty(ListItem.Art(poster))</visible> line 279 change to landscape
  <visible>String.IsEmpty(ListItem.Art(landscapeVar))</visible>
  line 280
   

  <control type="image">
     <left>11</left>
     <top>-14</top>
     <width>298</width>
     <height>408</height>
     <texture colordiffuse="button_focus">colors/grey.png</texture>
     <bordertexture border="21">overlays/shadow.png</bordertexture>
     <bordersize>20</bordersize>
     <visible>$PARAM[focused]</visible>
     <include condition="$PARAM[focused]">Animation_FocusTextureFade</include>
    </control>
     
  <texture background="true">$INFO[ListItem.Art(poster)]</texture> line 296 change to landscape
  <texture background="true">$INFO[ListItem.Art(landscape)]</texture>
  
  now change the size of the image for landscape left 0 top 10 width height
  
     

  <control type="image">
    <left>0</left>
    <top>10</top>
    <width>360</width>
    <height>240</height>
    <texture fallback="$PARAM[fallback_image]" background="true">$VAR[landscapeVar]</texture>
    
    <bordersize>20</bordersize>
   </control>
   
Image
   Includes_Home.xml
   find line 63 <include name="WidgetListPoster">
    find <height>503</height> change to <height>360</height>
   now down to line 82 change
    <itemlayout width="310" height="486">
    
    <itemlayout width="360" height="240"> find line 91
    
    <focusedlayout width="310" height="486">
    <focusedlayout width="360" height="240">
   

Image
Image
home.xml
    find <include>OpenClose_Right</include>
    
    
<control type="group">
     <top>320</top>
   <control type="image">
       <left>40</left>
       <top>-320</top>
       <width>400</width>
       <height>155</height>
       <texture >$INFO[ListItem.Art(clearlogo)]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
      <control type="label">
       <top>-320</top>
       <left>140</left>
       <width>500</width>
       <height>93</height>
       <label>$VAR[PlaylistLabelVar]</label>
       <shadowcolor>black</shadowcolor>
       <font>font60</font>
       <visible>String.IsEmpty(ListItem.Art(clearlogo))</visible>
      </control>
      <control type="label">
       <top>-220</top>
       <left>200</left>
       <width>1200</width>
       <height>93</height>>
       <label>$INFO[ListItem.Title]</label>
       <font>font37</font>
       <visible>!String.IsEqual(ListItem.DBType,movie) + String.IsEmpty(ListItem.Art(clearlogo))</visible>
      </control>
      <control type="image">
       <left>450</left>
       <top>-320</top>
       <width>600</width>
       <height>111</height>
       <texture >$VAR[BannerVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
       <visible>String.IsEmpty(ListItem.Art(BannerArt))</visible>
      </control>
      <control type="image">
       <left>1100</left>
       <top>-320</top>
       <width>400</width>
       <height>225</height>
       <texture >$VAR[clearartVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
      
      <control type="textbox">
       <top>-150</top>
        <width>65%</width>
        <height>180</height>
       <autoscroll time="3000" delay="7000" repeat="5000">!System.HasActiveModalDialog + Skin.HasSetting(AutoScroll)</autoscroll>
       <label>$VAR[ShiftRightTextBoxVar]</label>
       <shadowcolor>black</shadowcolor>
       <font>font12</font>
      </control>
        </control>
        <include>OpenClose_Right</include>
        
      find  <pagecontrol>5010</pagecontrol>
       add <top>320</top>
        
      find  <pagecontrol>6010</pagecontrol>
      add <top>320</top>
        Image
Image
home.xml
<control type="group" id="2000">
    <left>462</left>
 <left>122</left>   
 
 
 <control type="group">
    <depth>DepthContentPanel</depth>
    <include>OpenClose_Left</include>
    <include content="ContentPanel">
     <param name="width" value="522" />
    </include>
    
    <param name="width" value="100" />
    
    <control type="fixedlist" id="9000">
     <left>0</left>
     <top>240</top>
     <width>100</width>
     
     <control type="image">
        <left>0</left>
        <top>0</top>
        <width>100</width>
        <height>95</height>
        
        
        includeshome.xml
        <orientation>vertical</orientation>
  <height>100%</height>
  change
  <orientation>vertical</orientation>
  <height>700</height>
  set itemgap for your display
  <scrolltime tween="cubic" easing="out">500</scrolltime>
  <itemgap>-100</itemgap>
  Image
Reply
#5
Extra Fan Art
advancedsettings.xml
 <arttype>characterart</arttype>
    <arttype>banner</arttype>
      <arttype>clearart</arttype>
      <arttype>clearlogo</arttype>
      <arttype>landscape</arttype>
      <arttype>keyart</arttype>
Variables.xml
<variable name="BannerVar">
  <value condition="!String.IsEmpty(ListItem.Art(banner))">$INFO[ListItem.Art(banner)]</value>
  <value>$INFO[ListItem.Art(tvshow.banner)]</value>
 </variable>
 <variable name="keyartVar">
  <value condition="!String.IsEmpty(ListItem.Art(keyart))">$INFO[ListItem.Art(keyart)]</value>
  <value>$INFO[ListItem.Art(keyart)]</value>
 </variable>
 <variable name="characterartVar">
  <value condition="!String.IsEmpty(ListItem.Art(characterart))">$INFO[ListItem.Art(characterart)]</value>
  <value>$INFO[ListItem.Art(characterart)]</value>
 </variable>
 <variable name="discartVar">
  <value condition="!String.IsEmpty(ListItem.Art(discart))">$INFO[ListItem.Art(discart)]</value>
  <value>$INFO[ListItem.Art(discart)]</value>
 </variable>
 <variable name="landscapeVar">
  <value condition="!String.IsEmpty(ListItem.Art(landscape))">$INFO[ListItem.Art(landscape)]</value>
  <value>$INFO[ListItem.Art(landscape)]</value>
 </variable>
 <variable name="clearartVar">
  <value condition="!String.IsEmpty(ListItem.Art(clearart))">$INFO[ListItem.Art(clearart)]</value>
  <value>$INFO[ListItem.Art(clearart)]</value>
 </variable>

image code
<control type="image">
       <left>0</left>
       <top>-320</top>
       <width>400</width>
       <height>155</height>
       <texture>$INFO[ListItem.Art(clearlogo)]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
      <control type="label">
       <top>-320</top>
       <left>0</left>
       <width>600</width>
       <height>93</height>
       <label>$VAR[PlaylistLabelVar]</label>
       <font>font60</font>
       <style>bold</style>
       <visible>String.IsEmpty(ListItem.Art(clearlogo))</visible>
      </control>
      <control type="label">
       <top>-250</top>
       <left>200</left>
       <width>600</width>
       <height>93</height>>
       <label>$INFO[ListItem.Title]</label>
       <font>font13</font>
       <style>bold</style>
       <visible>String.IsEmpty(ListItem.Art(clearlogo))</visible>
      </control>
      <control type="image">
       <left>500</left>
       <top>-270</top>
       <width>450</width>
       <height>95</height>
       <texture>$VAR[BannerVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
       <visible>String.IsEmpty(ListItem.Art(BannerArt))</visible>
      </control>
      <control type="image">
       <left>1100</left>
       <top>-320</top>
       <width>500</width>
       <height>281</height>
       <texture>$VAR[keyartVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
      <control type="image">
       <left>0</left>
       <top>0</top>
       <width>400</width>
       <height>281</height>
       <texture>$VAR[discartVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
      <control type="image">
       <left>500</left>
       <top>0</top>
       <width>500</width>
       <height>281</height>
       <texture>$VAR[landscapeVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
      <control type="image">
       <left>1200</left>
       <top>0</top>
       <width>500</width>
       <height>281</height>
       <texture>$VAR[clearartVar]</texture>
       <aspectratio aligny="center">scale</aspectratio>
      </control>
Image
roll 1d8
Reply
#6
this cam be used to have a custom play list folder on any drive
<control type="radiobutton" id="101">
                    <label>$INFO[Skin.String(hwr1)]</label>
                    <include>DefaultSettingButton</include>
                    <selected>!Skin.HasSetting(home-row1)</selected>
                    <onclick>Skin.ToggleSetting(home-row1)</onclick>
                </control>
                <control type="button" id="102">
                    <include>DefaultSettingButton</include>
                    <onclick>Skin.SetString(hwr1)</onclick>
                    <label>home widget 1</label>
                    <label2>$INFO[Skin.String(hwr1)]</label2>
                </control>
                <control type="button" id="1020">
                    <include>DefaultSettingButton</include>
                    <onclick>Skin.SetString(homewidget1)</onclick>
                    <label>$INFO[Skin.String(homewidget1)] link</label>
                    <label2>$INFO[Skin.String(homewidget1)]</label2>
                </control>
                <control type="button" id="1021">
                    <include>DefaultSettingButton</include>
                    <onclick>Skin.SetFile(homewidget1,.xml,special://home)</onclick>
                    
                    <label>homewidge1 file</label>
                    <label2>$INFO[Skin.String(homewidget1)]</label2>
                                </control>
                <control type="button" id="1022">
                    <include>DefaultSettingButton</include>
                    <onclick>Skin.SetPath(homewidget1,special://home)</onclick>
                    
                    <label>homewidget1 path</label>
                    <label2>$INFO[Skin.String(homewidget1)]</label2>
                </control>


widget
<control type="grouplist" id="48001">
                        <include>WidgetGroupListCommon</include>
                        <pagecontrol>48010</pagecontrol>
                        <include content="WidgetListimages" condition="!Skin.HasSetting(home-row1)">
                        <param name="content_path" value="$INFO[Skin.String(homewidget1)]"/>
                            <!-- <param name="content_path" value="library://video/widgets/home/$INFO[Skin.String(hwr1)]"/> -->
                            <param name="widget_header" value="$INFO[Skin.String(hwr1)]"/>
                            <param name="widget_target" value="videos"/>
                            <param name="list_id" value="48101"/>
                            <visible>!Skin.HasSetting(home-row1)</visible>
                        </include>

ImageImage
Reply
#7
estuary Mpaa Ratings HOW TO add Rating images (only works if movie has mpaa rating)
first create images
Image Image Image Image Image
ImageImageImageImageImage

Rated G.png
Rated NR.png
Rated PG.png
Rated PG-13.png
Rated R.png
i am using images from http://www.classification.gov.au/Pages/Home.aspx

in \AppData\Roaming\Kodi\addons\skin.estuary\extras
create new folder mpaa

now edit Includes.xml find
<include content="MediaFlag">
      <param name="texture" value="flags/flag.png" />
     </include>

and after </control>add
<include content="MediaFlag">
     <param name="texture" value="$INFO[$PARAM[infolabel_prefix]ListItem.Mpaa,special://skin/extras/Mpaa/,.png]" />
     <param name="visible" value="!String.IsEmpty($PARAM[infolabel_prefix]ListItem.Mpaa)" />
    </include>
Image
Reply
#8
example of custom widgets
Includes_Home
<include name="WidgetListimagelarge">
        <param name="main_label">$INFO[ListItem.Title]</param>
        <param name="sub_label">$INFO[ListItem.TVShowTitle]</param>
        <param name="thumb_label">$INFO[ListItem.Season,,x]$INFO[ListItem.Episode]</param>
        <param name="sortby"/>
        <param name="visible">True</param>
        <param name="sortorder">ascending</param>
        <param name="widget_limit">250</param>
        <definition>
            <include content="CategoryLabel">
                <param name="label">$PARAM[widget_header]</param>
                <param name="list_id" value="$PARAM[list_id]"/>
            </include>
            <include content="BusyListSpinner">
                <param name="list_id" value="$PARAM[list_id]"/>
                <param name="posy" value="200"/>
            </include>
            <control type="panel" id="$PARAM[list_id]">
                <left>10</left>
                <top>10</top>
                <right>0</right>
                <height>500</height>
                <include content="WidgetListCommon">
                    <param name="list_id" value="$PARAM[list_id]"/>
                </include>
                <visible>$PARAM[visible]</visible>
                <visible>Integer.IsGreater(Container($PARAM[list_id]).NumItems,0) | Container($PARAM[list_id]).IsUpdating</visible>
                <itemlayout width="450" height="450">
                    <control type="group">
                        <left>2</left>
                        <top>15</top>
                        <control type="image">
                            <left>0</left>
                            <top>0</top>
                            <width>450</width>
                            <height>450</height>
                            <texture fallback="DefaultFolder.png">$VAR[InfoWallThumbVar]</texture>
                            <bordertexture border="21" colordiffuse="button_focus">overlays/shadow.png</bordertexture>
                            <bordersize>20</bordersize>
                            <aspectratio aligny="center">keep</aspectratio>
                        </control>
                    </control>
                </itemlayout>
                <focusedlayout width="450" height="450">
                    <control type="group">
                        <depth>DepthContentPopout</depth>
                        <left>2</left>
                        <top>15</top>
                        <animation type="Focus">
                            <effect type="zoom" start="100" end="110" time="200" tween="sine" easing="inout" center="230,130" />
                        </animation>
                        <animation type="Unfocus">
                            <effect type="zoom" start="110" end="100" time="200" tween="sine" easing="inout" center="230,130" />
                        </animation>
                        <control type="image">
                            <left>0</left>
                            <top>0</top>
                            <width>450</width>
                            <height>450</height>
                            <texture fallback="DefaultFolder.png">$VAR[InfoWallThumbVar]</texture>
                            <bordertexture border="21" colordiffuse="button_focus">overlays/shadow.png</bordertexture>
                            <bordersize>20</bordersize>
                            <aspectratio aligny="center">keep</aspectratio>
                        </control>
                    </control>
                </focusedlayout>
                <content sortby="$PARAM[sortby]" sortorder="$PARAM[sortorder]" target="$PARAM[widget_target]" limit="$PARAM[widget_limit]">$PARAM[content_path]</content>
            </control>
        </definition>
    </include>


<include name="WidgetListprime">
        <param name="sortby"/>
        <param name="visible">true</param>
        <param name="sortorder">ascending</param>
        <param name="widget_limit">500</param>
        <definition>
            <include content="CategoryLabel">
                <param name="label">$PARAM[widget_header]</param>
                <param name="list_id" value="$PARAM[list_id]"/>
            </include>
            <include content="BusyListSpinner">
                <param name="list_id" value="$PARAM[list_id]"/>
                <param name="posy" value="100"/>
            </include>
            <control type="panel" id="$PARAM[list_id]">
                <left>100</left>
                <top>15</top>
                <right>0</right>
                <height>360</height>
                <include content="WidgetListCommon">
                    <param name="list_id" value="$PARAM[list_id]"/>
                </include>
                <visible>$PARAM[visible]</visible>
                <visible>Integer.IsGreater(Container($PARAM[list_id]).NumItems,0) | Container($PARAM[list_id]).IsUpdating</visible>
                <itemlayout width="360" height="240">
                    <control type="group">
                        <left>2</left>
                        <top>15</top>
                        <include content="InfoWallprimeLayout">
                            <param name="focused" value="false" />
                        </include>
                    </control>
                </itemlayout>
                <focusedlayout width="360" height="240">
                    <control type="group">
                        <depth>DepthContentPopout</depth>
                        <left>90</left>
                        <top>0</top>
                        <animation >
                            <effect type="zoom" start="100" end="60" time="500" tween="sine" easing="inout" center="0,300" />
                        </animation>
                        <animation effect="rotatex" end="360" center="auto" time="800" loop="false" reversible="false" >Focus</animation>
                        <animation type="Focus">
                            <effect type="zoom" start="40" end="220" time="500" tween="sine" easing="inout" center="0,300" />
                        </animation>
                        <animation effect="rotatey" end="-360" center="auto" time="800" loop="false" reversible="true" >Unfocus</animation>
                        <animation type="Unfocus">
                            <effect type="zoom" start="220" end="60" time="500" tween="sine" easing="inout" center="0,300" />
                            <animation effect="slide" time="2500" delay="300" tween="back" easing="out" start="-300,0" end="0,0">WindowOpen</animation>
                            <animation effect="slide" time="2500" delay="300" tween="back" easing="out" start="-300,0" end="0,0">Visible</animation>
                            <animation effect="slide" time="1500" delay="00" tween="back" easing="in" start="0,0" end="-300,0">WindowClose</animation>
                            <animation effect="slide" time="1500" delay="00" tween="back" easing="in" start="0,0" end="-300,0">Hidden</animation>
                        </animation>
                        <animation effect="slide" end="0,300" time="200">Unfocus</animation>
                        <include content="InfoWallMovieLayout">
                            <param name="focused" value="true" />
                        </include>
                    </control>
                </focusedlayout>
                <content sortby="$PARAM[sortby]" sortorder="$PARAM[sortorder]" target="$PARAM[widget_target]" limit="$PARAM[widget_limit]">$PARAM[content_path]</content>
            </control>
        </definition>
    </include>

Image
Reply
#9
create a programmable widget
this example show a selectable widget setup
you need to know your way around skinning 
SkinSettings.xml
homewr1  home widget row 1 change home to any name


<control type="radiobutton" id="151">
<label>$INFO[Skin.String(homewr1)]</label>
<include>DefaultSettingButton</include>
<selected>!Skin.HasSetting(home-row1)</selected>
<onclick>Skin.ToggleSetting(home-row1)</onclick>
</control>
<control type="button" id="152">
<include>DefaultSettingButton</include>
<onclick>Skin.SetString(homewr1)</onclick>
<label>$INFO[Skin.String(home)]  widget 1</label>
<label2>$INFO[Skin.String(homewr1)]</label2>
</control>
<control type="button" id="153">
<label>   widget type</label>
<label2>$INFO[Skin.String(home_art_widget1)]</label2>
<include>DefaultSettingButton</include>
<onclick condition="String.IsEmpty(home_art_widget1)">Skin.SetString(home_art_widget1,WidgetListPoster)</onclick>
<onclick condition="String.IsEqual(Skin.String(home_art_widget1),WidgetListimages)">Skin.SetString(home_art_widget1,WidgetListPoster)</onclick>
<onclick condition="String.IsEqual(Skin.String(home_art_widget1),WidgetListPoster)">Skin.SetString(home_art_widget1,WidgetListEpisodes)</onclick>
<onclick condition="String.IsEqual(Skin.String(home_art_widget1),WidgetListEpisodes)">Skin.SetString(home_art_widget1,WidgetListimagelarge)</onclick>
<onclick condition="String.IsEqual(Skin.String(home_art_widget1),WidgetListimagelarge)">Skin.SetString(home_art_widget1,WidgetListprime)</onclick>
<onclick condition="String.IsEqual(Skin.String(home_art_widget1),WidgetListprime)">Skin.SetString(home_art_widget1,WidgetListimages)</onclick>
</control>
<control type="button" id="154">
<label>  File Type</label>
<label2>$INFO[Skin.String(homeflietype1)]</label2>
<include>DefaultSettingButton</include>
<onclick condition="String.IsEmpty(flietype1)">Skin.SetString(homeflietype1,path)</onclick>
<onclick condition="String.IsEqual(Skin.String(homeflietype1),flie)">Skin.SetString(homeflietype1,path)</onclick>
<onclick condition="String.IsEqual(Skin.String(homeflietype1),path)">Skin.SetString(homeflietype1,link)</onclick>
<onclick condition="String.IsEqual(Skin.String(homeflietype1),link)">Skin.SetString(homeflietype1,flie)</onclick>
</control>
<control type="button" id="155"><width>1200</width>
<label>  $INFO[Skin.String(homeflietype1)]</label>
<include>DefaultSettingButton</include>
<label2>$INFO[Skin.String(homefilewidget1)]</label2>
<onclick condition="String.IsEqual(Skin.String(homeflietype1),flie)">Skin.SetFile(homefilewidget1,  ,special://home)</onclick>
<onclick condition="String.IsEqual(Skin.String(homeflietype1),path)">Skin.SetPath(homefilewidget1,special://home)</onclick>
<onclick condition="String.IsEqual(Skin.String(homeflietype1),link)">Skin.SetString(homefilewidget1)</onclick>
</control>
<!-- WIDGET SEt PATH and type -->

home.xml


<include content="WidgetListPoster" condition="!Skin.HasSetting(home-row1) + String.IsEqual(Skin.String(home_art_widget1),WidgetListPoster)">
<param name="content_path" value="$INFO[Skin.String(homefilewidget1)]"/>
<param name="widget_header" value="$INFO[Skin.String(homewr1)]"/>
<param name="widget_target" value="videos"/>
<param name="list_id" value="48101"/>
<visible>!Skin.HasSetting(home-row1)</visible>
</include>
<include content="WidgetListEpisodes" condition="!Skin.HasSetting(home-row1) + String.IsEqual(Skin.String(home_art_widget1),WidgetListEpisodes)">
<param name="content_path" value="$INFO[Skin.String(homefilewidget1)]"/>
<param name="widget_header" value="$INFO[Skin.String(homewr1)]"/>
<param name="widget_target" value="videos"/>
<param name="list_id" value="48101"/>
<visible>!Skin.HasSetting(home-row1)</visible>
</include>
<include content="WidgetListimagelarge" condition="!Skin.HasSetting(home-row1) + String.IsEqual(Skin.String(home_art_widget1),WidgetListimagelarge)">
<param name="content_path" value="$INFO[Skin.String(homefilewidget1)]"/>
<param name="widget_header" value="$INFO[Skin.String(homewr1)]"/>
<param name="widget_target" value="videos"/>
<param name="list_id" value="48101"/>
<visible>!Skin.HasSetting(home-row1)</visible>
</include>
<include content="WidgetListprime" condition="!Skin.HasSetting(home-row1) + String.IsEqual(Skin.String(home_art_widget1),WidgetListprime)">
<param name="content_path" value="$INFO[Skin.String(homefilewidget1)]"/>
<param name="widget_header" value="$INFO[Skin.String(homewr1)]"/>
<param name="widget_target" value="videos"/>
<param name="list_id" value="48101"/>
<visible>!Skin.HasSetting(home-row1)</visible>
</include>
<include content="WidgetListimages" condition="!Skin.HasSetting(home-row1) + String.IsEqual(Skin.String(home_art_widget1),WidgetListimages)">
<param name="content_path" value="$INFO[Skin.String(homefilewidget1)]"/>
<param name="widget_header" value="$INFO[Skin.String(homewr1)]"/>
<param name="widget_target" value="videos"/>
<param name="list_id" value="48101"/>
<visible>!Skin.HasSetting(home-row1)</visible>
</include>

ImageImageImageImageImageImage
Reply



Logout Mark Read Team Forum Stats Members Help
Estuary skinning manual (DELETED)0
This forum uses Lukasz Tkacz MyBB addons.