X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmixer_ui.h;h=809e7a759c60fac1f3cd6ffaa5e556c9476891c6;hb=39a4068e36f632f2ff8abf99881d40e26d7e5183;hp=6fe41204279cc840ce0a12007cec0c729d3d1418;hpb=cc2767caf32486365a33814149e75c6e588e8603;p=ardour.git diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index 6fe4120427..809e7a759c 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ #ifndef __ardour_mixer_ui_h__ @@ -38,7 +37,6 @@ #include #include -#include "keyboard_target.h" #include "route_redirect_selection.h" #include "enums.h" @@ -47,7 +45,6 @@ namespace ARDOUR { class RouteGroup; class Session; class AudioDiskstream; - class AudioEngine; }; class MixerStrip; @@ -56,7 +53,7 @@ class PluginSelector; class Mixer_UI : public Gtk::Window { public: - Mixer_UI (ARDOUR::AudioEngine&); + Mixer_UI (); ~Mixer_UI(); void connect_to_session (ARDOUR::Session *); @@ -73,16 +70,22 @@ class Mixer_UI : public Gtk::Window int set_state (const XMLNode& ); void show_window (); + bool hide_window (GdkEventAny *ev); void show_strip (MixerStrip *); void hide_strip (MixerStrip *); void ensure_float (Gtk::Window&); + void toggle_auto_rebinding (); + void set_auto_rebinding(bool); RouteRedirectSelection& selection() { return _selection; } + static const char* get_order_key(); + private: - ARDOUR::AudioEngine& engine; ARDOUR::Session *session; + + bool _visible; Gtk::HBox global_hpacker; Gtk::VBox global_vpacker; @@ -103,15 +106,24 @@ class Mixer_UI : public Gtk::Window Gtk::HBox out_packer; Gtk::HPaned list_hpane; + // for restoring window geometry. + int m_root_x, m_root_y, m_width, m_height; + + void set_window_pos_and_size (); + void get_window_pos_and_size (); + bool on_key_press_event (GdkEventKey*); + bool on_scroll_event (GdkEventScroll*); void pane_allocation_handler (Gtk::Allocation&, Gtk::Paned*); list strips; bool strip_scroller_button_release (GdkEventButton*); + void scroll_left (); + void scroll_right (); - void add_strip (boost::shared_ptr); + void add_strip (ARDOUR::Session::RouteList&); void remove_strip (MixerStrip *); void hide_all_strips (bool with_select); @@ -122,6 +134,9 @@ class Mixer_UI : public Gtk::Window void unselect_all_audiobus_strips (); void select_all_audiobus_strips (); + void auto_rebind_midi_controls (); + bool auto_rebinding; + void strip_select_op (bool audiotrack, bool select); void select_strip_op (MixerStrip*, bool select); @@ -140,9 +155,13 @@ class Mixer_UI : public Gtk::Window void redisplay_track_list (); bool no_track_list_redisplay; bool track_display_button_press (GdkEventButton*); +#ifdef GTKOSX + void queue_draw_all_strips (); +#endif void track_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&); void track_list_delete (const Gtk::TreeModel::Path&); + void track_list_reorder (const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* new_order); void initial_track_display (); void show_track_list_menu (); @@ -168,6 +187,8 @@ class Mixer_UI : public Gtk::Window void build_mix_group_context_menu (); void activate_all_mix_groups (); void disable_all_mix_groups (); + void show_all_mix_groups (); + void hide_all_mix_groups (); void add_mix_group (ARDOUR::RouteGroup *); void mix_groups_changed (); void mix_group_name_edit (const Glib::ustring&, const Glib::ustring&); @@ -229,6 +250,10 @@ class Mixer_UI : public Gtk::Window Width _strip_width; + void sync_order_keys (const char *src); + bool strip_redisplay_does_not_reset_order_keys; + bool strip_redisplay_does_not_sync_order_keys; + static const int32_t default_width = 478; static const int32_t default_height = 765; };