Use meta-button for trigger-page sidebar notebook tabs
This reverts and replaces commit 82993157e5.
This commit is contained in:
@@ -129,15 +129,16 @@ TriggerPage::TriggerPage ()
|
||||
_strip_group_box.pack_start (_strip_scroller, true, true);
|
||||
|
||||
/* sidebar */
|
||||
_sidebar_notebook.set_show_tabs (true);
|
||||
_sidebar_notebook.set_show_tabs (false);
|
||||
_sidebar_notebook.set_scrollable (true);
|
||||
_sidebar_notebook.popup_disable ();
|
||||
_sidebar_notebook.set_tab_pos (Gtk::POS_RIGHT);
|
||||
|
||||
add_sidebar_page (_("Clips"), _trigger_clip_picker);
|
||||
add_sidebar_page (_("Tracks"), _trigger_route_list.widget ());
|
||||
add_sidebar_page (_("Sources"), _trigger_source_list.widget ());
|
||||
add_sidebar_page (_("Regions"), _trigger_region_list.widget ());
|
||||
add_sidebar_page (_("Clips"), _("Clips"), _trigger_clip_picker);
|
||||
add_sidebar_page (_("Tracks"), _("Tracks & Busses"), _trigger_route_list.widget ());
|
||||
add_sidebar_page (_("Sources"), _("Sources"), _trigger_source_list.widget ());
|
||||
add_sidebar_page (_("Regions"), _("Regions"), _trigger_region_list.widget ());
|
||||
|
||||
_sidebar_pager2.set_index (3);
|
||||
|
||||
_midi_editor = new Pianoroll (X_("MIDICueEditor"));
|
||||
|
||||
@@ -160,11 +161,29 @@ TriggerPage::TriggerPage ()
|
||||
_parameter_box.pack_start (*table);
|
||||
_parameter_box.show ();
|
||||
|
||||
_sidebar_notebook.signal_switch_page().connect ([this](GtkNotebookPage*, guint page) {
|
||||
std::string label (_sidebar_notebook.get_tab_label_text (*_sidebar_notebook.get_nth_page (page)));
|
||||
_sidebar_pager1.set_active (label);
|
||||
_sidebar_pager2.set_active (label);
|
||||
//instant_save ();
|
||||
});
|
||||
|
||||
_sidebar_pager1.set_name ("tab button");
|
||||
_sidebar_pager2.set_name ("tab button");
|
||||
|
||||
HBox* tabbox = manage (new HBox (true));
|
||||
tabbox->set_spacing (3);
|
||||
tabbox->pack_start (_sidebar_pager1);
|
||||
tabbox->pack_start (_sidebar_pager2);
|
||||
|
||||
_sidebar_vbox.pack_start (*tabbox, false, false, 2);
|
||||
_sidebar_vbox.pack_start (_sidebar_notebook);
|
||||
|
||||
/* Top-level Layout */
|
||||
content_app_bar.add (_application_bar);
|
||||
content_main.add (_strip_group_box);
|
||||
content_att_bottom.add (_parameter_box);
|
||||
content_att_right.add (_sidebar_notebook);
|
||||
content_att_right.add (_sidebar_vbox);
|
||||
|
||||
/* Show all */
|
||||
_strip_group_box.show ();
|
||||
@@ -173,7 +192,7 @@ TriggerPage::TriggerPage ()
|
||||
_cue_area_frame.show_all ();
|
||||
_trigger_clip_picker.show ();
|
||||
_no_strips.show ();
|
||||
_sidebar_notebook.show_all ();
|
||||
_sidebar_vbox.show_all ();
|
||||
|
||||
/* setup keybidings */
|
||||
contents().set_data ("ardour-bindings", bindings);
|
||||
@@ -237,6 +256,8 @@ TriggerPage::get_state () const
|
||||
node->add_child_nocopy (Tabbable::get_state ());
|
||||
|
||||
node->set_property (X_("triggerpage-sidebar-page"), _sidebar_notebook.get_current_page ());
|
||||
node->set_property (X_("triggerpage-sidebar-btn1"), _sidebar_pager1.index ());
|
||||
node->set_property (X_("triggerpage-sidebar-btn2"), _sidebar_pager2.index ());
|
||||
|
||||
node->add_child_nocopy (_midi_editor->get_state());
|
||||
|
||||
@@ -258,6 +279,15 @@ TriggerPage::focus_on_clock()
|
||||
int
|
||||
TriggerPage::set_state (const XMLNode& node, int version)
|
||||
{
|
||||
guint index;
|
||||
if (node.get_property (X_("triggerpage-sidebar-btn1"), index)) {
|
||||
_sidebar_pager1.set_index (index);
|
||||
}
|
||||
|
||||
if (node.get_property (X_("triggerpage-sidebar-btn2"), index)) {
|
||||
_sidebar_pager2.set_index (index);
|
||||
}
|
||||
|
||||
int32_t sidebar_page;
|
||||
if (node.get_property (X_("triggerpage-sidebar-page"), sidebar_page)) {
|
||||
_sidebar_notebook.set_current_page (sidebar_page);
|
||||
@@ -397,14 +427,12 @@ TriggerPage::update_title ()
|
||||
}
|
||||
|
||||
void
|
||||
TriggerPage::add_sidebar_page (string const & name, Gtk::Widget& widget)
|
||||
TriggerPage::add_sidebar_page (string const& label, 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);
|
||||
_sidebar_notebook.append_page (widget, name);
|
||||
using namespace Menu_Helpers;
|
||||
_sidebar_pager1.add_item (label, name, [this, &widget]() {_sidebar_notebook.set_current_page (_sidebar_notebook.page_num (widget)); });
|
||||
_sidebar_pager2.add_item (label, name, [this, &widget]() {_sidebar_notebook.set_current_page (_sidebar_notebook.page_num (widget)); });
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "gtkmm2ext/bindings.h"
|
||||
#include "gtkmm2ext/cairo_widget.h"
|
||||
|
||||
#include "widgets/metabutton.h"
|
||||
#include "widgets/pane.h"
|
||||
#include "widgets/tabbable.h"
|
||||
|
||||
@@ -85,7 +86,7 @@ private:
|
||||
void rec_state_changed ();
|
||||
void rec_state_clicked ();
|
||||
|
||||
void add_sidebar_page (std::string const&, Gtk::Widget&);
|
||||
void add_sidebar_page (std::string const&, std::string const&, Gtk::Widget&);
|
||||
|
||||
bool strip_button_release_event (GdkEventButton*, TriggerStrip*);
|
||||
bool no_strip_button_event (GdkEventButton*);
|
||||
@@ -110,18 +111,21 @@ private:
|
||||
|
||||
Gtkmm2ext::Bindings* bindings;
|
||||
|
||||
Gtk::HBox _strip_group_box;
|
||||
Gtk::ScrolledWindow _strip_scroller;
|
||||
Gtk::HBox _strip_packer;
|
||||
Gtk::EventBox _no_strips;
|
||||
Gtk::Alignment _cue_area_frame;
|
||||
Gtk::VBox _cue_area_box;
|
||||
Gtk::HBox _parameter_box;
|
||||
Gtk::Notebook _sidebar_notebook;
|
||||
TriggerClipPicker _trigger_clip_picker;
|
||||
TriggerSourceList _trigger_source_list;
|
||||
TriggerRegionList _trigger_region_list;
|
||||
TriggerRouteList _trigger_route_list;
|
||||
Gtk::HBox _strip_group_box;
|
||||
Gtk::ScrolledWindow _strip_scroller;
|
||||
Gtk::HBox _strip_packer;
|
||||
Gtk::EventBox _no_strips;
|
||||
Gtk::Alignment _cue_area_frame;
|
||||
Gtk::VBox _cue_area_box;
|
||||
Gtk::HBox _parameter_box;
|
||||
Gtk::VBox _sidebar_vbox;
|
||||
ArdourWidgets::MetaButton _sidebar_pager1;
|
||||
ArdourWidgets::MetaButton _sidebar_pager2;
|
||||
Gtk::Notebook _sidebar_notebook;
|
||||
TriggerClipPicker _trigger_clip_picker;
|
||||
TriggerSourceList _trigger_source_list;
|
||||
TriggerRegionList _trigger_region_list;
|
||||
TriggerRouteList _trigger_route_list;
|
||||
|
||||
CueBoxWidget _cue_box;
|
||||
FittedCanvasWidget _master_widget;
|
||||
|
||||
Reference in New Issue
Block a user