move "logmeter.h" from gtk2_ardour into libs/ardour
[ardour.git] / gtk2_ardour / gain_meter.cc
index b715bcc47dd400efa5f8baa31711c8c3115345d2..5f0a854e69b1c09599f8dfc57bdfa560973e88e5 100644 (file)
@@ -20,6 +20,7 @@
 #include <limits.h>
 
 #include "ardour/amp.h"
+#include "ardour/logmeter.h"
 #include "ardour/route_group.h"
 #include "ardour/session_route.h"
 #include "ardour/dB.h"
@@ -35,7 +36,6 @@
 #include "pbd/stacktrace.h"
 
 #include "gain_meter.h"
-#include "logmeter.h"
 #include "gui_thread.h"
 #include "keyboard.h"
 #include "public_editor.h"
@@ -52,7 +52,7 @@
 #include "ardour/midi_track.h"
 #include "ardour/dB.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace ARDOUR;
 using namespace ARDOUR_UI_UTILS;
@@ -129,11 +129,13 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
        gain_display.signal_activate().connect (sigc::mem_fun (*this, &GainMeter::gain_activated));
        gain_display.signal_focus_in_event().connect (sigc::mem_fun (*this, &GainMeter::gain_focused), false);
        gain_display.signal_focus_out_event().connect (sigc::mem_fun (*this, &GainMeter::gain_focused), false);
+       gain_display.set_alignment (0.5);
 
        peak_display.set_name ("MixerStripPeakDisplay");
        set_size_request_to_display_given_text (peak_display, "-80.g", 2, 6); /* note the descender */
        max_peak = minus_infinity();
        peak_display.set_text (_("-inf"));
+       peak_display.set_alignment (0.5);
 
        /* stuff related to the fact that the peak display is not, in
           fact, supposed to be a text entry.
@@ -160,6 +162,7 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
        gain_astyle_menu.items().push_back (MenuElem (_("Abs")));
 
        gain_astate_menu.set_name ("ArdourContextMenu");
+       gain_astate_menu.set_reserve_toggle_size(false);
        gain_astyle_menu.set_name ("ArdourContextMenu");
 
        gain_adjustment.signal_value_changed().connect (sigc::mem_fun(*this, &GainMeterBase::fader_moved));
@@ -474,15 +477,9 @@ GainMeterBase::gain_activated ()
 {
        float f;
 
-       {
-               // Switch to user's preferred locale so that
-               // if they use different LC_NUMERIC conventions,
-               // we will honor them.
-
-               PBD::LocaleGuard lg;
-               if (sscanf (gain_display.get_text().c_str(), "%f", &f) != 1) {
-                       return;
-               }
+       // Use the user's preferred locale/LC_NUMERIC setting
+       if (sscanf (gain_display.get_text().c_str(), "%f", &f) != 1) {
+               return;
        }
 
        /* clamp to displayable values */
@@ -766,7 +763,9 @@ GainMeterBase::gain_automation_state_button_event (GdkEventButton *ev)
        switch (ev->button) {
                case 1:
                        gain_astate_propagate = Keyboard::modifier_state_contains (ev->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier | Keyboard::TertiaryModifier));
-                       gain_astate_menu.popup (1, ev->time);
+                       Gtkmm2ext::anchored_menu_popup(&gain_astate_menu,
+                                                      &gain_automation_state_button,
+                                                      "", 1, ev->time);
                        break;
                default:
                        break;
@@ -962,8 +961,6 @@ GainMeter::GainMeter (Session* s, int fader_length)
        , gain_display_box(true, 0)
        , hbox(true, 2)
 {
-       gain_display_box.set_border_width (0);
-
        if (gain_display.get_parent()) {
                gain_display.get_parent()->remove (gain_display);
        }