From 213cc626bebfab69da1909cd61613965f7942259 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 17 Jan 2022 22:06:48 +0100 Subject: [PATCH] Add sidebar to trigger-page --- gtk2_ardour/trigger_page.cc | 29 ++++++++++++++++++++++++++++- gtk2_ardour/trigger_page.h | 7 +++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index 6f4a657d25..e11e791b37 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -118,9 +118,18 @@ TriggerPage::TriggerPage () _strip_group_box.pack_start (_cue_area_frame, false, false); _strip_group_box.pack_start (_strip_scroller, true, true); + /* sidebar */ + _sidebar_notebook.set_show_tabs (true); + _sidebar_notebook.set_scrollable (true); + _sidebar_notebook.popup_disable (); + _sidebar_notebook.set_tab_pos (Gtk::POS_RIGHT); + + _sidebar_vbox.pack_start (_sidebar_notebook); + add_sidebar_page (_("Clips"), _trigger_clip_picker); + /* Upper pane ([slot | strips] | file browser) */ _pane_upper.add (_strip_group_box); - _pane_upper.add (_trigger_clip_picker); + _pane_upper.add (_sidebar_vbox); /* Bottom -- Properties of selected Slot/Region */ Gtk::Table* table = manage (new Gtk::Table); @@ -165,6 +174,7 @@ TriggerPage::TriggerPage () _cue_area_frame.show_all (); _trigger_clip_picker.show (); _no_strips.show (); + _sidebar_notebook.show_all (); /* setup keybidings */ _content.set_data ("ardour-bindings", bindings); @@ -226,12 +236,18 @@ TriggerPage::get_state () node->set_property (X_("triggerpage-vpane-pos"), _pane.get_divider ()); node->set_property (X_("triggerpage-hpane-pos"), _pane_upper.get_divider ()); + node->set_property (X_("triggerpage-sidebar-page"), _sidebar_notebook.get_current_page ()); + return *node; } int TriggerPage::set_state (const XMLNode& node, int version) { + int32_t sidebar_page; + if (node.get_property (X_("triggerpage-sidebar-page"), sidebar_page)) { + _sidebar_notebook.set_current_page (sidebar_page); + } return Tabbable::set_state (node, version); } @@ -341,6 +357,17 @@ TriggerPage::update_title () } } +void +TriggerPage::add_sidebar_page (string const & name, Gtk::Widget& widget) +{ + EventBox* b = manage (new EventBox); + Label* l = manage (new Label (name)); + l->set_angle (-90); + b->add (*l); + b->show_all (); + _sidebar_notebook.append_page (widget, *b); +} + void TriggerPage::initial_track_display () { diff --git a/gtk2_ardour/trigger_page.h b/gtk2_ardour/trigger_page.h index 0c26f5d1a3..b76f2dd5ca 100644 --- a/gtk2_ardour/trigger_page.h +++ b/gtk2_ardour/trigger_page.h @@ -72,6 +72,8 @@ private: void pi_property_changed (PBD::PropertyChange const&); void stripable_property_changed (PBD::PropertyChange const&, boost::weak_ptr); + void add_sidebar_page (std::string const&, Gtk::Widget&); + bool no_strip_button_event (GdkEventButton*); bool no_strip_drag_motion (Glib::RefPtr const&, int, int, guint); void no_strip_drag_data_received (Glib::RefPtr const&, int, int, Gtk::SelectionData const&, guint, guint); @@ -98,8 +100,9 @@ private: Gtk::Alignment _cue_area_frame; Gtk::VBox _cue_area_box; Gtk::HBox _parameter_box; - - TriggerClipPicker _trigger_clip_picker; + Gtk::VBox _sidebar_vbox; + Gtk::Notebook _sidebar_notebook; + TriggerClipPicker _trigger_clip_picker; CueBoxWidget _cue_box; FittedCanvasWidget _master_widget;