mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 03:36:32 +01:00
pick route colors from the color palette (with random variation) #9115
This commit is contained in:
parent
cd7c981e6e
commit
cd4b6e85a8
3 changed files with 21 additions and 3 deletions
|
|
@ -680,10 +680,28 @@ ARDOUR_UI_UTILS::escape_underscores (string const & s)
|
|||
}
|
||||
|
||||
Gdk::Color
|
||||
ARDOUR_UI_UTILS::unique_random_color (list<Gdk::Color>& used_colors)
|
||||
ARDOUR_UI_UTILS::unique_random_color (list<Gdk::Color>& used_colors, bool from_palette)
|
||||
{
|
||||
Gdk::Color newcolor;
|
||||
|
||||
if (from_palette) {
|
||||
|
||||
string cp = UIConfiguration::instance().get_stripable_color_palette ();
|
||||
Gdk::ArrayHandle_Color gc = ColorSelection::palette_from_string (cp);
|
||||
std::vector<Gdk::Color> c (gc);
|
||||
int n = random () % c.size();
|
||||
Gtkmm2ext::HSV hsv (Gtkmm2ext::gdk_color_to_rgba (c[n]));
|
||||
|
||||
do {
|
||||
newcolor.set_hsv (hsv.h, hsv.s, hsv.v);
|
||||
hsv = random() % 1000 > 500 ? hsv.darker ((random() % 500) / 1000.0) : hsv.lighter ((random() % 500 / 1000.0));
|
||||
} while (find (used_colors.begin(), used_colors.end(), newcolor) != used_colors.end());
|
||||
|
||||
used_colors.push_back (newcolor);
|
||||
|
||||
return newcolor;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
|
||||
double h, s, v;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue