- ruler_shown[ruler_time_meter] = true;
- ruler_shown[ruler_time_tempo] = true;
- ruler_shown[ruler_time_marker] = true;
- ruler_shown[ruler_time_range_marker] = true;
- ruler_shown[ruler_time_transport_marker] = true;
- ruler_shown[ruler_metric_frames] = false;
- ruler_shown[ruler_metric_minsec] = false;
-
- smpte_ruler->set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- bbt_ruler->set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- frames_ruler->set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- minsec_ruler->set_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_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));
-
- visible_timebars = 7; /* 4 here, 3 in time_canvas */
- ruler_pressed_button = 0;
+ 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(timecode_label, PACK_SHRINK, PACK_START));
+ ruler_children.insert (canvaspos, Element(*timecode_ruler, PACK_SHRINK, PACK_START));
+ ruler_lab_children.push_back (Element(samples_label, PACK_SHRINK, PACK_START));
+ ruler_children.insert (canvaspos, Element (*samples_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));
+
+ timecode_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);
+ samples_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);
+
+ timecode_ruler->signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_release));
+ bbt_ruler->signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_release));
+ samples_ruler->signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_release));
+ minsec_ruler->signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_release));
+
+ timecode_ruler->signal_button_press_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_press));
+ bbt_ruler->signal_button_press_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_press));
+ samples_ruler->signal_button_press_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_press));
+ minsec_ruler->signal_button_press_event().connect (sigc::mem_fun(*this, &Editor::ruler_button_press));
+
+ timecode_ruler->signal_motion_notify_event().connect (sigc::mem_fun(*this, &Editor::ruler_mouse_motion));
+ bbt_ruler->signal_motion_notify_event().connect (sigc::mem_fun(*this, &Editor::ruler_mouse_motion));
+ samples_ruler->signal_motion_notify_event().connect (sigc::mem_fun(*this, &Editor::ruler_mouse_motion));
+ minsec_ruler->signal_motion_notify_event().connect (sigc::mem_fun(*this, &Editor::ruler_mouse_motion));
+
+ timecode_ruler->signal_scroll_event().connect (sigc::mem_fun(*this, &Editor::ruler_scroll));
+ bbt_ruler->signal_scroll_event().connect (sigc::mem_fun(*this, &Editor::ruler_scroll));
+ samples_ruler->signal_scroll_event().connect (sigc::mem_fun(*this, &Editor::ruler_scroll));
+ minsec_ruler->signal_scroll_event().connect (sigc::mem_fun(*this, &Editor::ruler_scroll));
+
+ visible_timebars = 0; /*this will be changed below */
+ canvas_timebars_vsize = 0;