convert property_foo().set_value(bar) to property_foo() = bar
[ardour.git] / gtk2_ardour / audio_clock.cc
index a2696c659e51d577e18775163dee7b8690dec86a..83d8f6644cd84cc562a927f4930825fc3e4774e8 100644 (file)
@@ -25,6 +25,7 @@
 #include <ardour/ardour.h>
 #include <ardour/session.h>
 #include <ardour/tempo.h>
+#include <sigc++/bind.h>
 
 #include "ardour_ui.h"
 #include "audio_clock.h"
@@ -186,7 +187,7 @@ AudioClock::AudioClock (const string& name, bool allow_edit, bool duration, bool
        */
 
        clock_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
-       clock_base.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Hours));
+       clock_base.signal_button_release_event().connect (bind (mem_fun (*this, &AudioClock::field_button_release_event), SMPTE_Hours));
 
        if (editable) {
                setup_events ();
@@ -224,53 +225,53 @@ AudioClock::setup_events ()
        ms_minutes_ebox.set_flags (Gtk::CAN_FOCUS);
        ms_seconds_ebox.set_flags (Gtk::CAN_FOCUS);
 
-       hours_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Hours));
-       minutes_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Minutes));
-       seconds_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Seconds));
-       frames_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Frames));
-       audio_frames_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), AudioFrames));
-       bars_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Bars));
-       beats_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Beats));
-       ticks_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Ticks));
-       ms_hours_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Hours));
-       ms_minutes_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Minutes));
-       ms_seconds_ebox.motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Seconds));
-
-       hours_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Hours));
-       minutes_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Minutes));
-       seconds_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Seconds));
-       frames_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Frames));
-       audio_frames_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), AudioFrames));
-       bars_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Bars));
-       beats_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Beats));
-       ticks_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Ticks));
-       ms_hours_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Hours));
-       ms_minutes_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Minutes));
-       ms_seconds_ebox.button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Seconds));
-
-       hours_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Hours));
-       minutes_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Minutes));
-       seconds_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Seconds));
-       frames_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Frames));
-       audio_frames_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), AudioFrames));
-       bars_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Bars));
-       beats_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Beats));
-       ticks_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Ticks));
-       ms_hours_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Hours));
-       ms_minutes_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Minutes));
-       ms_seconds_ebox.button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Seconds));
-
-       hours_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Hours));
-       minutes_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Minutes));
-       seconds_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Seconds));
-       frames_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Frames));
-       audio_frames_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), AudioFrames));
-       bars_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Bars));
-       beats_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Beats));
-       ticks_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Ticks));
-       ms_hours_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Hours));
-       ms_minutes_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Minutes));
-       ms_seconds_ebox.key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Seconds));
+       hours_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Hours));
+       minutes_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Minutes));
+       seconds_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Seconds));
+       frames_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Frames));
+       audio_frames_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), AudioFrames));
+       bars_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Bars));
+       beats_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Beats));
+       ticks_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Ticks));
+       ms_hours_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Hours));
+       ms_minutes_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Minutes));
+       ms_seconds_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Seconds));
+
+       hours_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Hours));
+       minutes_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Minutes));
+       seconds_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Seconds));
+       frames_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Frames));
+       audio_frames_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), AudioFrames));
+       bars_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Bars));
+       beats_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Beats));
+       ticks_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Ticks));
+       ms_hours_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Hours));
+       ms_minutes_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Minutes));
+       ms_seconds_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Seconds));
+
+       hours_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Hours));
+       minutes_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Minutes));
+       seconds_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Seconds));
+       frames_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Frames));
+       audio_frames_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), AudioFrames));
+       bars_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Bars));
+       beats_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Beats));
+       ticks_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Ticks));
+       ms_hours_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Hours));
+       ms_minutes_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Minutes));
+       ms_seconds_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Seconds));
+
+       hours_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Hours));
+       minutes_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Minutes));
+       seconds_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Seconds));
+       frames_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Frames));
+       audio_frames_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), AudioFrames));
+       bars_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Bars));
+       beats_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Beats));
+       ticks_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Ticks));
+       ms_hours_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Hours));
+       ms_minutes_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Minutes));
+       ms_seconds_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Seconds));
 
        hours_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Hours));
        minutes_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Minutes));
@@ -309,7 +310,7 @@ AudioClock::setup_events ()
 }
 
 void
-AudioClock:on_realize ()
+AudioClock::on_realize ()
 {
        HBox::on_realize ();
 }
@@ -695,56 +696,54 @@ AudioClock::field_key_release_event (GdkEventKey *ev, Field field)
 gint
 AudioClock::field_focus_in_event (GdkEventFocus *ev, Field field)
 {
-       ARDOUR_UI::instance()->allow_focus (true);
-
        key_entry_state = 0;
 
        switch (field) {
        case SMPTE_Hours:
                hours_ebox.set_flags (Gtk::HAS_FOCUS);
-               hours_ebox.set_state (GTK_STATE_ACTIVE);
+               hours_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case SMPTE_Minutes:
                minutes_ebox.set_flags (Gtk::HAS_FOCUS);
-               minutes_ebox.set_state (GTK_STATE_ACTIVE);
+               minutes_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case SMPTE_Seconds:
                seconds_ebox.set_flags (Gtk::HAS_FOCUS);
-               seconds_ebox.set_state (GTK_STATE_ACTIVE);
+               seconds_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case SMPTE_Frames:
                frames_ebox.set_flags (Gtk::HAS_FOCUS);
-               frames_ebox.set_state (GTK_STATE_ACTIVE);
+               frames_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
 
        case AudioFrames:
                audio_frames_ebox.set_flags (Gtk::HAS_FOCUS);
-               audio_frames_ebox.set_state (GTK_STATE_ACTIVE);
+               audio_frames_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
 
        case MS_Hours:
                ms_hours_ebox.set_flags (Gtk::HAS_FOCUS);
-               ms_hours_ebox.set_state (GTK_STATE_ACTIVE);
+               ms_hours_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case MS_Minutes:
                ms_minutes_ebox.set_flags (Gtk::HAS_FOCUS);
-               ms_minutes_ebox.set_state (GTK_STATE_ACTIVE);
+               ms_minutes_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case MS_Seconds:
                ms_seconds_ebox.set_flags (Gtk::HAS_FOCUS);
-               ms_seconds_ebox.set_state (GTK_STATE_ACTIVE);
+               ms_seconds_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case Bars:
                bars_ebox.set_flags (Gtk::HAS_FOCUS);
-               bars_ebox.set_state (GTK_STATE_ACTIVE);
+               bars_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case Beats:
                beats_ebox.set_flags (Gtk::HAS_FOCUS);
-               beats_ebox.set_state (GTK_STATE_ACTIVE);
+               beats_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case Ticks:
                ticks_ebox.set_flags (Gtk::HAS_FOCUS);
-               ticks_ebox.set_state (GTK_STATE_ACTIVE);
+               ticks_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        }
 
@@ -754,8 +753,6 @@ AudioClock::field_focus_in_event (GdkEventFocus *ev, Field field)
 gint
 AudioClock::field_focus_out_event (GdkEventFocus *ev, Field field)
 {
-       ARDOUR_UI::instance()->allow_focus (false);
-
        switch (field) {
 
        case SMPTE_Hours:
@@ -1656,9 +1653,8 @@ AudioClock::set_mode (Mode m)
           started editing the clock and then we switch clock mode.
        */
 
-       if (ARDOUR_UI::instance()) {
-               ARDOUR_UI::instance()->allow_focus (false);
-       }
+       // GTK2FIX might need an equivalent here for drop focus
+
 
        if (_mode == m) {
                return;