List in List Container
#1
Question 
Hello, I'm new to the Kodi addon und skin development and I have a question:
Is there a way to nest to list into each other? So that I have vertical list that I cab fill with horizontal lists.
I know that lists have only one row and I think that a panel container needs to know beforehand what rows or colums it will hold.

My goal is to extend the kodi IRC Addon so that twitch emotes can be
displayed. The problem I face is that the used list that holds the messages only needs one entry to hold a message.
If I were to include the emote pictures, I would have to split the message in multiple parts which can be either a picture or
a label. These parts would have to go into the same rows. But thats not possible with a simple list, as far as I know.
Reply
#2
Nope, not possible.

Depending on the use case you can use some "hacks" to fake it.

Example:
- Some vertical list containers next to each other
- Hidden button control to control the movement

Hidden control example
Code:
<control type="button" id="20">
               <left>-10</left>
        <top>-10</top>
        <width>1</width>
        <height>1</height>
        <font>-</font>
        <texture>-</texture>
        <texturefocus>-</texturefocus>
        <texturenofocus>-</texturenofocus>
        <alttexturenofocus>-</alttexturenofocus>
        <alttexturefocus>-</alttexturefocus>
        <textureradiofocus>-</textureradiofocus>
        <textureradionofocus>-</textureradionofocus>
            <onleft>noop</onleft>
            <onright>30</onright>
            <onup condition="String.IsEqual(Container(100).CurrentItem,1)">noop</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">Control.Move(100,-1)</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">Control.Move(200,-1)</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">Control.Move(300,-1)</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">Control.Move(400,-1)</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">Control.Move(500,-1)</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">Control.Move(600,-1)</onup>
            <onup condition="!String.IsEqual(Container(100).CurrentItem,1)">SetFocus(21)</onup>
            <ondown condition="String.IsEqual(Container(100).CurrentItem,8)">SetFocus(9001)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">Control.Move(100,1)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">Control.Move(200,1)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">Control.Move(300,1)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">Control.Move(400,1)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">Control.Move(500,1)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">Control.Move(600,1)</ondown>
            <ondown condition="!String.IsEqual(Container(100).CurrentItem,8)">SetFocus(21)</ondown>
            <onclick>SetFocus(200)</onclick>
            <onclick>Select</onclick>
            <onclick>SetFocus(20)</onclick>
        </control>
Main: Lancool II Mesh  - Ryzen 9 5900x - MSI x570 Unify - Zotac RTX 3080 AMP HOLO - 32GB Trident Z Neo 3600 CL16 -  EVO 960 M.2 250GB / EVO 940 250GB / MX100 512GB /  Crucial P1 2TB / WD Blue 3D Nand 2TB 
Sound: Saxx AS30 DSP - Beyer Dynamic Custom One Pro 
TV: Nvidia Shield 2019 Pro- Adalight 114x LEDs - Sony 65XG9505 - Kodi / Emby - Yamaha RX-V683 - Heco Victa 700/101/251a + Dynavoice Magic FX-4
Server: i3 Skylake - 8GB - OMV4 - 22TB Storage
Reply
#3
Thanks for the clarification. I think vertical list container wouldn't solve my problem,
since I don't know how many container I'd need. The container count would be runtime specific.
I don't understand how the hidden button control would work.

Is there maybe a way to display label and picture form the same ListItem in a row?

EDIT: I still haven't found a solution to my problem. Basically what I need is to set the posx tags manually,
so that multiple labels and pictures don't overlap. The other posibillity is to use a grouplist,
so that the alignment for multiple labels and pictures is done for me.
But what I learned was that you can not edit the posx tag via properties and that there is no way to add an
ListItem to a grouplist because there is no controller in python for that.

Maybe someone can give me a hint or tell me that it's not possible so I can stop searching.
Reply

Logout Mark Read Team Forum Stats Members Help
List in List Container0