Separate route list code from Editor into its own object, EditorRouteList. Hopefully makes things a bit better.

git-svn-id: svn://localhost/ardour2/branches/3.0@5302 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2009-07-01 23:20:18 +00:00
parent 236868761c
commit 5b97b13766
14 changed files with 633 additions and 673 deletions

View file

@ -116,6 +116,7 @@ class TimeFXDialog;
class TimeSelection;
class TrackSelection;
class EditorGroupTabs;
class EditorRouteList;
/* <CMT Additions> */
class ImageFrameView;
@ -307,7 +308,6 @@ class Editor : public PublicEditor
/* stuff that AudioTimeAxisView and related classes use */
PlaylistSelector& playlist_selector() const;
void route_name_changed (TimeAxisView *);
void clear_playlist (boost::shared_ptr<ARDOUR::Playlist>);
void new_playlists (TimeAxisView* v);
@ -324,7 +324,6 @@ class Editor : public PublicEditor
void show_editor_list (bool yn);
void set_selected_mixer_strip (TimeAxisView&);
void hide_track_in_display (TimeAxisView& tv, bool temporary = false);
void show_track_in_display (TimeAxisView& tv);
/* nudge is initiated by transport controls owned by ARDOUR_UI */
@ -374,8 +373,6 @@ class Editor : public PublicEditor
void scroll_tracks_down_line ();
void scroll_tracks_up_line ();
void move_selected_tracks (bool up);
bool new_regionviews_display_gain () { return _new_regionviews_show_envelope; }
void prepare_for_cleanup ();
void finish_cleanup ();
@ -402,8 +399,6 @@ class Editor : public PublicEditor
void goto_visual_state (uint32_t);
void save_visual_state (uint32_t);
void update_rec_display ();
protected:
void map_transport_state ();
void map_position_change (nframes64_t);
@ -1394,11 +1389,8 @@ class Editor : public PublicEditor
/// Snap threshold in pixels
double snap_threshold;
void handle_gui_changes (const std::string &, void *);
bool ignore_gui_changes;
void hide_all_tracks (bool with_select);
Drag* _drag;
void break_drag ();
@ -1768,80 +1760,17 @@ public:
ArdourCanvas::SimpleRect *zoom_rect;
void reposition_zoom_rect (nframes64_t start, nframes64_t end);
EditorRouteList* _route_list;
/* diskstream/route display management */
Glib::RefPtr<Gdk::Pixbuf> rec_enabled_icon;
Glib::RefPtr<Gdk::Pixbuf> rec_disabled_icon;
struct RouteDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
RouteDisplayModelColumns() {
add (text);
add (visible);
add (rec_enabled);
add (temporary_visible);
add (is_track);
add (tv);
add (route);
}
Gtk::TreeModelColumn<Glib::ustring> text;
Gtk::TreeModelColumn<bool> visible;
Gtk::TreeModelColumn<bool> rec_enabled;
Gtk::TreeModelColumn<bool> temporary_visible;
Gtk::TreeModelColumn<bool> is_track;
Gtk::TreeModelColumn<TimeAxisView*> tv;
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Route> > route;
};
void on_tv_rec_enable_toggled(const Glib::ustring& path_string);
RouteDisplayModelColumns route_display_columns;
Glib::RefPtr<Gtk::ListStore> route_display_model;
Glib::RefPtr<Gtk::TreeSelection> route_display_selection;
Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Route> > route_list_display;
Gtk::ScrolledWindow route_list_scroller;
Gtk::Menu* route_list_menu;
void update_route_visibility ();
void sync_order_keys (const char*);
bool route_redisplay_does_not_sync_order_keys;
bool route_redisplay_does_not_reset_order_keys;
bool route_list_display_button_press (GdkEventButton*);
void route_list_display_drag_data_received (const Glib::RefPtr<Gdk::DragContext>& context,
gint x,
gint y,
const Gtk::SelectionData& data,
guint info,
guint time);
bool route_list_selection_filter (const Glib::RefPtr<Gtk::TreeModel>& model, const Gtk::TreeModel::Path& path, bool yn);
void route_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
void route_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_route_list_display ();
void redisplay_route_list();
void route_list_reordered (const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* what);
bool ignore_route_list_reorder;
bool no_route_list_redisplay;
bool sync_track_view_list_and_route_list ();
void build_route_list_menu ();
void show_route_list_menu ();
void show_all_routes ();
void hide_all_routes ();
void show_all_audiotracks ();
void hide_all_audiotracks ();
void show_all_audiobus ();
void hide_all_audiobus ();
void set_all_tracks_visibility (bool yn);
void set_all_audio_visibility (int type, bool yn);
/* edit group management */
struct GroupListModelColumns : public Gtk::TreeModel::ColumnRecord {
@ -2297,6 +2226,8 @@ public:
friend class EditorSummary;
friend class EditorGroupTabs;
friend class EditorRouteList;
};
#endif /* __ardour_editor_h__ */