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
xml:

<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
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>


xml:
    
 <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

xml:
<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">
xml:
<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
xml:
<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
xml:
<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
xml:
<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
     
xml:
 <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
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>



xml:
<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   
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="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
   
xml:

  <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
  
     
xml:

  <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>
    
    
xml:
<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
xml:
 <arttype>characterart</arttype>
    <arttype>banner</arttype>
      <arttype>clearart</arttype>
      <arttype>clearlogo</arttype>
      <arttype>landscape</arttype>
      <arttype>keyart</arttype>
Variables.xml
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
xml:
<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
xml:
<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
xml:
<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
xml:
<include content="MediaFlag">
      <param name="texture" value="flags/flag.png" />
     </include>

and after </control>add
xml:
<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
xml:
<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>

xml:

<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

xml:

<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

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