diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-04-21 15:10:49 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-02-22 15:31:21 -0500 |
commit | 02c8d6d648a4d54dc796fd994106e74b2e9dae32 (patch) | |
tree | cfef34d65d34e99e7b03796dbc52658d8e263933 /gtk2_ardour/ardour_ui2.cc | |
parent | b2dc5a52b788b77ceb826fcc897c8ead11b8a6ba (diff) |
the basics of tabbed
Diffstat (limited to 'gtk2_ardour/ardour_ui2.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 49 |
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; } |