use the theme manager dialog to provide control over flat button option, and turn...
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 22 May 2012 16:36:59 +0000 (16:36 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 22 May 2012 16:36:59 +0000 (16:36 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12382 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour_button.cc
gtk2_ardour/theme_manager.cc
gtk2_ardour/theme_manager.h
gtk2_ardour/ui_config_vars.h

index e875116cf0426eb108dd7510e66695ea56052943..3e97099703ca81a6e9ba292a94eff2f617575349 100644 (file)
@@ -49,7 +49,7 @@ using namespace std;
 ArdourButton::Element ArdourButton::default_elements = ArdourButton::Element (ArdourButton::Edge|ArdourButton::Body|ArdourButton::Text);
 ArdourButton::Element ArdourButton::led_default_elements = ArdourButton::Element (ArdourButton::default_elements|ArdourButton::Indicator);
 ArdourButton::Element ArdourButton::just_led_default_elements = ArdourButton::Element (ArdourButton::Edge|ArdourButton::Body|ArdourButton::Indicator);
-bool ArdourButton::_flat_buttons = true;
+bool ArdourButton::_flat_buttons = false;
 
 ArdourButton::ArdourButton (Element e)
        : _elements (e)
index a3ee38e629eb8c9818f771a88311c96051ece5a2..8c9d5594410c81cc559721dd9da2e400bc72c1f5 100644 (file)
@@ -36,6 +36,7 @@
 #include "ardour/filesystem_paths.h"
 #include "ardour/profile.h"
 
+#include "ardour_button.h"
 #include "theme_manager.h"
 #include "rgb_macros.h"
 #include "ardour_ui.h"
@@ -52,10 +53,11 @@ sigc::signal<void> ColorsChanged;
 sigc::signal<void,uint32_t> ColorChanged;
 
 ThemeManager::ThemeManager()
-       : ArdourWindow (_("Theme Manager")),
-         dark_button (_("Dark Theme")),
-         light_button (_("Light Theme")),
-         reset_button (_("Restore Defaults"))
+       : ArdourWindow (_("Theme Manager"))
+       , dark_button (_("Dark Theme"))
+       , light_button (_("Light Theme"))
+       , reset_button (_("Restore Defaults"))
+       , flat_buttons (_("Draw \"flat\" buttons"))
 {
        set_title (_("Theme Manager"));
 
@@ -90,6 +92,7 @@ ThemeManager::ThemeManager()
        vbox->set_homogeneous (false);
        vbox->pack_start (theme_selection_hbox, PACK_SHRINK);
        vbox->pack_start (reset_button, PACK_SHRINK);
+       vbox->pack_start (flat_buttons, PACK_SHRINK);
        vbox->pack_start (scroller);
        add (*vbox);
 
@@ -103,6 +106,7 @@ ThemeManager::ThemeManager()
        dark_button.signal_toggled().connect (sigc::mem_fun (*this, &ThemeManager::on_dark_theme_button_toggled));
        light_button.signal_toggled().connect (sigc::mem_fun (*this, &ThemeManager::on_light_theme_button_toggled));
        reset_button.signal_clicked().connect (sigc::mem_fun (*this, &ThemeManager::reset_canvas_colors));
+       flat_buttons.signal_toggled().connect (sigc::mem_fun (*this, &ThemeManager::on_flat_buttons_toggled));
 
        set_size_request (-1, 400);
        setup_theme ();
@@ -226,6 +230,16 @@ load_rc_file (const string& filename, bool themechange)
 
 #define HACK_PROFILE_IS_SAE() (getenv("ARDOUR_SAE")!=0)
 
+void
+ThemeManager::on_flat_buttons_toggled ()
+{
+       ARDOUR_UI::config()->flat_buttons.set (flat_buttons.get_active());
+       ARDOUR_UI::config()->set_dirty ();
+       ArdourButton::set_flat_buttons (flat_buttons.get_active());
+       /* force a redraw */
+       gtk_rc_reset_styles (gtk_settings_get_default());
+}
+
 void
 ThemeManager::on_dark_theme_button_toggled()
 {
@@ -333,7 +347,9 @@ ThemeManager::setup_theme ()
        } else if (rcfile == "ardour3_ui_light.rc" || rcfile == "ardour3_ui_light_sae.rc") {
                light_button.set_active();
        }
-
+       
+       flat_buttons.set_active (ARDOUR_UI::config()->flat_buttons.get());
+       
        load_rc_file(rcfile, false);
 }
 
index 7ba57df2ba91c4118cf5dcd14b3c0f853ea389d3..2fe4482905119fb9e3b9c9d5304a5b5e87caec14 100644 (file)
@@ -42,6 +42,7 @@ class ThemeManager : public ArdourWindow
 
        void on_dark_theme_button_toggled ();
        void on_light_theme_button_toggled ();
+       void on_flat_buttons_toggled ();
 
   private:
        struct ColorDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
@@ -67,6 +68,7 @@ class ThemeManager : public ArdourWindow
        Gtk::RadioButton dark_button;
        Gtk::RadioButton light_button;
        Gtk::Button reset_button;
+       Gtk::CheckButton flat_buttons;
 
        bool button_press_event (GdkEventButton*);
 };
index 1fa288867fc0f5c65ed05a99860b064dfd2dade1..f42d98476b7c4f462d41d6efcfad15f958a930ba 100644 (file)
@@ -1,2 +1,3 @@
 UI_CONFIG_VARIABLE(std::string, ui_rc_file, "ui-rc-file", "ardour3_ui_dark.rc")
+UI_CONFIG_VARIABLE(bool, flat_buttons, "flat-buttons", false)