+void
+UIConfiguration::load_color_aliases (XMLNode const & node)
+{
+ XMLNodeList const nlist = node.children();
+ XMLNodeConstIterator niter;
+ XMLProperty const *name;
+ XMLProperty const *alias;
+
+ for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
+ XMLNode const * child = *niter;
+ if (child->name() != X_("ColorAlias")) {
+ continue;
+ }
+ name = child->property (X_("name"));
+ alias = child->property (X_("alias"));
+
+ if (name && alias) {
+ color_aliases[name->value()] = alias->value();
+ }
+ }
+}
+
+void
+UIConfiguration::load_colors (XMLNode const & node)
+{
+ XMLNodeList const nlist = node.children();
+ XMLNodeConstIterator niter;
+ XMLProperty const *name;
+ XMLProperty const *color;
+
+ /* don't clear colors, so that we can load > 1 color file and have
+ the subsequent ones overwrite the later ones.
+ */
+
+ for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
+ XMLNode const * child = *niter;
+ if (child->name() != X_("Color")) {
+ continue;
+ }
+ name = child->property (X_("name"));
+ color = child->property (X_("value"));
+
+ if (name && color) {
+ ArdourCanvas::Color c;
+ c = strtoul (color->value().c_str(), 0, 16);
+ /* insert or replace color name definition */
+ colors[name->value()] = c;
+ }
+ }
+}
+
+void
+UIConfiguration::load_modifiers (XMLNode const & node)
+{
+ PBD::LocaleGuard lg;
+ XMLNodeList const nlist = node.children();
+ XMLNodeConstIterator niter;
+ XMLProperty const *name;
+ XMLProperty const *mod;
+
+ for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
+ XMLNode const * child = *niter;
+ if (child->name() != X_("Modifier")) {
+ continue;
+ }
+
+ name = child->property (X_("name"));
+ mod = child->property (X_("modifier"));
+
+ if (name && mod) {
+ SVAModifier svam (mod->value());
+ modifiers[name->value()] = svam;
+ }
+ }
+}
+