make multi-duplicate dialog less ugly, ditto with tempo dialogs. fix broken adding of tempomap meters. fix indenting and remove some unused stuff in tempo_dialog.h.

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2973 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Nick Mainsbridge 2008-01-29 14:32:34 +00:00
parent c0185b419e
commit 1b483c2ba2
5 changed files with 183 additions and 176 deletions

View file

@ -3077,26 +3077,32 @@ Editor::duplicate_dialog (bool with_dialog)
if (with_dialog) { if (with_dialog) {
ArdourDialog win ("duplicate dialog"); ArdourDialog win ("Duplication Dialog");
Label label (_("Duplicate how many times?")); Label label (_("Number of Duplications:"));
Adjustment adjustment (1.0, 1.0, 1000000.0, 1.0, 5.0); Adjustment adjustment (1.0, 1.0, 1000000.0, 1.0, 5.0);
SpinButton spinner (adjustment); SpinButton spinner (adjustment, 0.0, 1);
HBox hbox;
win.get_vbox()->set_spacing (12); win.get_vbox()->set_spacing (12);
win.get_vbox()->pack_start (label); win.get_vbox()->pack_start (hbox);
hbox.set_border_width (6);
hbox.pack_start (label, PACK_EXPAND_PADDING, 12);
/* dialogs have ::add_action_widget() but that puts the spinner in the wrong /* dialogs have ::add_action_widget() but that puts the spinner in the wrong
place, visually. so do this by hand. place, visually. so do this by hand.
*/ */
win.get_vbox()->pack_start (spinner); hbox.pack_start (spinner, PACK_EXPAND_PADDING, 12);
spinner.signal_activate().connect (sigc::bind (mem_fun (win, &ArdourDialog::response), RESPONSE_ACCEPT)); spinner.signal_activate().connect (sigc::bind (mem_fun (win, &ArdourDialog::response), RESPONSE_ACCEPT));
spinner.grab_focus();
hbox.show ();
label.show (); label.show ();
spinner.show (); spinner.show ();
win.add_button (Stock::OK, RESPONSE_ACCEPT);
win.add_button (Stock::CANCEL, RESPONSE_CANCEL); win.add_button (Stock::CANCEL, RESPONSE_CANCEL);
win.add_button (_("Duplicate"), RESPONSE_ACCEPT);
win.set_default_response (RESPONSE_ACCEPT);
win.set_position (WIN_POS_MOUSE); win.set_position (WIN_POS_MOUSE);

View file

@ -293,7 +293,8 @@ Editor::mouse_add_new_tempo_event (nframes_t frame)
TempoDialog tempo_dialog (map, frame, _("add")); TempoDialog tempo_dialog (map, frame, _("add"));
tempo_dialog.set_position (Gtk::WIN_POS_MOUSE); tempo_dialog.set_position (Gtk::WIN_POS_MOUSE);
tempo_dialog.signal_realize().connect (bind (sigc::ptr_fun (set_decoration), &tempo_dialog, Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH))); //this causes compiz to display no border.
//tempo_dialog.signal_realize().connect (bind (sigc::ptr_fun (set_decoration), &tempo_dialog, Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH)));
ensure_float (tempo_dialog); ensure_float (tempo_dialog);
@ -335,7 +336,9 @@ Editor::mouse_add_new_meter_event (nframes_t frame)
MeterDialog meter_dialog (map, frame, _("add")); MeterDialog meter_dialog (map, frame, _("add"));
meter_dialog.set_position (Gtk::WIN_POS_MOUSE); meter_dialog.set_position (Gtk::WIN_POS_MOUSE);
meter_dialog.signal_realize().connect (bind (sigc::ptr_fun (set_decoration), &meter_dialog, Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH)));
//this causes compiz to display no border..
//meter_dialog.signal_realize().connect (bind (sigc::ptr_fun (set_decoration), &meter_dialog, Gdk::WMDecoration (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH)));
ensure_float (meter_dialog); ensure_float (meter_dialog);
@ -353,6 +356,8 @@ Editor::mouse_add_new_meter_event (nframes_t frame)
BBT_Time requested; BBT_Time requested;
meter_dialog.get_bbt_time (requested); meter_dialog.get_bbt_time (requested);
cerr << "after requested bar: " << requested.bars << " beat " << requested.beats << endl;
begin_reversible_command (_("add meter mark")); begin_reversible_command (_("add meter mark"));
XMLNode &before = map.get_state(); XMLNode &before = map.get_state();

View file

@ -36,12 +36,11 @@ TempoDialog::TempoDialog (TempoMap& map, nframes_t frame, const string & action)
: ArdourDialog (_("edit tempo")), : ArdourDialog (_("edit tempo")),
bpm_adjustment (60.0, 1.0, 999.9, 0.1, 1.0, 1.0), bpm_adjustment (60.0, 1.0, 999.9, 0.1, 1.0, 1.0),
bpm_spinner (bpm_adjustment), bpm_spinner (bpm_adjustment),
bpm_frame (_("Beats per minute")), bpm_frame (_("Tempo")),
note_frame (_("BPM denominator")),
ok_button (action), ok_button (action),
cancel_button (_("Cancel")), cancel_button (_("Cancel")),
when_bar_label (_("Bar")), when_bar_label (_("Bar"), ALIGN_LEFT, ALIGN_CENTER),
when_beat_label (_("Beat")), when_beat_label (_("Beat"), ALIGN_LEFT, ALIGN_CENTER),
when_table (2, 2), when_table (2, 2),
when_frame (_("Location")) when_frame (_("Location"))
{ {
@ -56,11 +55,11 @@ TempoDialog::TempoDialog (TempoSection& section, const string & action)
: ArdourDialog ("tempo dialog"), : ArdourDialog ("tempo dialog"),
bpm_adjustment (60.0, 1.0, 999.9, 0.1, 1.0, 1.0), bpm_adjustment (60.0, 1.0, 999.9, 0.1, 1.0, 1.0),
bpm_spinner (bpm_adjustment), bpm_spinner (bpm_adjustment),
bpm_frame (_("Beats per minute")), bpm_frame (_("Tempo")),
ok_button (action), ok_button (action),
cancel_button (_("Cancel")), cancel_button (_("Cancel")),
when_bar_label (_("Bar")), when_bar_label (_("Bar"), ALIGN_LEFT, ALIGN_CENTER),
when_beat_label (_("Beat")), when_beat_label (_("Beat"), ALIGN_LEFT, ALIGN_CENTER),
when_table (2, 2), when_table (2, 2),
when_frame (_("Location")) when_frame (_("Location"))
{ {
@ -108,18 +107,18 @@ TempoDialog::init (const BBT_Time& when, double bpm, double note_type, bool mova
else else
note_types.set_active_text (_("quarter (4)")); note_types.set_active_text (_("quarter (4)"));
hspacer1.set_border_width (5); Label* bpm_label = manage(new Label(_("Beats Per Minute:"), ALIGN_LEFT, ALIGN_CENTER));
hspacer1.pack_start (bpm_spinner, false, false);
vspacer1.set_border_width (5);
vspacer1.pack_start (hspacer1, false, false);
hspacer2.set_border_width (5); hspacer1.set_border_width (6);
hspacer2.pack_start (note_types, false, false); hspacer1.pack_end (bpm_spinner, PACK_EXPAND_PADDING);
vspacer2.set_border_width (5); hspacer1.pack_start (*bpm_label, PACK_EXPAND_PADDING);
vspacer2.pack_start (hspacer2, false, false); vspacer1.set_border_width (6);
vspacer1.pack_start (hspacer1, PACK_EXPAND_PADDING);
hspacer2.set_border_width (6);
hspacer2.pack_start (note_types, PACK_EXPAND_PADDING);
bpm_frame.add (vspacer1); bpm_frame.add (vspacer1);
note_frame.add (vspacer2);
if (movable) { if (movable) {
snprintf (buf, sizeof (buf), "%" PRIu32, when.bars); snprintf (buf, sizeof (buf), "%" PRIu32, when.bars);
@ -139,35 +138,40 @@ TempoDialog::init (const BBT_Time& when, double bpm, double note_type, bool mova
when_table.set_homogeneous (true); when_table.set_homogeneous (true);
when_table.set_row_spacings (2); when_table.set_row_spacings (2);
when_table.set_col_spacings (2); when_table.set_col_spacings (2);
when_table.set_border_width (5); when_table.set_border_width (6);
when_table.attach (when_bar_label, 0, 1, 0, 1, Gtk::AttachOptions(0), Gtk::FILL|Gtk::EXPAND); when_table.attach (when_bar_label, 0, 1, 0, 1, AttachOptions(0), FILL|EXPAND);
when_table.attach (when_bar_entry, 0, 1, 1, 2, Gtk::AttachOptions(0), Gtk::FILL|Gtk::EXPAND); when_table.attach (when_bar_entry, 1, 2, 0, 1, AttachOptions(0), FILL|EXPAND);
when_table.attach (when_beat_label, 1, 2, 0, 1, Gtk::AttachOptions(0), Gtk::AttachOptions(0)); when_table.attach (when_beat_label, 0, 1, 1, 2, AttachOptions(0), AttachOptions(0));
when_table.attach (when_beat_entry, 1, 2, 1, 2, Gtk::AttachOptions(0), Gtk::AttachOptions(0)); when_table.attach (when_beat_entry, 1, 2, 1, 2, AttachOptions(0), AttachOptions(0));
HBox* when_hbox = manage (new HBox());
Label* when_label = manage(new Label(_("Tempo Begins at:"), ALIGN_LEFT, ALIGN_TOP));
when_hbox->pack_end(when_table, PACK_EXPAND_PADDING, 6);
when_hbox->pack_start(*when_label, PACK_EXPAND_PADDING, 6);
when_frame.set_name ("MetricDialogFrame"); when_frame.set_name ("MetricDialogFrame");
when_frame.add (when_table); when_frame.add (*when_hbox);
get_vbox()->pack_end (when_frame, false, false);
when_frame.show_all();
get_vbox()->pack_start (when_frame, false, false);
} }
bpm_frame.set_name ("MetricDialogFrame"); bpm_frame.set_name ("MetricDialogFrame");
bpm_spinner.set_name ("MetricEntry"); bpm_spinner.set_name ("MetricEntry");
note_frame.set_name ("MetricDialogFrame");
get_vbox()->set_border_width (12); get_vbox()->set_border_width (12);
get_vbox()->pack_start (bpm_frame, false, false); get_vbox()->pack_end (bpm_frame, false, false);
get_vbox()->pack_start (note_frame, false, false);
add_button (Stock::CANCEL, RESPONSE_CANCEL); add_button (Stock::CANCEL, RESPONSE_CANCEL);
add_button (Stock::APPLY, RESPONSE_ACCEPT); add_button (Stock::APPLY, RESPONSE_ACCEPT);
set_response_sensitive (Gtk::RESPONSE_ACCEPT, false); set_response_sensitive (RESPONSE_ACCEPT, false);
set_default_response (RESPONSE_ACCEPT); set_default_response (RESPONSE_ACCEPT);
get_vbox()->show_all(); bpm_frame.show_all ();
bpm_spinner.show(); bpm_spinner.show ();
set_name ("MetricDialog"); set_name ("MetricDialog");
@ -188,7 +192,7 @@ TempoDialog::bpm_button_release (GdkEventButton* ev)
{ {
/* the value has been modified, accept should work now */ /* the value has been modified, accept should work now */
set_response_sensitive (Gtk::RESPONSE_ACCEPT, true); set_response_sensitive (RESPONSE_ACCEPT, true);
return false; return false;
} }
@ -209,6 +213,8 @@ TempoDialog::get_bbt_time (BBT_Time& requested)
return false; return false;
} }
requested.ticks = 0;
return true; return true;
} }
@ -244,18 +250,17 @@ TempoDialog::get_note_type ()
void void
TempoDialog::note_types_change () TempoDialog::note_types_change ()
{ {
set_response_sensitive (Gtk::RESPONSE_ACCEPT, true); set_response_sensitive (RESPONSE_ACCEPT, true);
} }
MeterDialog::MeterDialog (TempoMap& map, nframes_t frame, const string & action) MeterDialog::MeterDialog (TempoMap& map, nframes_t frame, const string & action)
: ArdourDialog ("meter dialog"), : ArdourDialog ("meter dialog"),
note_frame (_("Meter denominator")), bpb_frame (_("Meter")),
bpb_frame (_("Beats per bar")),
ok_button (action), ok_button (action),
cancel_button (_("Cancel")), cancel_button (_("Cancel")),
when_bar_label (_("Bar")), when_bar_label (_("Bar"), ALIGN_LEFT, ALIGN_CENTER),
when_beat_label (_("Beat")), when_beat_label (_("Beat"), ALIGN_LEFT, ALIGN_CENTER),
when_frame (_("Location")) when_frame (_("Location"))
{ {
BBT_Time when; BBT_Time when;
@ -268,12 +273,11 @@ MeterDialog::MeterDialog (TempoMap& map, nframes_t frame, const string & action)
MeterDialog::MeterDialog (MeterSection& section, const string & action) MeterDialog::MeterDialog (MeterSection& section, const string & action)
: ArdourDialog ("meter dialog"), : ArdourDialog ("meter dialog"),
note_frame (_("Meter denominator")), bpb_frame (_("Meter")),
bpb_frame (_("Beats per bar")),
ok_button (action), ok_button (action),
cancel_button (_("Cancel")), cancel_button (_("Cancel")),
when_bar_label (_("Bar")), when_bar_label (_("Bar"), ALIGN_LEFT, ALIGN_CENTER),
when_beat_label (_("Beat")), when_beat_label (_("Beat"), ALIGN_LEFT, ALIGN_CENTER),
when_frame (_("Location")) when_frame (_("Location"))
{ {
init (section.start(), section.beats_per_bar(), section.note_divisor(), section.movable()); init (section.start(), section.beats_per_bar(), section.note_divisor(), section.movable());
@ -321,18 +325,15 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
else else
note_types.set_active_text (_("quarter (4)")); note_types.set_active_text (_("quarter (4)"));
hspacer1.set_border_width (5); Label* note_label = manage(new Label(_("Note Value:"), ALIGN_LEFT, ALIGN_CENTER));
hspacer1.pack_start (note_types, false, false); Label* bpb_label = manage(new Label(_("Beats Per Bar:"), ALIGN_LEFT, ALIGN_CENTER));
vspacer1.set_border_width (5); Table* bpb_table = manage (new Table(2, 2));
vspacer1.pack_start (hspacer1, false, false);
hspacer2.set_border_width (5); bpb_table->attach (*bpb_label, 0, 1, 0, 1, FILL|EXPAND, FILL|EXPAND, 6, 6);
hspacer2.pack_start (bpb_entry, false, false); bpb_table->attach (bpb_entry, 1, 2, 0, 1, FILL|EXPAND, FILL|EXPAND, 6, 6);
vspacer2.set_border_width (5); bpb_table->attach (*note_label, 0, 1, 1, 2, FILL|EXPAND, FILL|EXPAND, 6, 6);
vspacer2.pack_start (hspacer2, false, false); bpb_table->attach (note_types, 1, 2, 1, 2, FILL|EXPAND, SHRINK, 6, 6);
bpb_frame.add (*bpb_table);
note_frame.add (vspacer1);
bpb_frame.add (vspacer2);
if (movable) { if (movable) {
snprintf (buf, sizeof (buf), "%" PRIu32, when.bars); snprintf (buf, sizeof (buf), "%" PRIu32, when.bars);
@ -352,26 +353,29 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
when_table.set_homogeneous (true); when_table.set_homogeneous (true);
when_table.set_row_spacings (2); when_table.set_row_spacings (2);
when_table.set_col_spacings (2); when_table.set_col_spacings (2);
when_table.set_border_width (5); when_table.set_border_width (6);
when_table.attach (when_bar_label, 0, 1, 0, 1, Gtk::AttachOptions(0), Gtk::FILL|Gtk::EXPAND); when_table.attach (when_bar_label, 0, 1, 0, 1, AttachOptions(0), FILL|EXPAND);
when_table.attach (when_bar_entry, 0, 1, 1, 2, Gtk::AttachOptions(0), Gtk::FILL|Gtk::EXPAND); when_table.attach (when_bar_entry, 1, 2, 0, 1, AttachOptions(0), FILL|EXPAND);
when_table.attach (when_beat_label, 1, 2, 0, 1, Gtk::AttachOptions(0), Gtk::AttachOptions(0)); when_table.attach (when_beat_label, 0, 1, 1, 2, AttachOptions(0), AttachOptions(0));
when_table.attach (when_beat_entry, 1, 2, 1, 2, Gtk::AttachOptions(0), Gtk::AttachOptions(0)); when_table.attach (when_beat_entry, 1, 2, 1, 2, AttachOptions(0), AttachOptions(0));
HBox* when_hbox = manage (new HBox());
Label* when_label = manage(new Label(_("Meter Begins at:"), ALIGN_LEFT, ALIGN_TOP));
when_hbox->pack_end(when_table, PACK_EXPAND_PADDING, 6);
when_hbox->pack_start(*when_label, PACK_EXPAND_PADDING, 6);
when_frame.set_name ("MetricDialogFrame"); when_frame.set_name ("MetricDialogFrame");
when_frame.add (when_table); when_frame.add (*when_hbox);
get_vbox()->pack_start (when_frame, false, false); get_vbox()->pack_end (when_frame, false, false);
} }
get_vbox()->set_border_width (12); get_vbox()->set_border_width (12);
get_vbox()->pack_start (bpb_frame, false, false); get_vbox()->pack_start (bpb_frame, false, false);
get_vbox()->pack_start (note_frame, false, false);
bpb_frame.set_name ("MetricDialogFrame"); bpb_frame.set_name ("MetricDialogFrame");
note_frame.set_name ("MetricDialogFrame");
bpb_entry.set_name ("MetricEntry"); bpb_entry.set_name ("MetricEntry");
add_button (Stock::CANCEL, RESPONSE_CANCEL); add_button (Stock::CANCEL, RESPONSE_CANCEL);
@ -380,7 +384,6 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
set_default_response (RESPONSE_ACCEPT); set_default_response (RESPONSE_ACCEPT);
get_vbox()->show_all (); get_vbox()->show_all ();
bpb_entry.show ();
set_name ("MetricDialog"); set_name ("MetricDialog");
bpb_entry.signal_activate().connect (bind (mem_fun (*this, &MeterDialog::response), RESPONSE_ACCEPT)); bpb_entry.signal_activate().connect (bind (mem_fun (*this, &MeterDialog::response), RESPONSE_ACCEPT));
@ -393,48 +396,48 @@ bool
MeterDialog::bpb_key_press (GdkEventKey* ev) MeterDialog::bpb_key_press (GdkEventKey* ev)
{ {
switch (ev->keyval) { switch (ev->keyval) {
case GDK_0: case GDK_0:
case GDK_1: case GDK_1:
case GDK_2: case GDK_2:
case GDK_3: case GDK_3:
case GDK_4: case GDK_4:
case GDK_5: case GDK_5:
case GDK_6: case GDK_6:
case GDK_7: case GDK_7:
case GDK_8: case GDK_8:
case GDK_9: case GDK_9:
case GDK_KP_0: case GDK_KP_0:
case GDK_KP_1: case GDK_KP_1:
case GDK_KP_2: case GDK_KP_2:
case GDK_KP_3: case GDK_KP_3:
case GDK_KP_4: case GDK_KP_4:
case GDK_KP_5: case GDK_KP_5:
case GDK_KP_6: case GDK_KP_6:
case GDK_KP_7: case GDK_KP_7:
case GDK_KP_8: case GDK_KP_8:
case GDK_KP_9: case GDK_KP_9:
case GDK_period: case GDK_period:
case GDK_comma: case GDK_comma:
case GDK_KP_Delete: case GDK_KP_Delete:
case GDK_KP_Enter: case GDK_KP_Enter:
case GDK_Delete: case GDK_Delete:
case GDK_BackSpace: case GDK_BackSpace:
case GDK_Escape: case GDK_Escape:
case GDK_Return: case GDK_Return:
case GDK_Home: case GDK_Home:
case GDK_End: case GDK_End:
case GDK_Left: case GDK_Left:
case GDK_Right: case GDK_Right:
case GDK_Num_Lock: case GDK_Num_Lock:
case GDK_Tab: case GDK_Tab:
return FALSE; return FALSE;
default: default:
break; break;
} }
return TRUE; return TRUE;
} }
bool bool
@ -451,7 +454,7 @@ MeterDialog::bpb_key_release (GdkEventKey* ev)
void void
MeterDialog::note_types_change () MeterDialog::note_types_change ()
{ {
set_response_sensitive (Gtk::RESPONSE_ACCEPT, true); set_response_sensitive (RESPONSE_ACCEPT, true);
} }
double double
@ -497,7 +500,6 @@ MeterDialog::get_note_type ()
bool bool
MeterDialog::get_bbt_time (BBT_Time& requested) MeterDialog::get_bbt_time (BBT_Time& requested)
{ {
requested.ticks = 0;
if (sscanf (when_bar_entry.get_text().c_str(), "%" PRIu32, &requested.bars) != 1) { if (sscanf (when_bar_entry.get_text().c_str(), "%" PRIu32, &requested.bars) != 1) {
return false; return false;
@ -507,5 +509,7 @@ MeterDialog::get_bbt_time (BBT_Time& requested)
return false; return false;
} }
requested.ticks = 0;
return true; return true;
} }

View file

@ -37,74 +37,66 @@
struct TempoDialog : public ArdourDialog struct TempoDialog : public ArdourDialog
{ {
Gtk::ComboBoxText note_types; Gtk::ComboBoxText note_types;
vector<string> strings; vector<string> strings;
Gtk::Adjustment bpm_adjustment; Gtk::Adjustment bpm_adjustment;
Gtk::SpinButton bpm_spinner; Gtk::SpinButton bpm_spinner;
Gtk::Frame bpm_frame; Gtk::Frame bpm_frame;
Gtk::Frame note_frame; Gtk::Button ok_button;
Gtk::VBox vpacker; Gtk::Button cancel_button;
Gtk::Button ok_button; Gtk::HBox hspacer1, hspacer2;
Gtk::Button cancel_button; Gtk::VBox vspacer1;
Gtk::HBox button_box; Gtk::Entry when_bar_entry;
Gtk::HBox hspacer1, hspacer2; Gtk::Entry when_beat_entry;
Gtk::VBox vspacer1, vspacer2; Gtk::Label when_bar_label;
Gtk::Entry when_bar_entry; Gtk::Label when_beat_label;
Gtk::Entry when_beat_entry; Gtk::Table when_table;
Gtk::Label when_bar_label; Gtk::Frame when_frame;
Gtk::Label when_beat_label; char buf[64];
Gtk::Table when_table;
Gtk::Frame when_frame;
char buf[64];
TempoDialog (ARDOUR::TempoMap&, nframes_t, const string & action); TempoDialog (ARDOUR::TempoMap&, nframes_t, const string & action);
TempoDialog (ARDOUR::TempoSection&, const string & action); TempoDialog (ARDOUR::TempoSection&, const string & action);
double get_bpm (); double get_bpm ();
double get_note_type (); double get_note_type ();
bool get_bbt_time (ARDOUR::BBT_Time&); bool get_bbt_time (ARDOUR::BBT_Time&);
private: private:
void init (const ARDOUR::BBT_Time& start, double, double, bool); void init (const ARDOUR::BBT_Time& start, double, double, bool);
void bpm_changed (); void bpm_changed ();
bool bpm_button_press (GdkEventButton* ); bool bpm_button_press (GdkEventButton* );
bool bpm_button_release (GdkEventButton* ); bool bpm_button_release (GdkEventButton* );
void note_types_change (); void note_types_change ();
}; };
struct MeterDialog : public ArdourDialog struct MeterDialog : public ArdourDialog
{ {
Gtk::Entry bpb_entry; Gtk::Entry bpb_entry;
Gtk::ComboBoxText note_types; Gtk::ComboBoxText note_types;
vector<string> strings; vector<string> strings;
Gtk::Frame note_frame; Gtk::Frame bpb_frame;
Gtk::Frame bpb_frame; Gtk::Button ok_button;
Gtk::VBox vpacker; Gtk::Button cancel_button;
Gtk::Button ok_button; Gtk::Entry when_bar_entry;
Gtk::Button cancel_button; Gtk::Entry when_beat_entry;
Gtk::HBox button_box; Gtk::Label when_bar_label;
Gtk::HBox hspacer1, hspacer2; Gtk::Label when_beat_label;
Gtk::VBox vspacer1, vspacer2; Gtk::Table when_table;
Gtk::Entry when_bar_entry; Gtk::Frame when_frame;
Gtk::Entry when_beat_entry; char buf[64];
Gtk::Label when_bar_label;
Gtk::Label when_beat_label;
Gtk::Table when_table;
Gtk::Frame when_frame;
char buf[64];
MeterDialog (ARDOUR::TempoMap&, nframes_t, const string & action); MeterDialog (ARDOUR::TempoMap&, nframes_t, const string & action);
MeterDialog (ARDOUR::MeterSection&, const string & action); MeterDialog (ARDOUR::MeterSection&, const string & action);
double get_bpb (); double get_bpb ();
double get_note_type (); double get_note_type ();
bool get_bbt_time (ARDOUR::BBT_Time&); bool get_bbt_time (ARDOUR::BBT_Time&);
private: private:
void init (const ARDOUR::BBT_Time&, double, double, bool); void init (const ARDOUR::BBT_Time&, double, double, bool);
bool bpb_key_press (GdkEventKey* ); bool bpb_key_press (GdkEventKey* );
bool bpb_key_release (GdkEventKey* ); bool bpb_key_release (GdkEventKey* );
void note_types_change (); void note_types_change ();
}; };
#endif /* __ardour_gtk_tempo_dialog_h__ */ #endif /* __ardour_gtk_tempo_dialog_h__ */

View file

@ -449,7 +449,7 @@ TempoMap::add_meter (const Meter& meter, BBT_Time where)
where.ticks = 0; where.ticks = 0;
do_insert (new MeterSection (where, meter.beats_per_bar(), meter.note_divisor()), false); do_insert (new MeterSection (where, meter.beats_per_bar(), meter.note_divisor()), true);
} }
StateChanged (Change (0)); StateChanged (Change (0));
@ -460,7 +460,7 @@ TempoMap::add_meter (const Meter& meter, nframes_t where)
{ {
{ {
Glib::RWLock::WriterLock lm (lock); Glib::RWLock::WriterLock lm (lock);
do_insert (new MeterSection (where, meter.beats_per_bar(), meter.note_divisor()), true); do_insert (new MeterSection (where, meter.beats_per_bar(), meter.note_divisor()), false);
} }
StateChanged (Change (0)); StateChanged (Change (0));