Author Topic: Skin-adaptive toolbar button coloring option  (Read 17165 times)

Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3640
  • MB Version: 3.4.7737 P
I think skin-adaptive and specific icon sets are 2 good ideas that don't have to be mutually exclusive.

Adaptive would be a preference setting that overlaid the fore-ground colour from "Configure Layout" button onto the current icons, maybe with a transparency setting, as used in some display settings e.g. Track Details, also available.

Specific icon sets would need a lot more work. A standardised naming scheme would need to be implemented for all the toolbar buttons. I can then envisage them being implemented in the way a skin-specific bee icon can be currently set within the skins xml/xmlc
Code
<element id="DefaultIconName">Tron Bee</element>
If you don't have the Tron Bee.ico file in your Skins folder, MB automatically uses the default icon setting.
Maybe using:
Code
<element id="DefaultToolbarSet">DarkRED</element>
would search for a DarkRED sub-folder in Icons, if not found the defaults loaded in Preferences>Layout (1)>toolbar buttons: would be used
MusicBee and my library - Making bee-utiful music together

redwing

  • Guest
I am still reluctant to have users edit skin files themselves including those uneditable bitmap skins. Maybe both settings could be implemented as part of MB's toolbar button settings.

1. For the skin-adaptive coloring, ticking boxes for "Original" and "Skin adaptive" under "Button color" would suffice.

2. For the specific skin setting, a pairing box where users pick up a skin and its corresponding icon subfolder would do.

I'd assume most people use the same kind of toolbar buttons whatever skin they're using. Then users only need make sure that the filename of icons in the icon root folder and those in each icon subfolder are the same so that MB could automatically pick up icons for each button whenever skin changes. All other skins not specified in the pairing box would use icons in icon root folder.
Last Edit: January 13, 2014, 02:58:38 AM by redwing

Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3640
  • MB Version: 3.4.7737 P
I don't see the specific icon sets as being purposely user editable. It would be something the skin author would decide to set up when making the skin.

If you use "Pop Pink" from the dark skins, it automatically uses the "RotemK" bee icon as it is something RotemK set up as the preferred option.

Specific toolbar icons would be the same. If you have a preferred icon set already set up as your default, then don't instal the icon set supplied with skin.  When MB can't find the icon set, it would use the default set you already have installed.

If you want your preferred icon set used all the time but also want it to be a bit more changeable with each skin, that's where your Adaptive option would come in.  Providing a colour-changing overlay dependent on the "MenuButton.Default" fore-ground.

You could, of course, also combine them. Getting a new set of icons (skin author specified) with a colour overlay (user specified)

Added:
I suppose I should say that I think "colour-adaptive" would be an option in Layout (1) with toolbar buttons:
Last Edit: January 13, 2014, 05:27:40 AM by Bee-liever
MusicBee and my library - Making bee-utiful music together

redwing

  • Guest
I'm a little confused about what the skinner would set up. Do you mean some skins will come with not just an icon set from which users could choose for what to use but a specifically chosen button set? If that's just an icon set that's designed to go along well with the skin, then users only need to set up a pairing between the skin and the icon set (icon subfolder). Wouldn't this be simpler?

Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3640
  • MB Version: 3.4.7737 P
Do you mean some skins will come with not just an icon set from which users could choose for what to use but a specifically chosen button set?

Yes. A specifically created toolbar button/icon set.
Take your "Darknight" series for example.  You might create a full suite of bat-themed toolbar images that you preferred users to instal with your skin for a more complete look.  If all options were implemented as suggested, you could make one greyscale set of icons for the entire series and recommend that users turn on "Adaptive" option at 80%, so that they changed colour when using original, red or green versions.

If that's just an icon set that's designed to go along well with the skin, then users only need to set up a pairing between the skin and the icon set (icon subfolder). Wouldn't this be simpler?

I'm not sure if it would be simpler from a coding point of view or not.  My understanding from earlier posts was it was something Steven preferred to have as an option built into the skin.  I'm sure it would be easier to narrow the choice to either using a skin specific icons set or not.  More choices would mean more time and effort required for Steven to implement.

Using the "Darknight" example again, if you already had a set of toolbar images that you prefer to use (some of iasc's maybe) that you have already manually loaded via Preferences>Layout (1)>toolbar buttons, then you wouldn't instal the icon set supplied with the skin.  MB would then default to those manually loaded icons.

If it wasn't to hard to do, you could even have a radio button option in Preferences to "use skin specific icons" so you could change your mind even if you do have them loaded.
Last Edit: January 14, 2014, 12:18:25 AM by Bee-liever
MusicBee and my library - Making bee-utiful music together

redwing

  • Guest
I am glad it turned out that our ideas are not that different though we're still struggling to understand what each other meant. Now I got a better idea that could make things even simpler.
 
Take DarkRED skin as an example since its skinner(endeavour1934) already provided its own icon set.

If the user wants to use that supplied icon set, she needs to store the icon set under \MusicBee\Icons\DarkRED\ folder. Yes, the name of the sub-folder should be the same as the skin name. Then you don't have to make a pairing between a skin and its icon sub-folder. MB would, if implemented, first look for a icons sub-folder with the same name as the skin, and if it's not present, it will look into the default icons folder (\MusicBee\Icons\).

About the filenames of icons:
I'd assume most people use the same kind of toolbar buttons whatever skin they're using. Then in the default icons folder, a user might have 7 icons. Her MB settings file already knows what function each filename of icon corresponds to. So if she wants to use DarkRED icon set, she needs to rename each icon the same as the default icon set. Then each icon sub-folder would end up having the same filename of icons so that MB could automatically pick up icons for each button though their colors and designs are all different.

About the coloring of buttons:
Users can choose either "Original" or "Skin adaptive" colors with whatever icon set they're using.

Finally why I think my idea is better than yours:
- Users don't have to edit skin files including those uneditable bitmap skins.
- Users can use a specific icon set for their favorite skins even if there's no supplied icon set from the skinner.
- Simple and easy to manage icon sets and its coloring option.
Last Edit: January 14, 2014, 03:29:41 AM by redwing

Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3640
  • MB Version: 3.4.7737 P
Take DarkRED skin as an example since its skinner(endeavour1934) already provided its own icon set.

If the user wants to use that supplied icon set, she needs to store the icon set under \MusicBee\Icons\DarkRED\ folder. Yes, the name of the sub-folder should be the same as the skin name. Then you don't have to make a pairing between a skin and its icon sub-folder. MB would, if implemented, first look for a icons sub-folder with the same name as the skin
Ahh. That's what I said back here
Maybe using:
Code
<element id="DefaultToolbarSet">DarkRED</element>
would search for a DarkRED sub-folder in Icons, if not found the defaults loaded in Preferences>Layout (1)>toolbar buttons: would be used

About the coloring of buttons:
Users can choose either "Original" or "Skin adaptive" colors with whatever icon set they're using.
and also said that here:
If all options were implemented as suggested, you could make one greyscale set of icons for the entire series and recommend that users turn on "Adaptive" option at 80%, so that they changed colour when using original, red or green versions.

About the filenames of icons:
I'd assume most people use the same kind of toolbar buttons whatever skin they're using
I think using the standardised action name from the hotkeys panel would be better, programmatically speaking, e.g. General_ Activate Auto-Shutdown

Finally why I think my idea is better than yours:
- Users don't have to edit skin files including those uneditable bitmap skins.  nor in mine
- Users can use a specific icon set for their favorite skins even if there's no supplied icon set from the skinner. ditto
- Simple and easy to manage icon sets and its coloring option.   same again

so I can conclude that my idea is equally as good as yours and we support them both equally  :P ;D
MusicBee and my library - Making bee-utiful music together

redwing

  • Guest
Ahh. That's what I said back here

Amazing. I thought I got a wonderful idea, but now it seems its original source was your post ;D

Anyway, the difference is you don't need to add the line in a skin file, if MB is implemented to look for a icons sub-folder with the same name first. All I'm arguing is to leave skin files untouched.

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 32050
i am willing to do something very simple with this eg. right click/ "Set Icon Colours to Skin" or something along that line and MB gets the colour from the relevant skin panel header element
Let me know if thats useful

redwing

  • Guest
i am willing to do something very simple with this eg. right click/ "Set Icon Colours to Skin" or something along that line and MB gets the colour from the relevant skin panel header element
Let me know if thats useful

That'd be wonderful!

Also, consider making MB look for a icons sub-folder in the same name as selected skin first and use, if the folder is not present, icons in default icons folder. This would allow people to use various designs of icon sets supplied by skinners without any manual setup.

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 32050
the command button layout dialog now has a "adjust icon coloring to match the selected skin" tickbox
when enabled the icon colours are set to the skin, using this sequence of priority

<element id="Panel.CommandIconOverride" fg="245,0,0" />  (new element)
otherwise:
Panel.HeaderButtonOverride.Default
otherwise:
Panel.HeaderControl.Default slightly blended using the background colour

not sure how well it really works though given it can only set one colour. Its in the next v2.3 update



Bee-liever

  • Member
  • Hero Member
  • *****
  • Posts: 3640
  • MB Version: 3.4.7737 P
I think a degree of transparency would better suit some icons, rather than being a total colour change, but other than that it looks very good.  Thank you, Steven.

[have added transparency support to Skinning Requests here]

MusicBee and my library - Making bee-utiful music together

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 32050
its already the case that any transparency (0..254) is preserved from the icon. Setting an alpha on the new colour would only change the overall colour but wouldnt make any difference otherwise