#include <gtkmm/radiobutton.h>
#include <gtkmm/label.h>
#include <gtkmm/table.h>
+#include <gtkmm/entry.h>
#include <gtkmm/treestore.h>
#include "ardour_window.h"
~TransportMastersWidget ();
void update (ARDOUR::samplepos_t);
+ void set_transport_master (boost::shared_ptr<ARDOUR::TransportMaster>);
protected:
void on_map ();
private:
+ struct AddTransportMasterDialog : public ArdourDialog {
+ public:
+ AddTransportMasterDialog ();
+ std::string get_name () const;
+ ARDOUR::SyncSource get_type () const;
+
+ private:
+ Gtk::Label name_label;
+ Gtk::Label type_label;
+ Gtk::HBox name_hbox;
+ Gtk::HBox type_hbox;
+ Gtk::Entry name_entry;
+ Gtk::ComboBoxText type_combo;
+ };
+
struct Row : sigc::trackable, PBD::ScopedConnectionList {
+ TransportMastersWidget& parent;
Gtk::EventBox label_box;
Gtk::Label label;
Gtk::Label type;
void update (ARDOUR::Session*, ARDOUR::samplepos_t);
- Row ();
+ Row (TransportMastersWidget& parent);
+ ~Row ();
struct PortColumns : public Gtk::TreeModel::ColumnRecord {
PortColumns() {
std::vector<Row*> rows;
- Gtk::RadioButtonGroup use_button_group;
Gtk::Table table;
Gtk::Label col_title[14];
Gtk::Button add_button;
sigc::connection update_connection;
PBD::ScopedConnection current_connection;
+ PBD::ScopedConnection add_connection;
+ PBD::ScopedConnection remove_connection;
void rebuild ();
+ void clear ();
void current_changed (boost::shared_ptr<ARDOUR::TransportMaster> old_master, boost::shared_ptr<ARDOUR::TransportMaster> new_master);
+ void add_master ();
+ public:
+ bool idle_remove (Row*);
};
class TransportMastersWindow : public ArdourWindow