From 7092ef3d08f3c5e0017ea5c40355404768a33ad4 Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Wed, 27 Jun 2007 12:12:34 +0000 Subject: [PATCH] Move ARDOUR_UI::ThemeChanged signal into Gtkmm2ext::UI This means ThemeManager no longer depends on ARDOUR_UI git-svn-id: svn://localhost/ardour2/trunk@2057 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardour_ui.cc | 6 ++---- gtk2_ardour/ardour_ui.h | 2 -- gtk2_ardour/gain_meter.cc | 8 ++++---- gtk2_ardour/gain_meter.h | 3 ++- gtk2_ardour/theme_manager.cc | 10 +--------- libs/gtkmm2ext/gtk_ui.cc | 3 +++ libs/gtkmm2ext/gtkmm2ext/gtk_ui.h | 2 ++ 7 files changed, 14 insertions(+), 20 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 77bff388d4..2b6310327a 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -97,7 +97,6 @@ sigc::signal ARDOUR_UI::Blink; sigc::signal ARDOUR_UI::RapidScreenUpdate; sigc::signal ARDOUR_UI::SuperRapidScreenUpdate; sigc::signal ARDOUR_UI::Clock; -sigc::signal ThemeChanged; ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) @@ -208,8 +207,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) gettimeofday (&last_peak_grab, 0); gettimeofday (&last_shuttle_request, 0); - ThemeChanged.connect (mem_fun(*this, &ARDOUR_UI::load_rcfile)); - ARDOUR::Diskstream::DiskOverrun.connect (mem_fun(*this, &ARDOUR_UI::disk_overrun_handler)); ARDOUR::Diskstream::DiskUnderrun.connect (mem_fun(*this, &ARDOUR_UI::disk_underrun_handler)); @@ -1526,7 +1523,8 @@ ARDOUR_UI::setup_theme () cerr << "Loading ui configuration file " << rcfile << endl; } - ThemeChanged (rcfile); //EMIT SIGNAL + load_rcfile(rcfile); + theme_manager->setup_theme(); } diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 08485d9ca3..f76f5e73df 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -92,8 +92,6 @@ namespace ALSA { class MultiChannelDevice; } -extern sigc::signal ThemeChanged; - #define FRAME_NAME "BaseFrame" class ARDOUR_UI : public Gtkmm2ext::UI diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index bb925d8f8e..f67682019e 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -211,7 +212,7 @@ GainMeter::GainMeter (boost::shared_ptr io, Session& s) ResetAllPeakDisplays.connect (mem_fun(*this, &GainMeter::reset_peak_display)); ResetGroupPeakDisplays.connect (mem_fun(*this, &GainMeter::reset_group_peak_display)); - ThemeChanged.connect (mem_fun(*this, &GainMeter::redraw_pixmaps)); + UI::instance()->theme_changed.connect (mem_fun(*this, &GainMeter::on_theme_changed)); } void @@ -317,11 +318,10 @@ GainMeter::meter_metrics_expose (GdkEventExpose *ev) return true; } -int -GainMeter::redraw_pixmaps(string blah) +void +GainMeter::on_theme_changed() { style_changed = true; - return 0; } GainMeter::~GainMeter () diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index c97ca80971..447271ed55 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -186,7 +186,8 @@ class GainMeter : public Gtk::VBox static Glib::RefPtr slider; static Glib::RefPtr rail; static int setup_slider_pix (); - int redraw_pixmaps(string); + + void on_theme_changed (); bool style_changed; }; diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc index 8744d887da..f920a3d996 100644 --- a/gtk2_ardour/theme_manager.cc +++ b/gtk2_ardour/theme_manager.cc @@ -33,7 +33,6 @@ #include "theme_manager.h" #include "rgb_macros.h" -#include "ardour_ui.h" #include "i18n.h" @@ -178,14 +177,10 @@ ThemeManager::button_press_event (GdkEventButton* ev) void ThemeManager::load_rc(int which) { - if (which == 1) { Config->set_ui_rc_file("ardour2_ui_dark.rc"); - cerr << "dark theme selected" << endl; - } else { Config->set_ui_rc_file("ardour2_ui_light.rc"); - cerr << "light theme selected" << endl; } sys::path rc_file_path; @@ -193,10 +188,7 @@ ThemeManager::load_rc(int which) find_file_in_search_path (ardour_search_path() + system_config_search_path(), Config->get_ui_rc_file(), rc_file_path); - ThemeChanged(rc_file_path.to_string()); //EMIT SIGNAL - - cerr << "load_rc() called " << rc_file_path.to_string() << endl; - + Gtkmm2ext::UI::instance()->load_rcfile (rc_file_path.to_string()); } void diff --git a/libs/gtkmm2ext/gtk_ui.cc b/libs/gtkmm2ext/gtk_ui.cc index d6217c16d6..2e130f066e 100644 --- a/libs/gtkmm2ext/gtk_ui.cc +++ b/libs/gtkmm2ext/gtk_ui.cc @@ -201,6 +201,9 @@ UI::load_rcfile (string path) RC::reset_styles(Gtk::Settings::get_default()); + + theme_changed.emit(); + return 0; } diff --git a/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h b/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h index c6d8656b03..37945fd490 100644 --- a/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h +++ b/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h @@ -132,6 +132,8 @@ class UI : public Receiver, public AbstractUI sigc::signal starting; sigc::signal stopping; + sigc::signal theme_changed; + static bool just_hide_it (GdkEventAny *, Gtk::Window *); static pthread_t the_gui_thread() { return gui_thread; } -- 2.30.2