improvements to BBT marker dialog appearance and behavior
This commit is contained in:
parent
88a035b000
commit
de2c553e1a
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#define __ardour_gtk_bbt_marker_dialog_h__
|
||||
|
||||
#include <gtkmm/box.h>
|
||||
#include <gtkmm/entry.h>
|
||||
#include <gtkmm/label.h>
|
||||
#include <gtkmm/spinbutton.h>
|
||||
|
||||
|
@ -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__ */
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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 &);
|
||||
|
|
Loading…
Reference in New Issue
Block a user