diff --git a/gtk2_ardour/bbt_marker_dialog.cc b/gtk2_ardour/bbt_marker_dialog.cc index ed627eac80..34d531652e 100644 --- a/gtk2_ardour/bbt_marker_dialog.cc +++ b/gtk2_ardour/bbt_marker_dialog.cc @@ -34,6 +34,7 @@ BBTMarkerDialog::BBTMarkerDialog (timepos_t const & pos) , _point (0) , _position (pos) , entry_label (_("Position")) + , name_label (_("Name")) { BBT_Time bbt = TempoMap::use()->bbt_at (pos).round_to_beat (); @@ -50,11 +51,22 @@ BBTMarkerDialog::BBTMarkerDialog (timepos_t const & pos) bar_entry.set_value (bbt.bars); beat_entry.set_value (bbt.beats); + name_box.pack_start (name_label); + name_box.pack_start (name_entry); + + name_entry.signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &BBTMarkerDialog::response), Gtk::RESPONSE_OK)); + + get_vbox()->pack_start (name_box); get_vbox()->pack_start (bbt_box); + bbt_box.show_all (); + name_box.show_all (); add_button (Stock::CANCEL, RESPONSE_CANCEL); add_button (_("Add Marker"), RESPONSE_OK); + + get_vbox()->set_border_width (12); + get_vbox()->set_spacing (12); } BBT_Time @@ -71,3 +83,9 @@ BBTMarkerDialog::position() const { return _position; } + +std::string +BBTMarkerDialog::name () const +{ + return name_entry.get_text(); +} diff --git a/gtk2_ardour/bbt_marker_dialog.h b/gtk2_ardour/bbt_marker_dialog.h index c09b6323cb..1c4b78ea43 100644 --- a/gtk2_ardour/bbt_marker_dialog.h +++ b/gtk2_ardour/bbt_marker_dialog.h @@ -20,6 +20,7 @@ #define __ardour_gtk_bbt_marker_dialog_h__ #include +#include #include #include @@ -37,6 +38,7 @@ public: Temporal::timepos_t position() const; Temporal::BBT_Time bbt_value () const; + std::string name() const; private: void init (); @@ -47,6 +49,10 @@ private: Gtk::SpinButton bar_entry; Gtk::SpinButton beat_entry; Gtk::Label entry_label; + + Gtk::HBox name_box; + Gtk::Entry name_entry; + Gtk::Label name_label; }; #endif /* __ardour_gtk_bbt_marker_dialog_h__ */ diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 458a92b2cd..e69a7b5f32 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3817,12 +3817,14 @@ BBTRulerDrag::finished (GdkEvent* event, bool movement_occurred) int result = marker_dialog->run (); BBT_Time bbt; + std::string name; switch (result) { case RESPONSE_ACCEPT: case RESPONSE_OK: bbt = marker_dialog->bbt_value (); - map->set_bartime (bbt, marker_dialog->position()); + name = marker_dialog->name(); + map->set_bartime (bbt, marker_dialog->position(), name); delete marker_dialog; break; default: diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc index f7f1e6df7f..a3d7792da3 100644 --- a/gtk2_ardour/editor_tempodisplay.cc +++ b/gtk2_ardour/editor_tempodisplay.cc @@ -164,7 +164,7 @@ Editor::reassociate_metric_marker (TempoMap::SharedPtr const & tmap, TempoMap::M void Editor::make_bbt_marker (MusicTimePoint const * mtp) { - bbt_marks.push_back (new BBTMarker (*this, *bbt_ruler, UIConfiguration::instance().color ("meter marker"), "foo!", *mtp)); + bbt_marks.push_back (new BBTMarker (*this, *bbt_ruler, UIConfiguration::instance().color ("meter marker"), *mtp)); } void diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc index 5cb55bfa2a..196bcbc572 100644 --- a/gtk2_ardour/marker.cc +++ b/gtk2_ardour/marker.cc @@ -721,8 +721,8 @@ MeterMarker::point() const /***********************************************************************/ -BBTMarker::BBTMarker (PublicEditor& editor, ArdourCanvas::Item& parent, guint32 rgba, const string& text, Temporal::MusicTimePoint const & p) - : MetricMarker (editor, parent, rgba, text, BBTPosition, p.time(), false) +BBTMarker::BBTMarker (PublicEditor& editor, ArdourCanvas::Item& parent, guint32 rgba, Temporal::MusicTimePoint const & p) + : MetricMarker (editor, parent, rgba, p.name(), BBTPosition, p.time(), false) , _point (&p) { group->Event.connect (sigc::bind (sigc::mem_fun (editor, &PublicEditor::canvas_bbt_marker_event), group, this)); diff --git a/gtk2_ardour/marker.h b/gtk2_ardour/marker.h index 77385e87ed..ed4e8fd7fc 100644 --- a/gtk2_ardour/marker.h +++ b/gtk2_ardour/marker.h @@ -211,7 +211,7 @@ class MeterMarker : public MetricMarker class BBTMarker : public MetricMarker { public: - BBTMarker (PublicEditor& editor, ArdourCanvas::Item &, guint32 rgba, const std::string& text, Temporal::MusicTimePoint const &); + BBTMarker (PublicEditor& editor, ArdourCanvas::Item &, guint32 rgba, Temporal::MusicTimePoint const &); ~BBTMarker (); void reset_point (Temporal::MusicTimePoint const &);