diff --git a/gtk2_ardour/mixer_snapshots.cc b/gtk2_ardour/mixer_snapshots.cc index 0742a96c07..bcb53e63a8 100644 --- a/gtk2_ardour/mixer_snapshots.cc +++ b/gtk2_ardour/mixer_snapshots.cc @@ -52,6 +52,8 @@ using namespace ARDOUR; using namespace ARDOUR_UI_UTILS; MixerSnapshotList::MixerSnapshotList () + : add_template_button("Add Template") + , add_session_template_button("Add from Session") { _snapshot_model = ListStore::create (_columns); _snapshot_display.set_model (_snapshot_model); @@ -60,9 +62,13 @@ MixerSnapshotList::MixerSnapshotList () _snapshot_display.set_size_request (75, -1); _snapshot_display.set_headers_visible (true); _snapshot_display.set_reorderable (false); + _scroller.add (_snapshot_display); _scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); + // btn_add->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &MixerSnapshotDialog::new_snapshot), global)); + // btn_new->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &MixerSnapshotDialog::new_snapshot_from_session), global)); + _snapshot_display.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &MixerSnapshotList::selection_changed)); _snapshot_display.signal_button_press_event().connect (sigc::mem_fun (*this, &MixerSnapshotList::button_press), false); } diff --git a/gtk2_ardour/mixer_snapshots.h b/gtk2_ardour/mixer_snapshots.h index 7719461c05..3bfc0400b2 100644 --- a/gtk2_ardour/mixer_snapshots.h +++ b/gtk2_ardour/mixer_snapshots.h @@ -20,10 +20,14 @@ #ifndef __gtk_ardour_mixer_snapshots_h__ #define __gtk_ardour_mixer_snapshots_h__ +#include + +#include #include #include #include #include +#include #include "ardour/mixer_snapshot.h" @@ -38,6 +42,9 @@ public: return _scroller; } + Gtk::Button& get_add_template_button () {return add_template_button;}; + Gtk::Button& get_add_session_template_button () {return add_session_template_button;}; + void redisplay (); private: @@ -51,7 +58,7 @@ private: add (snapshot); } Gtk::TreeModelColumn name; - Gtk::TreeModelColumn timestamp; + Gtk::TreeModelColumn timestamp; Gtk::TreeModelColumn snapshot; //ToDo: these are leaked }; @@ -60,6 +67,9 @@ private: Gtk::TreeView _snapshot_display; Gtk::Menu _menu; + Gtk::Button add_template_button; + Gtk::Button add_session_template_button; + bool button_press (GdkEventButton *); void selection_changed (); void popup_context_menu (int, int32_t, std::string); diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 1c92e23963..fbfc623e7e 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -275,9 +275,19 @@ Mixer_UI::Mixer_UI () rhs_pane2.add (group_display_frame); _mix_snaps = new MixerSnapshotList(); - + + Gtk::VBox* mix_packer = new Gtk::VBox(); + mix_packer->pack_start(_mix_snaps->widget()); + mix_packer->pack_start(_mix_snaps->get_add_template_button()); + mix_packer->pack_start(_mix_snaps->get_add_session_template_button()); + + Gtk::Frame* mix_snap_frame = new Gtk::Frame(); + mix_snap_frame->set_name("asdf"); + mix_snap_frame->set_shadow_type (Gtk::SHADOW_IN); + mix_snap_frame->add (*mix_packer); + rhs_pane3.add (rhs_pane2); - rhs_pane3.add (_mix_snaps->widget()); + rhs_pane3.add (*mix_snap_frame); list_vpacker.pack_start (rhs_pane3, true, true); diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index e86ab38e27..39f7204cf2 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -184,6 +184,7 @@ private: Gtk::Frame track_display_frame; Gtk::Frame group_display_frame; Gtk::Frame favorite_plugins_frame; + Gtk::Frame mixer_snapshots_list_frame; Gtk::VBox favorite_plugins_vbox; Gtk::ComboBoxText favorite_plugins_tag_combo; ArdourWidgets::VPane rhs_pane1;