Don't tear down and rebuild all rulers on each visibility change, fix duplicated secondary-m in SAE bindings, avoid dirty master channel updates on osx, simplify ruler scale calculation params.
git-svn-id: svn://localhost/ardour2/branches/3.0@3995 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
8665fd32e6
commit
6dce8160cf
|
@ -106,7 +106,7 @@
|
|||
(gtk_accel_path "<Actions>/Main/AddTrackBus" "<%PRIMARY%><%TERTIARY%>n")
|
||||
(gtk_accel_path "<Actions>/Common/goto-mixer" "<%SECONDARY%>m")
|
||||
(gtk_accel_path "<Actions>/Editor/add-location-from-playhead" "KP_Enter")
|
||||
(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "<%SECONDARY%>m")
|
||||
(gtk_accel_path "<Actions>/Editor/mute-unmute-region" "m")
|
||||
|
||||
;; arrow keys, navigation etc.
|
||||
|
||||
|
|
|
@ -260,12 +260,6 @@ Editor::Editor ()
|
|||
selection = new Selection (this);
|
||||
cut_buffer = new Selection (this);
|
||||
|
||||
selection->TimeChanged.connect (mem_fun(*this, &Editor::time_selection_changed));
|
||||
selection->TracksChanged.connect (mem_fun(*this, &Editor::track_selection_changed));
|
||||
selection->RegionsChanged.connect (mem_fun(*this, &Editor::region_selection_changed));
|
||||
selection->PointsChanged.connect (mem_fun(*this, &Editor::point_selection_changed));
|
||||
selection->MarkersChanged.connect (mem_fun(*this, &Editor::marker_selection_changed));
|
||||
|
||||
clicked_regionview = 0;
|
||||
clicked_axisview = 0;
|
||||
clicked_routeview = 0;
|
||||
|
@ -384,9 +378,77 @@ Editor::Editor ()
|
|||
set_zoom_focus (ZoomFocusLeft);
|
||||
zoom_range_clock.ValueChanged.connect (mem_fun(*this, &Editor::zoom_adjustment_changed));
|
||||
|
||||
bbt_label.set_name ("EditorTimeButton");
|
||||
bbt_label.set_size_request (-1, (int)timebar_height);
|
||||
bbt_label.set_alignment (1.0, 0.5);
|
||||
bbt_label.set_padding (5,0);
|
||||
bbt_label.hide ();
|
||||
bbt_label.set_no_show_all();
|
||||
minsec_label.set_name ("EditorTimeButton");
|
||||
minsec_label.set_size_request (-1, (int)timebar_height);
|
||||
minsec_label.set_alignment (1.0, 0.5);
|
||||
minsec_label.set_padding (5,0);
|
||||
minsec_label.hide ();
|
||||
minsec_label.set_no_show_all();
|
||||
smpte_label.set_name ("EditorTimeButton");
|
||||
smpte_label.set_size_request (-1, (int)timebar_height);
|
||||
smpte_label.set_alignment (1.0, 0.5);
|
||||
smpte_label.set_padding (5,0);
|
||||
smpte_label.hide ();
|
||||
smpte_label.set_no_show_all();
|
||||
frame_label.set_name ("EditorTimeButton");
|
||||
frame_label.set_size_request (-1, (int)timebar_height);
|
||||
frame_label.set_alignment (1.0, 0.5);
|
||||
frame_label.set_padding (5,0);
|
||||
frame_label.hide ();
|
||||
frame_label.set_no_show_all();
|
||||
|
||||
tempo_label.set_name ("EditorTimeButton");
|
||||
tempo_label.set_size_request (-1, (int)timebar_height);
|
||||
tempo_label.set_alignment (1.0, 0.5);
|
||||
tempo_label.set_padding (5,0);
|
||||
tempo_label.hide();
|
||||
tempo_label.set_no_show_all();
|
||||
meter_label.set_name ("EditorTimeButton");
|
||||
meter_label.set_size_request (-1, (int)timebar_height);
|
||||
meter_label.set_alignment (1.0, 0.5);
|
||||
meter_label.set_padding (5,0);
|
||||
meter_label.hide();
|
||||
meter_label.set_no_show_all();
|
||||
mark_label.set_name ("EditorTimeButton");
|
||||
mark_label.set_size_request (-1, (int)timebar_height);
|
||||
mark_label.set_alignment (1.0, 0.5);
|
||||
mark_label.set_padding (5,0);
|
||||
mark_label.hide();
|
||||
mark_label.set_no_show_all();
|
||||
cd_mark_label.set_name ("EditorTimeButton");
|
||||
cd_mark_label.set_size_request (-1, (int)timebar_height);
|
||||
cd_mark_label.set_alignment (1.0, 0.5);
|
||||
cd_mark_label.set_padding (5,0);
|
||||
cd_mark_label.hide();
|
||||
cd_mark_label.set_no_show_all();
|
||||
range_mark_label.set_name ("EditorTimeButton");
|
||||
range_mark_label.set_size_request (-1, (int)timebar_height);
|
||||
range_mark_label.set_alignment (1.0, 0.5);
|
||||
range_mark_label.set_padding (5,0);
|
||||
range_mark_label.hide();
|
||||
range_mark_label.set_no_show_all();
|
||||
transport_mark_label.set_name ("EditorTimeButton");
|
||||
transport_mark_label.set_size_request (-1, (int)timebar_height);
|
||||
transport_mark_label.set_alignment (1.0, 0.5);
|
||||
transport_mark_label.set_padding (5,0);
|
||||
transport_mark_label.hide();
|
||||
transport_mark_label.set_no_show_all();
|
||||
|
||||
initialize_rulers ();
|
||||
initialize_canvas ();
|
||||
|
||||
selection->TimeChanged.connect (mem_fun(*this, &Editor::time_selection_changed));
|
||||
selection->TracksChanged.connect (mem_fun(*this, &Editor::track_selection_changed));
|
||||
selection->RegionsChanged.connect (mem_fun(*this, &Editor::region_selection_changed));
|
||||
selection->PointsChanged.connect (mem_fun(*this, &Editor::point_selection_changed));
|
||||
selection->MarkersChanged.connect (mem_fun(*this, &Editor::marker_selection_changed));
|
||||
|
||||
edit_controls_vbox.set_spacing (0);
|
||||
horizontal_adjustment.signal_value_changed().connect (mem_fun(*this, &Editor::scroll_canvas_horizontally), false);
|
||||
vertical_adjustment.signal_value_changed().connect (mem_fun(*this, &Editor::tie_vertical_scrolling), true);
|
||||
|
@ -423,69 +485,14 @@ Editor::Editor ()
|
|||
pad_line_1->show();
|
||||
time_pad->show();
|
||||
|
||||
time_canvas_vbox.pack_start (*_ruler_separator, false, false);
|
||||
time_canvas_vbox.pack_start (*minsec_ruler, false, false);
|
||||
time_canvas_vbox.pack_start (*smpte_ruler, false, false);
|
||||
time_canvas_vbox.pack_start (*frames_ruler, false, false);
|
||||
time_canvas_vbox.pack_start (*bbt_ruler, false, false);
|
||||
//time_canvas_vbox.set_size_request (-1, (int)(timebar_height * visible_timebars) + 2);
|
||||
time_canvas_vbox.set_size_request (-1, -1);
|
||||
bbt_label.set_name ("EditorTimeButton");
|
||||
bbt_label.set_size_request (-1, (int)timebar_height);
|
||||
bbt_label.set_alignment (1.0, 0.5);
|
||||
bbt_label.set_padding (5,0);
|
||||
minsec_label.set_name ("EditorTimeButton");
|
||||
minsec_label.set_size_request (-1, (int)timebar_height);
|
||||
minsec_label.set_alignment (1.0, 0.5);
|
||||
minsec_label.set_padding (5,0);
|
||||
smpte_label.set_name ("EditorTimeButton");
|
||||
smpte_label.set_size_request (-1, (int)timebar_height);
|
||||
smpte_label.set_alignment (1.0, 0.5);
|
||||
smpte_label.set_padding (5,0);
|
||||
frame_label.set_name ("EditorTimeButton");
|
||||
frame_label.set_size_request (-1, (int)timebar_height);
|
||||
frame_label.set_alignment (1.0, 0.5);
|
||||
frame_label.set_padding (5,0);
|
||||
//time_canvas_vbox.set_size_request (-1, -1);
|
||||
|
||||
tempo_label.set_name ("EditorTimeButton");
|
||||
tempo_label.set_size_request (-1, (int)timebar_height);
|
||||
tempo_label.set_alignment (1.0, 0.5);
|
||||
tempo_label.set_padding (5,0);
|
||||
meter_label.set_name ("EditorTimeButton");
|
||||
meter_label.set_size_request (-1, (int)timebar_height);
|
||||
meter_label.set_alignment (1.0, 0.5);
|
||||
meter_label.set_padding (5,0);
|
||||
mark_label.set_name ("EditorTimeButton");
|
||||
mark_label.set_size_request (-1, (int)timebar_height);
|
||||
mark_label.set_alignment (1.0, 0.5);
|
||||
mark_label.set_padding (5,0);
|
||||
cd_mark_label.set_name ("EditorTimeButton");
|
||||
cd_mark_label.set_size_request (-1, (int)timebar_height);
|
||||
cd_mark_label.set_alignment (1.0, 0.5);
|
||||
cd_mark_label.set_padding (5,0);
|
||||
range_mark_label.set_name ("EditorTimeButton");
|
||||
range_mark_label.set_size_request (-1, (int)timebar_height);
|
||||
range_mark_label.set_alignment (1.0, 0.5);
|
||||
range_mark_label.set_padding (5,0);
|
||||
transport_mark_label.set_name ("EditorTimeButton");
|
||||
transport_mark_label.set_size_request (-1, (int)timebar_height);
|
||||
transport_mark_label.set_alignment (1.0, 0.5);
|
||||
transport_mark_label.set_padding (5,0);
|
||||
|
||||
ruler_label_vbox.pack_start (minsec_label, false, false);
|
||||
ruler_label_vbox.pack_start (smpte_label, false, false);
|
||||
ruler_label_vbox.pack_start (frame_label, false, false);
|
||||
ruler_label_vbox.pack_start (bbt_label, false, false);
|
||||
|
||||
ruler_label_event_box.add (ruler_label_vbox);
|
||||
ruler_label_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
|
||||
ruler_label_event_box.set_name ("TimebarLabelBase");
|
||||
ruler_label_event_box.signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_label_button_release));
|
||||
|
||||
time_button_vbox.pack_start (meter_label, false, false);
|
||||
time_button_vbox.pack_start (tempo_label, false, false);
|
||||
time_button_vbox.pack_start (mark_label, false, false);
|
||||
|
||||
time_button_event_box.add (time_button_vbox);
|
||||
time_button_event_box.set_name ("TimebarLabelBase");
|
||||
time_button_event_box.set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
|
||||
|
@ -938,10 +945,10 @@ void
|
|||
Editor::show_window ()
|
||||
{
|
||||
show_all_children ();
|
||||
|
||||
|
||||
/* re-hide editor list if necessary */
|
||||
editor_list_button_toggled ();
|
||||
|
||||
|
||||
/* now reset all audio_time_axis heights, because widgets might need
|
||||
to be re-hidden
|
||||
*/
|
||||
|
@ -952,7 +959,7 @@ Editor::show_window ()
|
|||
tv = (static_cast<TimeAxisView*>(*i));
|
||||
tv->reset_height ();
|
||||
}
|
||||
|
||||
|
||||
present ();
|
||||
}
|
||||
|
||||
|
@ -2301,7 +2308,7 @@ Editor::set_snap_to (SnapType st)
|
|||
case SnapToAEighthBeat:
|
||||
case SnapToAQuarterBeat:
|
||||
case SnapToAThirdBeat:
|
||||
compute_bbt_ruler_scale (leftmost_frame, leftmost_frame + (nframes_t)(edit_packer.get_width() * frames_per_unit));
|
||||
compute_bbt_ruler_scale (leftmost_frame, leftmost_frame + current_page_frames());
|
||||
update_tempo_based_rulers ();
|
||||
break;
|
||||
|
||||
|
@ -4659,8 +4666,8 @@ Editor::idle_visual_changer ()
|
|||
set_frames_per_unit (pending_visual_change.frames_per_unit);
|
||||
|
||||
compute_fixed_ruler_scale ();
|
||||
compute_current_bbt_points(pending_visual_change.time_origin, pending_visual_change.time_origin + (nframes_t)(edit_packer.get_width() * pending_visual_change.frames_per_unit));
|
||||
compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + (nframes_t)(edit_packer.get_width() * pending_visual_change.frames_per_unit));
|
||||
compute_current_bbt_points(pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames());
|
||||
compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames());
|
||||
update_tempo_based_rulers ();
|
||||
}
|
||||
if (p & VisualChange::TimeOrigin) {
|
||||
|
|
|
@ -58,37 +58,96 @@ Editor::initialize_rulers ()
|
|||
{
|
||||
ruler_editor = this;
|
||||
ruler_grabbed_widget = 0;
|
||||
|
||||
|
||||
_ruler_separator = new Gtk::HSeparator();
|
||||
_ruler_separator->set_size_request(-1, 2);
|
||||
_ruler_separator->set_name("TimebarPadding");
|
||||
_ruler_separator->show();
|
||||
|
||||
|
||||
_smpte_ruler = gtk_custom_hruler_new ();
|
||||
smpte_ruler = Glib::wrap (_smpte_ruler);
|
||||
smpte_ruler->set_name ("SMPTERuler");
|
||||
smpte_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_smpte_ruler), &ruler_metrics[ruler_metric_smpte]);
|
||||
|
||||
smpte_ruler->hide ();
|
||||
smpte_ruler->set_no_show_all();
|
||||
smpte_nmarks = 0;
|
||||
|
||||
_bbt_ruler = gtk_custom_hruler_new ();
|
||||
bbt_ruler = Glib::wrap (_bbt_ruler);
|
||||
bbt_ruler->set_name ("BBTRuler");
|
||||
bbt_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
|
||||
bbt_ruler->hide ();
|
||||
bbt_ruler->set_no_show_all();
|
||||
bbt_nmarks = 0;
|
||||
|
||||
_frames_ruler = gtk_custom_hruler_new ();
|
||||
frames_ruler = Glib::wrap (_frames_ruler);
|
||||
frames_ruler->set_name ("FramesRuler");
|
||||
frames_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_frames_ruler), &ruler_metrics[ruler_metric_frames]);
|
||||
frames_ruler->hide ();
|
||||
frames_ruler->set_no_show_all();
|
||||
|
||||
_minsec_ruler = gtk_custom_hruler_new ();
|
||||
minsec_ruler = Glib::wrap (_minsec_ruler);
|
||||
minsec_ruler->set_name ("MinSecRuler");
|
||||
minsec_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
|
||||
minsec_ruler->hide ();
|
||||
minsec_ruler->set_no_show_all();
|
||||
minsec_nmarks = 0;
|
||||
|
||||
visible_timebars = 1; /*this will be changed below */
|
||||
using namespace Box_Helpers;
|
||||
BoxList & ruler_lab_children = ruler_label_vbox.children();
|
||||
BoxList & ruler_children = time_canvas_vbox.children();
|
||||
BoxList & lab_children = time_button_vbox.children();
|
||||
|
||||
BoxList::iterator canvaspos = ruler_children.begin();
|
||||
|
||||
lab_children.push_back (Element(meter_label, PACK_SHRINK, PACK_START));
|
||||
lab_children.push_back (Element(tempo_label, PACK_SHRINK, PACK_START));
|
||||
lab_children.push_back (Element(range_mark_label, PACK_SHRINK, PACK_START));
|
||||
lab_children.push_back (Element(transport_mark_label, PACK_SHRINK, PACK_START));
|
||||
lab_children.push_back (Element(cd_mark_label, PACK_SHRINK, PACK_START));
|
||||
lab_children.push_back (Element(mark_label, PACK_SHRINK, PACK_START));
|
||||
|
||||
ruler_lab_children.push_back (Element(minsec_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*minsec_ruler, PACK_SHRINK, PACK_START));
|
||||
ruler_lab_children.push_back (Element(smpte_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*smpte_ruler, PACK_SHRINK, PACK_START));
|
||||
ruler_lab_children.push_back (Element(frame_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*frames_ruler, PACK_SHRINK, PACK_START));
|
||||
ruler_lab_children.push_back (Element(bbt_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*bbt_ruler, PACK_SHRINK, PACK_START));
|
||||
|
||||
smpte_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
bbt_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
frames_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
minsec_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
|
||||
smpte_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
bbt_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
frames_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
minsec_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
|
||||
smpte_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
bbt_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
frames_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
minsec_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
|
||||
smpte_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
bbt_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
frames_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
minsec_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
|
||||
smpte_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
bbt_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
frames_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
minsec_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
|
||||
visible_timebars = 0; /*this will be changed below */
|
||||
ruler_pressed_button = 0;
|
||||
canvas_timebars_vsize = 0;
|
||||
}
|
||||
|
@ -558,10 +617,6 @@ Editor::restore_ruler_visibility ()
|
|||
void
|
||||
Editor::update_ruler_visibility ()
|
||||
{
|
||||
using namespace Box_Helpers;
|
||||
BoxList & lab_children = time_button_vbox.children();
|
||||
BoxList & ruler_lab_children = ruler_label_vbox.children();
|
||||
BoxList & ruler_children = time_canvas_vbox.children();
|
||||
int visible_rulers = 0;
|
||||
|
||||
if (no_ruler_shown_update) {
|
||||
|
@ -570,98 +625,56 @@ Editor::update_ruler_visibility ()
|
|||
|
||||
visible_timebars = 0;
|
||||
|
||||
lab_children.clear();
|
||||
ruler_lab_children.clear();
|
||||
|
||||
// leave the last one (the time_canvas) intact
|
||||
while (ruler_children.size() > 0) {
|
||||
ruler_children.pop_front();
|
||||
}
|
||||
|
||||
BoxList::iterator canvaspos = ruler_children.begin();
|
||||
|
||||
_smpte_ruler = gtk_custom_hruler_new ();
|
||||
smpte_ruler = Glib::wrap (_smpte_ruler);
|
||||
smpte_ruler->set_name ("SMPTERuler");
|
||||
smpte_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_smpte_ruler), &ruler_metrics[ruler_metric_smpte]);
|
||||
|
||||
_bbt_ruler = gtk_custom_hruler_new ();
|
||||
bbt_ruler = Glib::wrap (_bbt_ruler);
|
||||
bbt_ruler->set_name ("BBTRuler");
|
||||
bbt_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
|
||||
|
||||
_frames_ruler = gtk_custom_hruler_new ();
|
||||
frames_ruler = Glib::wrap (_frames_ruler);
|
||||
frames_ruler->set_name ("FramesRuler");
|
||||
frames_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_frames_ruler), &ruler_metrics[ruler_metric_frames]);
|
||||
|
||||
_minsec_ruler = gtk_custom_hruler_new ();
|
||||
minsec_ruler = Glib::wrap (_minsec_ruler);
|
||||
minsec_ruler->set_name ("MinSecRuler");
|
||||
minsec_ruler->set_size_request (-1, (int)timebar_height);
|
||||
gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
|
||||
|
||||
smpte_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
bbt_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
frames_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
minsec_ruler->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::SCROLL_MASK);
|
||||
|
||||
smpte_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
bbt_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
frames_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
minsec_ruler->signal_button_release_event().connect (mem_fun(*this, &Editor::ruler_button_release));
|
||||
|
||||
smpte_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
bbt_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
frames_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
minsec_ruler->signal_button_press_event().connect (mem_fun(*this, &Editor::ruler_button_press));
|
||||
|
||||
smpte_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
bbt_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
frames_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
minsec_ruler->signal_motion_notify_event().connect (mem_fun(*this, &Editor::ruler_mouse_motion));
|
||||
|
||||
smpte_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
bbt_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
frames_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
minsec_ruler->signal_scroll_event().connect (mem_fun(*this, &Editor::ruler_scroll));
|
||||
|
||||
ruler_children.insert (canvaspos, Element(*_ruler_separator, PACK_SHRINK, PACK_START));
|
||||
|
||||
if (ruler_minsec_action->get_active()) {
|
||||
ruler_lab_children.push_back (Element(minsec_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*minsec_ruler, PACK_SHRINK, PACK_START));
|
||||
visible_rulers++;
|
||||
minsec_label.show ();
|
||||
minsec_ruler->show ();
|
||||
} else {
|
||||
minsec_label.hide ();
|
||||
minsec_ruler->hide ();
|
||||
}
|
||||
|
||||
if (ruler_timecode_action->get_active()) {
|
||||
ruler_lab_children.push_back (Element(smpte_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*smpte_ruler, PACK_SHRINK, PACK_START));
|
||||
visible_rulers++;
|
||||
smpte_label.show ();
|
||||
smpte_ruler->show ();
|
||||
} else {
|
||||
smpte_label.hide ();
|
||||
smpte_ruler->hide ();
|
||||
}
|
||||
|
||||
if (ruler_samples_action->get_active()) {
|
||||
ruler_lab_children.push_back (Element(frame_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*frames_ruler, PACK_SHRINK, PACK_START));
|
||||
visible_rulers++;
|
||||
frame_label.show ();
|
||||
frames_ruler->show ();
|
||||
} else {
|
||||
frame_label.hide ();
|
||||
frames_ruler->hide ();
|
||||
}
|
||||
|
||||
if (ruler_bbt_action->get_active()) {
|
||||
ruler_lab_children.push_back (Element(bbt_label, PACK_SHRINK, PACK_START));
|
||||
ruler_children.insert (canvaspos, Element(*bbt_ruler, PACK_SHRINK, PACK_START));
|
||||
visible_rulers++;
|
||||
bbt_label.show ();
|
||||
bbt_ruler->show ();
|
||||
} else {
|
||||
bbt_label.hide ();
|
||||
bbt_ruler->hide ();
|
||||
}
|
||||
|
||||
double tbpos = 0.0;
|
||||
double tbgpos = 0.0;
|
||||
double old_unit_pos;
|
||||
|
||||
if (ruler_meter_action->get_active()) {
|
||||
lab_children.push_back (Element(meter_label, PACK_SHRINK, PACK_START));
|
||||
|
||||
#ifdef GTKOSX
|
||||
/* gtk update probs require this (damn) */
|
||||
meter_label.hide();
|
||||
tempo_label.hide();
|
||||
range_mark_label.hide();
|
||||
transport_mark_label.hide();
|
||||
cd_mark_label.hide();
|
||||
mark_label.hide();
|
||||
#endif
|
||||
if (ruler_meter_action->get_active()) {
|
||||
old_unit_pos = meter_group->property_y();
|
||||
if (tbpos != old_unit_pos) {
|
||||
meter_group->move ( 0.0, tbpos - old_unit_pos);
|
||||
|
@ -669,19 +682,20 @@ Editor::update_ruler_visibility ()
|
|||
old_unit_pos = meter_bar_group->property_y();
|
||||
if (tbgpos != old_unit_pos) {
|
||||
meter_bar_group->move ( 0.0, tbgpos - old_unit_pos);
|
||||
}
|
||||
}
|
||||
meter_bar_group->show();
|
||||
meter_group->show();
|
||||
meter_label.show();
|
||||
tbpos += timebar_height;
|
||||
tbgpos += timebar_height;
|
||||
visible_timebars++;
|
||||
} else {
|
||||
meter_bar_group->hide();
|
||||
meter_group->hide();
|
||||
meter_label.hide();
|
||||
}
|
||||
|
||||
if (ruler_tempo_action->get_active()) {
|
||||
lab_children.push_back (Element(tempo_label, PACK_SHRINK, PACK_START));
|
||||
old_unit_pos = tempo_group->property_y();
|
||||
if (tbpos != old_unit_pos) {
|
||||
tempo_group->move(0.0, tbpos - old_unit_pos);
|
||||
|
@ -692,16 +706,17 @@ Editor::update_ruler_visibility ()
|
|||
}
|
||||
tempo_bar_group->show();
|
||||
tempo_group->show();
|
||||
tempo_label.show();
|
||||
tbpos += timebar_height;
|
||||
tbgpos += timebar_height;
|
||||
visible_timebars++;
|
||||
} else {
|
||||
tempo_bar_group->hide();
|
||||
tempo_group->hide();
|
||||
tempo_label.hide();
|
||||
}
|
||||
|
||||
if (!Profile->get_sae() && ruler_range_action->get_active()) {
|
||||
lab_children.push_back (Element(range_mark_label, PACK_SHRINK, PACK_START));
|
||||
old_unit_pos = range_marker_group->property_y();
|
||||
if (tbpos != old_unit_pos) {
|
||||
range_marker_group->move (0.0, tbpos - old_unit_pos);
|
||||
|
@ -712,16 +727,17 @@ Editor::update_ruler_visibility ()
|
|||
}
|
||||
range_marker_bar_group->show();
|
||||
range_marker_group->show();
|
||||
range_mark_label.show();
|
||||
tbpos += timebar_height;
|
||||
tbgpos += timebar_height;
|
||||
visible_timebars++;
|
||||
} else {
|
||||
range_marker_bar_group->hide();
|
||||
range_marker_group->hide();
|
||||
range_mark_label.hide();
|
||||
}
|
||||
|
||||
if (ruler_loop_punch_action->get_active()) {
|
||||
lab_children.push_back (Element(transport_mark_label, PACK_SHRINK, PACK_START));
|
||||
old_unit_pos = transport_marker_group->property_y();
|
||||
if (tbpos != old_unit_pos) {
|
||||
transport_marker_group->move ( 0.0, tbpos - old_unit_pos);
|
||||
|
@ -732,16 +748,17 @@ Editor::update_ruler_visibility ()
|
|||
}
|
||||
transport_marker_bar_group->show();
|
||||
transport_marker_group->show();
|
||||
transport_mark_label.show();
|
||||
tbpos += timebar_height;
|
||||
tbgpos += timebar_height;
|
||||
visible_timebars++;
|
||||
} else {
|
||||
transport_marker_bar_group->hide();
|
||||
transport_marker_group->hide();
|
||||
transport_mark_label.hide();
|
||||
}
|
||||
|
||||
if (ruler_cd_marker_action->get_active()) {
|
||||
lab_children.push_back (Element(cd_mark_label, PACK_SHRINK, PACK_START));
|
||||
old_unit_pos = cd_marker_group->property_y();
|
||||
if (tbpos != old_unit_pos) {
|
||||
cd_marker_group->move (0.0, tbpos - old_unit_pos);
|
||||
|
@ -752,6 +769,7 @@ Editor::update_ruler_visibility ()
|
|||
}
|
||||
cd_marker_bar_group->show();
|
||||
cd_marker_group->show();
|
||||
cd_mark_label.show();
|
||||
tbpos += timebar_height;
|
||||
tbgpos += timebar_height;
|
||||
visible_timebars++;
|
||||
|
@ -760,12 +778,12 @@ Editor::update_ruler_visibility ()
|
|||
} else {
|
||||
cd_marker_bar_group->hide();
|
||||
cd_marker_group->hide();
|
||||
cd_mark_label.hide();
|
||||
// make sure all cd markers show up in their respective places
|
||||
update_cd_marker_display();
|
||||
}
|
||||
|
||||
if (ruler_marker_action->get_active()) {
|
||||
lab_children.push_back (Element(mark_label, PACK_SHRINK, PACK_START));
|
||||
old_unit_pos = marker_group->property_y();
|
||||
if (tbpos != old_unit_pos) {
|
||||
marker_group->move ( 0.0, tbpos - old_unit_pos);
|
||||
|
@ -776,14 +794,16 @@ Editor::update_ruler_visibility ()
|
|||
}
|
||||
marker_bar_group->show();
|
||||
marker_group->show();
|
||||
mark_label.show();
|
||||
tbpos += timebar_height;
|
||||
tbgpos += timebar_height;
|
||||
visible_timebars++;
|
||||
} else {
|
||||
marker_bar_group->hide();
|
||||
marker_group->hide();
|
||||
mark_label.hide();
|
||||
}
|
||||
|
||||
|
||||
gdouble old_canvas_timebars_vsize = canvas_timebars_vsize;
|
||||
canvas_timebars_vsize = (timebar_height * visible_timebars) - 1;
|
||||
gdouble vertical_pos_delta = canvas_timebars_vsize - old_canvas_timebars_vsize;
|
||||
|
@ -798,21 +818,11 @@ Editor::update_ruler_visibility ()
|
|||
_trackview_group->move (0, 0);
|
||||
last_trackview_group_vertical_offset = get_trackview_group_vertical_offset ();
|
||||
}
|
||||
|
||||
|
||||
ruler_label_vbox.set_size_request (-1, (int)(timebar_height * visible_rulers));
|
||||
|
||||
time_canvas_vbox.set_size_request (-1,-1);
|
||||
time_canvas_event_box.queue_resize();
|
||||
compute_fixed_ruler_scale();
|
||||
|
||||
update_fixed_rulers();
|
||||
|
||||
time_canvas_event_box.show_all();
|
||||
ruler_label_event_box.show_all();
|
||||
time_button_event_box.show_all();
|
||||
|
||||
compute_current_bbt_points (leftmost_frame, leftmost_frame + (nframes64_t)(edit_packer.get_width() * frames_per_unit));
|
||||
compute_bbt_ruler_scale (leftmost_frame, leftmost_frame + (nframes64_t)(edit_packer.get_width() * frames_per_unit));
|
||||
|
||||
redisplay_tempo (false);
|
||||
}
|
||||
|
||||
|
@ -841,11 +851,11 @@ Editor::compute_fixed_ruler_scale ()
|
|||
}
|
||||
|
||||
if (ruler_timecode_action->get_active()) {
|
||||
set_smpte_ruler_scale (leftmost_frame, leftmost_frame + (edit_packer.get_width() * frames_per_unit) );
|
||||
set_smpte_ruler_scale (leftmost_frame, leftmost_frame + current_page_frames() );
|
||||
}
|
||||
|
||||
if (ruler_minsec_action->get_active()) {
|
||||
set_minsec_ruler_scale (leftmost_frame, leftmost_frame + (edit_packer.get_width() * frames_per_unit) );
|
||||
set_minsec_ruler_scale (leftmost_frame, leftmost_frame + current_page_frames() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -862,7 +872,7 @@ Editor::update_fixed_rulers ()
|
|||
ruler_metrics[ruler_metric_frames].units_per_pixel = frames_per_unit;
|
||||
ruler_metrics[ruler_metric_minsec].units_per_pixel = frames_per_unit;
|
||||
|
||||
rightmost_frame = leftmost_frame + current_page_frames ();
|
||||
rightmost_frame = leftmost_frame + current_page_frames();
|
||||
|
||||
/* these force a redraw, which in turn will force execution of the metric callbacks
|
||||
to compute the relevant ticks to display.
|
||||
|
|
|
@ -190,8 +190,12 @@ Mixer_UI::Mixer_UI ()
|
|||
list_vpacker.pack_start (rhs_pane1, true, true);
|
||||
|
||||
global_hpacker.pack_start (scroller, true, true);
|
||||
#ifdef GTKOSX
|
||||
/* current gtk-quartz has dirty updates on borders like this one */
|
||||
global_hpacker.pack_start (out_packer, false, false, 0);
|
||||
#else
|
||||
global_hpacker.pack_start (out_packer, false, false, 12);
|
||||
|
||||
#endif
|
||||
list_hpane.add1(list_vpacker);
|
||||
list_hpane.add2(global_hpacker);
|
||||
|
||||
|
|
Loading…
Reference in New Issue