#include <gtkmm/scrolledwindow.h>
#include <gtkmm/eventbox.h>
#include <gtkmm/label.h>
+#include <gtkmm/comboboxtext.h>
#include <gtkmm/button.h>
#include <gtkmm/frame.h>
#include <gtkmm/menu.h>
#include <gtkmm/treeview.h>
+#include <gtkmm/treestore.h>
#include <gtkmm/liststore.h>
#include "pbd/stateful.h"
#include <gtkmm2ext/bindings.h>
#include "gtkmm2ext/dndtreeview.h"
-#include <gtkmm2ext/pane.h>
-#include "gtkmm2ext/tabbable.h"
#include "gtkmm2ext/treeutils.h"
+#include "widgets/pane.h"
+#include "widgets/tabbable.h"
+
#include "axis_provider.h"
#include "enums.h"
#include "route_processor_selection.h"
virtual bool row_drop_possible_vfunc (const Gtk::TreeModel::Path&, const Gtk::SelectionData&) const;
};
-class Mixer_UI : public Gtkmm2ext::Tabbable, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public AxisViewProvider
+class Mixer_UI : public ArdourWidgets::Tabbable, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public AxisViewProvider
{
public:
static Mixer_UI* instance();
XMLNode& get_state ();
int set_state (const XMLNode&, int /* version */);
+ void save_plugin_order_file ();
+
void show_mixer_list (bool yn);
void show_monitor_section (bool);
void deselect_all_strip_processors();
void delete_processors();
void select_none ();
- void select_all_tracks ();
+
+ void select_next_strip ();
+ void select_prev_strip ();
void do_vca_assign (boost::shared_ptr<ARDOUR::VCA>);
void do_vca_unassign (boost::shared_ptr<ARDOUR::VCA>);
void load_bindings ();
Gtkmm2ext::Bindings* bindings;
+ void showhide_vcas (bool on) {
+ if (on) { vca_vpacker.show(); } else { vca_vpacker.hide(); }
+ }
+#ifdef MIXBUS
+ void showhide_mixbusses (bool on) {
+ if (on) { mb_vpacker.show(); } else { mb_vpacker.hide(); }
+ }
+#endif
+
protected:
void set_axis_targets_for_operation ();
ARDOUR::AutomationControlSet selected_gaincontrols ();
Gtk::VBox mixer_scroller_vpacker;
Gtk::VBox list_vpacker;
Gtk::Label group_display_button_label;
- Gtk::Button group_display_button;
Gtk::ScrolledWindow track_display_scroller;
Gtk::ScrolledWindow group_display_scroller;
Gtk::ScrolledWindow favorite_plugins_scroller;
Gtk::Frame track_display_frame;
Gtk::Frame group_display_frame;
Gtk::Frame favorite_plugins_frame;
- Gtkmm2ext::VPane rhs_pane1;
- Gtkmm2ext::VPane rhs_pane2;
- Gtkmm2ext::HPane inner_pane;
+ Gtk::VBox favorite_plugins_vbox;
+ Gtk::ComboBoxText favorite_plugins_tag_combo;
+ ArdourWidgets::VPane rhs_pane1;
+ ArdourWidgets::VPane rhs_pane2;
+ ArdourWidgets::HPane inner_pane;
Gtk::HBox strip_packer;
Gtk::ScrolledWindow vca_scroller;
Gtk::HBox vca_hpacker;
Gtk::Label vca_label;
Gtk::EventBox vca_scroller_base;
Gtk::HBox out_packer;
- Gtkmm2ext::HPane list_hpane;
+ ArdourWidgets::HPane list_hpane;
+ Gtk::Button add_button; // should really be an ArdourButton
+ Gtk::Button add_vca_button;
MixerGroupTabs* _group_tabs;
void group_display_selection_changed ();
bool strip_button_release_event (GdkEventButton*, MixerStrip*);
+ bool vca_button_release_event (GdkEventButton*, VCAMasterStrip*);
Width _strip_width;
+ double _spill_scroll_position;
void presentation_info_changed (PBD::PropertyChange const &);
void sync_treeview_from_presentation_info (PBD::PropertyChange const &);
void store_current_favorite_order();
void refiller (ARDOUR::PluginInfoList& result, const ARDOUR::PluginInfoList& plugs);
+
+ void plugin_list_changed ();
+
void refill_favorite_plugins ();
+ void refill_tag_combo ();
+
+ void tag_combo_changed ();
+
void sync_treeview_from_favorite_order ();
void sync_treeview_favorite_ui_state (const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator&);
void save_favorite_ui_state (const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path);
// true if mixer list is visible
bool _show_mixer_list;
+ bool _strip_selection_change_without_scroll;
+
mutable boost::weak_ptr<ARDOUR::Stripable> spilled_strip;
void escape ();