2014-09-28 20:47:53 +02:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<includes>
|
2015-03-27 21:31:13 +01:00
|
|
|
<include file="Defaults.xml"/>
|
|
|
|
<include file="Includes_grid.xml"/>
|
|
|
|
<include file="Includes_variables.xml"/>
|
|
|
|
<include file="Includes_animations.xml"/>
|
|
|
|
<include file="Includes_hubMenu.xml"/>
|
2015-12-01 21:38:46 +01:00
|
|
|
<include file="Includes_hubOptionsItems.xml"/>
|
2024-07-29 21:41:42 +02:00
|
|
|
<include file="View_FileList.xml"/>
|
2015-03-27 21:31:13 +01:00
|
|
|
<include file="View_LiveTVChannels.xml"/>
|
|
|
|
<include file="View_Seasons.xml"/>
|
|
|
|
<include file="View_Episodes.xml"/>
|
|
|
|
<include file="View_Movies.xml"/>
|
|
|
|
<include file="View_TVShows.xml"/>
|
2015-11-03 21:21:27 +01:00
|
|
|
<include file="View_MusicGenres.xml"/>
|
|
|
|
<include file="View_VideoFiles.xml"/>
|
2015-03-30 21:32:00 +02:00
|
|
|
<include file="View_Photos.xml"/>
|
2015-04-06 21:57:56 +02:00
|
|
|
<include file="View_Artists.xml"/>
|
|
|
|
<include file="View_Albums.xml"/>
|
|
|
|
<include file="View_Songs.xml"/>
|
|
|
|
<include file="View_MusicFiles.xml"/>
|
2015-05-26 20:58:11 +02:00
|
|
|
<include file="View_MusicPlaylist.xml"/>
|
2015-11-04 21:43:54 +01:00
|
|
|
<include file="View_ArtistAlbums.xml"/>
|
2018-03-06 22:04:34 +01:00
|
|
|
<include file="View_Games.xml"/>
|
2024-07-29 21:41:42 +02:00
|
|
|
<include file="View_GamePlatforms.xml"/>
|
2021-09-29 18:08:59 +02:00
|
|
|
<include file="Includes_menus.xml"/>
|
2017-03-19 21:23:30 +01:00
|
|
|
<include file="Includes_mediaShowcase.xml"/>
|
2024-07-29 21:41:42 +02:00
|
|
|
<include file="Includes_gameShowcase.xml"/>
|
2015-03-30 21:32:00 +02:00
|
|
|
|
2017-03-19 21:23:30 +01:00
|
|
|
<!--view type conditions-->
|
2019-02-18 23:25:22 +01:00
|
|
|
<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(addons) | container.content(videos) | container.content(episodes)</expression>
|
2017-12-21 15:16:56 +01:00
|
|
|
<expression name="isMovie">container.content(movies) + [String.Contains(container.folderpath,videodb://) | String.Contains(container.folderpath,special://profile/playlists/video)]</expression>
|
2017-04-04 23:49:49 +02:00
|
|
|
|
2017-12-21 15:16:56 +01:00
|
|
|
<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>
|
2017-03-09 00:54:23 +01:00
|
|
|
|
2018-09-14 19:18:57 +02:00
|
|
|
<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://) | String.Contains(Container.folderpath,spotify)]</expression>
|
|
|
|
<expression name="isMusicPlaylist">container.content(songs) + [String.Contains(Container.folderpath,.xsp) | String.Contains(Container.foldername,PartyMode) | String.Contains(Container.folderpath,playlistmusic://)]</expression>
|
2017-03-25 14:14:51 +01:00
|
|
|
|
2018-10-09 00:42:17 +02:00
|
|
|
<!--photos-->
|
|
|
|
<expression name="isPhotoAlbum">container.content(images)</expression>
|
|
|
|
|
2018-10-16 20:14:30 +02:00
|
|
|
<!--games-->
|
2024-07-29 21:41:42 +02:00
|
|
|
<expression name="isGamePlatform">String.Contains(Container.FolderPath,plugin://plugin.program.akl/sources)</expression>
|
|
|
|
<expression name="isGame">String.Contains(Container.FolderPath,plugin://plugin.program.akl/source/) | String.Contains(Container.FolderPath,plugin://plugin.program.akl/collection/virtual/vcategory)</expression>
|
|
|
|
|
2018-10-09 00:42:17 +02:00
|
|
|
|
2017-12-02 21:30:51 +01:00
|
|
|
<!--weather-->
|
2017-12-21 15:16:56 +01:00
|
|
|
<expression name="hasWeather">!String.IsEmpty(Window(Weather).Property(WeatherProvider)) + !String.String.IsEmpty(weather.temperature) + !String.String.IsEmpty(weather.conditions)</expression>
|
2017-12-02 21:30:51 +01:00
|
|
|
|
2024-07-29 21:41:42 +02:00
|
|
|
<!--generic file list-->
|
|
|
|
<expression name="isFileList">container.content(files)</expression>
|
|
|
|
|
|
|
|
<!--item fanart-->
|
2017-03-19 21:23:30 +01:00
|
|
|
<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>
|
2018-08-30 20:34:50 +02:00
|
|
|
</control>
|
|
|
|
<control type="image">
|
|
|
|
<include>dimensionsFullscreen</include>
|
|
|
|
<texture>colors/white.png</texture>
|
|
|
|
<colordiffuse>background</colordiffuse>
|
|
|
|
<aspectratio>stretch</aspectratio>
|
2017-03-19 21:23:30 +01:00
|
|
|
</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>
|
2017-09-24 20:19:10 +02:00
|
|
|
<colordiffuse>66ffffff</colordiffuse>
|
2017-03-19 21:23:30 +01:00
|
|
|
<fadetime>500</fadetime>
|
|
|
|
<aspectratio>stretch</aspectratio>
|
2018-10-21 21:30:39 +02:00
|
|
|
<include>kenBurnsey</include>
|
2017-03-19 21:23:30 +01:00
|
|
|
</control>
|
|
|
|
<control type="image">
|
2017-09-21 21:32:06 +02:00
|
|
|
<visible>!Integer.IsGreater(container(99999).numitems,0) | Skin.HasSetting(disableExtendedFanart) | ListItem.IsParentFolder</visible>
|
2017-03-19 21:23:30 +01:00
|
|
|
<posx>0</posx>
|
|
|
|
<posy>0</posy>
|
|
|
|
<include>dimensionsFullscreen</include>
|
2017-09-21 21:32:06 +02:00
|
|
|
<texture>$INFO[container.Art(fanart)]</texture>
|
2017-09-24 20:19:10 +02:00
|
|
|
<colordiffuse>66ffffff</colordiffuse>
|
2017-03-19 21:23:30 +01:00
|
|
|
<aspectratio>stretch</aspectratio>
|
2018-10-21 21:30:39 +02:00
|
|
|
<include>kenBurnsey</include>
|
2017-03-19 21:23:30 +01:00
|
|
|
</control>
|
|
|
|
</include>
|
|
|
|
|
|
|
|
<!--keyboard autocomplete-->
|
|
|
|
<include name="AutoComplete">
|
|
|
|
<control type="group">
|
2017-12-21 15:16:56 +01:00
|
|
|
<visible>!String.String.IsEmpty(Control.GetLabel(312).index(1)) + !Control.IsVisible(313)</visible>
|
2017-03-19 21:23:30 +01:00
|
|
|
<posx>0</posx>
|
|
|
|
<posy>0</posy>
|
|
|
|
<control type="group">
|
2017-12-21 15:16:56 +01:00
|
|
|
<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>
|
2017-03-19 21:23:30 +01:00
|
|
|
</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>
|
2015-03-27 21:31:13 +01:00
|
|
|
<!--modal dialogs-->
|
2014-09-28 20:47:53 +02:00
|
|
|
<include name="modalDialog">
|
|
|
|
<control type="image">
|
|
|
|
<include>dimensionsFullscreen</include>
|
|
|
|
<texture>colors/black.png</texture>
|
2015-05-10 21:59:54 +02:00
|
|
|
<colordiffuse>e9FFFFFF</colordiffuse>
|
2014-09-28 20:47:53 +02:00
|
|
|
<aspectratio>stretch</aspectratio>
|
|
|
|
</control>
|
|
|
|
<control type="image">
|
|
|
|
<include>dimensionsFullscreen</include>
|
2015-04-01 21:11:01 +02:00
|
|
|
<texture>vignette.png</texture>
|
2014-09-28 20:47:53 +02:00
|
|
|
<colordiffuse>ffffffff</colordiffuse>
|
|
|
|
<aspectratio>stretch</aspectratio>
|
|
|
|
</control>
|
|
|
|
</include>
|
2015-03-27 21:31:13 +01:00
|
|
|
<!--Global background-->
|
|
|
|
<include name="globalBackground">
|
2018-03-29 17:45:19 +02:00
|
|
|
<control type="image">
|
2018-08-30 20:34:50 +02:00
|
|
|
<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>
|
2015-03-27 21:31:13 +01:00
|
|
|
</include>
|
2017-09-21 21:32:06 +02:00
|
|
|
<!--page header-->
|
2017-09-19 22:24:15 +02:00
|
|
|
<include name="pageHeader">
|
|
|
|
<control type="group">
|
|
|
|
<posx>col-1-begin</posx>
|
2015-03-27 21:31:13 +01:00
|
|
|
<posy>row-1-begin</posy>
|
2017-09-19 22:24:15 +02:00
|
|
|
<!--title-->
|
|
|
|
<control type="label">
|
|
|
|
<posx>0</posx>
|
|
|
|
<posy>0</posy>
|
2017-09-24 13:30:00 +02:00
|
|
|
<width>18-col</width>
|
2018-08-30 20:34:50 +02:00
|
|
|
<font>sectionTitle</font>
|
2017-09-19 22:24:15 +02:00
|
|
|
<label>$VAR[listTitle]</label>
|
|
|
|
<textcolor>textActive</textcolor>
|
|
|
|
</control>
|
|
|
|
<!--subtitle-->
|
|
|
|
<control type="label">
|
|
|
|
<posx>0</posx>
|
2019-02-03 22:09:09 +01:00
|
|
|
<posy>26</posy>
|
2017-09-19 22:24:15 +02:00
|
|
|
<width>12-col</width>
|
|
|
|
<height>2-row</height>
|
2018-10-11 21:34:44 +02:00
|
|
|
<font>menuTitle2</font>
|
2017-09-19 22:24:15 +02:00
|
|
|
<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>
|
2018-08-30 20:34:50 +02:00
|
|
|
<font>sectionTitle</font>
|
2018-10-10 23:49:39 +02:00
|
|
|
<label>[B]$INFO[System.Time][/B]</label>
|
2017-09-19 22:24:15 +02:00
|
|
|
<textcolor>textActive</textcolor>
|
|
|
|
</control>
|
|
|
|
<!--date-->
|
|
|
|
<control type="label">
|
|
|
|
<posx>24-col</posx>
|
2019-02-03 22:09:09 +01:00
|
|
|
<posy>26</posy>
|
2017-09-19 22:24:15 +02:00
|
|
|
<width>12-col</width>
|
|
|
|
<height>2-row</height>
|
|
|
|
<align>right</align>
|
2018-10-11 21:34:44 +02:00
|
|
|
<font>menuTitle2</font>
|
2017-09-19 22:24:15 +02:00
|
|
|
<label>$INFO[System.Date(DDD)], $INFO[system.Date(mmm d)]</label>
|
|
|
|
<textcolor>textActive</textcolor>
|
|
|
|
</control>
|
|
|
|
</control>
|
|
|
|
</include>
|
2015-03-27 21:31:13 +01:00
|
|
|
<!--busy indicator-->
|
|
|
|
<include name="loadingIndicator">
|
2016-11-08 11:36:35 +01:00
|
|
|
<control type="group">
|
2017-12-21 15:16:56 +01:00
|
|
|
<visible>!Window.IsActive(startup) + !String.IsEmpty(container.foldername) + !Integer.IsGreater(container.numitems,0) + !ListItem.IsParentFolder | window.isactive(busydialog)</visible>
|
2016-11-08 11:36:35 +01:00
|
|
|
<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>
|
2024-05-06 14:53:16 +02:00
|
|
|
</control>
|
2016-11-08 11:36:35 +01:00
|
|
|
<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>
|
2015-03-27 21:31:13 +01:00
|
|
|
</include>
|
|
|
|
<!--conditional positioning for progress dialogs (avoid overlaps)-->
|
|
|
|
<include name="progressPosition1"><posy>row-2-begin</posy></include>
|
2015-03-30 21:32:00 +02:00
|
|
|
<include name="progressPosition2"><posy>row-6-begin</posy></include>
|
2020-04-03 21:08:25 +02:00
|
|
|
|
2015-03-27 21:31:13 +01:00
|
|
|
<!--debugging-->
|
2014-09-28 20:47:53 +02:00
|
|
|
<include name="DialogID">
|
|
|
|
<posx>15</posx>
|
|
|
|
<posy>15</posy>
|
|
|
|
<width>fullscreenwidth</width>
|
|
|
|
<height>1-row</height>
|
|
|
|
<font>smallStrong</font>
|
2015-03-27 21:31:13 +01:00
|
|
|
<textcolor>textActive</textcolor>
|
2014-09-28 20:47:53 +02:00
|
|
|
<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>
|
2015-03-27 21:31:13 +01:00
|
|
|
<textcolor>textActive</textcolor>
|
2014-09-28 20:47:53 +02:00
|
|
|
<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>
|
2015-03-27 21:31:13 +01:00
|
|
|
</includes>
|