fix lack of canvas.h
[ardour.git] / gtk2_ardour / editor_rulers.cc
index b8a236cb61abeeb467d5cc6c48e35d6daf88325b..b0edcedd3882d0e96787cc35983baefc02f0c704 100644 (file)
@@ -24,7 +24,7 @@
 #include <string>
 
 #include <ardour/tempo.h>
-#include <gtkmmext/gtk_ui.h>
+#include <gtkmm2ext/gtk_ui.h>
 
 #include "editor.h"
 #include "editing.h"
@@ -33,7 +33,7 @@
 
 #include "i18n.h"
 
-using namespace SigC;
+using namespace sigc;
 using namespace ARDOUR;
 using namespace Gtk;
 using namespace Editing;
@@ -56,29 +56,29 @@ Editor::initialize_rulers ()
        ruler_grabbed_widget = 0;
        
        _smpte_ruler = gtk_custom_hruler_new ();
-       smpte_ruler = wrap (_smpte_ruler);
+       smpte_ruler = Glib::wrap (_smpte_ruler);
        smpte_ruler->set_name ("SMPTERuler");
-       smpte_ruler->set_usize (-1, (int)timebar_height);
+       smpte_ruler->set_size_request (-1, (int)timebar_height);
        gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_smpte_ruler), &ruler_metrics[ruler_metric_smpte]);
        ruler_shown[ruler_metric_smpte] = true;
        
        _bbt_ruler = gtk_custom_hruler_new ();
-       bbt_ruler = wrap (_bbt_ruler);
+       bbt_ruler = Glib::wrap (_bbt_ruler);
        bbt_ruler->set_name ("BBTRuler");
-       bbt_ruler->set_usize (-1, (int)timebar_height);
+       bbt_ruler->set_size_request (-1, (int)timebar_height);
        gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_bbt_ruler), &ruler_metrics[ruler_metric_bbt]);
        ruler_shown[ruler_metric_bbt] = true;
 
        _frames_ruler = gtk_custom_hruler_new ();
-       frames_ruler = wrap (_frames_ruler);
+       frames_ruler = Glib::wrap (_frames_ruler);
        frames_ruler->set_name ("FramesRuler");
-       frames_ruler->set_usize (-1, (int)timebar_height);
+       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 = wrap (_minsec_ruler);
+       minsec_ruler = Glib::wrap (_minsec_ruler);
        minsec_ruler->set_name ("MinSecRuler");
-       minsec_ruler->set_usize (-1, (int)timebar_height);
+       minsec_ruler->set_size_request (-1, (int)timebar_height);
        gtk_custom_ruler_set_metric (GTK_CUSTOM_RULER(_minsec_ruler), &ruler_metrics[ruler_metric_minsec]);
 
        ruler_shown[ruler_time_meter] = true;
@@ -89,25 +89,25 @@ Editor::initialize_rulers ()
        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->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-       bbt_ruler->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-       frames_ruler->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-       minsec_ruler->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-
-       smpte_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
-       bbt_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
-       frames_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
-       minsec_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
+       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->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
-       bbt_ruler->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
-       frames_ruler->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
-       minsec_ruler->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
+       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;
@@ -127,13 +127,13 @@ Editor::ruler_button_press (GdkEventButton* ev)
        //Gtk::Main::grab_add (*minsec_ruler);
        Widget * grab_widget = 0;
 
-       if (smpte_ruler->is_realized() && ev->window == smpte_ruler->get_window()) grab_widget = smpte_ruler;
-       else if (bbt_ruler->is_realized() && ev->window == bbt_ruler->get_window()) grab_widget = bbt_ruler;
-       else if (frames_ruler->is_realized() && ev->window == frames_ruler->get_window()) grab_widget = frames_ruler;
-       else if (minsec_ruler->is_realized() && ev->window == minsec_ruler->get_window()) grab_widget = minsec_ruler;
+       if (smpte_ruler->is_realized() && ev->window == smpte_ruler->get_window()->gobj()) grab_widget = smpte_ruler;
+       else if (bbt_ruler->is_realized() && ev->window == bbt_ruler->get_window()->gobj()) grab_widget = bbt_ruler;
+       else if (frames_ruler->is_realized() && ev->window == frames_ruler->get_window()->gobj()) grab_widget = frames_ruler;
+       else if (minsec_ruler->is_realized() && ev->window == minsec_ruler->get_window()->gobj()) grab_widget = minsec_ruler;
 
        if (grab_widget) {
-               Gtk::Main::grab_add (*grab_widget);
+               grab_widget->add_modal_grab ();
                ruler_grabbed_widget = grab_widget;
        }
 
@@ -144,10 +144,10 @@ gint
 Editor::ruler_button_release (GdkEventButton* ev)
 {
        gint x,y;
-       GdkModifierType state;
+       Gdk::ModifierType state;
 
        /* need to use the correct x,y, the event lies */
-       time_canvas_event_box.get_window().get_pointer (x, y, state);
+       time_canvas_event_box.get_window()->get_pointer (x, y, state);
 
 
        ruler_pressed_button = 0;
@@ -189,7 +189,7 @@ Editor::ruler_button_release (GdkEventButton* ev)
 
 
        if (ruler_grabbed_widget) {
-               Gtk::Main::grab_remove (*ruler_grabbed_widget);
+               ruler_grabbed_widget->remove_modal_grab();
                ruler_grabbed_widget = 0;
        }
 
@@ -219,14 +219,14 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
        double cx=0,cy=0;
 
        gint x,y;
-       GdkModifierType state;
+       Gdk::ModifierType state;
 
        /* need to use the correct x,y, the event lies */
-       time_canvas_event_box.get_window().get_pointer (x, y, state);
+       time_canvas_event_box.get_window()->get_pointer (x, y, state);
 
        
-       gtk_canvas_window_to_world (GTK_CANVAS(track_gtk_canvas), x, y, &wcx, &wcy);
-       gtk_canvas_w2c_d (GTK_CANVAS(track_gtk_canvas), wcx, wcy, &cx, &cy);
+       track_canvas.c2w (x, y, wcx, wcy);
+       track_canvas.w2c (wcx, wcy, cx, cy);
        
        jack_nframes_t where = leftmost_frame + pixel_to_frame (x);
 
@@ -308,13 +308,13 @@ Editor::popup_ruler_menu (jack_nframes_t where, ItemType t)
 
        switch (t) {
        case MarkerBarItem:
-               ruler_items.push_back (MenuElem (_("New location marker"), bind ( slot (*this, &Editor::mouse_add_new_marker), where)));
-               ruler_items.push_back (MenuElem (_("Clear all locations"), slot (*this, &Editor::clear_markers)));
+               ruler_items.push_back (MenuElem (_("New location marker"), bind ( mem_fun(*this, &Editor::mouse_add_new_marker), where)));
+               ruler_items.push_back (MenuElem (_("Clear all locations"), mem_fun(*this, &Editor::clear_markers)));
                ruler_items.push_back (SeparatorElem ());
                break;
        case RangeMarkerBarItem:
                //ruler_items.push_back (MenuElem (_("New Range")));
-               ruler_items.push_back (MenuElem (_("Clear all ranges"), slot (*this, &Editor::clear_ranges)));
+               ruler_items.push_back (MenuElem (_("Clear all ranges"), mem_fun(*this, &Editor::clear_ranges)));
                ruler_items.push_back (SeparatorElem ());
 
                break;
@@ -323,13 +323,13 @@ Editor::popup_ruler_menu (jack_nframes_t where, ItemType t)
                break;
                
        case TempoBarItem:
-               ruler_items.push_back (MenuElem (_("New Tempo"), bind ( slot (*this, &Editor::mouse_add_new_tempo_event), where)));
+               ruler_items.push_back (MenuElem (_("New Tempo"), bind ( mem_fun(*this, &Editor::mouse_add_new_tempo_event), where)));
                ruler_items.push_back (MenuElem (_("Clear tempo")));
                ruler_items.push_back (SeparatorElem ());
                break;
 
        case MeterBarItem:
-               ruler_items.push_back (MenuElem (_("New Meter"), bind ( slot (*this, &Editor::mouse_add_new_meter_event), where)));
+               ruler_items.push_back (MenuElem (_("New Meter"), bind ( mem_fun(*this, &Editor::mouse_add_new_meter_event), where)));
                ruler_items.push_back (MenuElem (_("Clear meter")));
                ruler_items.push_back (SeparatorElem ());
                break;
@@ -338,58 +338,58 @@ Editor::popup_ruler_menu (jack_nframes_t where, ItemType t)
                break;
        }
        
-       ruler_items.push_back (CheckMenuElem (_("Min:Secs"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_metric_minsec)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Min:Secs"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_metric_minsec)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_metric_minsec]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (X_("SMPTE"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_metric_smpte)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (X_("SMPTE"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_metric_smpte)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_metric_smpte]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (_("Frames"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_metric_frames)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Frames"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_metric_frames)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_metric_frames]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (_("Bars:Beats"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_metric_bbt)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Bars:Beats"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_metric_bbt)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_metric_bbt]) {
                mitem->set_active(true);
        }
 
        ruler_items.push_back (SeparatorElem ());
 
-       ruler_items.push_back (CheckMenuElem (_("Meter"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_time_meter)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Meter"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_time_meter)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_time_meter]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (_("Tempo"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_time_tempo)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Tempo"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_time_tempo)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_time_tempo]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (_("Location Markers"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_time_marker)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Location Markers"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_time_marker)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_time_marker]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (_("Range Markers"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_time_range_marker)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Range Markers"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_time_range_marker)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_time_range_marker]) {
                mitem->set_active(true);
        }
 
-       ruler_items.push_back (CheckMenuElem (_("Loop/Punch Ranges"), bind (slot (*this, &Editor::ruler_toggled), (int)ruler_time_transport_marker)));
-       mitem = (CheckMenuItem *) ruler_items.back(); 
+       ruler_items.push_back (CheckMenuElem (_("Loop/Punch Ranges"), bind (mem_fun(*this, &Editor::ruler_toggled), (int)ruler_time_transport_marker)));
+       mitem = (CheckMenuItem *) &ruler_items.back(); 
        if (ruler_shown[ruler_time_transport_marker]) {
                mitem->set_active(true);
        }
@@ -528,72 +528,72 @@ Editor::update_ruler_visibility ()
        BoxList::iterator canvaspos = ruler_children.begin();
        
        _smpte_ruler = gtk_custom_hruler_new ();
-       smpte_ruler = wrap (_smpte_ruler);
+       smpte_ruler = Glib::wrap (_smpte_ruler);
        smpte_ruler->set_name ("SMPTERuler");
-       smpte_ruler->set_usize (-1, (int)timebar_height);
+       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 = wrap (_bbt_ruler);
+       bbt_ruler = Glib::wrap (_bbt_ruler);
        bbt_ruler->set_name ("BBTRuler");
-       bbt_ruler->set_usize (-1, (int)timebar_height);
+       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 = wrap (_frames_ruler);
+       frames_ruler = Glib::wrap (_frames_ruler);
        frames_ruler->set_name ("FramesRuler");
-       frames_ruler->set_usize (-1, (int)timebar_height);
+       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 = wrap (_minsec_ruler);
+       minsec_ruler = Glib::wrap (_minsec_ruler);
        minsec_ruler->set_name ("MinSecRuler");
-       minsec_ruler->set_usize (-1, (int)timebar_height);
+       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->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->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-       bbt_ruler->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-       frames_ruler->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-       minsec_ruler->button_release_event.connect (slot (*this, &Editor::ruler_button_release));
-
-       smpte_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
-       bbt_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
-       frames_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
-       minsec_ruler->button_press_event.connect (slot (*this, &Editor::ruler_button_press));
+       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->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
-       bbt_ruler->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
-       frames_ruler->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
-       minsec_ruler->motion_notify_event.connect (slot (*this, &Editor::ruler_mouse_motion));
+       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));
 
        
        if (ruler_shown[ruler_metric_minsec]) {
-               lab_children.push_back (Element(minsec_label, false, false));
-               ruler_children.insert (canvaspos, Element(*minsec_ruler, false, false));
+               lab_children.push_back (Element(minsec_label, PACK_SHRINK, PACK_START));
+               ruler_children.insert (canvaspos, Element(*minsec_ruler, PACK_SHRINK, PACK_START));
                visible_timebars++;
        }
 
        if (ruler_shown[ruler_metric_smpte]) {
-               lab_children.push_back (Element(smpte_label, false, false));
-               ruler_children.insert (canvaspos, Element(*smpte_ruler, false, false));
+               lab_children.push_back (Element(smpte_label, PACK_SHRINK, PACK_START));
+               ruler_children.insert (canvaspos, Element(*smpte_ruler, PACK_SHRINK, PACK_START));
                visible_timebars++;
        }
 
        if (ruler_shown[ruler_metric_frames]) {
-               lab_children.push_back (Element(frame_label, false, false));
-               ruler_children.insert (canvaspos, Element(*frames_ruler, false, false));
+               lab_children.push_back (Element(frame_label, PACK_SHRINK, PACK_START));
+               ruler_children.insert (canvaspos, Element(*frames_ruler, PACK_SHRINK, PACK_START));
                visible_timebars++;
        }
 
        if (ruler_shown[ruler_metric_bbt]) {
-               lab_children.push_back (Element(bbt_label, false, false));
-               ruler_children.insert (canvaspos, Element(*bbt_ruler, false, false));
+               lab_children.push_back (Element(bbt_label, PACK_SHRINK, PACK_START));
+               ruler_children.insert (canvaspos, Element(*bbt_ruler, PACK_SHRINK, PACK_START));
                visible_timebars++;
        }
 
@@ -603,88 +603,86 @@ Editor::update_ruler_visibility ()
        args[0].name = "y";
        
        if (ruler_shown[ruler_time_meter]) {
-               lab_children.push_back (Element(meter_label, false, false));
+               lab_children.push_back (Element(meter_label, PACK_SHRINK, PACK_START));
 
-               gtk_object_getv (GTK_OBJECT(meter_group), 1, args) ;
-               old_unit_pos = GTK_VALUE_DOUBLE (args[0]) ;
+               gtk_object_get (GTK_OBJECT(meter_group), "y", &old_unit_pos);
                if (tbpos != old_unit_pos) {
-                       gtk_canvas_item_move (meter_group, 0.0, tbpos - old_unit_pos) ;
+                       meter_group->move ( 0.0, tbpos - old_unit_pos);
                }
 
-               //gtk_canvas_item_set (meter_group, "y", tbpos, NULL);
-               gtk_canvas_item_show (meter_group);
+               //gnome_canvas_item_set (meter_group, "y", tbpos, NULL);
+               meter_group->show();
                tbpos += timebar_height;
                visible_timebars++;
        }
        else {
-               gtk_canvas_item_hide (meter_group);
+               meter_group->hide();
        }
        
        if (ruler_shown[ruler_time_tempo]) {
-               lab_children.push_back (Element(tempo_label, false, false));
-               gtk_object_getv (GTK_OBJECT(tempo_group), 1, args) ;
-               old_unit_pos = GTK_VALUE_DOUBLE (args[0]) ;
+               lab_children.push_back (Element(tempo_label, PACK_SHRINK, PACK_START));
+               gtk_object_get (GTK_OBJECT(tempo_group), "y", &old_unit_pos);
                if (tbpos != old_unit_pos) {
-                       gtk_canvas_item_move (tempo_group, 0.0, tbpos - old_unit_pos) ;
+                       tempo_group->move(0.0, tbpos - old_unit_pos);
                }
-               //gtk_canvas_item_set (tempo_group, "y", tbpos, NULL);
-               gtk_canvas_item_show (tempo_group);
+               //gnome_canvas_item_set (tempo_group, "y", tbpos, NULL);
+               tempo_group->show();
                tbpos += timebar_height;
                visible_timebars++;
        }
        else {
-               gtk_canvas_item_hide (tempo_group);
+               tempo_group->hide();
        }
        
        if (ruler_shown[ruler_time_marker]) {
-               lab_children.push_back (Element(mark_label, false, false));
+               lab_children.push_back (Element(mark_label, PACK_SHRINK, PACK_START));
                gtk_object_getv (GTK_OBJECT(marker_group), 1, args) ;
                old_unit_pos = GTK_VALUE_DOUBLE (args[0]) ;
+               gtk_object_get (GTK_OBJECT(marker_group), "y", &old_unit_pos);
                if (tbpos != old_unit_pos) {
-                       gtk_canvas_item_move (marker_group, 0.0, tbpos - old_unit_pos) ;
+                       marker_group->move ( 0.0, tbpos - old_unit_pos);
                }
-               //gtk_canvas_item_set (marker_group, "y", tbpos, NULL);
-               gtk_canvas_item_show (marker_group);
+               //gnome_canvas_item_set (marker_group, "y", tbpos, NULL);
+               marker_group->show();
                tbpos += timebar_height;
                visible_timebars++;
        }
        else {
-               gtk_canvas_item_hide (marker_group);
+               marker_group->hide();
        }
        
        if (ruler_shown[ruler_time_range_marker]) {
-               lab_children.push_back (Element(range_mark_label, false, false));
+               lab_children.push_back (Element(range_mark_label, PACK_SHRINK, PACK_START));
                gtk_object_getv (GTK_OBJECT(range_marker_group), 1, args) ;
                old_unit_pos = GTK_VALUE_DOUBLE (args[0]) ;
                if (tbpos != old_unit_pos) {
-                       gtk_canvas_item_move (range_marker_group, 0.0, tbpos - old_unit_pos) ;
+                       range_marker_group->move (0.0, tbpos - old_unit_pos);
                }
-               //gtk_canvas_item_set (marker_group, "y", tbpos, NULL);
-               gtk_canvas_item_show (range_marker_group);
+               //gnome_canvas_item_set (marker_group, "y", tbpos, NULL);
+               range_marker_group->show();
                tbpos += timebar_height;
                visible_timebars++;
        }
        else {
-               gtk_canvas_item_hide (range_marker_group);
+               range_marker_group->hide();
        }
 
        if (ruler_shown[ruler_time_transport_marker]) {
-               lab_children.push_back (Element(transport_mark_label, false, false));
-               gtk_object_getv (GTK_OBJECT(transport_marker_group), 1, args) ;
-               old_unit_pos = GTK_VALUE_DOUBLE (args[0]) ;
+               lab_children.push_back (Element(transport_mark_label, PACK_SHRINK, PACK_START));
+               gtk_object_get (GTK_OBJECT(transport_marker_group), "y", &old_unit_pos);
                if (tbpos != old_unit_pos) {
-                       gtk_canvas_item_move (transport_marker_group, 0.0, tbpos - old_unit_pos) ;
+                       transport_marker_group->move ( 0.0, tbpos - old_unit_pos);
                }
-               //gtk_canvas_item_set (marker_group, "y", tbpos, NULL);
-               gtk_canvas_item_show (transport_marker_group);
+               //gnome_canvas_item_set (marker_group, "y", tbpos, NULL);
+               transport_marker_group->show();
                tbpos += timebar_height;
                visible_timebars++;
        }
        else {
-               gtk_canvas_item_hide (transport_marker_group);
+               transport_marker_group->hide();
        }
        
-       time_canvas_vbox.set_usize (-1, (int)(timebar_height * visible_timebars));
+       time_canvas_vbox.set_size_request (-1, (int)(timebar_height * visible_timebars));
        time_canvas_event_box.queue_resize();
        
        update_fixed_rulers();
@@ -698,7 +696,7 @@ Editor::update_ruler_visibility ()
 void
 Editor::update_just_smpte ()
 {
-       ENSURE_GUI_THREAD(slot (*this, &Editor::update_just_smpte));
+       ENSURE_GUI_THREAD(mem_fun(*this, &Editor::update_just_smpte));
        
        if (session == 0) {
                return;