diff options
author | Doug McLain <doug@nostar.net> | 2007-06-15 22:08:27 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2007-06-15 22:08:27 +0000 |
commit | 789cbb21810802adc478de3134fa42950c5e8569 (patch) | |
tree | 565760bb936fea79f18697f72126111169bebae1 /libs/ardour/configuration.cc | |
parent | cd9fdb935f08966cc8c7170a39870e8adcae69d8 (diff) |
Major Theme Manager changes, see ardour-dev
git-svn-id: svn://localhost/ardour2/trunk@1987 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/configuration.cc')
-rw-r--r-- | libs/ardour/configuration.cc | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/libs/ardour/configuration.cc b/libs/ardour/configuration.cc index c8d71c5155..58d702e3d9 100644 --- a/libs/ardour/configuration.cc +++ b/libs/ardour/configuration.cc @@ -51,7 +51,12 @@ Configuration::Configuration () #define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) var (name,value,mutator), #include "ardour/configuration_vars.h" #undef CONFIG_VARIABLE -#undef CONFIG_VARIABLE_SPECIAL +#undef CONFIG_VARIABLE_SPECIAL + +#undef CANVAS_VARIABLE +#define CANVAS_VARIABLE(var,name,value) var (name,value), // <-- is this really so bad? +#include "ardour/canvas_vars.h" +#undef CANVAS_VARIABLE current_owner (ConfigVariableBase::Default) { @@ -120,6 +125,7 @@ Configuration::load_state () } } + pack_canvasvars(); return 0; } @@ -162,7 +168,8 @@ Configuration::get_state () root->add_child_nocopy(m->second->get_state()); } - root->add_child_nocopy (get_variables (sigc::mem_fun (*this, &Configuration::save_config_options_predicate))); + root->add_child_nocopy (get_variables (sigc::mem_fun (*this, &Configuration::save_config_options_predicate), "Config")); + root->add_child_nocopy (get_variables (sigc::mem_fun (*this, &Configuration::save_config_options_predicate), "Canvas")); if (_extra_xml) { root->add_child_copy (*_extra_xml); @@ -174,23 +181,28 @@ Configuration::get_state () } XMLNode& -Configuration::get_variables (sigc::slot<bool,ConfigVariableBase::Owner> predicate) +Configuration::get_variables (sigc::slot<bool,ConfigVariableBase::Owner> predicate, std::string which_node) { XMLNode* node; LocaleGuard lg (X_("POSIX")); - node = new XMLNode("Config"); + node = new XMLNode(which_node); #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL -#define CONFIG_VARIABLE(type,var,name,value) \ - if (predicate (var.owner())) { var.add_to_node (*node); } -#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \ - if (predicate (var.owner())) { var.add_to_node (*node); } +#define CONFIG_VARIABLE(type,var,Name,value) \ + if (node->name() == "Config") { if (predicate (var.owner())) { var.add_to_node (*node); }} +#define CONFIG_VARIABLE_SPECIAL(type,var,Name,value,mutator) \ + if (node->name() == "Config") { if (predicate (var.owner())) { var.add_to_node (*node); }} #include "ardour/configuration_vars.h" #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL - + +#undef CANVAS_VARIABLE +#define CANVAS_VARIABLE(var,Name,value) if (node->name() == "Canvas") { if (predicate (ConfigVariableBase::Config)) { var.add_to_node (*node); }} +#include "ardour/canvas_vars.h" +#undef CANVAS_VARIABLE + return *node; } @@ -222,7 +234,7 @@ Configuration::set_state (const XMLNode& root) warning << _("ill-formed MIDI port specification in ardour rcfile (ignored)") << endmsg; } - } else if (node->name() == "Config") { + } else if (node->name() == "Config" || node->name() == "Canvas" ) { set_variables (*node, ConfigVariableBase::Config); @@ -252,10 +264,30 @@ Configuration::set_variables (const XMLNode& node, ConfigVariableBase::Owner own if (var.set_from_node (node, owner)) { \ ParameterChanged (name); \ } + #include "ardour/configuration_vars.h" #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL +#undef CANVAS_VARIABLE +#define CANVAS_VARIABLE(var,name,value) \ + if (var.set_from_node (node, owner)) { \ + ParameterChanged (name); \ + } +#include "ardour/canvas_vars.h" +#undef CANVAS_VARIABLE + +} + +void +Configuration::pack_canvasvars () +{ +#undef CANVAS_VARIABLE +#define CANVAS_VARIABLE(var,name,value) canvas_colors.push_back(&var); +#include "ardour/canvas_vars.h" +#undef CANVAS_VARIABLE + cerr << "Configuration::pack_canvasvars () called, canvas_colors.size() = " << canvas_colors.size() << endl; + } Configuration::MidiPortDescriptor::MidiPortDescriptor (const XMLNode& node) |