diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-14 16:14:18 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-12-14 16:14:18 -0500 |
commit | 59f32dc80f7ba299534e4fefa2bf02e9fff4b8b2 (patch) | |
tree | fe804b585bce618fd39c4357b22098407b49dea6 | |
parent | 48a7a11974fb378483da9c4cce6e2af4d7060c5d (diff) |
remove base color concept from UIConfiguration and ThemeManager.
What used to be "relative colors" (defined relative to base colors) are now defined
in absolute terms.
-rw-r--r-- | gtk2_ardour/theme_manager.cc | 196 | ||||
-rw-r--r-- | gtk2_ardour/theme_manager.h | 13 | ||||
-rw-r--r-- | gtk2_ardour/ui_config.cc | 241 | ||||
-rw-r--r-- | gtk2_ardour/ui_config.h | 42 |
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__ */ |