2022-03-21, 20:37
It has been a while since I touched kodi development, unfortunately Leia starts to show its age and I guess I have to move on. One of my personal showstopper so far has been (among others) the lack of a skin that satisfies me. Up to Leia, I used a certain config within the Titan Skin and I even tried to tamper with it, but after all the time I came to the conclusion I should let rest it in peace and start over. Now, skinning basically from scratch is another beast than just trying to fix existing problems, also I almost forgot everything I've learned in the past . So naturally, I have lot's of questions, which mostly solved so far by looking at other peoples work and have the skinning manual open all the time, as suggested.
For some of the most basic questions I didn't find however a "correct" answer, so here we go and apology if they have been answered already and I just didn't search hard enough.
Positioning (of controls)
First and foremost, am I understanding correctly, that basically every control has to be positioned in absolute order, to the main grid?
I cannot place them relative to other controls? Like let's say I am doing a 3 row horizontal layout. A 100px high header, footer 100px and a content area 880px
All those controls would then also have additional child elements, and so on.
What I'd like to to is just to define a first element header with 100px, add another element relative to the first one with 880px (which would be placed beneath the header) and finally the footer which ideally just takes the rest, but from what I've tried so far, this seems to be impossible? If so, could someone please explain the idea of group control, because I guess I didn't fully understand what it does.
A follow up question, what's the deal with <posx>,<posy>,<width>,<height> vs <left>,<top>,<right>,<bottom>?
I stumbled over those variations when studying other skins, and when looking into this issue the only useful thing I found was a posting from 2014, which basically states, that <left>,<top>,<right>,<bottom> is the way to go, whereas <posx>,<posy>,<width>,<height> is considered deprecated. However, when looking into the wiki pages, I usually find <left>,<top>,<width>,<height>? So what is the "correct" way to do this?
There is probably a lot more stuff, but this seems to be the most basic things where I can already make wrong decisions, so I'd like to adress them before I go on. (Frankly, I am not sure if i will be able to make all this into that shiny new skin I imagine .)
Best practices
This is a more general question, where I hope to get some useful feedback.
Right now, I am using VisualStudio Code. Unfortunately there seems to be not a single dev tool for kodi skinning, which is not a big deal, but leads to some organizing problems. One major pain in the arse, when looking into existing skins, is to understand and find all those defined includes and variables. How do you guys organize and keep track of your includes and stuff?
Somewhat related, assuming that almost every skin started as a modification of a existing one, how to keep track that every necessary xml file has been modified to be consistent to your design? And how do you test single Items like e.g. requester or stuff you usually don't use, like in my case login screens and such?
In a rather naive attempt, i went with an empty xml folder, whith just a simple home.xml, containing 3 image controls to get an idea how to go on from there. This did however escalate quickly, as I didn't have any requester, a settings window and so on.
So how would you do a skin from scratch?
For some of the most basic questions I didn't find however a "correct" answer, so here we go and apology if they have been answered already and I just didn't search hard enough.
Positioning (of controls)
First and foremost, am I understanding correctly, that basically every control has to be positioned in absolute order, to the main grid?
I cannot place them relative to other controls? Like let's say I am doing a 3 row horizontal layout. A 100px high header, footer 100px and a content area 880px
All those controls would then also have additional child elements, and so on.
What I'd like to to is just to define a first element header with 100px, add another element relative to the first one with 880px (which would be placed beneath the header) and finally the footer which ideally just takes the rest, but from what I've tried so far, this seems to be impossible? If so, could someone please explain the idea of group control, because I guess I didn't fully understand what it does.
A follow up question, what's the deal with <posx>,<posy>,<width>,<height> vs <left>,<top>,<right>,<bottom>?
I stumbled over those variations when studying other skins, and when looking into this issue the only useful thing I found was a posting from 2014, which basically states, that <left>,<top>,<right>,<bottom> is the way to go, whereas <posx>,<posy>,<width>,<height> is considered deprecated. However, when looking into the wiki pages, I usually find <left>,<top>,<width>,<height>? So what is the "correct" way to do this?
There is probably a lot more stuff, but this seems to be the most basic things where I can already make wrong decisions, so I'd like to adress them before I go on. (Frankly, I am not sure if i will be able to make all this into that shiny new skin I imagine .)
Best practices
This is a more general question, where I hope to get some useful feedback.
Right now, I am using VisualStudio Code. Unfortunately there seems to be not a single dev tool for kodi skinning, which is not a big deal, but leads to some organizing problems. One major pain in the arse, when looking into existing skins, is to understand and find all those defined includes and variables. How do you guys organize and keep track of your includes and stuff?
Somewhat related, assuming that almost every skin started as a modification of a existing one, how to keep track that every necessary xml file has been modified to be consistent to your design? And how do you test single Items like e.g. requester or stuff you usually don't use, like in my case login screens and such?
In a rather naive attempt, i went with an empty xml folder, whith just a simple home.xml, containing 3 image controls to get an idea how to go on from there. This did however escalate quickly, as I didn't have any requester, a settings window and so on.
So how would you do a skin from scratch?