summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-12-15 12:32:41 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-12-15 12:32:41 -0500
commitf6e88ead01b1823f1374afdbc3d8b9a5639e7f46 (patch)
tree9cddcd830da9d58bf364b89ee298a973a6ead8d1 /gtk2_ardour
parent8b230014412b90b78240685b16a8d4e624cc5ce6 (diff)
move theme manager into preferences window
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour.menus.in1
-rw-r--r--gtk2_ardour/ardour_ui.cc12
-rw-r--r--gtk2_ardour/ardour_ui.h3
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc1
-rw-r--r--gtk2_ardour/mnemonic-us.bindings.in1
-rw-r--r--gtk2_ardour/option_editor.cc15
-rw-r--r--gtk2_ardour/option_editor.h3
-rw-r--r--gtk2_ardour/rc_option_editor.cc5
-rw-r--r--gtk2_ardour/theme_manager.cc38
-rw-r--r--gtk2_ardour/theme_manager.h4
10 files changed, 40 insertions, 43 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index d7bd5eac7b..d4b65025c6 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -505,7 +505,6 @@
<menuitem action='toggle-locations'/>
<menuitem action='toggle-key-editor'/>
<menuitem action='toggle-bundle-manager'/>
- <menuitem action='toggle-theme-manager'/>
<menuitem action='toggle-big-clock'/>
#if 0
<menuitem action='toggle-speaker-config'/>
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index f4c5bdd81c..3ee75926fa 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -202,7 +202,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
, editor_meter_peak_display()
, speaker_config_window (X_("speaker-config"), _("Speaker Configuration"))
- , theme_manager (X_("theme-manager"), _("Theme Manager"))
, key_editor (X_("key-editor"), _("Key Bindings"))
, rc_option_editor (X_("rc-options-editor"), _("Preferences"))
, add_route_dialog (X_("add-routes"), _("Add Tracks/Busses"))
@@ -349,7 +348,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
const XMLNode* ui_xml = Config->extra_xml (X_("UI"));
if (ui_xml) {
- theme_manager.set_state (*ui_xml);
key_editor.set_state (*ui_xml);
rc_option_editor.set_state (*ui_xml);
session_option_editor.set_state (*ui_xml);
@@ -365,7 +363,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
midi_port_matrix.set_state (*ui_xml);
}
- WM::Manager::instance().register_window (&theme_manager);
WM::Manager::instance().register_window (&key_editor);
WM::Manager::instance().register_window (&rc_option_editor);
WM::Manager::instance().register_window (&session_option_editor);
@@ -381,12 +378,9 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
WM::Manager::instance().register_window (&audio_port_matrix);
WM::Manager::instance().register_window (&midi_port_matrix);
- /* We need to instantiate the theme manager because it loads our
- theme files. This should really change so that its window
- and its functionality are separate
- */
-
- (void) theme_manager.get (true);
+ /* Trigger setting up the color scheme and loading the GTK RC file */
+
+ ARDOUR_UI::config()->load_rc_file (false);
_process_thread = new ProcessThread ();
_process_thread->init ();
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index f752295f78..bd266a0f80 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -90,8 +90,6 @@
#include "route_params_ui.h"
#include "session_option_editor.h"
#include "speaker_dialog.h"
-#include "theme_manager.h"
-
class VideoTimeLine;
class ArdourKeyboard;
@@ -628,7 +626,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
/* Dialogs that can be created via new<T> */
WM::Proxy<SpeakerDialog> speaker_config_window;
- WM::Proxy<ThemeManager> theme_manager;
WM::Proxy<KeyEditor> key_editor;
WM::Proxy<RCOptionEditor> rc_option_editor;
WM::Proxy<AddRouteDialog> add_route_dialog;
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc
index 6545253582..979e2f487c 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -280,7 +280,6 @@ ARDOUR_UI::unload_session (bool hide_stuff)
editor->hide ();
mixer->hide ();
meterbridge->hide ();
- theme_manager->hide ();
audio_port_matrix->hide();
midi_port_matrix->hide();
route_params->hide();
diff --git a/gtk2_ardour/mnemonic-us.bindings.in b/gtk2_ardour/mnemonic-us.bindings.in
index 703ff7a585..8c3126315f 100644
--- a/gtk2_ardour/mnemonic-us.bindings.in
+++ b/gtk2_ardour/mnemonic-us.bindings.in
@@ -216,7 +216,6 @@ This mode provides many different operations on both regions and control points,
;@-group|Editor/crop|c|some text
@mmode|MouseMode/set-mouse-mode-cut|c|cut mode
@edit|Editor/editor-copy|<@PRIMARY@>c|copy
-@wvis|Window/toggle-theme-manager|<@WINDOW@>c|toggle color manager
@rop|Region/set-region-sync-position|v|set region sync point
@edit|Editor/editor-paste|<@PRIMARY@>v|paste
@-group|Editor/brush-at-mouse|<@PRIMARY@>b|some text
diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc
index 137d6b98c8..aa975b6b94 100644
--- a/gtk2_ardour/option_editor.cc
+++ b/gtk2_ardour/option_editor.cc
@@ -445,6 +445,21 @@ OptionEditor::add_option (std::string const & pn, OptionEditorComponent* o)
o->set_state_from_config ();
}
+/** Add a new page
+ * @param pn Page name (will be created if it doesn't already exist)
+ * @param w widget that fills the page
+ */
+void
+OptionEditor::add_page (std::string const & pn, Gtk::Widget& w)
+{
+ if (_pages.find (pn) == _pages.end()) {
+ _pages[pn] = new OptionEditorPage (_notebook, pn);
+ }
+
+ OptionEditorPage* p = _pages[pn];
+ p->box.pack_start (w, true, true);
+}
+
void
OptionEditor::set_current_page (string const & p)
{
diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h
index 4e3269e43c..cb5f76f31d 100644
--- a/gtk2_ardour/option_editor.h
+++ b/gtk2_ardour/option_editor.h
@@ -651,7 +651,8 @@ public:
~OptionEditor ();
void add_option (std::string const &, OptionEditorComponent *);
-
+ void add_page (std::string const &, Gtk::Widget& page_widget);
+
void set_current_page (std::string const &);
protected:
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 716918f3a6..5646602e4c 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -54,6 +54,7 @@
#include "midi_port_dialog.h"
#include "sfdb_ui.h"
#include "keyboard.h"
+#include "theme_manager.h"
#include "i18n.h"
using namespace std;
@@ -2336,6 +2337,10 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_style_led)
));
+ /* and now the theme manager */
+
+ ThemeManager* tm = manage (new ThemeManager);
+ add_page (_("Theme"), *tm);
}
void
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc
index 958d952d07..8a362d17ba 100644
--- a/gtk2_ardour/theme_manager.cc
+++ b/gtk2_ardour/theme_manager.cc
@@ -62,8 +62,7 @@ namespace ARDOUR_UI_UTILS {
}
ThemeManager::ThemeManager()
- : ArdourWindow (_("Theme Manager"))
- , dark_button (_("Dark Theme"))
+ : dark_button (_("Dark Theme"))
, light_button (_("Light Theme"))
, reset_button (_("Restore Defaults"))
, flat_buttons (_("Draw \"flat\" buttons"))
@@ -80,8 +79,6 @@ ThemeManager::ThemeManager()
, palette_group (0)
, palette_window (0)
{
- set_title (_("Theme Manager"));
-
/* Now the alias list */
alias_list = TreeStore::create (alias_columns);
@@ -113,17 +110,16 @@ ThemeManager::ThemeManager()
theme_selection_hbox.pack_start (dark_button);
theme_selection_hbox.pack_start (light_button);
- Gtk::VBox* vbox = Gtk::manage (new Gtk::VBox ());
- vbox->set_homogeneous (false);
- vbox->pack_start (theme_selection_hbox, PACK_SHRINK);
- vbox->pack_start (reset_button, PACK_SHRINK);
+ set_homogeneous (false);
+ pack_start (theme_selection_hbox, PACK_SHRINK);
+ pack_start (reset_button, PACK_SHRINK);
#ifndef __APPLE__
- vbox->pack_start (all_dialogs, PACK_SHRINK);
+ pack_start (all_dialogs, PACK_SHRINK);
#endif
- vbox->pack_start (flat_buttons, PACK_SHRINK);
- vbox->pack_start (blink_rec_button, PACK_SHRINK);
- vbox->pack_start (region_color_button, PACK_SHRINK);
- vbox->pack_start (show_clipping_button, PACK_SHRINK);
+ pack_start (flat_buttons, PACK_SHRINK);
+ pack_start (blink_rec_button, PACK_SHRINK);
+ pack_start (region_color_button, PACK_SHRINK);
+ pack_start (show_clipping_button, PACK_SHRINK);
Gtk::HBox* hbox;
@@ -137,7 +133,7 @@ ThemeManager::ThemeManager()
hbox->set_spacing (6);
hbox->pack_start (icon_set_label, false, false);
hbox->pack_start (icon_set_dropdown, true, true);
- vbox->pack_start (*hbox, PACK_SHRINK);
+ pack_start (*hbox, PACK_SHRINK);
}
@@ -145,13 +141,13 @@ ThemeManager::ThemeManager()
hbox->set_spacing (6);
hbox->pack_start (waveform_gradient_depth, true, true);
hbox->pack_start (waveform_gradient_depth_label, false, false);
- vbox->pack_start (*hbox, PACK_SHRINK);
+ pack_start (*hbox, PACK_SHRINK);
hbox = Gtk::manage (new Gtk::HBox());
hbox->set_spacing (6);
hbox->pack_start (timeline_item_gradient_depth, true, true);
hbox->pack_start (timeline_item_gradient_depth_label, false, false);
- vbox->pack_start (*hbox, PACK_SHRINK);
+ pack_start (*hbox, PACK_SHRINK);
palette_group = initialize_palette_canvas (*palette_viewport.canvas());
palette_viewport.signal_size_allocate().connect (sigc::bind (sigc::mem_fun (*this, &ThemeManager::palette_canvas_allocated), palette_group, palette_viewport.canvas(),
@@ -164,11 +160,9 @@ ThemeManager::ThemeManager()
notebook.append_page (palette_scroller, _("Palette"));
notebook.append_page (modifier_scroller, _("Modifiers"));
- vbox->pack_start (notebook);
-
- vbox->show_all ();
+ pack_start (notebook);
- add (*vbox);
+ show_all ();
waveform_gradient_depth.set_update_policy (Gtk::UPDATE_DELAYED);
timeline_item_gradient_depth.set_update_policy (Gtk::UPDATE_DELAYED);
@@ -205,10 +199,6 @@ ThemeManager::ThemeManager()
setup_aliases ();
setup_modifiers ();
- /* Trigger setting up the color scheme and loading the GTK RC file */
-
- ARDOUR_UI::config()->load_rc_file (false);
-
ARDOUR_UI_UTILS::ColorsChanged.connect (sigc::mem_fun (*this, &ThemeManager::colors_changed));
}
diff --git a/gtk2_ardour/theme_manager.h b/gtk2_ardour/theme_manager.h
index e9a12b185e..87c66cf1ed 100644
--- a/gtk2_ardour/theme_manager.h
+++ b/gtk2_ardour/theme_manager.h
@@ -32,8 +32,6 @@
#include "canvas/types.h"
#include "canvas/canvas.h"
-#include "ardour_window.h"
-
#include "ui_config.h"
namespace ArdourCanvas {
@@ -43,7 +41,7 @@ namespace ArdourCanvas {
class ArdourDialog;
-class ThemeManager : public ArdourWindow
+class ThemeManager : public Gtk::VBox
{
public:
ThemeManager();