From: Paul Davis Date: Mon, 15 Dec 2014 04:34:59 +0000 (-0500) Subject: basic code to use SVModifier plus one definition in dark.colors X-Git-Tag: 4.0-rc1~1010 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=83326a06ca695878d91636200679a46fd10310e4;p=ardour.git basic code to use SVModifier plus one definition in dark.colors --- diff --git a/gtk2_ardour/dark.colors b/gtk2_ardour/dark.colors index 729da83b47..b9ad069609 100644 --- a/gtk2_ardour/dark.colors +++ b/gtk2_ardour/dark.colors @@ -482,4 +482,6 @@ + + diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc index a22e79801c..d1395e671e 100644 --- a/gtk2_ardour/ui_config.cc +++ b/gtk2_ardour/ui_config.cc @@ -262,7 +262,16 @@ UIConfiguration::store_color_theme () parent->add_child_nocopy (*node); } root->add_child_nocopy (*parent); - + + parent = new XMLNode (X_("Modifiers")); + for (Modifiers::const_iterator i = modifiers.begin(); i != modifiers.end(); ++i) { + XMLNode* node = new XMLNode (X_("Modifier")); + node->add_property (X_("name"), i->first); + node->add_property (X_("modifier"), i->second.to_string()); + parent->add_child_nocopy (*node); + } + root->add_child_nocopy (*parent); + XMLTree tree; std::string colorfile = Glib::build_filename (user_config_directory(), (string ("my-") + color_file.get() + ".colors")); @@ -435,6 +444,12 @@ UIConfiguration::set_state (const XMLNode& root, int /*version*/) load_color_aliases (*aliases); } + XMLNode* modifiers = find_named_node (root, X_("Modifiers")); + + if (modifiers) { + load_modifiers (*modifiers); + } + return 0; } @@ -486,6 +501,30 @@ UIConfiguration::load_colors (XMLNode const & node) } } +void +UIConfiguration::load_modifiers (XMLNode const & node) +{ + XMLNodeList const nlist = node.children(); + XMLNodeConstIterator niter; + XMLProperty const *name; + XMLProperty const *mod; + + modifiers.clear (); + + for (niter = nlist.begin(); niter != nlist.end(); ++niter) { + if ((*niter)->name() != X_("Modifier")) { + continue; + } + name = (*niter)->property (X_("name")); + mod = (*niter)->property (X_("modifier")); + + if (name && mod) { + SVAModifier svam (mod->value()); + modifiers.insert (make_pair (name->value(), svam)); + } + } +} + void UIConfiguration::set_variables (const XMLNode& node) { diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h index 9249ebc8b2..55e21045e7 100644 --- a/gtk2_ardour/ui_config.h +++ b/gtk2_ardour/ui_config.h @@ -56,9 +56,11 @@ class UIConfiguration : public PBD::Stateful typedef std::map Colors; typedef std::map ColorAliases; + typedef std::map Modifiers; Colors colors; ColorAliases color_aliases; + Modifiers modifiers; void set_alias (std::string const & name, std::string const & alias); void set_color (const std::string& name, ArdourCanvas::Color); @@ -68,7 +70,8 @@ class UIConfiguration : public PBD::Stateful ArdourCanvas::Color color (const std::string&, bool* failed = 0) const; ArdourCanvas::HSV color_hsv (const std::string&) const; - + ArdourCanvas::SVAModifier modifier (const std::string&); + sigc::signal ParameterChanged; void map_parameters (boost::function&); @@ -108,6 +111,7 @@ class UIConfiguration : public PBD::Stateful int store_color_theme (); void load_color_aliases (XMLNode const &); void load_colors (XMLNode const &); + void load_modifiers (XMLNode const &); void reset_gtk_theme (); void colors_changed (); int load_color_theme (bool allow_own=true);