- The <LIST> text & back inputs already exist in every single skin, even ones that are 20+ years old. I am guessing the code revision would only require which hex color inputs are pointed at for alphabet letter highlighting.
- Your suggestion requires adding a brand spanking new section to every single skin, old or new. Then, colors have to be picked and tested for suitability/effectivity for every skin. This is not a five or ten minute task. I think my request is potentially a five or ten minute task.
I don't know the code either of course, but the effort will be the same for both approaches in terms of deriving the default colors for header alphabet highlighting in every skin according to your universal inversion suggestion. It's only implementing such default colors that is different in the two approaches.
Meanwhile, I think Matt is initially headed in the direction of perceived least resistance: simply use a subset of the skin's <LIST> <colors ... />, don't worry about a "universal" high contrast color choice, and use the default bitmap to get the underline. I really look forward to this as an easy, acceptable compromise that just requires a little adjustment to my preferred skin.
However, as you point out, the simple List solution inherently couples the Header Alphabet appearance with other List items in the skin. So to work well "out of the box" in many existing skins, the List solution needs to accept a user-defined List bitmap file, such as
list_selection.png, acting on a per letter basis in the Header Alphabet. Your <List> text & back is a prescribed alternative to this, which also addresses potential loss of contrast due to back color.
A more flexible solution is to introduce a new Sub Area for Header Alphabet within <LIST> or add a new Skin Item (external to <LIST>). As you know, Sub Area name sections have been done many many times before for other UI features - they are found throughout
main.xml. They may take some additional programming effort compared to <List> text & back, but I don't know how much.
If a new Sub Area becomes available, I strongly suspect (and hope) there is no requirement whatsoever to add the new Sub Area to every existing
main.xml file, since as you say it is merely an input file. Hopefully an encoded default such as your universal default, or optionally leave it alone, can be used in the absence of the new Sub Area in the file. But if a knowledgeable user, or skin designer for that matter, wants something different, then I hope they could simply add the appropriate
<Entry Name="HeaderAlphabet" .../> line within <LIST>...</LIST> or add a new Skin Item <HEADERALPHABET> .. .</HEADERALPHABET> to their favorite
main.xml file. Then they can be off and running to choose options for any desired colors restricted to header alphabet alone (assuming minimal specification documentation is available).
Wiki Reference: Standard View Skinning SDK
https://wiki.jriver.com/index.php/Standard_View_Skinning_SDK3/2/2024 Edited for clarity multiple times.
3/6/2024 Add wiki reference and modify terminology to agree with it.