diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 4bf6d60f7b..1773c4497c 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -30,6 +30,7 @@ #include #include +#include #include #include "pbd/convert.h" @@ -3501,3 +3502,22 @@ Mixer_UI::vca_unassign (boost::shared_ptr vca) } } } + +void +Mixer_UI::screenshot (std::string const& filename) +{ + Gtk::OffscreenWindow osw; + int height = strip_packer.get_height(); + strip_group_box.remove (strip_packer); + osw.add (strip_packer); + add_button.hide (); + osw.set_size_request (-1, height); + osw.show(); + osw.get_window()->process_updates (true); + Glib::RefPtr pb = osw.get_pixbuf (); + pb->save (filename, "png"); + osw.remove (); + pb.release (); + add_button.show (); + strip_group_box.pack_start (strip_packer); +} diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index 5e0a25e925..85197b991d 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -147,6 +147,8 @@ public: void showhide_mixbusses (bool on); #endif + void screenshot (std::string const&); + protected: void set_axis_targets_for_operation (); ARDOUR::AutomationControlSet selected_gaincontrols ();