#include "ardour/types.h"
#include "ardour/session_handle.h"
+#include "gtkmm2ext/visibility_tracker.h"
+
#include "enums.h"
#include "mixer_actor.h"
class MixerGroupTabs;
class MonitorSection;
-class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public MixerActor
+class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public MixerActor, public Gtkmm2ext::VisibilityTracker
{
public:
static Mixer_UI* instance();
PluginSelector* plugin_selector();
- void set_strip_width (Width);
+ void set_strip_width (Width, bool save = false);
Width get_strip_width () const { return _strip_width; }
void unselect_strip_in_display (MixerStrip*);
XMLNode& get_state (void);
int set_state (const XMLNode& );
+ void show_mixer_list (bool yn);
+
void show_window ();
bool hide_window (GdkEventAny *ev);
void show_strip (MixerStrip *);
void hide_strip (MixerStrip *);
+ void maximise_mixer_space();
+ void restore_mixer_space();
+
void ensure_float (Gtk::Window&);
MonitorSection* monitor_section() const { return _monitor_section; }
+ void deselect_all_strip_processors();
+ void delete_processors();
+
+ void select_none ();
+
protected:
void set_route_targets_for_operation ();
bool strip_scroller_button_release (GdkEventButton*);
void scroll_left ();
void scroll_right ();
+ void toggle_midi_input_active (bool flip_others);
void add_strips (ARDOUR::RouteList&);
void remove_strip (MixerStrip *);
void show_track_list_menu ();
void set_all_strips_visibility (bool yn);
- void set_all_audio_visibility (int tracks, bool yn);
+ void set_all_audio_midi_visibility (int, bool);
+ void track_visibility_changed (std::string const & path);
+ void update_track_visibility ();
void hide_all_routes ();
void show_all_routes ();
void hide_all_audiobus ();
void show_all_audiotracks();
void hide_all_audiotracks ();
+ void show_all_miditracks();
+ void hide_all_miditracks ();
bool in_group_row_change;
Width _strip_width;
- void sync_order_keys_from_model ();
- void sync_model_from_order_keys (ARDOUR::RouteSortOrderKey);
+ void sync_order_keys_from_treeview ();
+ void sync_treeview_from_order_keys ();
+ void reset_remote_control_ids ();
+ void reset_order_keys ();
+
bool ignore_reorder;
void parameter_changed (std::string const &);
it during a session teardown.
*/
bool _in_group_rebuild_or_clear;
+ bool _route_deletion_in_progress;
void update_title ();
MixerStrip* strip_by_x (int x);
bool _following_editor_selection;
void monitor_section_going_away ();
+
+ /// true if we are in fullscreen mode
+ bool _maximised;
+
+ // true if mixer list is visible
+ bool _show_mixer_list;
};
#endif /* __ardour_mixer_ui_h__ */