summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/theme_manager.cc196
-rw-r--r--gtk2_ardour/theme_manager.h13
-rw-r--r--gtk2_ardour/ui_config.cc241
-rw-r--r--gtk2_ardour/ui_config.h42
4 files changed, 69 insertions, 423 deletions
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc
index 551aeb7ba6..b21b713706 100644
--- a/gtk2_ardour/theme_manager.cc
+++ b/gtk2_ardour/theme_manager.cc
@@ -82,41 +82,15 @@ ThemeManager::ThemeManager()
{
set_title (_("Theme Manager"));
- /* Basic color list */
-
- basic_color_list = TreeStore::create (basic_color_columns);
- basic_color_display.set_model (basic_color_list);
- basic_color_display.append_column (_("Object"), basic_color_columns.name);
-
- Gtkmm2ext::CellRendererColorSelector* color_renderer = manage (new Gtkmm2ext::CellRendererColorSelector);
- TreeViewColumn* color_column = manage (new TreeViewColumn (_("Color"), *color_renderer));
- color_column->add_attribute (color_renderer->property_color(), basic_color_columns.gdkcolor);
-
- basic_color_display.append_column (*color_column);
-
- basic_color_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
- basic_color_display.get_column (0)->set_expand (true);
- basic_color_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
- basic_color_display.get_column (1)->set_expand (false);
- basic_color_display.set_reorderable (false);
- basic_color_display.get_selection()->set_mode (SELECTION_NONE);
- basic_color_display.set_headers_visible (true);
-
- basic_color_display.signal_button_press_event().connect (sigc::mem_fun (*this, &ThemeManager::basic_color_button_press_event), false);
-
- scroller.add (basic_color_display);
- scroller.set_policy (POLICY_NEVER, POLICY_AUTOMATIC);
-
/* Now the alias list */
alias_list = TreeStore::create (alias_columns);
alias_display.set_model (alias_list);
- alias_display.append_column (_("Object"), basic_color_columns.name);
-
- color_renderer = manage (new Gtkmm2ext::CellRendererColorSelector);
- color_column = manage (new TreeViewColumn (_("Color"), *color_renderer));
+ alias_display.append_column (_("Object"), alias_columns.name);
+
+ Gtkmm2ext::CellRendererColorSelector* color_renderer = manage (new Gtkmm2ext::CellRendererColorSelector);
+ TreeViewColumn* color_column = manage (new TreeViewColumn (_("Color"), *color_renderer));
color_column->add_attribute (color_renderer->property_color(), alias_columns.color);
-
alias_display.append_column (*color_column);
alias_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
@@ -186,7 +160,6 @@ ThemeManager::ThemeManager()
notebook.append_page (alias_scroller, _("Items"));
notebook.append_page (palette_scroller, _("Palette"));
- notebook.append_page (scroller, _("Colors"));
vbox->pack_start (notebook);
@@ -225,7 +198,6 @@ ThemeManager::ThemeManager()
PROGRAM_NAME));
set_size_request (-1, 400);
- setup_basic_color_display ();
/* no need to call setup_palette() here, it will be done when its size is allocated */
setup_aliases ();
@@ -243,7 +215,6 @@ ThemeManager::~ThemeManager()
void
ThemeManager::colors_changed ()
{
- setup_basic_color_display ();
setup_palette ();
setup_aliases ();
}
@@ -254,77 +225,6 @@ ThemeManager::save (string /*path*/)
return 0;
}
-bool
-ThemeManager::basic_color_button_press_event (GdkEventButton* ev)
-{
- TreeIter iter;
- TreeModel::Path path;
- TreeViewColumn* column;
- int cellx;
- int celly;
-
- if (!basic_color_display.get_path_at_pos ((int)ev->x, (int)ev->y, path, column, cellx, celly)) {
- return false;
- }
-
- switch (GPOINTER_TO_UINT (column->get_data (X_("colnum")))) {
- case 0:
- /* allow normal processing to occur */
- return false;
-
- case 1: /* color */
- if ((iter = basic_color_list->get_iter (path))) {
-
- string color_name = (*iter)[basic_color_columns.name];
- Gdk::Color color;
- double r, g, b, a;
-
- ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->base_color_by_name (color_name), r, g, b, a);
- color.set_rgb_p (r, g, b);
- color_dialog.get_colorsel()->set_previous_color (color);
- color_dialog.get_colorsel()->set_current_color (color);
- color_dialog.get_colorsel()->set_previous_alpha ((guint16) (a * 65535.0));
- color_dialog.get_colorsel()->set_current_alpha ((guint16) (a * 65535.0));
-
- color_dialog_connection.disconnect ();
- color_dialog_connection = color_dialog.signal_response().connect (sigc::bind (sigc::mem_fun (*this, &ThemeManager::basic_color_response), color_name));
- color_dialog.present ();
- }
- }
-
- return true;
-}
-
-void
-ThemeManager::basic_color_response (int result, string name)
-{
- Gdk::Color color;
- double a;
-
- color_dialog_connection.disconnect ();
-
- switch (result) {
- case RESPONSE_CANCEL:
- break;
- case RESPONSE_ACCEPT:
- case RESPONSE_OK:
- color = color_dialog.get_colorsel()->get_current_color();
- a = color_dialog.get_colorsel()->get_current_alpha() / 65535.0;
-
- ARDOUR_UI::config()->set_base (name, ArdourCanvas::rgba_to_color (color.get_red_p(),
- color.get_green_p(),
- color.get_blue_p(),
- a));
- break;
-
- default:
- break;
-
- }
-
- color_dialog.hide ();
-}
-
void
ThemeManager::on_flat_buttons_toggled ()
{
@@ -404,43 +304,34 @@ ThemeManager::on_light_theme_button_toggled()
}
void
-ThemeManager::setup_basic_color_display ()
+ThemeManager::reset_canvas_colors()
{
- basic_color_list->clear();
-
- for (UIConfiguration::BaseColors::const_iterator i = ARDOUR_UI::config()->base_colors.begin(); i != ARDOUR_UI::config()->base_colors.end(); i++) {
- TreeModel::Row row;
-
- row = *(basic_color_list->append());
- row[basic_color_columns.name] = i->first;
+ ARDOUR_UI::config()->load_defaults();
+ ARDOUR_UI::config()->save_state ();
+}
- ArdourCanvas::Color c = i->second;
+ArdourCanvas::Container*
+ThemeManager::initialize_palette_canvas (ArdourCanvas::Canvas& canvas)
+{
+ using namespace ArdourCanvas;
- /* Gdk colors don't support alpha */
+ /* hide background */
+ canvas.set_background_color (rgba_to_color (0.0, 0.0, 1.0, 0.0));
- double r, g, b, a;
- ArdourCanvas::color_to_rgba (c, r, g, b, a);
- Gdk::Color gcolor;
- gcolor.set_rgb_p (r, g, b);
+ /* bi-directional scroll group */
+
+ ScrollGroup* scroll_group = new ScrollGroup (canvas.root(), ScrollGroup::ScrollSensitivity (ScrollGroup::ScrollsVertically|ScrollGroup::ScrollsHorizontally));
+ canvas.add_scroller (*scroll_group);
- row[basic_color_columns.gdkcolor] = gcolor;
- }
+ /* new container to hold everything */
- UIConfiguration* uic (ARDOUR_UI::config());
-
- flat_buttons.set_active (uic->get_flat_buttons());
- blink_rec_button.set_active (uic->get_blink_rec_arm());
- waveform_gradient_depth.set_value (uic->get_waveform_gradient_depth());
- timeline_item_gradient_depth.set_value (uic->get_timeline_item_gradient_depth());
- all_dialogs.set_active (uic->get_all_floating_windows_are_dialogs());
+ return new ArdourCanvas::Container (scroll_group);
}
void
-ThemeManager::reset_canvas_colors()
+ThemeManager::palette_canvas_allocated (Gtk::Allocation& alloc, ArdourCanvas::Container* group, ArdourCanvas::Canvas* canvas, sigc::slot<bool,GdkEvent*,std::string> event_handler)
{
- ARDOUR_UI::config()->load_defaults();
- setup_basic_color_display ();
- ARDOUR_UI::config()->save_state ();
+ build_palette_canvas (*canvas, *group, event_handler);
}
struct NamedColor {
@@ -463,29 +354,6 @@ struct SortByHue {
}
};
-ArdourCanvas::Container*
-ThemeManager::initialize_palette_canvas (ArdourCanvas::Canvas& canvas)
-{
- using namespace ArdourCanvas;
-
- /* hide background */
- canvas.set_background_color (rgba_to_color (0.0, 0.0, 1.0, 0.0));
-
- /* bi-directional scroll group */
-
- ScrollGroup* scroll_group = new ScrollGroup (canvas.root(), ScrollGroup::ScrollSensitivity (ScrollGroup::ScrollsVertically|ScrollGroup::ScrollsHorizontally));
- canvas.add_scroller (*scroll_group);
-
- /* new container to hold everything */
-
- return new ArdourCanvas::Container (scroll_group);
-}
-
-void
-ThemeManager::palette_canvas_allocated (Gtk::Allocation& alloc, ArdourCanvas::Container* group, ArdourCanvas::Canvas* canvas, sigc::slot<bool,GdkEvent*,std::string> event_handler)
-{
- build_palette_canvas (*canvas, *group, event_handler);
-}
void
ThemeManager::build_palette_canvas (ArdourCanvas::Canvas& canvas, ArdourCanvas::Container& group, sigc::slot<bool,GdkEvent*,std::string> event_handler)
@@ -494,10 +362,10 @@ ThemeManager::build_palette_canvas (ArdourCanvas::Canvas& canvas, ArdourCanvas::
/* we want the colors sorted by hue, with their name */
- UIConfiguration::RelativeColors& relatives (ARDOUR_UI::instance()->config()->relative_colors);
+ UIConfiguration::Colors& colors (ARDOUR_UI::instance()->config()->colors);
vector<NamedColor> nc;
- for (UIConfiguration::RelativeColors::const_iterator x = relatives.begin(); x != relatives.end(); ++x) {
- nc.push_back (NamedColor (x->first, x->second.get()));
+ for (UIConfiguration::Colors::const_iterator x = colors.begin(); x != colors.end(); ++x) {
+ nc.push_back (NamedColor (x->first, HSV (x->second)));
}
SortByHue sorter;
sort (nc.begin(), nc.end(), sorter);
@@ -519,10 +387,10 @@ ThemeManager::build_palette_canvas (ArdourCanvas::Canvas& canvas, ArdourCanvas::
string name = nc[color_num++].name;
- UIConfiguration::RelativeColors::iterator c = relatives.find (name);
+ UIConfiguration::Colors::iterator c = colors.find (name);
- if (c != relatives.end()) {
- Color color = c->second.get().color ();
+ if (c != colors.end()) {
+ Color color = c->second;
r->set_fill_color (color);
r->set_outline_color (rgba_to_color (0.0, 0.0, 0.0, 1.0));
r->set_tooltip (name);
@@ -535,7 +403,7 @@ ThemeManager::build_palette_canvas (ArdourCanvas::Canvas& canvas, ArdourCanvas::
void
ThemeManager::palette_size_request (Gtk::Requisition* req)
{
- uint32_t ncolors = ARDOUR_UI::instance()->config()->relative_colors.size();
+ uint32_t ncolors = ARDOUR_UI::instance()->config()->colors.size();
const int box_size = 20;
double c = sqrt ((double)ncolors);
@@ -598,7 +466,6 @@ ThemeManager::palette_color_response (int result, std::string name)
color_dialog_connection.disconnect ();
UIConfiguration* uic (ARDOUR_UI::instance()->config());
- UIConfiguration::RelativeHSV rhsv ("", HSV());
Gdk::Color gdkcolor;
double r,g, b, a;
@@ -610,9 +477,8 @@ ThemeManager::palette_color_response (int result, std::string name)
r = gdkcolor.get_red_p();
g = gdkcolor.get_green_p();
b = gdkcolor.get_blue_p();
-
- rhsv = uic->color_as_relative_hsv (rgba_to_color (r, g, b, a));
- uic->set_relative (name, rhsv);
+
+ uic->set_color (name, rgba_to_color (r, g, b, a));
break;
default:
diff --git a/gtk2_ardour/theme_manager.h b/gtk2_ardour/theme_manager.h
index dee3f5d151..f023076c97 100644
--- a/gtk2_ardour/theme_manager.h
+++ b/gtk2_ardour/theme_manager.h
@@ -50,7 +50,6 @@ class ThemeManager : public ArdourWindow
~ThemeManager();
int save (std::string path);
- void setup_basic_color_display ();
void reset_canvas_colors();
void on_dark_theme_button_toggled ();
@@ -77,16 +76,9 @@ class ThemeManager : public ArdourWindow
Gtk::TreeModelColumn<Gdk::Color> gdkcolor;
};
- BasicColorDisplayModelColumns basic_color_columns;
- Gtk::TreeView basic_color_display;
- Glib::RefPtr<Gtk::TreeStore> basic_color_list;
-
- bool basic_color_button_press_event (GdkEventButton*);
-
Gtk::ColorSelectionDialog color_dialog;
sigc::connection color_dialog_connection;
- Gtk::ScrolledWindow scroller;
Gtk::HBox theme_selection_hbox;
Gtk::RadioButton dark_button;
Gtk::RadioButton light_button;
@@ -104,11 +96,6 @@ class ThemeManager : public ArdourWindow
Gtk::Label icon_set_label;
Gtk::ComboBoxText icon_set_dropdown;
- /* handles response from color dialog when it used to
- edit a basic color
- */
- void basic_color_response (int, std::string);
-
/* handls response from color dialog when it is used to
edit a derived color.
*/
diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc
index 952009e178..a22e79801c 100644
--- a/gtk2_ardour/ui_config.cc
+++ b/gtk2_ardour/ui_config.cc
@@ -26,6 +26,7 @@
#include <glibmm/miscutils.h>
#include <glib/gstdio.h>
+#include "pbd/convert.h"
#include "pbd/failed_constructor.h"
#include "pbd/xml++.h"
#include "pbd/file_utils.h"
@@ -65,32 +66,12 @@ UIConfiguration::UIConfiguration ()
#undef CANVAS_FONT_VARIABLE
_dirty (false),
- base_modified (false),
aliases_modified (false),
- derived_modified (false),
+ colors_modified (false),
block_save (0)
{
_instance = this;
- /* pack all base colors into the configurable color map so that
- derived colors can use them.
- */
-
-#undef CANVAS_BASE_COLOR
-#define CANVAS_BASE_COLOR(var,name,color) base_colors.insert (make_pair (name,color));
-#include "base_colors.h"
-#undef CANVAS_BASE_COLOR
-
-#undef CANVAS_COLOR
-#define CANVAS_COLOR(var,name,base,modifier) relative_colors.insert (make_pair (name, RelativeHSV (base,modifier)));
-#include "colors.h"
-#undef CANVAS_COLOR
-
-#undef COLOR_ALIAS
-#define COLOR_ALIAS(var,name,alias) color_aliases.insert (make_pair (name,alias));
-#include "color_aliases.h"
-#undef CANVAS_COLOR
-
load_state();
ARDOUR_UI_UTILS::ColorsChanged.connect (boost::bind (&UIConfiguration::colors_changed, this));
@@ -132,9 +113,6 @@ UIConfiguration::parameter_changed (string param)
load_rc_file (true);
} else if (param == "color-file") {
load_color_theme ();
- } else if (param == "base-color") { /* one of many */
- base_modified = true;
- ARDOUR_UI_UTILS::ColorsChanged (); /* EMIT SIGNAL */
}
save_state ();
@@ -163,89 +141,6 @@ UIConfiguration::reset_gtk_theme ()
Gtk::Settings::get_default()->property_gtk_color_scheme() = ss.str();
}
-UIConfiguration::RelativeHSV
-UIConfiguration::color_as_relative_hsv (Color c)
-{
- HSV variable (c);
- HSV closest;
- double shortest_distance = DBL_MAX;
- string closest_name;
-
- BaseColors::iterator f;
- std::map<std::string,HSV> palette;
-
- for (f = base_colors.begin(); f != base_colors.end(); ++f) {
- /* Do not include any specialized base colors in the palette
- we use to do comparisons (e.g. meter colors)
- */
-
- if (f->first.find ("color") == 0) {
- palette.insert (make_pair (f->first, HSV (f->second)));
- }
- }
-
- for (map<string,HSV>::iterator f = palette.begin(); f != palette.end(); ++f) {
-
- double d;
- HSV fixed (f->second);
-
- if (fixed.is_gray() || variable.is_gray()) {
- /* at least one is achromatic; HSV::distance() will do
- * the right thing
- */
- d = fixed.distance (variable);
- } else {
- /* chromatic: compare ONLY hue because our task is
- to pick the HUE closest and then compute
- a modifier. We want to keep the number of
- hues low, and by computing perceptual distance
- we end up finding colors that are to each
- other without necessarily be close in hue.
- */
- d = fabs (variable.h - fixed.h);
- }
-
- if (d < shortest_distance) {
- closest = fixed;
- closest_name = f->first;
- shortest_distance = d;
- }
- }
-
- /* we now know the closest color of the fixed colors to
- this variable color. Compute the HSV diff and
- use it to redefine the variable color in terms of the
- fixed one.
- */
-
- HSV delta = variable.delta (closest);
-
- /* quantize hue delta so we don't end up with many subtle hues caused
- * by original color choices
- */
-
- delta.h = hue_width * (round (delta.h/hue_width));
-
- return RelativeHSV (closest_name, delta);
-}
-
-string
-UIConfiguration::color_as_alias (Color c)
-{
- string closest;
- double shortest_distance = DBL_MAX;
- HSV target (c);
-
- for (RelativeColors::const_iterator a = relative_colors.begin(); a != relative_colors.end(); ++a) {
- HSV hsv (a->second.get());
- double d = hsv.distance (target);
- if (d < shortest_distance) {
- shortest_distance = d;
- closest = a->first;
- }
- }
- return closest;
-}
void
UIConfiguration::map_parameters (boost::function<void (std::string)>& functor)
{
@@ -348,17 +243,17 @@ UIConfiguration::store_color_theme ()
root = new XMLNode("Ardour");
- XMLNode* parent = new XMLNode (X_("RelativeColors"));
- for (RelativeColors::const_iterator i = relative_colors.begin(); i != relative_colors.end(); ++i) {
- XMLNode* node = new XMLNode (X_("RelativeColor"));
+ XMLNode* parent = new XMLNode (X_("Colors"));
+ for (Colors::const_iterator i = colors.begin(); i != colors.end(); ++i) {
+ XMLNode* node = new XMLNode (X_("Color"));
node->add_property (X_("name"), i->first);
- node->add_property (X_("base"), i->second.base_color);
- node->add_property (X_("modifier"), i->second.modifier.to_string());
+ stringstream ss;
+ ss << "0x" << setw (8) << setfill ('0') << hex << i->second;
+ node->add_property (X_("value"), ss.str());
parent->add_child_nocopy (*node);
}
root->add_child_nocopy (*parent);
-
parent = new XMLNode (X_("ColorAliases"));
for (ColorAliases::const_iterator i = color_aliases.begin(); i != color_aliases.end(); ++i) {
XMLNode* node = new XMLNode (X_("ColorAlias"));
@@ -450,16 +345,15 @@ UIConfiguration::save_state()
_dirty = false;
}
- if (base_modified || aliases_modified || derived_modified) {
+ if (aliases_modified || colors_modified) {
if (store_color_theme ()) {
error << string_compose (_("Color file %1 not saved"), color_file.get()) << endmsg;
return -1;
}
- base_modified = false;
aliases_modified = false;
- derived_modified = false;
+ colors_modified = false;
}
@@ -529,20 +423,12 @@ UIConfiguration::set_state (const XMLNode& root, int /*version*/)
}
}
- XMLNode* base = find_named_node (root, X_("BaseColors"));
+ XMLNode* colors = find_named_node (root, X_("Colors"));
- if (base) {
- load_base_colors (*base);
- }
-
-
- XMLNode* relative = find_named_node (root, X_("RelativeColors"));
-
- if (relative) {
- load_relative_colors (*relative);
+ if (colors) {
+ load_colors (*colors);
}
-
XMLNode* aliases = find_named_node (root, X_("ColorAliases"));
if (aliases) {
@@ -553,12 +439,6 @@ UIConfiguration::set_state (const XMLNode& root, int /*version*/)
}
void
-UIConfiguration::load_base_colors (XMLNode const &)
-{
-
-}
-
-void
UIConfiguration::load_color_aliases (XMLNode const & node)
{
XMLNodeList const nlist = node.children();
@@ -579,35 +459,31 @@ UIConfiguration::load_color_aliases (XMLNode const & node)
color_aliases.insert (make_pair (name->value(), alias->value()));
}
}
-
- cerr << "Color alias table contains " << color_aliases.size() << endl;
}
void
-UIConfiguration::load_relative_colors (XMLNode const & node)
+UIConfiguration::load_colors (XMLNode const & node)
{
XMLNodeList const nlist = node.children();
XMLNodeConstIterator niter;
XMLProperty const *name;
- XMLProperty const *base;
- XMLProperty const *modifier;
+ XMLProperty const *color;
- relative_colors.clear ();
+ colors.clear ();
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
- if ((*niter)->name() != X_("RelativeColor")) {
+ if ((*niter)->name() != X_("Color")) {
continue;
}
name = (*niter)->property (X_("name"));
- base = (*niter)->property (X_("base"));
- modifier = (*niter)->property (X_("modifier"));
+ color = (*niter)->property (X_("value"));
- if (name && base && modifier) {
- RelativeHSV rhsv (base->value(), HSV (modifier->value()));
- relative_colors.insert (make_pair (name->value(), rhsv));
+ if (name && color) {
+ ArdourCanvas::Color c;
+ c = strtol (color->value().c_str(), 0, 16);
+ colors.insert (make_pair (name->value(), c));
}
}
-
}
void
@@ -623,37 +499,24 @@ UIConfiguration::set_variables (const XMLNode& node)
}
ArdourCanvas::Color
-UIConfiguration::base_color_by_name (const std::string& name) const
-{
- BaseColors::const_iterator i = base_colors.find (name);
-
- if (i != base_colors.end()) {
- return i->second;
- }
-
- cerr << string_compose (_("Base Color %1 not found"), name) << endl;
- return RGBA_TO_UINT (g_random_int()%256,g_random_int()%256,g_random_int()%256,0xff);
-}
-
-ArdourCanvas::Color
UIConfiguration::color (const std::string& name, bool* failed) const
{
- map<string,string>::const_iterator e = color_aliases.find (name);
+ ColorAliases::const_iterator e = color_aliases.find (name);
if (failed) {
*failed = false;
}
if (e != color_aliases.end ()) {
- map<string,RelativeHSV>::const_iterator rc = relative_colors.find (e->second);
- if (rc != relative_colors.end()) {
- return rc->second.get();
+ Colors::const_iterator rc = colors.find (e->second);
+ if (rc != colors.end()) {
+ return rc->second;
}
} else {
/* not an alias, try directly */
- map<string,RelativeHSV>::const_iterator rc = relative_colors.find (name);
- if (rc != relative_colors.end()) {
- return rc->second.get();
+ Colors::const_iterator rc = colors.find (name);
+ if (rc != colors.end()) {
+ return rc->second;
}
}
@@ -674,25 +537,6 @@ UIConfiguration::color (const std::string& name, bool* failed) const
0xff);
}
-ArdourCanvas::HSV
-UIConfiguration::RelativeHSV::get() const
-{
- HSV base (UIConfiguration::instance()->base_color_by_name (base_color));
-
- /* this operation is a little wierd. because of the way we originally
- * computed the alpha specification for the modifiers used here
- * we need to reset base's alpha to zero before adding the modifier.
- */
-
- HSV self (base + modifier);
-
- if (quantized_hue >= 0.0) {
- self.h = quantized_hue;
- }
-
- return self;
-}
-
Color
UIConfiguration::quantized (Color c) const
{
@@ -702,29 +546,14 @@ UIConfiguration::quantized (Color c) const
}
void
-UIConfiguration::set_base (string const& name, ArdourCanvas::Color color)
+UIConfiguration::set_color (string const& name, ArdourCanvas::Color color)
{
- BaseColors::iterator i = base_colors.find (name);
- if (i == base_colors.end()) {
+ Colors::iterator i = colors.find (name);
+ if (i == colors.end()) {
return;
}
i->second = color;
- base_modified = true;
-
- ARDOUR_UI_UTILS::ColorsChanged (); /* EMIT SIGNAL */
-}
-
-void
-UIConfiguration::set_relative (const string& name, const RelativeHSV& rhsv)
-{
- RelativeColors::iterator i = relative_colors.find (name);
-
- if (i == relative_colors.end()) {
- return;
- }
-
- i->second = rhsv;
- derived_modified = true;
+ colors_modified = true;
ARDOUR_UI_UTILS::ColorsChanged (); /* EMIT SIGNAL */
}
@@ -761,8 +590,4 @@ UIConfiguration::load_rc_file (bool themechange, bool allow_own)
Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path, themechange);
}
-std::ostream& operator<< (std::ostream& o, const UIConfiguration::RelativeHSV& rhsv)
-{
- return o << rhsv.base_color << " + HSV(" << rhsv.modifier << ")";
-}
diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h
index c343da018b..9249ebc8b2 100644
--- a/gtk2_ardour/ui_config.h
+++ b/gtk2_ardour/ui_config.h
@@ -38,18 +38,6 @@
class UIConfiguration : public PBD::Stateful
{
public:
- struct RelativeHSV {
- RelativeHSV (const std::string& b, const ArdourCanvas::HSV& mod)
- : base_color (b)
- , modifier (mod)
- , quantized_hue (-1.0) {}
- std::string base_color;
- ArdourCanvas::HSV modifier;
- double quantized_hue;
-
- ArdourCanvas::HSV get() const;
- };
-
UIConfiguration();
~UIConfiguration();
@@ -66,23 +54,18 @@ class UIConfiguration : public PBD::Stateful
XMLNode& get_variables (std::string);
void set_variables (const XMLNode&);
- typedef std::map<std::string,RelativeHSV> RelativeColors;
+ typedef std::map<std::string,ArdourCanvas::Color> Colors;
typedef std::map<std::string,std::string> ColorAliases;
- typedef std::map<std::string,ArdourCanvas::Color> BaseColors;
- BaseColors base_colors;
- RelativeColors relative_colors;
+ Colors colors;
ColorAliases color_aliases;
void set_alias (std::string const & name, std::string const & alias);
- void set_relative (const std::string& name, const RelativeHSV& new_value);
- void set_base (const std::string& name, ArdourCanvas::Color);
+ void set_color (const std::string& name, ArdourCanvas::Color);
- RelativeHSV color_as_relative_hsv (ArdourCanvas::Color c);
std::string color_as_alias (ArdourCanvas::Color c);
ArdourCanvas::Color quantized (ArdourCanvas::Color) const;
- ArdourCanvas::Color base_color_by_name (const std::string&) const;
ArdourCanvas::Color color (const std::string&, bool* failed = 0) const;
ArdourCanvas::HSV color_hsv (const std::string&) const;
@@ -103,17 +86,6 @@ class UIConfiguration : public PBD::Stateful
#include "canvas_vars.h"
#undef CANVAS_FONT_VARIABLE
-#undef CANVAS_BASE_COLOR
-#define CANVAS_BASE_COLOR(var,name,val) \
- ArdourCanvas::Color get_##var() const { return base_color_by_name (name); }
-#include "base_colors.h"
-#undef CANVAS_BASE_COLOR
-
-#undef COLOR_ALIAS
-#define COLOR_ALIAS(var,name,alias) ArdourCanvas::Color get_##var() const { return color (name); }
-#include "color_aliases.h"
-#undef COLOR_ALIAS
-
private:
/* declare variables */
@@ -128,16 +100,14 @@ class UIConfiguration : public PBD::Stateful
XMLNode& state ();
bool _dirty;
- bool base_modified;
bool aliases_modified;
- bool derived_modified;
+ bool colors_modified;
static UIConfiguration* _instance;
int store_color_theme ();
- void load_base_colors (XMLNode const &);
void load_color_aliases (XMLNode const &);
- void load_relative_colors (XMLNode const &);
+ void load_colors (XMLNode const &);
void reset_gtk_theme ();
void colors_changed ();
int load_color_theme (bool allow_own=true);
@@ -145,7 +115,5 @@ class UIConfiguration : public PBD::Stateful
uint32_t block_save;
};
-std::ostream& operator<< (std::ostream& o, const UIConfiguration::RelativeHSV& rhsv);
-
#endif /* __ardour_ui_configuration_h__ */