Author Topic: 3 isues regarding older skinning elements  (Read 2658 times)

hiccup

  • Hero Member
  • *****
  • Posts: 9133
After having gone through most of the known skinning elements with a flea-comb, and updating my Sample Skin, there are a couple of things that may deserve some attention:

1.
There is a range of "Panel.ChildBody. …" elements available. (default, highlight, scrollbar, etc)
But if I am correct, for most panels they are not specifically needed anymore, since the panels that they affect will have their own elements these days.

So for that reason I have tried to remove them from the Sample Skin. (trying to keep it as clean, yet fully functional as possible)

I was able to remove all of them without losing any functionality, except for one:
"Panel.ChildBody.Default" bg="xxx,xxx,xxx" fg="xxx,xxx,xxx"
This concerns the Track Details panel, which has its own:
"TrackInfoPanel" bg="xxx,xxx,xxx" fg="xxx,xxx,xxx"

But that element doesn't seem to work.
And when I remove "Panel.ChildBody.Default", I would expect "TrackInfoPanel" to take over, but it doesn't.
Instead the panel gets some MB-generated 0,0,0 for fg and 250,250,250 for bg

2.
A similer issue with "Content[ArtistProfile]"
It's also an older element that I would like to remove from my skin(s)

But when it's removed, it affects the Now Playing bar, rendering that one's fg and bg to 0,0,0 and 250,250,250 also.
I am guessing it should use the colours as set for the track details panel.




3.  

for the next 3.3 alpha i have added:
Code
IconColourOverride.Default fg=XXX
[s]IconColourOverride.Disabled fg=XXX
IconColourOverride.Highlight fg=XXX [/s]
Its applied to most icons, except a few such as the rss podcast feed icon. However I am not sure how well this will work in practice as I can imagine you might not want it applied to some icons i have enabled this, so I will need feedback on icons it shouldnt be applied to


I noticed that "IconColourOverride.Default" also overrides the image elements LastFmNotLove  and  PlayerLastFmNotLove
It probably shouldn't, especially since these two icons are usually intended to be in some low contrast/colour.

---

To test/replicate all this, it's probably best to use the freshly updated Sample Skin
Last Edit: July 19, 2024, 05:17:40 PM by hiccup

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34986
I'll just tell you how its working. There is a lot of cruft that has accumulated over time, or things I don't remember why I did it, so I am reluctant to make changes that might affect existing skins unless there is a strong reason

1. when "TrackInfoPanel" is set, MB actually just copies from "Panel.ChildBody.Default", so anything you set on TrackInfoPanel is ignored
2. Content[ArtistProfile] is similar where it just copies from "Panel.ChildBody.Default". However its only used in the Now Playing Bar
3. I'll look into that one

hiccup

  • Hero Member
  • *****
  • Posts: 9133
I obviously appreciate and support the rationale of being careful to make any changes that may affect any other (older) skins.
But my line of thought in this case is this:
When a skin, either old or new has the element "TrackInfoPanel" bg="xxx,xxx,xxx" fg="xxx,xxx,xxx" set, wouldn't it have been  the skinners intent that the track details panel indeed gets that specific colouring?
Regardless if an older element that preceded it exists, and what values it may carry?

Also, it's a bit hard to explain or understand that of the five available Track Details panel elements, all work fine except for the first one.

"TrackInfoPanel"
"TrackInfoPanel.ScrollBarBackground"
"TrackInfoPanel.ScrollBar.Lowlight"
"TrackInfoPanel.ScrollBar"
"TrackInfoPanel.ScrollBarThumb"

I am also wondering (doubting) if rectifying this would indeed negatively affect older skins.
My guess is that it might even improve some of them, since then the track details panel will get the intended colouring for sure.
Which is not a certainty at this moment.

Anyway, if you are still contemplating this and are not sure, feel free to send me a test version that has the change that if "TrackInfoPanel" exists, it trumps older elements such as "Panel.ChildBody.Default" and "Content[ArtistProfile]".
I have a lot of 3rd party skins on my computer, old and new ones, and I could check if it negatively affects any of them.
 
Last Edit: July 20, 2024, 05:05:20 PM by hiccup

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34986
re: TrackInfoPanel, there are some skins affected so I wont change that behavior. However I do agree the current implementation is inconsistent with having scrollbar overrides, so i will add support for "TrackInfoPanel.Default" fg= bg=

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34986
1. see above
2 can now be removed
3. "IconColourOverride.Default" no longer overrides the image elements LastFmNotLove  and  PlayerLastFmNotLove

https://getmusicbee.com/patches/MusicBee36_Patched.zip

hiccup

  • Hero Member
  • *****
  • Posts: 9133
This stint of trying to get a better grip on TrackInfo, Childbody and ElementPanel panels has been going well.
Things are working much better now, but (why is there always a 'but'?) there is one more thing that would put the icing on the cake.

This screenshot will make the request obvious:



The headers of the Track Information panel(s) follow what's in Panel.ChildHeader, which can turn out ugly.
So the request is for two new elements, something like this:

<element id="TrackInfoPanel.Header" bg="xxx,xxx,xxx" bg2="xxx,xxx,xxx" fg="xxx,xxx,xxx" bdr="xxx,xxx,xxx" />
<element id="TrackInfoPanel.Header.Border2" fg="xxx,xxx,xxx" />

or just one:
<element id="TrackInfoPanel.Header" bg="xxx,xxx,xxx" bg2="xxx,xxx,xxx" fg="xxx,xxx,xxx" bdr="xxx,xxx,xxx" bdr2="xxx,xxx,xxx"/>
(which seems nicer to me)
Last Edit: July 22, 2024, 12:07:15 AM by hiccup

hiccup

  • Hero Member
  • *****
  • Posts: 9133
The headers of the Track Information panel(s) follow what's in Panel.ChildHeader, which can turn out ugly.
So the request is for two new elements, something like this:
<element id="TrackInfoPanel.Header" bg="xxx,xxx,xxx" bg2="xxx,xxx,xxx" fg="xxx,xxx,xxx" bdr="xxx,xxx,xxx" />
<element id="TrackInfoPanel.Header.Border2" fg="xxx,xxx,xxx" />
or just one:
<element id="TrackInfoPanel.Header" bg="xxx,xxx,xxx" bg2="xxx,xxx,xxx" fg="xxx,xxx,xxx" bdr="xxx,xxx,xxx" bdr2="xxx,xxx,xxx"/>
(which seems nicer to me)

PS
If this gets done, it will probably also require an additional:
<element id="TrackInfoPanel.TabButton.Default"
since these buttons can appear both in Track Information and in Child Panels?


Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34986
https://getmusicbee.com/patches/MusicBee36_Patched.zip
these are now supported
Code
<element id="TrackInfoPanel.PanelHeader" bg="255,140,30" fg="0,20,240" />
<element id="TrackInfoPanel.TabButton.Default" bg="20,90,240" fg="205,190,80" />
<element id="TrackInfoPanel.TabButton.Default.Border2" fg="205,7,130" />