09.7.2017, 10:20
Menu v menu
Používám úpravu Čtvrtý rozměr hlavního menu, popsaná je zde. Je návyková, hodně zjednodušuje ovládání Kodi, má jen jeden drobný nedostatek. Při přepínání položek v menu (levá šipka), není vidět, které menu bude následovat. Cílem popisované úpravy je tedy dostat do položky v menu informaci o dalších dostupném obsahu. Zadání bylo celkem jednoduché:
V hlavním menu je vybrána jednoduchá položka, tzn. položka, která neobsahuje další varianty:
[attachment=2630]
vybrána položka s více variantami, v jejím popisu se objeví předcházející a následující položka
[attachment=2631]
přepnutí na další variantu (šipkou doleva), seznam se posune nahoru (zatím bez animace)...
[attachment=2632]
Edituje se home.xml, část definice hlavního menu, hledejte ho v části následující za tagem <control type="fixedlist" id="9000">
Vlastní přidání zobrazení předcházející a následující varianty položky je v části následující za <focusedlayout height="95">. Doplňuje se pouze tato část, protože chceme, aby se zobrazení předcházející a následující varianty položky objevilo pouze u vybrané (focused) položky.
Najdete kód zobrazení názvu položky:
a za něj umístíte následující kód:
Pro zobrazení textu předcházející a následující varianty položky se používá ListItem.Label2, který je tedy třeba v jednotlivých definičních položkách menu (items) hlavního menu, naplnit. Níže je příklad tří položek, pro tři varianty obsahu položky zobrazení video doplňků (odpovídá to výše uvedených screenshotům):
Závěr:
Používám úpravu Čtvrtý rozměr hlavního menu, popsaná je zde. Je návyková, hodně zjednodušuje ovládání Kodi, má jen jeden drobný nedostatek. Při přepínání položek v menu (levá šipka), není vidět, které menu bude následovat. Cílem popisované úpravy je tedy dostat do položky v menu informaci o dalších dostupném obsahu. Zadání bylo celkem jednoduché:
- přehled o dalších dostupných položkách se objeví pouze u aktuálně vybrané položky - tato podmínka je celkem logická, pokud by se varianty dalších položek zobrazovaly trvale u všech položek, bylo by hlavní menu značně nepřehledné
- přehled by měl umožňovat alespoň základní orientaci - aktuální položka, předchozí položka, následující položka
V hlavním menu je vybrána jednoduchá položka, tzn. položka, která neobsahuje další varianty:
[attachment=2630]
vybrána položka s více variantami, v jejím popisu se objeví předcházející a následující položka
[attachment=2631]
přepnutí na další variantu (šipkou doleva), seznam se posune nahoru (zatím bez animace)...
[attachment=2632]
Edituje se home.xml, část definice hlavního menu, hledejte ho v části následující za tagem <control type="fixedlist" id="9000">
Vlastní přidání zobrazení předcházející a následující varianty položky je v části následující za <focusedlayout height="95">. Doplňuje se pouze tato část, protože chceme, aby se zobrazení předcházející a následující varianty položky objevilo pouze u vybrané (focused) položky.
Najdete kód zobrazení názvu položky:
Kód:
<control type="label">
<left>104</left>
<top>0</top>
<height>95</height>
<width>560</width>
<aligny>center</aligny>
<font>font37</font>
<label>[B]$INFO[ListItem.Label][/B]</label>
<shadowcolor>text_shadow</shadowcolor>
</control>
a za něj umístíte následující kód:
Kód:
<control type="label">
<left>107</left>
<top>0</top>
<height>95</height>
<width>560</width>
<aligny>center</aligny>
<font>font10</font>
<label>$INFO[ListItem.Label2]</label>
<shadowcolor>text_shadow</shadowcolor>
</control>
Pro zobrazení textu předcházející a následující varianty položky se používá ListItem.Label2, který je tedy třeba v jednotlivých definičních položkách menu (items) hlavního menu, naplnit. Níže je příklad tří položek, pro tři varianty obsahu položky zobrazení video doplňků (odpovídá to výše uvedených screenshotům):
Kód:
<item>
<label>Online</label>
<label2>Online Aktuálně[CR][CR]Online Favorites</label2>
<property name="menu_id">$NUMBER[51000]</property>
<onclick>ActivateWindow(videos,addons://sources/video/,return)</onclick>
<thumb>icons/sidemenu/videos.png</thumb>
<property name="id">online</property>
<property name="filter">online</property>
<visible>!Skin.HasSetting(HomeMenuNoOnlineButton) + String.IsEqual(Skin.String(OnlineFilter),online)</visible>
</item>
<item>
<label>Online Favorites</label>
<label2>Online[CR][CR]Online Atuálně</label2>
<property name="menu_id">$NUMBER[56000]</property>
<onclick>ActivateWindow(videos,addons://sources/video/,return)</onclick>
<thumb>icons/sidemenu/videos.png</thumb>
<property name="id">onlinefavorites</property>
<property name="filter">online</property>
<visible>!Skin.HasSetting(HomeMenuNoOnlineButton) + String.IsEqual(Skin.String(OnlineFilter),onlinefavorites)</visible>
</item>
<item>
<label>Online Aktuálně</label>
<label2>Online Favorites[CR][CR]Online</label2>
<property name="menu_id">$NUMBER[57000]</property>
<onclick>ActivateWindow(videos,addons://sources/video/,return)</onclick>
<thumb>icons/sidemenu/videos.png</thumb>
<property name="id">onlineaktualne</property>
<property name="filter">online</property>
<visible>!Skin.HasSetting(HomeMenuNoOnlineButton) + String.IsEqual(Skin.String(OnlineFilter),onlineaktualne)</visible>
</item>
Závěr:
- je pravda, že uvedené řešení není 100% logické - seznam se posunuje nahoru, ale ovládá se šipkou doleva. To je ale daň za omezené možnosti interakce v rámci hlavního menu - šipka doleva je jediný volný ovládací prvek, který bylo možný použít
- zkoušel jsem různé varianty organizace seznamu, včetně horizontální verze, které by byla přirozenější, ale při něm je problém s místem. Použité řešení se nakonec ukázalo jako celkem přijatelné
- ještě si plánuji pohrát si s animaci, ale to už je jen drobnost...