#ifndef __ardour_trackview_h__
#define __ardour_trackview_h__
-#include <gtkmm.h>
-#include <gtk-canvas.h>
+#include <gtkmm/table.h>
+#include <gtkmm/button.h>
+#include <gtkmm/box.h>
+#include <gtkmm/menu.h>
+#include <gtkmm/menuitem.h>
+#include <gtkmm/radiomenuitem.h>
+#include <gtkmm/checkmenuitem.h>
+
#include <gtkmm2ext/selector.h>
-#include <gtkmm2ext/popup_selector.h>
#include <list>
#include <ardour/types.h>
#include "route_ui.h"
#include "enums.h"
#include "time_axis_view.h"
+#include "canvas.h"
+#include "color.h"
namespace ALSA {
class MultiChannelDevice;
namespace ARDOUR {
class Session;
- class DiskStream;
+ class AudioDiskstream;
class RouteGroup;
class Redirect;
class Insert;
class AudioTimeAxisView : public RouteUI, public TimeAxisView
{
public:
- AudioTimeAxisView (PublicEditor&, ARDOUR::Session&, ARDOUR::Route&, Gtk::Widget *canvas);
+ AudioTimeAxisView (PublicEditor&, ARDOUR::Session&, ARDOUR::Route&, ArdourCanvas::Canvas& canvas);
virtual ~AudioTimeAxisView ();
void show_selection (TimeSelection&);
list<TimeAxisView*>get_child_list();
void set_state (const XMLNode&);
- XMLNode* get_child_xml_node (std::string childname);
+ XMLNode* get_child_xml_node (const string & childname);
+
+ /* the editor calls these when mapping an operation across multiple tracks */
+
+ void use_new_playlist (bool prompt);
+ void use_copy_playlist (bool prompt);
+ void clear_playlist ();
private:
friend class StreamView;
friend class AudioRegionView;
- Gtk::Widget* parent_canvas;
+ ArdourCanvas::Canvas& parent_canvas;
bool no_redraw;
gint edit_click (GdkEventButton *);
- /* Redirect handling */
-
- ArdourDialog redirect_window;
- Gtk::CList redirect_display;
- Gtk::Button redirect_add_button;
- Gtk::Button redirect_remove_button;
- Gtk::Button redirect_up_button;
- Gtk::Button redirect_down_button;
- Gtk::Button redirect_edit_button;
- Gtk::HBox redirect_button_box;
- Gtk::VBox redirect_vpacker;
- Gtk::HBox redirect_display_hpacker;
-
- int redirect_selected_row;
-
-
// variables to get the context menu
// automation buttons correctly initialized
bool show_gain_automation;
void take_name_changed (void *);
void route_name_changed (void *);
- void name_entry_activated ();
void name_entry_changed ();
- gint name_entry_focus_out_handler (GdkEventFocus*);
- gint name_entry_key_release_handler (GdkEventKey*);
- gint name_entry_button_release_handler (GdkEventButton*);
- gint name_entry_button_press_handler (GdkEventButton*);
+
void on_area_realize ();
virtual void label_view ();
Gtk::Menu edit_group_menu;
- Gtk::RadioMenuItem::Group edit_group_menu_radio_group;
- void add_edit_group_menu_item (ARDOUR::RouteGroup *);
+ void add_edit_group_menu_item (ARDOUR::RouteGroup *, Gtk::RadioMenuItem::Group*);
void set_edit_group_from_menu (ARDOUR::RouteGroup *);
void reset_samples_per_unit ();
void playlist_modified ();
void add_playlist_to_playlist_menu (ARDOUR::Playlist*);
- void playlist_selected (ARDOUR::AudioPlaylist*);
- void use_new_playlist ();
- void use_copy_playlist ();
- void clear_playlist ();
void rename_current_playlist ();
/* automation stuff */
void add_redirect_automation_curve (ARDOUR::Redirect*, uint32_t);
void add_existing_redirect_automation_curves (ARDOUR::Redirect*);
- GtkCanvasItem *timestretch_rect;
+ ArdourCanvas::SimpleRect *timestretch_rect;
void timestretch (jack_nframes_t start, jack_nframes_t end);
void add_ghost_to_redirect (AudioRegionView*, AutomationTimeAxisView*);
void map_frozen ();
+
+ void color_handler (ColorID, uint32_t);
+ bool select_me (GdkEventButton*);
};
#endif /* __ardour_trackview_h__ */