summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui2.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-04-21 15:10:49 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-22 15:31:21 -0500
commit02c8d6d648a4d54dc796fd994106e74b2e9dae32 (patch)
treecfef34d65d34e99e7b03796dbc52658d8e263933 /gtk2_ardour/ardour_ui2.cc
parentb2dc5a52b788b77ceb826fcc897c8ead11b8a6ba (diff)
the basics of tabbed
Diffstat (limited to 'gtk2_ardour/ardour_ui2.cc')
-rw-r--r--gtk2_ardour/ardour_ui2.cc49
1 files changed, 39 insertions, 10 deletions
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index 3e8fde5dbb..554e955dbf 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -66,6 +66,22 @@ using namespace Gtk;
using namespace Glib;
using namespace ARDOUR_UI_UTILS;
+
+static GtkNotebook*
+tab_window_root_drop (GtkNotebook* src,
+ GtkWidget* w,
+ gint x,
+ gint y,
+ gpointer user_data)
+{
+ Gtk::Notebook* nb = ARDOUR_UI::instance()->tab_window_root_drop (src, w, x, y, user_data);
+ if (nb) {
+ return nb->gobj();
+ } else {
+ return 0;
+ }
+}
+
int
ARDOUR_UI::setup_windows ()
{
@@ -112,6 +128,15 @@ ARDOUR_UI::setup_windows ()
editor->add_toplevel_menu (top_packer);
editor->add_transport_frame (transport_frame);
+ editor->tabs().append_page (rc_option_editor_placeholder, _("Preferences"));
+
+ editor->tabs().signal_switch_page().connect (sigc::mem_fun (*this, &ARDOUR_UI::tabs_switch));
+
+ /* It would be nice if Gtkmm had wrapped this rather than just
+ * deprecating the old set_window_creation_hook() method, but oh well...
+ */
+ g_signal_connect (editor->tabs().gobj(), "create-window",
+ (GCallback) ::tab_window_root_drop, this);
setup_transport();
@@ -123,6 +148,18 @@ ARDOUR_UI::setup_windows ()
}
void
+ARDOUR_UI::tabs_switch (GtkNotebookPage*, guint page_number)
+{
+ if (page_number == 2) {
+ if (!rc_option_editor) {
+ rc_option_editor = new RCOptionEditor;
+ rc_option_editor_placeholder.pack_start (*rc_option_editor, true, true);
+ rc_option_editor_placeholder.show_all ();
+ }
+ }
+}
+
+void
ARDOUR_UI::setup_tooltips ()
{
set_tip (roll_button, _("Play from playhead"));
@@ -696,11 +733,7 @@ ARDOUR_UI::restore_editing_space ()
void
ARDOUR_UI::show_ui_prefs ()
{
- RefPtr<Action> act = ActionManager::get_action (X_("Window"), X_("toggle-rc-options-editor"));
- assert (act);
-
- act->activate();
-
+ tabs().set_current_page (2);
rc_option_editor->set_current_page (_("GUI"));
}
@@ -713,11 +746,7 @@ ARDOUR_UI::click_button_clicked (GdkEventButton* ev)
return false;
}
- RefPtr<Action> act = ActionManager::get_action (X_("Window"), X_("toggle-rc-options-editor"));
- assert (act);
-
- act->activate();
-
+ tabs().set_current_page (2);
rc_option_editor->set_current_page (_("Misc"));
return true;
}