From 51ab5ccabf432540ca935065f6c6f40a96f42dad Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 26 Oct 2011 21:01:14 +0000 Subject: new ArdourButton class, to start to provide more control over how our buttons work and appear; use ArdourButtons for monitor, solo isolate and solo safe buttons, and in the processor box; don't save UI config file (canvas colors) to the user's home dir unless one or more parameters were modified by the user git-svn-id: svn://localhost/ardour2/branches/3.0@10311 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ui_config.cc | 53 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 8 deletions(-) (limited to 'gtk2_ardour/ui_config.cc') diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc index 10628334fd..84975bdbf2 100644 --- a/gtk2_ardour/ui_config.cc +++ b/gtk2_ardour/ui_config.cc @@ -18,6 +18,7 @@ */ #include +#include #include /* for snprintf, grrr */ #include @@ -28,6 +29,8 @@ #include "pbd/file_utils.h" #include "pbd/error.h" +#include "gtkmm2ext/rgb_macros.h" + #include "ardour/ardour.h" #include "ardour/filesystem_paths.h" @@ -49,7 +52,7 @@ UIConfiguration::UIConfiguration () #include "canvas_vars.h" #undef UI_CONFIG_VARIABLE #undef CANVAS_VARIABLE - hack(true) + _dirty (false) { load_state(); } @@ -73,8 +76,7 @@ UIConfiguration::load_defaults () } if (find_file_in_search_path (ardour_search_path() + system_config_search_path(), - rcfile, default_ui_rc_file) ) - { + rcfile, default_ui_rc_file) ) { XMLTree tree; found = 1; @@ -91,6 +93,8 @@ UIConfiguration::load_defaults () error << string_compose(_("default ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } + + _dirty = false; } return found; @@ -104,8 +108,7 @@ UIConfiguration::load_state () sys::path default_ui_rc_file; if ( find_file_in_search_path (ardour_search_path() + system_config_search_path(), - "ardour3_ui_default.conf", default_ui_rc_file) ) - { + "ardour3_ui_default.conf", default_ui_rc_file) ) { XMLTree tree; found = true; @@ -127,8 +130,7 @@ UIConfiguration::load_state () sys::path user_ui_rc_file; if (find_file_in_search_path (ardour_search_path() + user_config_directory(), - "ardour3_ui.conf", user_ui_rc_file)) - { + "ardour3_ui.conf", user_ui_rc_file)) { XMLTree tree; found = true; @@ -145,12 +147,15 @@ UIConfiguration::load_state () error << string_compose(_("user ui configuration file \"%1\" not loaded successfully."), rcfile) << endmsg; return -1; } + + _dirty = false; } if (!found) error << _("could not find any ui configuration file, canvas will look broken.") << endmsg; pack_canvasvars(); + return 0; } @@ -181,6 +186,8 @@ UIConfiguration::save_state() } } + _dirty = false; + return 0; } @@ -244,6 +251,7 @@ UIConfiguration::set_state (const XMLNode& root, int /*version*/) } } + return 0; } @@ -270,9 +278,38 @@ void UIConfiguration::pack_canvasvars () { #undef CANVAS_VARIABLE -#define CANVAS_VARIABLE(var,name) canvas_colors.push_back(&var); +#define CANVAS_VARIABLE(var,name) canvas_colors.insert (std::pair* >(name,&var)); #include "canvas_vars.h" #undef CANVAS_VARIABLE } +static bool can_abort = false; + +uint32_t +UIConfiguration::color_by_name (const std::string& name) +{ + map* >::iterator i = canvas_colors.find (name); + + if (name == "processor fader led") { + can_abort = true; + } + + if (i != canvas_colors.end()) { + return i->second->get(); + } + + // cerr << string_compose (_("Color %1 not found"), name) << endl; + return RGBA_TO_UINT (random()%256,random()%256,random()%256,0xff); +} + +void +UIConfiguration::set_dirty () +{ + _dirty = true; +} +bool +UIConfiguration::dirty () const +{ + return _dirty; +} -- cgit v1.2.3