#include "utils.h"
#include "logmeter.h"
#include "gui_thread.h"
+#include "keyboard.h"
#include <ardour/session.h>
#include <ardour/route.h>
using namespace Gtk;
using namespace sigc;
-Signal0<void> GainMeter::ResetAllPeakDisplays;
-Signal1<void,RouteGroup*> GainMeter::ResetGroupPeakDisplays;
+sigc::signal<void> GainMeter::ResetAllPeakDisplays;
+sigc::signal<void,RouteGroup*> GainMeter::ResetGroupPeakDisplays;
Pix* GainMeter::slider_pix = 0;
int
& _io.midi_gain_control(),
false));
- gain_slider->button_press_event.connect (mem_fun(*this, &GainMeter::start_gain_touch));
- gain_slider->button_release_event.connect (mem_fun(*this, &GainMeter::end_gain_touch));
+ gain_slider->signal_button_press_event().connect (mem_fun(*this, &GainMeter::start_gain_touch));
+ gain_slider->signal_button_release_event().connect (mem_fun(*this, &GainMeter::end_gain_touch));
gain_slider->set_name ("MixerGainMeter");
if (_session.midi_port()) {
set_size_request_to_display_given_text (meter_point_button, _("tupni"), 2, 2);
- meter_point_button.button_press_event.connect (mem_fun(*this, &GainMeter::meter_press));
- meter_point_button.button_release_event.connect (mem_fun(*this, &GainMeter::meter_release));
+ meter_point_button.signal_button_press_event().connect (mem_fun(*this, &GainMeter::meter_press));
+ meter_point_button.signal_button_release_event().connect (mem_fun(*this, &GainMeter::meter_release));
top_table.attach (meter_point_button, 1, 2, 0, 1);
}
_io.gain_changed.connect (mem_fun(*this, &GainMeter::gain_changed));
- meter_metric_area.expose_event.connect (mem_fun(*this, &GainMeter::meter_metrics_expose));
- gain_adjustment.value_changed.connect (mem_fun(*this, &GainMeter::gain_adjusted));
- peak_display.button_release_event.connect (mem_fun(*this, &GainMeter::peak_button_release));
+ meter_metric_area.signal_expose_event().connect (mem_fun(*this, &GainMeter::meter_metrics_expose));
+ gain_adjustment.signal_value_changed().connect (mem_fun(*this, &GainMeter::gain_adjusted));
+ peak_display.signal_button_release_event().connect (mem_fun(*this, &GainMeter::peak_button_release));
_session.MeterHoldChanged.connect (mem_fun(*this, &GainMeter::meter_hold_changed));
double fraction;
- Gdk_Window win (meter_metric_area.get_window());
- Gdk_GC fg_gc (meter_metric_area.get_style()->get_fg_gc (Gtk::STATE_NORMAL));
- Gdk_GC bg_gc (meter_metric_area.get_style()->get_bg_gc (Gtk::STATE_NORMAL));
- Gdk_Font font (meter_metric_area.get_style()->get_font());
+ Glib::RefPtr<Gdk::Window> win (meter_metric_area.get_window());
+ Glib::RefPtr<Gdk::GC> fg_gc (meter_metric_area.get_style()->get_fg_gc (Gtk::STATE_NORMAL));
+ Glib::RefPtr<Gdk::GC> bg_gc (meter_metric_area.get_style()->get_bg_gc (Gtk::STATE_NORMAL));
+ Pango::FontDescription font (meter_metric_area.get_style()->get_font());
gint x, y, width, height, depth;
gint pos;
int db_points[] = { -50, -10, -3, 0, 6 };
GdkRectangle base_rect;
GdkRectangle draw_rect;
- win.get_geometry (x, y, width, height, depth);
+ win->get_geometry (x, y, width, height, depth);
base_rect.width = width;
base_rect.height = height;
base_rect.y = 0;
gdk_rectangle_intersect (&ev->area, &base_rect, &draw_rect);
- win.draw_rectangle (bg_gc, true, draw_rect.x, draw_rect.y, draw_rect.width, draw_rect.height);
+ win->draw_rectangle (bg_gc, true, draw_rect.x, draw_rect.y, draw_rect.width, draw_rect.height);
for (i = 0; i < sizeof (db_points)/sizeof (db_points[0]); ++i) {
fraction = log_meter (db_points[i]);
snprintf (buf, sizeof (buf), "%d", db_points[i]);
- gint twidth;
- gint lbearing;
- gint rbearing;
- gint ascent;
- gint descent;
-
- gdk_string_extents (font,
- buf,
- &lbearing,
- &rbearing,
- &twidth,
- &ascent,
- &descent);
-
- win.draw_text (font, fg_gc, width - twidth, pos + ascent, buf, strlen (buf));
+ Glib::RefPtr<Pango::Layout> Layout = meter_metric_area.create_pango_layout(buf);
+ // GTK2FIX - how to get twidth, ascent
+ win->draw_layout(fg_gc, width /* - twidth */, pos /* + ascent */, Layout);
}
return TRUE;
meters[n].width = width;
meters[n].meter->add_events (Gdk::BUTTON_RELEASE_MASK);
- meters[n].meter->button_release_event.connect
- (bind (mem_fun(*this, &GainMeter::meter_button_release), n));
- meters[n].meter->button_release_event.connect_after (ptr_fun (do_not_propagate));
+ meters[n].meter->signal_button_release_event().connect (bind (mem_fun(*this, &GainMeter::meter_button_release), n));
}
meter_packer.pack_start (*meters[n].meter, false, false);
Gtkmm2ext::UI::instance()->call_slot (mem_fun(*this, &GainMeter::effective_gain_display));
}
-gint
-GainMeter::entry_focus_event (GdkEventFocus* ev)
-{
- if (ev->in) {
- ARDOUR_UI::instance()->allow_focus (true);
- } else {
- ARDOUR_UI::instance()->allow_focus (false);
- }
- return TRUE;
-}
-
-
void
GainMeter::set_meter_strip_name (string name)
{