Ardour  8.7-15-gadf511264b
trigger_page.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Robin Gareus <robin@gareus.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef __gtk_ardour_trigger_page_h__
20 #define __gtk_ardour_trigger_page_h__
21 
22 #include <gtkmm/box.h>
23 
24 #include "ardour/session_handle.h"
25 
26 #include "gtkmm2ext/bindings.h"
27 #include "gtkmm2ext/cairo_widget.h"
28 
29 #include "widgets/pane.h"
30 #include "widgets/tabbable.h"
31 
35 #include "cuebox_ui.h"
36 #include "fitted_canvas_widget.h"
37 #include "midi_clip_editor.h"
42 #include "slot_properties_box.h"
43 #include "trigger_clip_picker.h"
44 #include "trigger_region_list.h"
45 #include "trigger_route_list.h"
46 #include "trigger_source_list.h"
47 #include "trigger_master.h"
48 
49 class TriggerStrip;
50 
52 {
53 public:
56 
58 
59  XMLNode& get_state () const;
60  int set_state (const XMLNode&, int /* version */);
61 
62  Gtk::Window* use_own_window (bool and_fill_it);
63 
65 
66 private:
67  void load_bindings ();
69  void update_title ();
71  void parameter_changed (std::string const&);
72 
76 
78 
81  void stripable_property_changed (PBD::PropertyChange const&, std::weak_ptr<ARDOUR::Stripable>);
82 
85 
86  void add_sidebar_page (std::string const&, Gtk::Widget&);
87 
90  bool no_strip_drag_motion (Glib::RefPtr<Gdk::DragContext> const&, int, int, guint);
91  void no_strip_drag_data_received (Glib::RefPtr<Gdk::DragContext> const&, int, int, Gtk::SelectionData const&, guint, guint);
92 
93  bool idle_drop_paths (std::vector<std::string>);
94  void drop_paths_part_two (std::vector<std::string>);
95 
96  AxisView* axis_view_by_stripable (std::shared_ptr<ARDOUR::Stripable>) const;
97  AxisView* axis_view_by_control (std::shared_ptr<ARDOUR::AutomationControl>) const;
98 
101 
102  gint start_updating ();
103  gint stop_updating ();
105 
108 
123 
127 
129 
132 
133 #if REGION_PROPERTIES_BOX_TODO
134  AudioRegionOperationsBox _audio_ops_box;
135  AudioClipEditorBox _audio_trim_box;
136 
137  MidiRegionOperationsBox _midi_ops_box;
138  MidiClipEditorBox _midi_trim_box;
139 #endif
140 
142  std::list<TriggerStrip*> _strips;
144 };
145 
146 #endif /* __gtk_ardour_trigger_page_h__ */
void initial_track_display()
Gtk::VBox _sidebar_vbox
Definition: trigger_page.h:117
TriggerRouteList _trigger_route_list
Definition: trigger_page.h:122
void pi_property_changed(PBD::PropertyChange const &)
CueBoxWidget _cue_box
Definition: trigger_page.h:124
Gtk::HBox _strip_packer
Definition: trigger_page.h:112
void clear_selected_slot()
void register_actions()
AudioTriggerPropertiesBox _audio_trig_box
Definition: trigger_page.h:130
sigc::connection _fast_screen_update_connection
Definition: trigger_page.h:143
gint stop_updating()
int set_state(const XMLNode &, int)
bool no_strip_button_event(GdkEventButton *)
XMLNode & get_state() const
CueMaster _master
Definition: trigger_page.h:126
void selection_changed()
void stripable_property_changed(PBD::PropertyChange const &, std::weak_ptr< ARDOUR::Stripable >)
Gtk::VBox _content
Definition: trigger_page.h:107
void rec_state_clicked()
MidiTriggerPropertiesBox _midi_trig_box
Definition: trigger_page.h:131
FittedCanvasWidget _master_widget
Definition: trigger_page.h:125
RouteProcessorSelection _selection
Definition: trigger_page.h:141
RouteProcessorSelection & selection()
Definition: trigger_page.h:64
void session_going_away()
bool idle_drop_paths(std::vector< std::string >)
void redisplay_track_list()
std::list< TriggerStrip * > _strips
Definition: trigger_page.h:142
void add_sidebar_page(std::string const &, Gtk::Widget &)
AxisView * axis_view_by_stripable(std::shared_ptr< ARDOUR::Stripable >) const
Gtk::Window * use_own_window(bool and_fill_it)
PBD::ScopedConnectionList editor_connections
Definition: trigger_page.h:100
bool no_strip_drag_motion(Glib::RefPtr< Gdk::DragContext > const &, int, int, guint)
Gtk::ScrolledWindow _strip_scroller
Definition: trigger_page.h:111
void rec_state_changed()
TriggerSourceList _trigger_source_list
Definition: trigger_page.h:120
Gtk::HBox _strip_group_box
Definition: trigger_page.h:110
gint start_updating()
Gtk::Notebook _sidebar_notebook
Definition: trigger_page.h:118
void fast_update_strips()
void remove_route(TriggerStrip *)
void drop_paths_part_two(std::vector< std::string >)
void load_bindings()
void set_session(ARDOUR::Session *)
Gtk::EventBox _no_strips
Definition: trigger_page.h:113
void parameter_changed(std::string const &)
Gtkmm2ext::Bindings * bindings
Definition: trigger_page.h:106
SlotPropertiesBox _slot_prop_box
Definition: trigger_page.h:128
void no_strip_drag_data_received(Glib::RefPtr< Gdk::DragContext > const &, int, int, Gtk::SelectionData const &, guint, guint)
Gtk::VBox _cue_area_box
Definition: trigger_page.h:115
Gtk::Alignment _cue_area_frame
Definition: trigger_page.h:114
TriggerClipPicker _trigger_clip_picker
Definition: trigger_page.h:119
TriggerRegionList _trigger_region_list
Definition: trigger_page.h:121
void add_routes(ARDOUR::RouteList &)
AxisView * axis_view_by_control(std::shared_ptr< ARDOUR::AutomationControl >) const
void update_title()
ArdourWidgets::HPane _pane_upper
Definition: trigger_page.h:109
Gtk::HBox _parameter_box
Definition: trigger_page.h:116
bool strip_button_release_event(GdkEventButton *, TriggerStrip *)
Definition: xml++.h:114
std::list< std::shared_ptr< Route > > RouteList