N_("Right"),
N_("Center"),
N_("Playhead"),
- N_("Mouse"),
- N_("Edit point"),
+ N_("Mouse"),
+ N_("Edit point"),
0
};
, tempo_lines (0)
, global_rect_group (0)
, time_line_group (0)
- , tempo_or_meter_marker_menu (0)
+ , tempo_marker_menu (0)
+ , meter_marker_menu (0)
, marker_menu (0)
, range_marker_menu (0)
, transport_marker_menu (0)
TimeAxisView::setup_sizes ();
ArdourMarker::setup_sizes (timebar_height);
+ TempoCurve::setup_sizes (timebar_height);
bbt_label.set_name ("EditorRulerLabel");
bbt_label.set_size_request (-1, (int)timebar_height);
{
using namespace Menu_Helpers;
- MenuList& edit_items = track_context_menu.items();
+ MenuList& edit_items = track_context_menu.items();
edit_items.clear();
add_dstream_context_items (edit_items);
{
using namespace Menu_Helpers;
- MenuList& edit_items = track_context_menu.items();
+ MenuList& edit_items = track_context_menu.items();
edit_items.clear();
add_bus_context_items (edit_items);
node->add_child_nocopy (Tabbable::get_state());
- snprintf(buf,sizeof(buf), "%d",gtk_paned_get_position (static_cast<Paned*>(&edit_pane)->gobj()));
+ snprintf(buf,sizeof(buf), "%f", paned_position_as_fraction (edit_pane, false));
node->add_property("edit-horizontal-pane-pos", string(buf));
node->add_property("notebook-shrunk", _notebook_shrunk ? "1" : "0");
- snprintf(buf,sizeof(buf), "%d",gtk_paned_get_position (static_cast<Paned*>(&editor_summary_pane)->gobj()));
+ snprintf(buf,sizeof(buf), "%f", paned_position_as_fraction (editor_summary_pane, true));
node->add_property("edit-vertical-pane-pos", string(buf));
maybe_add_mixer_strip_width (*node);
{
/* recover or initialize pane positions. do this here rather than earlier because
we don't want the positions to change the child allocations, which they seem to do.
+
+ See comments in mixer_ui.cc about how this works.
*/
- int pos;
- XMLProperty const * prop;
- char buf[32];
- XMLNode* node = ARDOUR_UI::instance()->editor_settings();
+ float pos;
+ XMLProperty* prop;
+ XMLNode* geometry = ARDOUR_UI::instance()->editor_settings();
enum Pane {
Horizontal = 0x1,
static Pane done;
- XMLNode* geometry = find_named_node (*node, "geometry");
-
if (which == static_cast<Paned*> (&edit_pane)) {
if (done & Horizontal) {
if (!geometry || (prop = geometry->property ("edit-horizontal-pane-pos")) == 0) {
/* initial allocation is 90% to canvas, 10% to notebook */
pos = (int) floor (alloc.get_width() * 0.90f);
- snprintf (buf, sizeof(buf), "%d", pos);
} else {
- pos = atoi (prop->value());
+ pos = atof (prop->value());
}
- if (GTK_WIDGET(edit_pane.gobj())->allocation.width > pos) {
- edit_pane.set_position (pos);
+ if (pos > 1.0f) {
+ /* older versions of Ardour stored absolute position */
+ if (alloc.get_width() > pos) {
+ edit_pane.set_position (pos);
+ done = (Pane) (done | Horizontal);
+ }
+ } else {
+ if (alloc.get_width() > 1.0/pos) {
+ paned_set_position_as_fraction (edit_pane, pos, false);
+ done = (Pane) (done | Horizontal);
+ }
}
- done = (Pane) (done | Horizontal);
-
} else if (which == static_cast<Paned*> (&editor_summary_pane)) {
if (done & Vertical) {
if (!geometry || (prop = geometry->property ("edit-vertical-pane-pos")) == 0) {
/* initial allocation is 90% to canvas, 10% to summary */
pos = (int) floor (alloc.get_height() * 0.90f);
- snprintf (buf, sizeof(buf), "%d", pos);
} else {
- pos = atoi (prop->value());
+ pos = atof (prop->value());
}
- if (GTK_WIDGET(editor_summary_pane.gobj())->allocation.height > pos) {
- editor_summary_pane.set_position (pos);
+ if (pos > 1.0f) {
+ /* older versions of Ardour stored absolute position */
+ if (alloc.get_height() > pos) {
+ editor_summary_pane.set_position (pos);
+ done = (Pane) (done | Vertical);
+ }
+ } else {
+ if (alloc.get_height() > 1.0/pos) {
+ paned_set_position_as_fraction (editor_summary_pane, pos, true);
+ done = (Pane) (done | Vertical);
+ }
}
-
- done = (Pane) (done | Vertical);
}
}
return Evoral::Beats(1.0);
case SnapToBar:
if (_session) {
- return Evoral::Beats(_session->tempo_map().meter_at (position).divisions_per_bar());
+ return Evoral::Beats(_session->tempo_map().meter_at_frame (position).divisions_per_bar());
}
break;
default: