316 lines
15 KiB
XML
316 lines
15 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<includes>
|
|
<include file="Defaults.xml"/>
|
|
<include file="Includes_grid.xml"/>
|
|
<include file="Includes_variables.xml"/>
|
|
<include file="Includes_animations.xml"/>
|
|
<include file="Includes_hubMenu.xml"/>
|
|
<include file="Includes_hubOptionsItems.xml"/>
|
|
<include file="View_LiveTVChannels.xml"/>
|
|
<include file="View_Seasons.xml"/>
|
|
<include file="View_Episodes.xml"/>
|
|
<include file="View_Movies.xml"/>
|
|
<include file="View_AddonPosters.xml"/>
|
|
<include file="View_TVShows.xml"/>
|
|
<include file="View_MusicGenres.xml"/>
|
|
<include file="View_VideoFiles.xml"/>
|
|
<include file="View_Photos.xml"/>
|
|
<include file="View_Artists.xml"/>
|
|
<include file="View_Albums.xml"/>
|
|
<include file="View_Songs.xml"/>
|
|
<include file="View_MusicFiles.xml"/>
|
|
<include file="View_MusicPlaylist.xml"/>
|
|
<include file="View_ArtistAlbums.xml"/>
|
|
<include file="View_MusicVideos.xml"/>
|
|
<include file="View_Games.xml"/>
|
|
<include file="script-skinshortcuts-includes.xml"/>
|
|
<include file="Includes_mediaShowcase.xml"/>
|
|
|
|
<!--view type conditions-->
|
|
<expression name="isVideoList">!String.Contains(container.folderpath,special://profile/playlists/video) + !String.Contains(container.folderpath,videodb://) + !String.Contains(container.folderpath,plugin://) | container.content(files) | String.IsEmpty(container.content) | container.content(playlists) | container.content(addons) | container.content(videos) | container.content(episodes)</expression>
|
|
<expression name="isMovie">container.content(movies) + [String.Contains(container.folderpath,videodb://) | String.Contains(container.folderpath,special://profile/playlists/video)]</expression>
|
|
<expression name="isAddonMovieOrTVshow">!String.Contains(container.folderpath,videodb://) + String.Contains(container.folderpath,plugin://) + [container.content(movies) | container.content(tvshows)]</expression>
|
|
|
|
<expression name="isTVShow">container.content(tvshows) + [String.Contains(container.folderpath,videodb://) | String.Contains(container.folderpath,special://profile/playlists/video)]</expression>
|
|
<expression name="isSeason">container.content(seasons) + String.Contains(container.folderpath,videodb://)</expression>
|
|
<expression name="isEpisode">container.content(episodes) + !String.Contains(Container.folderpath,plugin)</expression>
|
|
<expression name="isMusicVideo">container.content(musicvideos) + !String.Contains(Container.folderpath,plugin)</expression>
|
|
|
|
<expression name="isMusicList">!String.Contains(container.folderpath,musicdb://) | String.Contains(container.foldername,Files) | container.content(files) | container.content(addons) | [container.content(playlists) + !String.Contains(Container.folderpath,special://profile/playlists)] | String.Contains(Container.folderpath,plugin://)</expression>
|
|
<expression name="isMusicArtist">container.content(artists) + [String.Contains(container.folderpath,musicdb://) | String.Contains(Container.folderpath,special://profile/playlists)]</expression>
|
|
<expression name="isMusicArtistCatalogue">container.content(albums) + String.Contains(container.folderpath,albumartistsonly)</expression>
|
|
<expression name="isMusicAlbum">container.content(albums) + [String.Contains(container.folderpath,musicdb://) | String.Contains(Container.folderpath,special://profile/playlists)]</expression>
|
|
<expression name="isMusicGenre">container.content(genres) + String.Contains(container.folderpath,musicdb://)</expression>
|
|
<expression name="isMusicSong">container.content(songs) + String.Contains(Container.folderpath,musicdb://)</expression>
|
|
<expression name="isMusicPlaylist">container.content(songs) + [String.Contains(Container.folderpath,.xsp) | String.Contains(Container.foldername,PartyMode) | String.Contains(Container.folderpath,playlistmusic://)]</expression>
|
|
|
|
<!--weather-->
|
|
<expression name="hasWeather">!String.IsEmpty(Window(Weather).Property(WeatherProvider)) + !String.String.IsEmpty(weather.temperature) + !String.String.IsEmpty(weather.conditions)</expression>
|
|
|
|
<!--item fanart-->
|
|
<include name="itemFanart">
|
|
<control type="wraplist" id="99999">
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<width>1000</width>
|
|
<height>1000</height>
|
|
<enable>false</enable>
|
|
<preloaditems>2</preloaditems>
|
|
<scrolltime>15000</scrolltime>
|
|
<autoscroll>true</autoscroll>
|
|
<itemlayout />
|
|
<focusedlayout />
|
|
<content>$VAR[extraFanartLocation]</content>
|
|
</control>
|
|
<control type="image">
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>colors/white.png</texture>
|
|
<colordiffuse>background</colordiffuse>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
<control type="image">
|
|
<visible>Integer.IsGreater(container(99999).numitems,0) + !Skin.HasSetting(disableExtendedFanart)</visible>
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>$INFO[container(99999).listitem.filenameandpath,,]</texture>
|
|
<colordiffuse>66ffffff</colordiffuse>
|
|
<fadetime>500</fadetime>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
<control type="image">
|
|
<visible>!Integer.IsGreater(container(99999).numitems,0) | Skin.HasSetting(disableExtendedFanart) | ListItem.IsParentFolder</visible>
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>$INFO[container.Art(fanart)]</texture>
|
|
<colordiffuse>66ffffff</colordiffuse>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
</include>
|
|
|
|
<!--keyboard autocomplete-->
|
|
<include name="AutoComplete">
|
|
<control type="group">
|
|
<visible>!String.String.IsEmpty(Control.GetLabel(312).index(1)) + !Control.IsVisible(313)</visible>
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<control type="group">
|
|
<animation effect="fade" time="300" tween="cubic" start="0" end="100" reversible="false" condition="!String.String.IsEmpty(Container(5000).ListItem.Label)">Conditional</animation>
|
|
<animation effect="fade" time="150" tween="cubic" start="100" end="0" reversible="false" condition="String.String.IsEmpty(Container(5000).ListItem.Label)">Conditional</animation>
|
|
</control>
|
|
<control type="panel" id="5000">
|
|
<posx>col-5-begin</posx>
|
|
<posy>-36</posy>
|
|
<width>16-col</width>
|
|
<height>2-row</height>
|
|
<onleft>5000</onleft>
|
|
<onright>5000</onright>
|
|
<ondown>312</ondown>
|
|
<onback>noop</onback>
|
|
<orientation>horizontal</orientation>
|
|
<itemlayout height="2-row" width="4-col">
|
|
<control type="label">
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<width>4-col-gutter</width>
|
|
<height>2-row</height>
|
|
<align>center</align>
|
|
<textcolor>textDisabled</textcolor>
|
|
<font>itemTitle</font>
|
|
<label>$INFO[ListItem.Label]</label>
|
|
</control>
|
|
</itemlayout>
|
|
<focusedlayout height="2-row" width="4-col">
|
|
<control type="label">
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<width>4-col-gutter</width>
|
|
<height>2-row</height>
|
|
<align>center</align>
|
|
<textcolor>textActive</textcolor>
|
|
<font>itemTitle</font>
|
|
<label>$INFO[ListItem.Label]</label>
|
|
</control>
|
|
</focusedlayout>
|
|
<content>plugin://plugin.program.autocompletion?info=autocomplete&&id=$INFO[Control.GetLabel(312).index(1)]&&limit=8</content>
|
|
</control>
|
|
</control>
|
|
</include>
|
|
<!--modal dialogs-->
|
|
<include name="modalDialog">
|
|
<control type="image">
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>colors/black.png</texture>
|
|
<colordiffuse>e9FFFFFF</colordiffuse>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
<control type="image">
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>vignette.png</texture>
|
|
<colordiffuse>ffffffff</colordiffuse>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
</include>
|
|
<!--Global background-->
|
|
<include name="globalBackground">
|
|
<control type="image">
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>colors/black.png</texture>
|
|
<colordiffuse>ffFFFFFF</colordiffuse>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
<control type="image">
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>colors/white.png</texture>
|
|
<colordiffuse>background</colordiffuse>
|
|
<aspectratio>stretch</aspectratio>
|
|
</control>
|
|
</include>
|
|
<!--page header-->
|
|
<include name="pageHeader">
|
|
<control type="group">
|
|
<posx>col-1-begin</posx>
|
|
<posy>row-1-begin</posy>
|
|
<!--title-->
|
|
<control type="label">
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<width>18-col</width>
|
|
<font>sectionTitle</font>
|
|
<label>$VAR[listTitle]</label>
|
|
<textcolor>textActive</textcolor>
|
|
</control>
|
|
<!--subtitle-->
|
|
<control type="label">
|
|
<posx>0</posx>
|
|
<posy>28</posy>
|
|
<width>12-col</width>
|
|
<height>2-row</height>
|
|
<font>itemTitle</font>
|
|
<label>$VAR[listSubTitle]</label>
|
|
<textcolor>textActive</textcolor>
|
|
</control>
|
|
<!--time-->
|
|
<control type="label">
|
|
<posx>24-col</posx>
|
|
<posy>0</posy>
|
|
<width>12-col</width>
|
|
<align>right</align>
|
|
<font>sectionTitle</font>
|
|
<label>$INFO[System.Time]</label>
|
|
<textcolor>textActive</textcolor>
|
|
</control>
|
|
<!--date-->
|
|
<control type="label">
|
|
<posx>24-col</posx>
|
|
<posy>28</posy>
|
|
<width>12-col</width>
|
|
<height>2-row</height>
|
|
<align>right</align>
|
|
<font>itemTitle</font>
|
|
<label>$INFO[System.Date(DDD)], $INFO[system.Date(mmm d)]</label>
|
|
<textcolor>textActive</textcolor>
|
|
</control>
|
|
</control>
|
|
</include>
|
|
<!--busy indicator-->
|
|
<include name="loadingIndicator">
|
|
<control type="group">
|
|
<animation type="Visible" reversible="false">
|
|
<effect type="zoom" start="80" end="100" center="960,540" tween="back" time="240" />
|
|
<effect type="fade" end="100" time="240" />
|
|
</animation>
|
|
<animation type="Hidden" reversible="false">
|
|
<effect type="zoom" start="100" end="80" center="960,540" easing="in" tween="back" time="240" />
|
|
<effect type="fade" start="100" end="0" time="240" />
|
|
</animation>
|
|
<visible>!Window.IsActive(startup) + !String.IsEmpty(container.foldername) + !Integer.IsGreater(container.numitems,0) + !ListItem.IsParentFolder | window.isactive(busydialog)</visible>
|
|
<control type="image">
|
|
<texture>colors/black.png</texture>
|
|
<include>dimensionsFullscreen</include>
|
|
<animation effect="fade" start="100" end="70" time="0" condition="true">Conditional</animation>
|
|
<animation effect="fade" start="100" end="0" time="240" condition="Window.IsVisible(fullscreenvideo)">Conditional</animation>
|
|
<animation effect="fade" end="100" time="560">WindowOpen</animation>
|
|
<animation effect="fade" start="100" end="0" time="240">WindowClose</animation>
|
|
</control>
|
|
<control type="image">
|
|
<depth>DepthMax</depth>
|
|
<left>920</left>
|
|
<top>513</top>
|
|
<width>80</width>
|
|
<height>80</height>
|
|
<aspectratio>keep</aspectratio>
|
|
<animation effect="rotate" end="-45" center="auto" time="200" delay="600" loop="true" reversible="false" condition="true">Conditional</animation>
|
|
<texture colordiffuse="44ffffff">spinner.png</texture>
|
|
<animation effect="fade" end="100" time="300" delay="200">WindowOpen</animation>
|
|
</control>
|
|
<control type="image">
|
|
<depth>DepthMax</depth>
|
|
<left>935</left>
|
|
<top>528</top>
|
|
<width>50</width>
|
|
<height>50</height>
|
|
<aspectratio>keep</aspectratio>
|
|
<animation effect="rotate" end="45" center="auto" time="200" delay="600" loop="true" reversible="false" condition="true">Conditional</animation>
|
|
<texture flipx="true" colordiffuse="11ffffff">spinner.png</texture>
|
|
<animation effect="fade" end="100" time="300" delay="200">WindowOpen</animation>
|
|
</control>
|
|
</control>
|
|
</include>
|
|
<!--conditional positioning for progress dialogs (avoid overlaps)-->
|
|
<include name="progressPosition1"><posy>row-2-begin</posy></include>
|
|
<include name="progressPosition2"><posy>row-6-begin</posy></include>
|
|
<!--mini player window-->
|
|
<include name="miniVideoPlayer">
|
|
<control type="group">
|
|
<visible>!Skin.hassetting(stopVideoOnMenu) + Player.HasVideo + !VideoPlayer.IsFullscreen + !SlideShow.IsActive</visible>
|
|
<posx>col-20-begin</posx>
|
|
<posy>12</posy>
|
|
<control type="image">
|
|
<posx>0</posx>
|
|
<posy>0</posy>
|
|
<width>444</width>
|
|
<height>255</height>
|
|
<aspectratio>stretch</aspectratio>
|
|
<texture>colors/black.png</texture>
|
|
<bordertexture border="6" colordiffuse="overlay">colors/black.png</bordertexture>
|
|
<bordersize>6</bordersize>
|
|
</control>
|
|
<control type="videowindow">
|
|
<posx>6</posx>
|
|
<posy>6</posy>
|
|
<width>6-col</width>
|
|
<height>243</height>
|
|
</control>
|
|
</control>
|
|
</include>
|
|
<!--debugging-->
|
|
<include name="DialogID">
|
|
<posx>15</posx>
|
|
<posy>15</posy>
|
|
<width>fullscreenwidth</width>
|
|
<height>1-row</height>
|
|
<font>smallStrong</font>
|
|
<textcolor>textActive</textcolor>
|
|
<align>left</align>
|
|
<visible>Skin.HasSetting(DebugInfo)</visible>
|
|
</include>
|
|
<include name="WindowID">
|
|
<posx>15</posx>
|
|
<posy>15</posy>
|
|
<width>fullscreenwidth</width>
|
|
<height>1-row</height>
|
|
<font>smallStrong</font>
|
|
<textcolor>textActive</textcolor>
|
|
<align>left</align>
|
|
<visible>Skin.HasSetting(DebugInfo)</visible>
|
|
</include>
|
|
<include name="DebugGrid">
|
|
<control type="image">
|
|
<include>dimensionsFullscreen</include>
|
|
<texture>debuggrid1080.png</texture>
|
|
<colordiffuse>77FFFFFF</colordiffuse>
|
|
<visible>Skin.HasSetting(DebugGrid)</visible>
|
|
</control>
|
|
</include>
|
|
</includes>
|